aircrack-ng
aircrack-ng是一组工具,只不过这个攻击套件以最重要的aircrack-ng密码破解工具命名,套件大概包括如下:
- airmon-ng
- airodump-ng
- aireplay-ng
- aircrack-ng
- airbase-ng
- airolib-ng
- airdecap-ng
- airserv-ng
- airtun-ng
- besside-ng
所以尤其注意,aircrack-ng通常指一组工具,这个攻击套件在kali上默认集成,虽然也可以运行在其他平台上,但是稳定性与兼容性不是非常完美,并且有网友指出,在Mac上的aireplay-ng是无法运行的(笔者没有尝试),所以为了避免配置各种环境的麻烦,还是选择kali作为渗透的平台最为便捷。这些工具套件通常是协同工作的,这里分开介绍每个工具的基本用途,工具之间的使用关联,在之后的攻击情景中会详细介绍。
airmon-ng
用来检查网卡驱动,开启和停止无线侦听,省去了用iw配置无线网卡的繁琐命令
检查无线网卡
- 检查无线网卡: airmon-ng
root@kali:~ airmon-ng
PHY Interface Driver Chipset
phy7 wlan0 ath9k_htc Atheros Communications, Inc. AR9271 802.11n
检查进程冲突
- 检查进程冲突: airmon-ng check
- 杀掉所有进程冲突: airmon-ng check kill
在kali中我们可以用UI界面中的网络管理器来管理网络,这个是通过network-manager这个服务进行的,有时这个服务以及一些其他控制无线网络的进程,会影响我们的aircrack-ng工作,所以这时我们需要停掉这些服务,杀掉这些进程。我们可以手杀:service network-manager stop,但是airmon-ng已经实现检查冲突进程并停掉的这个流程。
root@kali:~ airmon-ng check
Found 3 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to run 'airmon-ng check kill'
PID Name
1597 wpa_supplicant
11657 NetworkManager
12722 dhclient
root@kali:~ airmon-ng check kill
但这个步骤并不是必须的,这里如果我们停掉network-manager这个服务,意味着kali的网络服务被停掉了,其他应用会处于断网状态。而且在笔者进行测试的过程中,不停掉这个服务,后续的侦听以及重放都没有受到任何影响。所以如果你没有停掉这些冲突进程,并且在后续的测试过程中出现各种问题,请尝试这个步骤。
更改网卡模式
- 将wlan0置入监听模式:airmon-ng start wlan0
root@kali:~ airmon-ng start wlan0
Found 3 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to run 'airmon-ng check kill'
PID Name
1597 wpa_supplicant
11657 NetworkManager
12722 dhclient
PHY Interface Driver Chipset
phy7 wlan0 ath9k_htc Atheros Communications, Inc. AR9271 802.11n
(mac80211 monitor mode vif enabled for [phy7]wlan0 on [phy7]wlan0mon)
(mac80211 station mode vif disabled for [phy7]wlan0)
- 停掉wlan0mon监听接口:airmon-ng stop wlan0mon && ifconfig wlan0 up
root@kali:~ airmon-ng stop wlan0mon && ifconfig wlan0 up
PHY Interface Driver Chipset
phy7 wlan0mon ath9k_htc Atheros Communications, Inc. AR9271 802.11n
(mac80211 station mode vif enabled on [phy7]wlan0)
(mac80211 monitor mode vif disabled for [phy7]wlan0mon)
airodump-ng
用来嗅探抓包的工具,获得实时的附近无线的详细信息,可以保存所有嗅探到的无线流量,在攻击时通常一直处于运行状态。并且可以自动检测和提取出关键数据,如WPA的握手包的发现,采用WEP保护方案的无线热点在与AP建立连接时的秘钥流等。airodump-ng运行将一直被执行,命令行中将不断刷新监听到的无线网络信息,直到按下control+c停止。
开始嗅探
root@kali:~ airodump-ng wlan0mon
指定信道(-c)
在我们用airmon-ng网卡开启监听模式时,会将网卡的工作信道设置为默认(笔者这里是10信道),但是如果在airodump-ng中不指明信道去工作时,网卡会在13个信道中不断嗅探,此时网卡的工作信道就是来回跳跃的。由于在后面的aireplay-ng这个工具的使用过程中,网卡必须工作在一个指明的信道中。所以在我们确定目标后,我们要根据目标热点的信道,指明网卡的工作信道,利用airodump-ng的-c参数就可以动态修改网卡的工作信道。
root@kali:~ airodump-ng wlan0mon -c 8
指定AP(–bssid)
指定目标AP的MAC地址,这样就只显示目标热点的信息了
root@kali:~ airodump-ng wlan0mon -c 8 --bssid 00:11:22:33:44::55
保存数据(-w)
如果没有这个参数,所有捕获的流量不被保存,关键信息仅仅被打印。通过这个参数可以将所有嗅探下来的数据保存为一组文件,比较重要的就是流量报文,存储后缀为cap,如果捕获到WEP中的秘钥流则会以xor为后缀进行存储
root@kali:~ airodump-ng wlan0mon -c 8 --bssid 00:11:22:33:44::55 -w test
aireplay-ng
这个工具用来向网络中注入包,已达到伪造验证,重放,强制重新验证等功能,是整个aircrack-ng套件中使用起来最复杂的一个工具,其使用说明可以通过–help来查看。
选项说明
这个工具有五类选项,其中重要的三类选项:
- Filter options
- Replay options
- Attack modes
其中过滤选项和重放选项中,存在一些相同的参数,比如目标以及源mac地址,目标的essid。但区别是Filter选项中指明的参数,用于过滤捕获的数据包。而Replay选项中指明的参数,是将被注入进无线网络中的数据包中相应的字段值。
但其实这些参数并不是可以随意组合的。因为工具最重要的选项是Attack modes,支持10种攻击方式,而其实每种方式的常规使用方法中,所需的Filter选项参数以及Replay选项参数是固定的。所以其实记住每种攻击下的固定选项写法即可。
测试模式(-9)
通过选项-9,来测试当前的网卡是否可以完成无线数据包的注入:
root@kali:~ aireplay-ng -9 wlan0mon
12:31:12 Trying broadcast probe requests...
12:31:12 Injection is working!
12:31:14 Found 6 APs
12:31:14 Trying directed probe requests...
12:31:14 08:86:3B:D2:8F:83 - channel: 8 - 'belkin.3f86'
12:31:15 Ping (min/avg/max): 2.144ms/25.373ms/63.867ms Power: -43.63
12:31:15 30/30: 100%
其余9种攻击模式是针对不同的攻击场景几乎是定制的,使用方法在后续的攻击情景部分中详细介绍
aircrack-ng
终于到了这个为整个套件命名的攻击组件,aircrack-ng使用方法异常简单,这个工具是用来破解以WEP/WPA/WPA2安全方式保护的无线热点的密码。
破解WEP用法
当收集到足够多的iv值时:
root@kali:~ aircrack-ng test-01.cap
直接后面跟数据包文件即可算出共享秘钥
破解WPA/WPA2用法
此时用-w参数需要指明字典文件
root@kali:~ aircrack-ng test-01.cap -w passwd.txt
airbase-ng
伪造AP
root@kali:~ airbase-ng -a 00:11:22:33:44:55 --essid xuanxuan -c 1 wlan0mon
airdecap-ng
可以解密WEP/WPA/WPA2捕获文件,此外,它还可用于从未加密的无线捕获中剥离无线头
去除802.11包头
root@kali:~ airdecap-ng -b 00:11:22:33:44:55 xxx.pcap
解密WEP
必须有与AP建立关联关系的数据包
root@kali:~ airdecap-ng -b 00:11:22:33:44:55 xxx.pcap
解密WPA
必须有四步握手信息
root@kali:~ airdecap-ng -e xuanxuan -p xuanxunanihao -b 00:11:22:33:44:55 xxx.pcap
airserv-ng
通过网络提供无线网卡服务,即可以在本地使用异地的无线网卡,通过airodump-ng抓的数据包会被保存到本地。
服务端
服务端利用将airserv-ng的-p
参数,可以网卡服务开启在一个端口上,注意配置服务端的防火墙规则
root@kali:~ airserv-ng -p 2333 -d wlan0mon
客户端
通过airdump-ng后面直接输入ip+port来访问已经开启的无线网卡服务即可使用
root@kali:~ airodump-ng 192.168.1.1 2333
airtun-ng
Airtun-ng可以创建一个虚拟隧道接口,有两个基本功能:
- 允许对无线入侵检测系统(wIDS)目的的所有加密流量进行监控
- 将任意流量注入网络
用于wIDS
有线网络的IDS实现中,通常将所有交换机的所有端口的数据包,镜像到一个连接着IDS服务的端口以完成流量的检查。在无线网络中我们是有能力的监听到网络中的所有数据包的,并不需要从AP将流量转发出来。但是这些无线的数据包时经过加密的,想要获取到明文信息必须有握手时的数据包,无线的名字以及共享秘钥方可解密。
airtun-ng就可以利用这些信息实时的将一个流经目标AP的所有数据包解密并转发的到一个虚拟的隧道接口的工具,通过抓包工具监听这个接口,就可以获得已经解密的数据流量了。
WEP
- 通过airtun-ng的
-w
参数后接密码,之指明目标AP为WEP加密机制的
root@kali:~ airtun-ng -a 00:11:22:33:44:55 -w xuanxuannihao wlan0mon
- 运行完上述命令后会出现一个at0的网卡接口,我们需要手动打开这个接口
root@kali:~ ifconfig at0 up
- 利用wireshark,dsniff,driftnet等工具监听即可
root@kali:~ dsniff -i at0
root@kali:~ driftnet -i at0
WPA
- 通过airtun-ng的
-p
参数后接密码,之指明目标AP为WPA加密机制,-e
参数后加AP的essid(需要抓取到四步握手信息才可以顺利解密)
airtun-ng -a 00:11:22:33:44:55 -p xuanxuannihao -e xuanxuan wlan0mon
- 运行完上述命令后会出现一个at0的网卡接口,我们需要手动打开这个接口
root@kali:~ ifconfig at0 up
- 利用wireshark,dsniff,driftnet等工具监听即可
root@kali:~ dsniff -i at0
root@kali:~ driftnet -i at0
中继
中继,两块网卡均进入monitor模式
root@kali:~ airtun-ng -a 00:11:22:33:44:55 --repeat --bssid 00:11:22:33:44:55 -i wlan0mon wlan1mon
重放
root@kali:~ airtun-ng -a 00:11:22:33:44:55 -r x.cap wlan0mon
wifite2
项目地址:(https://github.com/derv82/wifite2)[https://github.com/derv82/wifite2]
wifite是一个自动的wifi密码破解工具,原理是仍然是基于aircrack-ng套件,将破解流程一键化。新版本对破解功能有提速,支持python3,支持5g
安装
git clone https://github.com/derv82/wifite2.git
cd wifite2
./Wifite.py
用法
WPS
WEP
WPA
fern wifi cracker
kali中自带图形化的wifi密码破解工具,比wifite还要傻瓜,使用前不要对网卡进行任何操作,保持wlan0即可
- 选择网卡
- 开启扫描
- 攻击WPA
- 选择目标
- 攻击方式
- 选择字典
- 开始攻击
Wifi-pumpkin
项目地址:https://github.com/P0cL4bs/WiFi-Pumpkin
3vilTwinattacker的升级项目,可以运行在kali以及ubuntu上,主要功能是构造一个恶意的AP,进而完成流量的劫持,DNS欺骗,重定向到钓鱼页面,js注入等后续渗透工作
安装
官方给的安装步骤:
git clone https://github.com/P0cL4bs/WiFi-Pumpkin.git
cd WiFi-Pumpkin
chmod +x installer.sh
sudo ./installer.sh --install
实际这里会依赖很多的python的库,在安装脚本中会自动执行
pip install -r requirements.txt
其中requirements.txt的内容是:
Twisted
scapy
bs4
netaddr
config
dnspython
isc_dhcp_leases
netifaces
pcapy
configparser==3.3.0r1
NetfilterQueue
configobj
libarchive-c==2.1
python-magic==0.4.6
pefile
capstone
hyperframe
h2
scapy_http
service_identity
其中NetfilterQueue这个库是怎么也安不上,提示缺少什么头文件,以为是文件丢失,自己下了一堆h丢到/usr/include又提示我们有链接库,于是去了这个库的官方说明看了一下:https://pypi.org/project/NetfilterQueue/
原来要先安装一堆依赖:
apt-get install build-essential python-dev libnetfilter-queue-dev
然后便可以正常安装NetfilterQueue,命令行直接启动wifi-pumpkin即可
wifi-pumpkin
使用
- home查看当前已经连接的设备
- setting可以配置钓鱼wifi的基本配置
- plugins以及proxy完成更多的钓鱼欺骗功能
- images-cap捕获图片
- activity-monitor捕获应用数据
- stations查看设备连接历史