学习一番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的例子:
Frame 1: 279 bytes on wire (2232 bits), 279 bytes captured (2232 bits) on interface 0
Radiotap Header v0, Length 24
802.11 radio information
IEEE 802.11 Beacon frame, Flags: ........ -beacon广播包
Type/Subtype: Beacon frame (0x0008) -可使用wlan.fc.type_subtype == 0x0008过滤
Frame Control Field: 0x8000
.... ..00 = Version: 0
.... 00.. = Type: Management frame (0) -帧类型为管理帧
1000 .... = Subtype: 8
Flags: 0x00
.000 0000 0000 0000 = Duration: 0 microseconds
Receiver address: Broadcast (ff:ff:ff:ff:ff:ff)
Destination address: Broadcast (ff:ff:ff:ff:ff:ff)
Transmitter address: Tp-LinkT_ca:13:df (30:fc:68:ca:13:df) -传输mac地址
Source address: Tp-LinkT_ca:13:df (30:fc:68:ca:13:df) -源地址
BSS Id: Tp-LinkT_ca:13:df (30:fc:68:ca:13:df) -bssid
.... .... .... 0000 = Fragment number: 0
0110 1110 1011 .... = Sequence number: 11
IEEE 802.11 wireless LAN -IEEE 802.11帧信息
Fixed parameters (12 bytes) -固定参数
Timestamp: 0x000000017752d876 -发送数据包的时间戳
Beacon Interval: 0.102400 [Seconds] -beacon数据包的重传间隔
Capabilities Information: 0x0431 -Wap的硬件容量信息
Tagged parameters (219 bytes) -标记参数
Tag: SSID parameter set: T35t -ssid(网络名称)
Tag: Supported Rates 1(B), 2(B), 5.5(B), 11(B), 6, 9, 12, 18, [Mbit/sec]
Tag: DS Parameter set: Current Channel: 1 -Wap广播信道
Tag: Traffic Indication Map (TIM): DTIM 0 of 0 bitmap -传输指示映射
Tag: ERP Information
Tag: Extended Supported Rates 24, 36, 48, 54, [Mbit/sec] -扩展支持速率
Tag: HT Capabilities (802.11n D1.10) -超线程性能
Tag: HT Information (802.11n D1.10) -超线程信息
Tag: RSN Information -安全网络信息
Tag: Vendor Specific: Microsoft Corp.: WPA Information Element -供应商及WPA信息
Tag Number: Vendor Specific (221) -供应商编号
Tag length: 22 -长度
OUI: 00:50:f2 (Microsoft Corp.) -安装程序
Vendor Specific OUI Type: 1
Type: WPA Information Element (0x01) -类型
WPA Version: 1 -WPA版本为1
Multicast Cipher Suite: 00:50:f2 (Microsoft Corp.) AES (CCM) -多播密码插件
Unicast Cipher Suite Count: 1 -单播密码套件数
Unicast Cipher Suite List 00:50:f2 (Microsoft Corp.) AES (CCM) -单播密码套件列表
Auth Key Management (AKM) Suite Count: 1 -认证密钥管理套件数
Auth Key Management (AKM) List 00:50:f2 (Microsoft Corp.) PSK -认证密钥管理列表
Tag: Vendor Specific: Microsoft Corp.: WMM/WME: Parameter Element
Tag: Vendor Specific: TP-LINK TECHNOLOGIES CO.,LTD.
Tag: Vendor Specific: Microsoft Corp.: WPS
原理性题解: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协议有一种快乐的感觉,虽然其中很多东西需要自己不断的搜索资料,阅读书籍,但是学习之后,再结合实验,发现学到的东西真的挺多的,那种充实感、成就感相信大家都有过,共勉吧,好好学习,天天向上。
发表评论
您还未登录,请先登录。
登录