这篇博客接着CTF-MISC杂项题1继续讲
03 压缩文件处理
压缩文件分析
伪加密一般考察zip与rar,现在不常考,因为现在压缩软件功能强大,自动可以识别伪加密
框里的80的尾数为0即可解密,若改了值还报错,为真加密
3.明文攻击
明文攻击指知道加密的ZIP里部分文件的明文内容,利用这些内容推测出密钥并解密ZIP文件的攻击方法,相比于暴力破解,这类方法在破解密码较为复杂的压缩包时效率更高。
采用场景:已知加密的zip部分文件明文内容
例如:假设一个加密的压缩包里有两个文件readme.txt和flag.txt,其里flag.txt的内容为我们希望知道的内容,而我们有readme.txt的明文文件,利用上述两个文件即可进行明文攻击。
采用该方法需要注意两个关键点:
1.有一个明文文件,压缩后CRC值与加密压缩包里的文件一致
2.明文文件的压缩算法需要与加密压缩文件的压缩算法一致
2345好压默认压缩算法为deflate,可以在添加到压缩文件时在压缩方法里选不同的算法。
对于2345好压的store算法,无需修改算法选项卡,在常规选项卡里将压缩方式设置为存储即可。
出错:
修改后:(变动7A为文件头块类型)
再把STM加上.png后缀名打开图片(因为编辑器里显示STM有png后缀名)
流量取证技术
取证:内存取证,硬盘取证,这些为存储取证
CTF竞赛里,流量包的取证分析为另一项重要的考察方向。
通常竞赛里会提供包含流量数据的PCAP文件,有时候也会需要选手们先进行修复或者重构文件后,再进行分析。
竞赛里的流量分析可以概括为以下三个方向:
流量包修复
协议分析
数据提取
5.包长度过滤
udp.length == 26 这个长度指udp本身固定长度8加上下面那块数据包之和
tcp.len >= 7 指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度,其他都算是ip.len,即从ip本身到最后
frame.len == 119 整个数据包长度,从eth到最后
协议分析:
Statistics->Protocol Hierarchy查看协议分析,若想选某个层次过滤,右键->作为过滤器应用
根据数据包特征进行筛选
例如查看数据包的时候,有的数据包有某类特征,如有http(80).就可以筛选这类特征出来。
右键->作为过滤器应用
在关注的http数据包或者tcp数据包里选择流汇聚,可以将HTTP流或者TCP流汇聚或者还原成数据,在弹出的框里可以看到数据内容。
右键->追踪->HTTP流
在弹出的窗口右下方有个“查看下一个”,即可查看下一个包
常见的HTTP流关键内容:
1.HTML里直接包含重要的信息
2.上传或者下载文件内容,通常包含文件名,hash值等关键信息
3.一句木马,POST请求,内容包含eval,内容采用base64加密
在打开的对象列表里找到有价值的文件,如压缩文件,文本文件,音频文件,图片等,点击savas进行保存,或者saveall保存所有对象再进入文件夹进行分析。
2.wireshark可以手动提取文件内容
点击想要的数据包,选到media type的位置
右键->导出分组字节流或者 点击 菜单栏文件->导出分组字节流,快捷方式Ctrl+H在弹出的框里将文件保存成二进制文件
协议分析发现只有wireless LAN协议,很可能为WPA或者WEP加密的无线数据包
可以将该域的值在主面板上显示,键盘数据包的数据长度为8个字节,击键信息集合在第3个字节,每次key stroke都会产生一个keyboard event usb packet。
Leftover Capture Data间值与具体键位的对应关系,可以参考:
python脚本:
此方法为普方法,不太好用
此方法较为专业
之后:python keybroad.py(keybroad.py为keybroad mapping里写的python代码)
root@kali:~#python keybroad.py
鼠标与键盘流量不同,鼠标变动表现出连续性,与键盘的离散行不同。但实际鼠标产生的数据为离散的。所以同样可以把数据抓取出来,构成二维坐标做出轨迹。
mouse.py代码:
if btn_flag需要自行调整0,1,2
之后再在做图工具里将得到的flag翻转以下即可
键盘和鼠标方法二:
例如方法二的鼠标:
Preferences->Protocols->SSL->Edit RSA keys list
右键,点击追踪,再点击SSL流/HTTP流,然后可以看到flag