mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-wifi/REA
This commit is contained in:
parent
e3bc00e3b8
commit
eae84e1791
@ -25,6 +25,7 @@
|
||||
- [Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks](generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
|
||||
- [Spoofing SSDP and UPnP Devices with EvilSSDP](generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)
|
||||
- [Pentesting Wifi](generic-methodologies-and-resources/pentesting-wifi/README.md)
|
||||
- [Enable Nexmon Monitor And Injection On Android](generic-methodologies-and-resources/pentesting-wifi/enable-nexmon-monitor-and-injection-on-android.md)
|
||||
- [Evil Twin EAP-TLS](generic-methodologies-and-resources/pentesting-wifi/evil-twin-eap-tls.md)
|
||||
- [Phishing Methodology](generic-methodologies-and-resources/phishing-methodology/README.md)
|
||||
- [Clone a Website](generic-methodologies-and-resources/phishing-methodology/clone-a-website.md)
|
||||
|
||||
@ -19,6 +19,12 @@ iwlist wlan0 scan #Scan available wifis
|
||||
```
|
||||
## 工具
|
||||
|
||||
### Hijacker & NexMon (Android 内部 Wi-Fi)
|
||||
|
||||
{{#ref}}
|
||||
enable-nexmon-monitor-and-injection-on-android.md
|
||||
{{#endref}}
|
||||
|
||||
### EAPHammer
|
||||
```
|
||||
git clone https://github.com/s0lst1c3/eaphammer.git
|
||||
@ -43,8 +49,6 @@ docker run \
|
||||
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
|
||||
v1s1t0r1sh3r3/airgeddon
|
||||
```
|
||||
从: [https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux](https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux)
|
||||
|
||||
### wifiphisher
|
||||
|
||||
它可以执行 Evil Twin、KARMA 和 Known Beacons 攻击,然后使用钓鱼模板来获取网络真实密码或捕获社交网络凭据。
|
||||
@ -69,11 +73,11 @@ sudo python setup.py install # Install any dependencies
|
||||
## 攻击总结
|
||||
|
||||
- **DoS**
|
||||
- 失去认证/解除关联 -- 断开所有人(或特定的 ESSID/客户端)
|
||||
- 失去认证/解除关联 -- 断开所有人(或特定 ESSID/客户端)
|
||||
- 随机假 AP -- 隐藏网络,可能使扫描器崩溃
|
||||
- 过载 AP -- 尝试杀死 AP(通常不太有用)
|
||||
- WIDS -- 玩弄 IDS
|
||||
- TKIP, EAPOL -- 一些特定的 DoS 攻击针对某些 AP
|
||||
- TKIP, EAPOL -- 一些特定攻击以 DoS 某些 AP
|
||||
- **破解**
|
||||
- 破解 **WEP**(多种工具和方法)
|
||||
- **WPA-PSK**
|
||||
@ -82,13 +86,13 @@ sudo python setup.py install # Install any dependencies
|
||||
- \[DoS +] **WPA 握手** 捕获 + 破解
|
||||
- **WPA-MGT**
|
||||
- **用户名捕获**
|
||||
- **暴力破解** 凭证
|
||||
- **暴力破解** 凭据
|
||||
- **恶意双胞胎**(有或没有 DoS)
|
||||
- **开放** 恶意双胞胎 \[+ DoS] -- 有助于捕获强制门户凭证和/或执行局域网攻击
|
||||
- **WPA-PSK** 恶意双胞胎 -- 如果您知道密码,对网络攻击有用
|
||||
- **WPA-MGT** -- 有助于捕获公司凭证
|
||||
- **开放** 恶意双胞胎 \[+ DoS] -- 有助于捕获强制门户凭据和/或执行局域网攻击
|
||||
- **WPA-PSK** 恶意双胞胎 -- 如果您知道密码,有助于网络攻击
|
||||
- **WPA-MGT** -- 有助于捕获公司凭据
|
||||
- **KARMA, MANA**, **Loud MANA**, **已知信标**
|
||||
- **+ 开放** -- 有助于捕获强制门户凭证和/或执行局域网攻击
|
||||
- **+ 开放** -- 有助于捕获强制门户凭据和/或执行局域网攻击
|
||||
- **+ WPA** -- 有助于捕获 WPA 握手
|
||||
|
||||
## DOS
|
||||
@ -97,7 +101,7 @@ sudo python setup.py install # Install any dependencies
|
||||
|
||||
**来自** [**这里**:](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**的描述。**
|
||||
|
||||
**失去认证** 攻击是 Wi-Fi 黑客中一种常见的方法,涉及伪造“管理”帧以 **强制断开设备与网络的连接**。这些未加密的数据包欺骗客户端,使其相信它们来自合法网络,从而使攻击者能够收集 WPA 握手以进行破解或持续干扰网络连接。这种简单的战术令人震惊,广泛使用,并对网络安全产生重大影响。
|
||||
**失去认证** 攻击是 Wi-Fi 黑客中一种常见的方法,涉及伪造“管理”帧以 **强制断开设备与网络的连接**。这些未加密的数据包欺骗客户端,使其相信它们来自合法网络,从而使攻击者能够收集 WPA 握手以进行破解或持续干扰网络连接。这种战术因其简单性而令人震惊,广泛使用并对网络安全产生重大影响。
|
||||
|
||||
**使用 Aireplay-ng 进行失去认证**
|
||||
```
|
||||
@ -111,7 +115,7 @@ aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
|
||||
|
||||
### 断开关联数据包
|
||||
|
||||
**断开关联数据包**,类似于去认证数据包,是在Wi-Fi网络中使用的一种管理帧。这些数据包用于切断设备(如笔记本电脑或智能手机)与接入点(AP)之间的连接。断开关联和去认证之间的主要区别在于它们的使用场景。虽然AP发出**去认证数据包以明确地将恶意设备从网络中移除,但断开关联数据包通常在AP进行关机、重启或移动时发送,从而需要断开所有连接的节点。**
|
||||
**断开关联数据包**,类似于去认证数据包,是在Wi-Fi网络中使用的一种管理帧。这些数据包用于切断设备(如笔记本电脑或智能手机)与接入点(AP)之间的连接。断开关联和去认证之间的主要区别在于它们的使用场景。虽然AP发出**去认证数据包以明确地将流氓设备从网络中移除,但断开关联数据包通常在AP进行关机、重启或移动时发送,从而需要断开所有连接的节点。**
|
||||
|
||||
**此攻击可以通过mdk4(模式"d")执行:**
|
||||
```bash
|
||||
@ -150,9 +154,9 @@ mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m
|
||||
|
||||
探测接入点 (AP) 检查 SSID 是否正确显示,并确认 AP 的范围。此技术与 **暴力破解隐藏 SSID**(有或没有字典)相结合,有助于识别和访问隐藏网络。
|
||||
|
||||
**攻击模式 m: Michael 反制措施利用**
|
||||
**攻击模式 m: Michael 对策利用**
|
||||
|
||||
向不同的 QoS 队列发送随机或重复的数据包可以触发 **TKIP AP** 上的 Michael 反制措施,导致 AP 关闭一分钟。此方法是一种有效的 **DoS**(拒绝服务)攻击战术。
|
||||
向不同的 QoS 队列发送随机或重复的数据包可以触发 **TKIP AP** 上的 Michael 对策,导致 AP 关闭一分钟。此方法是一种有效的 **DoS**(拒绝服务)攻击战术。
|
||||
```bash
|
||||
# -t <BSSID> of a TKIP AP
|
||||
# -j use inteligent replay to create the DoS
|
||||
@ -171,14 +175,14 @@ mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
|
||||
|
||||
**攻击模式 w: WIDS 混淆**
|
||||
|
||||
将客户端交叉连接到多个 WDS 节点或假冒的恶意 AP 可以操纵入侵检测和防御系统,造成混淆和潜在的系统滥用。
|
||||
将客户端交叉连接到多个 WDS 节点或假冒的恶意 AP 可以操纵入侵检测和预防系统,造成混淆和潜在的系统滥用。
|
||||
```bash
|
||||
# -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: 数据包模糊测试器**
|
||||
**攻击模式 f: 数据包模糊器**
|
||||
|
||||
一个具有多样数据包来源和全面数据包操作修改器的数据包模糊测试器。
|
||||
一个具有多样数据包来源和全面数据包操作修改器的数据包模糊器。
|
||||
|
||||
### **Airggedon**
|
||||
|
||||
@ -188,14 +192,14 @@ _**Airgeddon**_ 提供了之前评论中提出的大多数攻击:
|
||||
|
||||
## WPS
|
||||
|
||||
WPS (Wi-Fi Protected Setup) 简化了将设备连接到路由器的过程,提高了加密网络(使用 **WPA** 或 **WPA2** Personal)的设置速度和便利性。对于容易被攻破的 WEP 安全性,它是无效的。WPS 使用一个 8 位数字的 PIN,分为两部分进行验证,这使得它由于组合数量有限(11,000 种可能性)而容易受到暴力攻击。
|
||||
WPS (Wi-Fi Protected Setup) 简化了将设备连接到路由器的过程,提高了加密为 **WPA** 或 **WPA2** 个人网络的设置速度和便利性。对于容易被攻破的 WEP 安全性,它是无效的。WPS 使用一个 8 位数字的 PIN,分为两部分进行验证,这使得它由于组合数量有限(11,000 种可能性)而容易受到暴力攻击。
|
||||
|
||||
### WPS 暴力破解
|
||||
|
||||
执行此操作的主要工具有两个:Reaver 和 Bully。
|
||||
|
||||
- **Reaver** 被设计为对 WPS 的一种强大且实用的攻击,并已在各种接入点和 WPS 实现中进行了测试。
|
||||
- **Bully** 是 WPS 暴力破解攻击的 **新实现**,用 C 编写。它相较于原始的 Reaver 代码有几个优势:依赖性更少,内存和 CPU 性能更好,正确处理字节序,以及更强大的选项集。
|
||||
- **Reaver** 被设计为对 WPS 的一种强大且实用的攻击,并已针对各种接入点和 WPS 实现进行了测试。
|
||||
- **Bully** 是 WPS 暴力破解攻击的 **新实现**,用 C 语言编写。它相较于原始的 Reaver 代码有几个优点:依赖性更少,内存和 CPU 性能更好,正确处理字节序,以及更强大的选项集。
|
||||
|
||||
该攻击利用了 **WPS PIN 的漏洞**,特别是前四位数字的暴露和最后一位数字作为校验和的角色,简化了暴力攻击。然而,针对暴力攻击的防御措施,如 **阻止攻击者的 MAC 地址**,需要 **MAC 地址轮换** 以继续攻击。
|
||||
|
||||
@ -208,12 +212,12 @@ 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相关联。
|
||||
1. **预先发现的PIN**:利用与特定制造商相关的已知PIN数据库,这些制造商使用统一的WPS PIN。该数据库将MAC地址的前三个八位字节与这些制造商可能的PIN相关联。
|
||||
2. **PIN生成算法**:利用像ComputePIN和EasyBox这样的算法,根据AP的MAC地址计算WPS PIN。Arcadyan算法还需要设备ID,为PIN生成过程增加了一层。
|
||||
|
||||
### WPS Pixie Dust攻击
|
||||
|
||||
**Dominique Bongard**发现了一些接入点(AP)在创建秘密代码(称为**nonces**(**E-S1**和**E-S2**))方面的缺陷。如果这些nonces能够被破解,破解AP的WPS PIN就变得容易。AP在一个特殊代码(哈希)中透露PIN,以证明其合法性而不是伪造(恶意)AP。这些nonces本质上是解锁存放WPS PIN的“保险箱”的“钥匙”。更多信息可以在[这里](<https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)>)找到。
|
||||
**Dominique Bongard**发现了一些接入点(AP)在创建秘密代码(称为**nonces**,**E-S1**和**E-S2**)方面的缺陷。如果这些nonces能够被破解,破解AP的WPS PIN就变得容易。AP在一个特殊代码(哈希)中透露PIN,以证明其合法性而不是伪造(恶意)AP。这些nonces本质上是解锁存放WPS PIN的“保险箱”的“钥匙”。更多信息可以在[这里](<https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)>)找到。
|
||||
|
||||
简单来说,问题在于一些AP在连接过程中没有使用足够随机的密钥来加密PIN。这使得PIN容易被从网络外部猜测(离线暴力破解攻击)。
|
||||
```bash
|
||||
@ -226,7 +230,7 @@ bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
|
||||
```
|
||||
### Null Pin 攻击
|
||||
|
||||
一些设计不良的系统甚至允许 **Null PIN**(空的或不存在的 PIN)授予访问权限,这非常不寻常。工具 **Reaver** 能够测试此漏洞,而 **Bully** 则无法。
|
||||
一些设计不良的系统甚至允许 **Null PIN**(一个空的或不存在的 PIN)授予访问权限,这非常不寻常。工具 **Reaver** 能够测试此漏洞,而 **Bully** 则无法。
|
||||
```bash
|
||||
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
|
||||
```
|
||||
@ -239,7 +243,7 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
|
||||
- 5 和 6 让你尝试 **你的自定义 PIN**(如果你有的话)
|
||||
- 7 和 8 执行 **Pixie Dust 攻击**
|
||||
- 13 允许你测试 **NULL PIN**
|
||||
- 11 和 12 将 **从可用数据库中收集与所选 AP 相关的 PIN** 并 **生成** 可能的 **PIN**,使用:ComputePIN、EasyBox 和可选的 Arcadyan(推荐,为什么不呢?)
|
||||
- 11 和 12 将 **从可用数据库中重新收集与所选 AP 相关的 PIN** 并 **生成** 可能的 **PIN**,使用:ComputePIN、EasyBox 和可选的 Arcadyan(推荐,为什么不呢?)
|
||||
- 9 和 10 将测试 **每一个可能的 PIN**
|
||||
|
||||
## **WEP**
|
||||
@ -258,7 +262,7 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
|
||||
|
||||
在 2018 年,**hashcat** [揭示](https://hashcat.net/forum/thread-7717.html) 一种新的攻击方法,独特之处在于它只需要 **一个单一的数据包**,并且不需要任何客户端连接到目标 AP——只需攻击者与 AP 之间的交互。
|
||||
|
||||
许多现代路由器在关联期间向 **第一个 EAPOL** 帧添加了一个 **可选字段**,称为 `Robust Security Network`。这包括 `PMKID`。
|
||||
许多现代路由器在关联期间向 **第一个 EAPOL** 帧添加一个 **可选字段**,称为 `Robust Security Network`。这包括 `PMKID`。
|
||||
|
||||
正如原始帖子所解释的,**PMKID** 是使用已知数据创建的:
|
||||
```bash
|
||||
@ -295,11 +299,11 @@ 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**的通信。以下是简化的指南:
|
||||
对**WPA/WPA2**网络的攻击可以通过捕获**握手**并尝试**离线破解**密码来执行。这个过程涉及监控特定网络和**BSSID**在特定**频道**上的通信。以下是简化的指南:
|
||||
|
||||
1. 确定目标网络的**BSSID**、**频道**和**连接的客户端**。
|
||||
2. 使用`airodump-ng`在指定的频道和BSSID上监控网络流量,期望捕获一个握手。命令将如下所示:
|
||||
@ -354,7 +358,7 @@ pyrit -r psk-01.cap analyze
|
||||
3. **EAP-TLS (传输层安全)**:
|
||||
- 利用客户端和服务器端证书进行认证,并可以动态生成基于用户和会话的WEP密钥以保护通信。
|
||||
4. **EAP-TTLS (隧道传输层安全)**:
|
||||
- 通过加密隧道提供相互认证,并提供一种方法来推导动态的、每用户、每会话的WEP密钥。它只需要服务器端证书,客户端使用凭据。
|
||||
- 通过加密隧道提供互认证,并提供一种方法来推导动态的、每用户、每会话的WEP密钥。只需要服务器端证书,客户端使用凭据。
|
||||
5. **PEAP (受保护的可扩展认证协议)**:
|
||||
- 通过创建TLS隧道进行受保护的通信,功能类似于EAP。由于隧道提供的保护,它允许在EAP之上使用较弱的认证协议。
|
||||
- **PEAP-MSCHAPv2**: 通常称为PEAP,它将脆弱的MSCHAPv2挑战/响应机制与保护性的TLS隧道结合在一起。
|
||||
@ -378,20 +382,20 @@ pyrit -r psk-01.cap analyze
|
||||
- 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请求代理到其家庭领域的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消息在没有EAP-PEAP或EAP-TTLS包装的情况下传输到家庭RADIUS服务器。发出的RADIUS消息的用户名称属性包含用户的真实身份,替换了来自传入RADIUS请求的匿名用户名称。当受保护的认证方法为PAP或CHAP(仅TTLS支持)时,从TLS有效负载中提取的用户名称和其他认证属性在发出的RADIUS消息中替换,取代了传入RADIUS请求中找到的匿名用户名称和TTLS EAP-消息属性。
|
||||
无论选择哪种协议,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](https://www.interlinknetworks.com/app_notes/eap-peap.htm)
|
||||
|
||||
### EAP-暴力破解(密码喷洒)
|
||||
|
||||
如果客户端预计使用**用户名和密码**(请注意,在这种情况下**EAP-TLS将无效**),那么您可以尝试获取**用户名**(见下一部分)和**密码**的**列表**,并尝试使用[**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**进行**暴力破解**。
|
||||
如果客户端预计使用**用户名和密码**(请注意**EAP-TLS在这种情况下无效**),那么您可以尝试获取**用户名**的**列表**(见下一部分)和**密码**,并尝试使用[**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**进行**暴力破解**。
|
||||
```bash
|
||||
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
|
||||
```
|
||||
@ -426,7 +430,7 @@ EAP-TTLS遵循稍微不同的程序。在EAP-TTLS中,客户端通常使用PAP
|
||||
|
||||
- 主动探测涉及站点发送探测请求以发现附近的 AP 及其特性。
|
||||
- 定向探测请求针对特定的 ESSID,帮助检测特定网络是否在范围内,即使它是一个隐藏网络。
|
||||
- 广播探测请求的 SSID 字段为空,并发送到所有附近的 AP,让站点检查任何首选网络,而不透露其 PNL 内容。
|
||||
- 广播探测请求的 SSID 字段为空,并发送到所有附近的 AP,让站点检查任何首选网络,而不披露其 PNL 内容。
|
||||
|
||||
## 简单的 AP 并重定向到互联网
|
||||
|
||||
@ -496,7 +500,7 @@ echo 1 > /proc/sys/net/ipv4/ip_forward
|
||||
```
|
||||
## Evil Twin
|
||||
|
||||
恶意双胞胎攻击利用WiFi客户端识别网络的方式,主要依赖网络名称(ESSID),而不需要基站(接入点)向客户端进行身份验证。关键点包括:
|
||||
恶意双胞胎攻击利用了WiFi客户端识别网络的方式,主要依赖于网络名称(ESSID),而不需要基站(接入点)向客户端进行身份验证。关键点包括:
|
||||
|
||||
- **区分困难**:当设备共享相同的ESSID和加密类型时,难以区分合法和恶意接入点。现实世界的网络通常使用多个具有相同ESSID的接入点以无缝扩展覆盖范围。
|
||||
- **客户端漫游和连接操控**:802.11协议允许设备在同一ESS内的接入点之间漫游。攻击者可以利用这一点,诱使设备断开与当前基站的连接并连接到恶意接入点。这可以通过提供更强的信号或通过去身份验证数据包或干扰等方法中断与合法接入点的连接来实现。
|
||||
@ -514,13 +518,13 @@ airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
|
||||
|
||||
.png>)
|
||||
|
||||
请注意,默认情况下,如果 PNL 中的 ESSID 被保存为 WPA 保护,设备将不会自动连接到开放的 Evil Twin。您可以尝试对真实 AP 进行 DoS 攻击,并希望用户手动连接到您的开放 Evil Twin,或者您可以对真实 AP 进行 DoS 攻击并使用 WPA Evil Twin 捕获握手(使用此方法您将无法让受害者连接到您,因为您不知道 PSK,但您可以捕获握手并尝试破解它)。
|
||||
请注意,默认情况下,如果 PNL 中的 ESSID 被保存为 WPA 保护,设备将不会自动连接到开放的 Evil Twin。你可以尝试对真实 AP 进行 DoS 攻击,并希望用户手动连接到你的开放 Evil Twin,或者你可以对真实 AP 进行 DoS 攻击并使用 WPA Evil Twin 来捕获握手(使用这种方法你将无法让受害者连接到你,因为你不知道 PSK,但你可以捕获握手并尝试破解它)。
|
||||
|
||||
_某些操作系统和防病毒软件会警告用户连接到开放网络是危险的..._
|
||||
|
||||
### WPA/WPA2 Evil Twin
|
||||
|
||||
您可以创建一个 **使用 WPA/2 的 Evil Twin**,如果设备已配置为连接到该 SSID 并使用 WPA/2,它们将尝试连接。无论如何,**要完成 4-way-handshake**,您还需要 **知道** 客户端将使用的 **密码**。如果您 **不知道**,则 **连接将无法完成**。
|
||||
你可以创建一个 **使用 WPA/2 的 Evil Twin**,如果设备配置为连接到该 SSID 并使用 WPA/2,它们将尝试连接。无论如何,**要完成 4-way-handshake**,你还需要 **知道** 客户端将要使用的 **密码**。如果你 **不知道**,则 **连接将无法完成**。
|
||||
```bash
|
||||
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
|
||||
```
|
||||
@ -551,14 +555,14 @@ hostapd-wpe ./victim/victim.conf -s
|
||||
```
|
||||
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` 手动指定提供的方法(以相同顺序提供相同的认证方法会使攻击更难被检测)。
|
||||
- `--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP` 手动指定提供的方法(以相同顺序提供相同的认证方法,使得攻击更难被检测)。
|
||||
- [在维基中找到更多信息](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
|
||||
|
||||
**使用 Airgeddon**
|
||||
@ -570,14 +574,14 @@ GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
|
||||
|
||||
### 在 Evil Twins 攻击中调试 PEAP 和 EAP-TTLS TLS 隧道
|
||||
|
||||
_此方法在 PEAP 连接中进行了测试,但由于我正在解密任意 TLS 隧道,这也应该适用于 EAP-TTLS_
|
||||
_此方法在 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` **使用 RSA 交换密钥** 而不是 DH,因此你将能够 **解密** 流量,前提是 **知道服务器的私钥**。
|
||||
|
||||
现在使用 **`hostapd-wpe`** 启动 **Evil Twin**,并使用该修改过的配置如往常一样。还要在执行 Evil Twin 攻击的 **接口** 中启动 **`wireshark`**。
|
||||
现在使用 **`hostapd-wpe`** 启动 **Evil Twin**,并按照通常的方式使用该修改后的配置。同时,在执行 Evil Twin 攻击的 **接口** 中启动 **`wireshark`**。
|
||||
|
||||
现在或稍后(当你已经捕获了一些认证意图时)可以在 `Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...` 中将私有 RSA 密钥添加到 wireshark。
|
||||
现在或稍后(当你已经捕获了一些认证意图时),你可以在 `Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...` 中将私有 RSA 密钥添加到 wireshark。
|
||||
|
||||
添加一个新条目,并用以下值填写表单:**IP 地址 = any** -- **端口 = 0** -- **协议 = data** -- **密钥文件**(**选择你的密钥文件**,为避免问题选择一个 **没有密码保护的密钥文件**)。
|
||||
|
||||
@ -591,16 +595,16 @@ _此方法在 PEAP 连接中进行了测试,但由于我正在解密任意 TLS
|
||||
|
||||
### ESSID 和 MAC 黑白名单
|
||||
|
||||
不同类型的媒体接入控制过滤列表(MFACLs)及其对应的模式和对流氓接入点(AP)行为的影响:
|
||||
不同类型的媒体接入控制过滤列表(MFACLs)及其对应的模式和对恶意接入点(AP)行为的影响:
|
||||
|
||||
1. **基于 MAC 的白名单**:
|
||||
- 流氓 AP 仅对白名单中指定的设备的探测请求作出响应,对未列出的所有其他设备保持不可见。
|
||||
- 恶意 AP 仅对白名单中指定的设备的探测请求作出响应,对未列出的其他设备保持不可见。
|
||||
2. **基于 MAC 的黑名单**:
|
||||
- 流氓 AP 将忽略黑名单中设备的探测请求,从而使流氓 AP 对这些特定设备不可见。
|
||||
- 恶意 AP 将忽略黑名单中设备的探测请求,从而使恶意 AP 对这些特定设备不可见。
|
||||
3. **基于 SSID 的白名单**:
|
||||
- 流氓 AP 仅对列出的特定 ESSID 的探测请求作出响应,使其对首选网络列表(PNL)中不包含这些 ESSID 的设备不可见。
|
||||
- 恶意 AP 仅对列出的特定 ESSID 的探测请求作出响应,使其对未包含这些 ESSID 的设备不可见。
|
||||
4. **基于 SSID 的黑名单**:
|
||||
- 流氓 AP 不会对黑名单中特定 ESSID 的探测请求作出响应,使其对寻求这些特定网络的设备不可见。
|
||||
- 恶意 AP 不会对黑名单中特定 ESSID 的探测请求作出响应,使其对寻求这些特定网络的设备不可见。
|
||||
```bash
|
||||
# example EAPHammer MFACL file, wildcards can be used
|
||||
09:6a:06:c8:36:af
|
||||
@ -628,21 +632,21 @@ name3
|
||||
|
||||
然后,**设备开始忽略不可靠的网络响应**,降低了原始karma攻击的有效性。然而,一种新的方法被引入,称为**MANA攻击**,由Ian de Villiers和Dominic White提出。该方法涉及流氓AP**通过响应设备的广播探测请求来捕获设备的首选网络列表(PNL)**,并使用设备之前已知的网络名称(SSID)。这种复杂的攻击通过利用设备记忆和优先考虑已知网络的方式,绕过了对原始karma攻击的保护。
|
||||
|
||||
MANA攻击通过监控设备的定向和广播探测请求来操作。对于定向请求,它记录设备的MAC地址和请求的网络名称,并将此信息添加到列表中。当接收到广播请求时,AP会以匹配设备列表中任何网络的信息进行响应,诱使设备连接到流氓AP。
|
||||
MANA攻击通过监控设备的定向和广播探测请求来操作。对于定向请求,它记录设备的MAC地址和请求的网络名称,并将这些信息添加到列表中。当接收到广播请求时,AP会以匹配设备列表中任何网络的信息进行响应,诱使设备连接到流氓AP。
|
||||
```bash
|
||||
./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)的机会。
|
||||
一个**Loud MANA 攻击**是一种高级策略,适用于设备不使用定向探测或其首选网络列表(PNL)对攻击者未知的情况。它的原理是**同一区域内的设备可能在其 PNL 中共享一些网络名称**。该攻击不是选择性响应,而是对所有观察到的设备的组合 PNL 中找到的每个网络名称(ESSID)广播探测响应。这种广泛的方法增加了设备识别熟悉网络并尝试连接到恶意接入点(AP)的机会。
|
||||
```bash
|
||||
./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`选项结合,可以增强攻击,以更具攻击性地捕获设备。
|
||||
当 **Loud MANA 攻击** 可能不足以满足需求时,**已知信标攻击** 提供了另一种方法。此方法 **通过模拟一个响应任何网络名称的 AP 来暴力破解连接过程,循环遍历从字典中派生的潜在 ESSID 列表**。这模拟了多个网络的存在,希望能在受害者的 PNL 中匹配到一个 ESSID,从而促使尝试连接到伪造的 AP。通过将其与 `--loud` 选项结合,可以增强攻击力度,以更激进的方式捕获设备。
|
||||
|
||||
Eaphammer将此攻击实现为MANA攻击,其中列表中的所有ESSID都被激活(您还可以将其与`--loud`结合,以创建Loud MANA + Known beacons attack):
|
||||
Eaphammer 将此攻击实现为 MANA 攻击,其中列表中的所有 ESSID 都被激活(您也可以将其与 `--loud` 结合,以创建 Loud MANA + 已知信标攻击):
|
||||
```bash
|
||||
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
|
||||
```
|
||||
@ -659,7 +663,7 @@ Eaphammer将此攻击实现为MANA攻击,其中列表中的所有ESSID都被
|
||||
```
|
||||
## Wi-Fi Direct
|
||||
|
||||
**Wi-Fi Direct** 是一种协议,使设备能够直接通过 Wi-Fi 连接,而无需传统的无线接入点。此功能集成在各种物联网 (IoT) 设备中,如打印机和电视,促进设备间的直接通信。Wi-Fi Direct 的一个显著特点是一个设备充当接入点,称为组所有者,以管理连接。
|
||||
**Wi-Fi Direct** 是一种协议,使设备能够直接通过 Wi-Fi 连接,而无需传统的无线接入点。此功能集成在各种物联网 (IoT) 设备中,如打印机和电视,促进设备之间的直接通信。Wi-Fi Direct 的一个显著特点是一个设备充当接入点,称为组所有者,以管理连接。
|
||||
|
||||
Wi-Fi Direct 连接的安全性通过 **Wi-Fi Protected Setup (WPS)** 建立,支持多种安全配对方法,包括:
|
||||
|
||||
|
||||
@ -0,0 +1,128 @@
|
||||
# 在 Android(Broadcom 芯片)上启用 NexMon 监控模式和数据包注入
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## 概述
|
||||
大多数现代 Android 手机都嵌入了一个 Broadcom/Cypress Wi-Fi 芯片组,该芯片组出厂时不支持 802.11 监控模式或帧注入功能。开源的 NexMon 框架修补了专有固件,以添加这些功能,并通过共享库 (`libnexmon.so`) 和 CLI 辅助工具 (`nexutil`) 公开它们。通过将该库预加载到标准 Wi-Fi 驱动程序中,已 root 的设备可以捕获原始 802.11 流量并注入任意帧,从而消除了对外部 USB 适配器的需求。
|
||||
|
||||
本页面记录了一个快速工作流程,以完全修补的三星 Galaxy S10(BCM4375B1)为例,使用:
|
||||
|
||||
* 包含修补固件 + `libnexmon.so` 的 NexMon Magisk 模块
|
||||
* 自动化监控模式切换的 Hijacker Android 应用程序
|
||||
* 可选的 Kali NetHunter chroot,以直接针对内部接口运行经典无线工具(aircrack-ng, wifite, mdk4 等)
|
||||
|
||||
同样的技术适用于任何具有公开可用 NexMon 补丁的手机(Pixel 1, Nexus 6P, Galaxy S7/S8 等)。
|
||||
|
||||
---
|
||||
|
||||
## 先决条件
|
||||
* 支持的 Broadcom/Cypress 芯片组的 Android 手机(例如 BCM4358/59/43596/4375B1)
|
||||
* 使用 Magisk ≥ 24 的 Root 权限
|
||||
* BusyBox(大多数 ROM/NetHunter 已经包含它)
|
||||
* 提供以下内容的 NexMon Magisk ZIP 或自编译补丁:
|
||||
* `/system/lib*/libnexmon.so`
|
||||
* `/system/xbin/nexutil`
|
||||
* Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker
|
||||
* (可选)Kali NetHunter 或任何您打算运行无线工具的 Linux chroot
|
||||
|
||||
---
|
||||
|
||||
## 刷写 NexMon 补丁(Magisk)
|
||||
1. 下载适合您设备/固件的 ZIP(例如:`nexmon-s10.zip`)。
|
||||
2. 打开 Magisk -> 模块 -> 从存储安装 -> 选择 ZIP 并重启。
|
||||
该模块将 `libnexmon.so` 复制到 `/data/adb/modules/<module>/lib*/` 并确保 SELinux 标签正确。
|
||||
3. 验证安装:
|
||||
```bash
|
||||
ls -lZ $(find / -name libnexmon.so 2>/dev/null)
|
||||
sha1sum $(which nexutil)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 配置 Hijacker
|
||||
Hijacker 可以在运行 `airodump`、`wifite` 等之前自动切换监控模式。在 **设置 -> 高级** 中添加以下条目(如果您的模块不同,请编辑库路径):
|
||||
```
|
||||
Prefix:
|
||||
LD_PRELOAD=/data/user/0/com.hijacker/files/lib/libnexmon.so
|
||||
|
||||
Enable monitor mode:
|
||||
svc wifi disable; ifconfig wlan0 up; nexutil -s0x613 -i -v2
|
||||
|
||||
Disable monitor mode:
|
||||
nexutil -m0; svc wifi enable
|
||||
```
|
||||
启用“在 airodump 启动时启动监视模式”,以便每次 Hijacker 扫描都在原生监视模式下进行(`wlan0` 而不是 `wlan0mon`)。
|
||||
|
||||
如果 Hijacker 在启动时显示错误,请在共享存储上创建所需的目录并重新打开应用程序:
|
||||
```bash
|
||||
mkdir -p /storage/emulated/0/Hijacker
|
||||
```
|
||||
### 那些 `nexutil` 标志是什么意思?
|
||||
* **`-s0x613`** 写入固件变量 0x613 (FCAP_FRAME_INJECTION) → `1` (启用任意帧的 TX)。
|
||||
* **`-i`** 将接口置于监控模式(radiotap 头将被添加)。
|
||||
* **`-v2`** 设置详细级别; `2` 打印确认和固件版本。
|
||||
* **`-m0`** 恢复管理模式(在 *disable* 命令中使用)。
|
||||
|
||||
运行 *Enable monitor mode* 后,您应该看到接口处于监控状态,并能够使用以下命令捕获原始帧:
|
||||
```bash
|
||||
airodump-ng --band abg wlan0
|
||||
```
|
||||
---
|
||||
|
||||
## 手动一行代码(不使用 Hijacker)
|
||||
```bash
|
||||
# Enable monitor + injection
|
||||
svc wifi disable && ifconfig wlan0 up && nexutil -s0x613 -i -v2
|
||||
|
||||
# Disable and return to normal Wi-Fi
|
||||
nexutil -m0 && svc wifi enable
|
||||
```
|
||||
如果您只需要被动嗅探,请省略 `-s0x613` 标志。
|
||||
|
||||
---
|
||||
|
||||
## 在 Kali NetHunter / chroot 中使用 `libnexmon`
|
||||
Kali 中的标准用户空间工具不知道 NexMon,但您可以通过 `LD_PRELOAD` 强制它们使用:
|
||||
|
||||
1. 将预构建的共享对象复制到 chroot 中:
|
||||
```bash
|
||||
cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/
|
||||
```
|
||||
2. 从 **Android 主机** 启用监控模式(上面的命令或通过 Hijacker)。
|
||||
3. 在 Kali 中启动任何无线工具并进行预加载:
|
||||
```bash
|
||||
sudo su
|
||||
export LD_PRELOAD=/lib/kalilibnexmon.so
|
||||
wifite -i wlan0 # 或 aircrack-ng, mdk4 …
|
||||
```
|
||||
4. 完成后,像往常一样在 Android 上禁用监控模式。
|
||||
|
||||
因为固件已经处理了 radiotap 注入,用户空间工具的行为就像在外部 Atheros 适配器上一样。
|
||||
|
||||
---
|
||||
|
||||
## 可能的典型攻击
|
||||
一旦监控 + TX 激活,您可以:
|
||||
* 使用 `wifite`、`hcxdumptool`、`airodump-ng` 捕获 WPA(2/3-SAE) 握手或 PMKID。
|
||||
* 注入去认证/断开连接帧以强制客户端重新连接。
|
||||
* 使用 `mdk4`、`aireplay-ng`、Scapy 等构造任意管理/数据帧。
|
||||
* 从手机直接构建恶意 AP 或执行 KARMA/MANA 攻击。
|
||||
|
||||
Galaxy S10 的性能与外部 USB NIC 相当(~20 dBm TX,2-3 M pps RX)。
|
||||
|
||||
---
|
||||
|
||||
## 故障排除
|
||||
* `Device or resource busy` – 确保 **Android Wi-Fi 服务已禁用** (`svc wifi disable`) 后再启用监控模式。
|
||||
* `nexutil: ioctl(PRIV_MAGIC) failed` – 库未预加载;仔细检查 `LD_PRELOAD` 路径。
|
||||
* 帧注入有效但未捕获数据包 – 一些 ROM 硬性阻止频道;尝试 `nexutil -c <channel>` 或 `iwconfig wlan0 channel <n>`。
|
||||
* SELinux 阻止库 – 将设备设置为 *Permissive* 或修复模块上下文:`chcon u:object_r:system_lib_file:s0 libnexmon.so`。
|
||||
|
||||
---
|
||||
|
||||
## 参考
|
||||
* [Hijacker on the Samsung Galaxy S10 with wireless injection](https://forums.kali.org/t/hijacker-on-the-samsung-galaxy-s10-with-wireless-injection/10305)
|
||||
* [NexMon – firmware patching framework](https://github.com/seemoo-lab/nexmon)
|
||||
* [Hijacker (aircrack-ng GUI for Android)](https://github.com/chrisk44/Hijacker)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
Loading…
x
Reference in New Issue
Block a user