学习一番IEEE 802.11
后,从原理性角度分析一道无线流量的CTF题目。
在文章的开头处,先贴个wireshark分析802.11协议的pdf链接,可根据该文档所描述的内容快速过滤相应的数据包,这也是本文讲述如何使用wireshark
学习分析IEEE802.11
的帮助文档。不懂就翻翻咯~。本篇以一道ciscn2018
的题目为引,从原理性分析学习IEEE802.11
。
帧的基本类型
关于帧的基本类型,基本上大家也都知道三种类型(贴个基础知识链接,不大理解的先看其中无线网络基础知识部分),这里重点讲述下管理帧。
Management frame(管理帧)
该帧的所显示的数据包一般用于各个设备之间建立第二层的连接,提供认证和连接服务。
该帧又细分为下面14
种类型,每种类型所对应的中文注释以及过滤语句均已呈现。
而在管理帧中,值得重要一提的是Beacon
,俗称信标,Beacon
就像广播一般,向周边的其他设备声明某AP
的类型及配置信息。下面会详细分析该帧。
Control frames(控制帧)
协助数据帧的传递,控制数据帧和管理帧的发送。
Data frame (数据帧)
包含真正的传输数据,最重要的是它可以将数据从无线网络转发到有线网络。在wireshark
中,如果AP
是使用的是WEP
或者WAP
加密,Data frame
类型包,经过wireshark
自带的解密功能wep
、wpa-pwd
、wpa-psk
任意一种方法解密后,该类型数据包就会解析为更高层次的数据包,比如http
数据包,在等会讲述的例题中,便与此相关。
管理帧中Beacon的具体分析
关于管理帧的具体分析,这里直接挑选Beacon
来讲解。
为什么需要重点讲述Beacon
呢?Beacon
作为一个广播数据包,是一个AP
向所有无线设备通知存在一个可用的AP
,涵盖了一个AP
大量的配置参数信息。另外,在IEEE802.11
下,不同管理帧的具体内容和用途虽然不一样,但其他都与Beacon
相似。下面即是一个Beacon
的例子:
1 | Frame 1: 279 bytes on wire (2232 bits), 279 bytes captured (2232 bits) on interface 0 |
原理性题解:2018ciscn-misc-寻找入侵者
题目
黑客使用无线钓鱼攻击一个SSID为“CyberPeace”的热点,但是我们的蜜罐系统捕获了他的数据包,并且已经得知他的握手包密码就是他的网卡地址。可是根据我们最新获得的情况,他又发送重连请求的Malformat Frame试图崩溃我们的无线路由器。请从attack包中找到密码,并解开他的数据包,找到那条畸形数据。
题目所给附件:
思路解析
attack.pcapng
记录着蜜罐系统所抓取的所有数据包,而hanshake.cap
则是蜜罐系统抓取的黑客的握手包。本题的思路也就是通过分析attack.pcapng
,寻找到黑客mac
地址,然后通过aircrack-ng
工具验证hanshake.cap
握手包的密码,并且使用这个密码解密hanshake.cap
的数据。通过分析解密后的hanshake.cap
的http
数据,找到另外一个key.pcap
的在线下载链接,然后分析key.pcap
,找到其中的畸形数据,也就是最终的答案。
解题步骤
wireshark
打开attack.pcapng
数据包,依照题意“黑客使用无线钓鱼攻击一个SSID为‘CyberPeace’的热点”,我们可以先过滤SSID
名为CyberPeace
的Beacon
的信标分组(一般通过Beacon
就可以分析出AP
的基本信息),过滤语句wlan.fc.type_subtype == 0x0008&&wlan.ssid==CyberPeace
,如下图
坑点一:使用时钟偏差检测AP
的真伪
过滤之后,发现数据分组依旧多的一匹,思考了半天,网上翻阅资料一堆,隔天才找到相关的资料,其中有此描述
也就是根据 IEEE802.11
协议中的TSF
(Time Synchronization Function
,定时同步功能),通过收集AP
的Beacon
(信标帧)或者Probe response
(探头响应消息)来计算AP的时钟偏差,通过与特征库中储存的偏差值比较,判断此AP
是否为无线钓鱼AP
。
那么问题来了,wireshark
怎么查看时间戳在哪呢?额,我们随便挑个Beacon
的分组看看,时间戳在IEEE 802.11 wireless LAN
的分支下(上面),如下图:
接着,我们继续往下观察各分组的Timestamp
的值,一直到2153
分组,终于观察到不同的地方
第2153
分组中Timestamp
的值为0x0000000000000000
,与其他AP
中Beacon
的Timestamp
值不同,而此时的AP
对应mac
地址的值为88:25:93:c1:c8:eb
(上图显示为TP-LinkT_c1:c8:eb
)。再查看此mac
地址其他Beacon
的分组包,比如序号分组为2192
、2237
、2306
(SN
的值依次为2,3,4)中的Timestamp
的值,你会发现Timestamp
的值均为0x0000000000000000
。
或者更直观一点,执行过滤语句:
wlan.fc.type_subtype == 0x0008&&wlan.ssid==CyberPeace&&wlan.fixed.timestamp == 0x00
,观察下图,会发现均值mac
地址的值为88:25:93:c1:c8:eb
的Beacon
,且Timestamp
均为0x0000000000000000
。(分析结束后,发现直接执行过滤语句wlan.fixed.timestamp ==0x00
,也可以得到相同的结果)
故根据以上分析,再依照题意“并且已经得知他的握手包密码就是他的网卡地址”,我们可以确定黑客的网卡地址为88:25:93:c1:c8:eb
,hanshake.cap
的握手密码也应是88:25:93:c1:c8:eb
,将这个密码写入文件d1.txt
中,然后通过aircrack-ng
工具验证下密码的正确与否,执行命令aircrack-ng hanshake.cap -w d1.txt
。
如上图结果所示,验证成功。接下来就是解开hanshake.cap
这个wpa
握手包里的数据了。
坑点二:已知wifi
密码如何正确解密cap
数据包
这里主要有两种方法(当然还有其他的方法,比如使用Cain
解密),一种通过wireshark
提供的转化网址,只需输入ssid
和密码就能将其转化为PSK
值。
然后打开wireshark
,依次按照步骤操作:编辑 -> 首选项 -> Protocols
-> IEEE 802.11
,点击Edit
然后选填wpa-psk
,输入刚刚转化得到的PSK
值,进行解密
尝试过wpa-pwd
,发现格式错误,解密无效
另一种方法是通过airdecap-ng
工具解密,执行命令airdecap-ng -p 88:25:93:c1:c8:eb -e Honey hanshake.cap
打开解密后的流量包,会发现解析出了其他协议的数据分组
仔细分析后,发现执行http.request.method==GET
语句过滤后,存在个key.rar
压缩包的下载网址
因为这个文件当时是通过分析出来的,然后通过在线网址直接下载的。但之前链接已经失效(自己之前的没存(╥╯^╰╥)),不过还好,左问右问,还有老哥存着key.rar
,要了一份,在这里特别感谢阿烨老哥,谢谢。
打开压缩包,解压得到个key.pcap
,wireshark
打开分析,这里先将正常的预期做法,包括踩坑步骤讲述下:
打开数据包后,再仔细看看题目,其中讲到“他又发送重连请求的Malformat Frame试图崩溃我们的无线路由器”,故我们先执行过滤语句wlan.addr==88:25:93:c1:c8:eb
过滤出黑客网卡发出的所有包。
可以看到所有的过滤后所有的分组都是Type/Subtype: Association Request (0x0000)
,上面讲过 Association Request
中文释义”关联请求“,顾名思义,而黑客通过Association Request
发送了大量的Malformat
,企图崩溃无线路由器。而在最后一条分组中找到了答案,也就是那条“畸形数据”。
最终答案:CISCN{Z9DY20jZIyjzY5vs0UQZVUg86eMYlNMzH}
在其中的数据包中,我们发现黑客是使用了大量的Association Request
发送了大量的Malformat
攻击路由器,这其实是无线AP
中dos
攻击中一种Association Flood Attack
(关联洪水攻击),简称Asso攻击
。关于几种攻击方式,计划着之后来篇动手实践fuzz
玩AP
的总结(✪ω✪)。
关于此题的思考
关于此题,看了许多资料,想了想这题的出题原理,在安全客上顺带找到一篇【技术分享】基于802.11Fuzz技术的研究,发现就是原出题作者写的,在此先膜下。orz~
。
此题,那时比赛后看了许多writeup
,基本上黑客mac
地址都是wireshark
提取出来,然后爆破的,而最后的畸形数据也是strings key.pcap
出来的。自己那时也是差不多的做法,正好最近学习了一波IEEE 802.11
,那就从原理角度梳理下这题,发现学到的东西也是不少啊。如果有其他的做法,欢迎师傅们一起讨论。
结语
不得不说,最近学习IEEE 802.11
协议有一种快乐的感觉,虽然其中很多东西需要自己不断的搜索资料,阅读书籍,但是学习之后,再结合实验,发现学到的东西真的挺多的,那种充实感、成就感相信大家都有过,共勉吧,好好学习,天天向上。
ps:
本文由安全客原创发布
转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/162546
安全客 - 有思想的安全新媒体