传统攻防作战中,攻击队的行为模式主要为从互联网资产入手展开攻击。随着攻防双方对互联网攻击手法的理解逐步加深,互联网作战的难度大幅增加。近源攻击往往可以轻易地越过网络隔离,获得内网的接入权限。WiFi是最常见的近场通信设施,也是近源测试的主要目标。
一
准备事项
Aircrack工具包
Aircrack项目是一套与802.11标准的无线网络分析有关的安全组件,主要功能有:网络侦测,数据包嗅探等。渗透工具集操作系统Kali中内置了Aircrack工具集,如果要在Windows系统下使用Aircrack需要额外配置airsrv-ng载入无线网卡。
Aircrack可以使用airdriver-ng命令(如果有的话)列出支持的无线网卡芯片列表,或参考如下链接:
https://www.aircrack-ng.org/doku.php?id=compatible_cards
在满足兼容性的条件下,信号灵敏度越强越好。
FreeRadius+Hostapd
Hostapd可以根据自定义配置释放出指定形式的无线信号,利用打过patch(freeradius-wpe)的FreeRadius接收客户端请求发出的用户名和NetNTLM哈希。主要用于针对802.1x认证的无线网进行测试。
Linux系统可以通过以下命令配置环境:
# 安装freeradius
git clone https://github.com/brad-anton/freeradius-wpe.git
wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.2.10.tar.bz2
tar -jxvf freeradius-server-2.2.10.tar.bz2
patch -p1 < ../freeradius-wpe.patch
./configure
make install
# 安装hostapd
wget https://hostap.epitest.fi/releases/hostapd-0.6.4.tar.gz
tar -zxvf hostapd-0.6.4.tar.gz
cd hostapd-0.6.4/hostapd/
cp defconfig .config
make
启动Hostapd对无线网卡的需求较为宽泛,一般来说能支持Linux驱动并支持完整的802.1a/b/g/n/ac的无线网卡均可。
MacChanger等MAC地址修改工具
测试环境往往存在封锁IP、网络黑白名单等防护措施,由于无线网本身可以随意更改MAC地址重建通信,因此一款好用的MAC地址修改工具是必不可少的,Linux下可以使用MacChanger,MacOS可以使用WiFi Spoof,Windows系统下部分型号网卡可能设备管理器直接提供修改MAC地址的功能。
二
WiFi攻击思路
攻击开始前,首先需要对目标使用的无线网类型进行识别,并同步进行信息收集,该过程使用的工具主要为Aircrack。
(一)►
识别目标无线网认证方式
PSK认证和802.1X认证比较容易区分,PSK认证是日常生活中最为常见的无线网类型,本身仅需要一个固定密码即可连接,而802.1X认证则需要提供用户名和密码。
802.1X认证的无线网
(二)►
利用Aircrack收集信息
Aircrack工具十分强大,可以利用aircrack工具扫描目标附近无线网络信号,获取到一些可能很有价值的信息。
// 设置wlan0为监听模式并开始捕获所有信道的数据
# airmon-ng start wlan0
# airodump-ng wlan0mon
输出信息分为上下两部分,上半部分为无线接入点(AP)的信息,下半部分为客户端设备(Station)的信息。
BSSID
AP的MAC地址,如果客户端部分显示“(not associated)”表示客户端没有连接到任何无线网接入点,一般来说处于此状态的客户端设备会一直扫描并尝试接入曾接入过的AP。
STATION
客户端设备的MAC地址,通过甄别和设置过滤器可以获得多个已经和目标AP建立连接的客户端设备的MAC地址,虽然除了OPN的WiFi没有办法直接利用,某些情况下可以伪造客户端MAC地址达到规避网络封锁、黑白名单的效果。针对PSK认证的WiFi破解时,有时候也需要从STATION中选择一位信号优良且活跃的客户端设备进行短暂的Deauth攻击,迫使某STATION临时中断与AP的攻击并重新建立连接,以此达到捕获握手包的目的。
PWR
网卡反馈的信号水平,由设备和驱动等诸多因素决定,离接入点或基站越近,信号数值就会变得越大。如果AP的PWR是-1,则表示驱动不支持信号水平;如果部分station的PWR是-1,则表示网卡能接收到接入点的数据包,但是却超出了网卡的传输范围。如果所有station都是-1,可能是驱动不支持显示信号水平。可以通过该数值寻找最佳攻击位置和方向。
Beacons
接收到该AP发出的公告报文的数量,每个AP每秒大概发送10个公告包。
Data
捕捉到的数据包的数量(如果是WEP,则是不同IV的数量),包括广播数据帧。
#/s
最近10秒内平均每秒捕获的数据帧的数量,通过该字段值和Data字段值可以判断目标AP下通信较为活跃的终端设备。对一个信号活跃的终端执行Deauth攻击会更容易成功。
CH
无线信道(从beacon帧中得到),即使开启了信道过滤器,有时也会由于无线电干扰捕捉到其他信道的数据包。
MB
接入点支持的最大速度。如果MB=11,就是802.1b,如果MB=22,就是802.1b+,更高的就是802.1g。小数点表示支持短前导码,后面的e表示该网络支持QoS。
ENC
表示使用的加密算法。OPN表示没有加密,“WEP?”表示不确定是WEP还是WPA/WPA2;WEP表示静态或者动态的WEP,TKIP或者CCMP表示WPA/WPA2。
CIPHER
检测出的密码体系,CCMP,WRAP,TKIP,WEP,WEP40和WEP104中的一种。TKIP通常用于WPA,CCMP常用于WPA2。当键字索引大于0时,会显示WEP40。
AUTH
使用的认证协议,如MGT、PSK、SKA、OPEN。
ESSID
无线网络名称。如果目标AP开启了隐藏ESSID,则此项可能为空。airodump-ng会尝试通过probe和association reques帧中发现AP隐藏的ESSID。在破解PSK认证的无线网时,关键在于捕获设备连接AP时的握手包,在这个过程中aircrack也可以捕获到管理帧中的ESSID。
Probe
客户端无连接时,会循环广播寻找曾经连接过的WiFi,如果捕获到广播帧中的WiFi接入点名称,会显示在Probe中。可以通过该字段设计802.1x捕获凭据或放置钓鱼WiFi。
(三)►
基本攻击思路
1
Portal认证的开放无线网(OPN)
2
Aircrack捕获握手包破解
PSK认证的无线网
3
伪造802.1x认证源捕获
用户名和哈希
4
利用信息收集绕过鉴权、
白名单等机制
三
实战案例
在针对某单位的攻防演练中,目标互联网资产部署了大量安防设备,较难突破,于是安排近源测试。目标单位部署了数百人防护团队,过于接近目标建筑可能被防守人员捕获,因此通过卡皇远程收集目标无线网信息。最终确认目标单位使用802.1x认证的WiFi系统。
802.1x认证的WiFi可以通过伪造AP获取认证用户名和哈希,这种攻击方式本身也是距离目标真实的WiFi信号源越远效果越好,正好可以避免距离过近被防守方捕获。通过Patch修改radius服务并使用hostapd伪造多个与目标单位同名的802.1x信号源,hostapd配置文件:
interface=wlx74f8xxxx6b37
driver=nl80211
ssid=Xxxx-Internet
country_code=DE
logger_stdout=-1
logger_stdout_level=0
dump_file=/tmp/hostapd.dump
ieee8021x=1
eapol_key_index_workaround=0
own_ip_addr=127.0.0.1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=testing123
auth_algs=3
wpa=2
wpa_key_mgmt=WPA-EAP
channel=1
wpa_pairwise=CCMP
rsn_pairwise=CCMP
其中一般需要修改的配置项为interface和ssid,interface为无线网卡的设备名,一般在Linux兼容性较好的无线网卡默认设备名为wlan0,兼容性略差的可能会显示为 wlx0000xxxxxx00等,可以通过iwconfig命令查看具体的无线网卡设备名。
ssid配置项就是我们需要释放的无线信号的ESSID名称,一般与目标单位WiFi名称一致。
配置完成后,使用如下命令启动:
# 启动radius ,-X为调试模式,可以看到更多详细信息
radiusd -X
# 启动hostapd
hostapd xxx.conf
启动成功后可以看到身边出现了一个信号极好的同名WiFi,并且使用802.1x认证:
radius捕获的信息默认输出在/usr/local/var/log/radius/freeradius-server-wpe.log文件中,在手机上随意输入用户名和密码进行测试。在radius输出的log中可以看到:
配置完成后,将电脑设置成不睡眠,合盖无动作,就可以装进背包,前往目的地了。将该信号源部署在目标单位员工上下班的必经之路上,如附近的地铁站、公交站和必经路口等地方。放置伪造信号源的位置应与目标单位无线信号覆盖范围保持一定距离,过近的距离会降低终端向伪造信号源发起请求的概率。
等到目标单位下班时间,成功捕获到大量目标单位员工终端发出的认证数据,获取了数百员工的内网用户名和NetNTLM哈希。
使用Hashcat工具进行破解,成功获取多个8-10位长度三要素的复杂密码,获取目标单位无线网接入权。
在对目标单位内网测试的过程中,目标多次对我方终端进行了网络隔离。使用Aircrack扫描目标无线网下活跃的终端信息,使用--bssid设置过滤器,仅显示bssid与目标一致的信息:
airodump-ng --bssid ff:ff:ff:ff:ff:ff wlan0mon
对于使用多AP组网的目标,也可以设置essid过滤器,可以捕获到更多终端信息,但也更容易受到干扰。通过该方法可以扫描到大量目标WiFi下员工活跃的终端设备,将这些设备的STATION显示的MAC地址保存下来,替换本机MAC地址为目标单位员工的真实MAC地址,多次绕过内网的网络封堵。且由于本机MAC地址、Hostname等信息与目标单位员工一致,目标单位在内网封堵时导致多个员工网络服务受限,最终不得不暂时妥协,任攻击方在内网中肆意横行。
([email protected]边界无限烛龙实验室供稿)
招聘信息
边界无限烛龙实验室
专注于漏洞挖掘、渗透技术等攻防技术研究与突破,从底层原理深入到一线实战对抗逐层铺开技术研究,深入解构攻与防的本质。团队核心成员来自于知名云厂商的各大安全实验室,拥有丰富的攻防对抗的工作经验,多次在国家、省级攻防演练中名列前茅。曾挖掘过 Google、微软、腾讯、阿里等国际知名厂商的安全漏洞并提供相关安全建议,同时团队成员研究成果在Defcon、ZeroNight、HITB等国际知名安全会议进行演示。