CTF流量分析经典例题详解
目录
本文章涉及的所有题目附件下载地址: 链接:
https://pan.baidu.com/s/18mWo5vn1zp_XbmcQrMOKRA 提取码:hrc4
这里的例题都是已经总结好的,我只是在本篇中进行学习和复现
入门题型
题目:Cephalopod(图片提取)?
题目来源:XCTF 3rd-HITB CTF-2017 考点:图片提取 题目信息:(Cephalopod.pcapng)
因为这是一道关于CTF的题目,那么最重要相比就是“夺旗”了,打开该数据包会发现都是10.0.2.7和10.0.2.10的流量包,那么我们可以试着在分组列表、分组详细和分组数据流中找找是否有像flag那样的字符串:
果然在将查找对象修改为分组字符流后,查找到了一个flag.png的字符串
那么不用想,这肯定就是flag了,下面我们就尝试将追踪一下
在第2个流中我们发现了png的身影
那么就将它以原始数据导出
下面我们使用010editor打开保存的文件,然后使用查找直接查找png
删除png前面的字符后导出为png
打开图片就可以看到flag了
题目:特殊后门(icmp协议信息传输)
题目来源:第七届山东省大学生网络安全技能大赛 考点:字符串搜索,icmp协议信息传输 题目信息:(backdoor++.pcapng)
打开数据包后,就和上面的题目一样,我们首先还是搜索一下看是否有flag字符串
可以看到这里直接在分组数据流中找到了一个flagishere字符串,那就针对这里来进行分析
我们再到分组列表中查看了一下发现有很多连续icmp包再加上前面的包中写着flagishere相比flag就在附近了,点开后面的icmp包发现每一个包的相同位置中都有一个不同的字符,事出反常必有妖。
?
然后我们依次将这些字符提权出来组合起来发现就是flag:
?flag{Icmp_backdoor_can_transfer-some_infomation}
题目:手机热点(蓝牙传输协议obex,数据提取)
题目来源:第七季极客大挑战 考点:蓝牙传输协议obex,数据提取 题目信息:(Blatand_1.pcapng)
打开数据包后,还是同样的,我们先查找一下是否有flag
在这个数据包中有很多flag字符串,但是我还是觉得这个flag.gif比较可疑,因为就针对这个数据包来进行分析?
我再看看这个数据包,发现它是一个.rar压缩包,那就嫌疑更大了
方法1:那就试着将这个包来导出
?注:记着要导出为.rar格式
解压后就可以看到flag.png,打开就可以拿到flag了
方法2:还可以使用foremost进行分离,分离完成后再解压同员工可以得到flag
foremost下载地址:https://github.com/korczis/foremost
题目:想蹭网先解开密码(无线密码破解)
题目来源:bugku 考点:无线密码破解 题目信息:(wifi.cap)
打开数据包后,直接来查找是否有flag,查找结果并没有发现很明显的flag痕迹
根据提示:WIFI连接认证的重点在WPA的四次握手包,也就是eapol协议的包,我们来过滤一下
发现果然存在四次握手包,直接进行无线密码爆破 创建密码字典:
利用aircrack-ng 进行爆破:
可以看到成功的爆破出了flag{13910407686}
进阶题型
题目:抓到一只苍蝇(数据包筛选,数据提取)
题目来源:bugku 考点:数据包筛选,数据提取 题目信息:(misc_fly.pcapng)
可以看懂题目提示我们抓到了一只苍蝇
那么我们打开数据包来看看,试着搜索一下flag
发现了有一个可疑的fl ag.txt文件
根据题目的提示我们再来筛选一下“”苍蝇“”
还真的筛选除了一个数据包
分析该包中的内容发现这个包非常的可以,里面写了很多奇怪的文字,从其他地方可以看到,该数据包在发送qq邮件,还做了上传文件的操作
既然有上传文件的操作,那么我们来过滤一下POST数据包看看
可以看到13号数据包调用函数CreateFile
,然后下面几个可能就是文件内容了,具体是几个,仔细看看URL,738号数据包有个需要调用函数CheckFile
,并且前面的5个数据包url的路径一样, 所以从第一个开始,后5个数据包是flag.rar内容
我们将分组字节流中的原始数据分别保存为1、2、3、4、5,方便操作
但是由于TCP包有文件头,我们需要去掉文件头才能将原始数据合成一个文件, 从第一个数据包可以看出来:
文件大小是525701字节,我们需要的这5个数据包的大小(Media Type中可看到):
131436*4+1777=527521 527521-525701=1820 1820/5=364
tcp包的文件头就为364
然后使用linux的一些工具进行操作即可得到flag.rar 依次把五个文件去掉文件头保存到另一文件 这里使用dd:
dd if=1 bs=1 skip=364 of=1.1
dd命令语法:
if 输入文件名
bs 设置每次读写块的大小为1字节
skip 指定从输入文件开头跳过多少个块后再开始复制
of 输出文件名
首先我们先将导出的五个文件上传到linux中
然后再用linux的输入流来合并成一个文件:
cat 1.1 2.1 3.1 4.1 5.1 > fly.rar
或者
copy /B 1.1+2.1+3.1+4.1+5.1 fly.rar
?将合成的文件再移动到Window中
尝试进行解压:发现报错了
使用011editor来看看这个压缩包
果然是fly.rar又被伪加密了,将其中的74 84改为74 80就能正常解压了
解压完后打开flag.txt发现里面是一堆乱码
然后我们再用010editor打开看看
它这里居然告诉我们需要在Win32中进行运行,既然可以执行那么我们来试试将后缀修改为.exe看看
修改为.exe文件后可以看到一堆苍蝇在桌面上爬,没有其他特别的东西
根据提示我们使用binwalk对该exe程序进行分解
可以看到分解出了好多东西,但是好像又没有什么有用的
根据提示我们需要使用foremost进行提取一下
?
可以看到提取出了一个二维码,扫描二维码就可以拿到该题的flag了
参考链接:
攻防世界misc进阶之Cephalopod_攻防世界 cephalopod-CSDN博客
binwalk文件分离、提取——命令_binwalk -d-CSDN博客
Bugku-CTF分析篇-抓到一只苍蝇(在哪?here!卧槽?!好大一坨苍蝇。) - 0yst3r - 博客园 (cnblogs.com)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!