原课程链接:CTF取证实战课程(入门级)- 51CTO
https://edu.51cto.com/course/15228.html
文件、图片取证的简单思路:
1、gif图片:提取、拼合
2、可挂载系统文件:挂载系统文件
3、未知格式文件:查看十六进制编码,可能是Magic Header的修改
4、隐藏文件:binwalk提取文件中的隐藏信息;ls -a
5、PCAP:查找敏感信息,分离文件;USB信息
6、压缩包:爆破密码
7、文本:解码,解密
GIF取证
情况1:Flag隐藏在GIF的某一帧中
方法:将每一帧拆分成一个单独的png
linux下,使用:
convert gif文件名 %02d.png
这句话的意思是将gif的每一帧拆分,并按数字顺序(%02d的作用)命名。
情况2:Flag需要将GIF各帧上的图形拼在一起才显现出来
方法:分离再组合
第一步分离:
convert gif文件名 %02d.png
第二步去掉背景白色:
ls *.png | while read filename; do convert $filename -transparent white $filename; done
第三步,将透明背景的图片组合在一起
ls *.png | while read filename; do convert $filename 00.png -gravity center -composite 00.png; done;
文件取证
在Linux下,文件没有拓展名,可以用file命令来查询文件格式。
unzip:解压zip文件
gunzip:解压gz文件
ZIP文件压缩密码爆破
字典:https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
爆破:
fcrackzip -b -D -v -u -p 字典txt zip文件
修复ZIP文件
解压出现这样的报错: bad zipfile offset (错误的ZIP文件偏移量)

MINIX 文件
MINIX文件是一个linux下的可挂载文件。
挂载方法:
mkdir mountpoint
mount 文件名 mountpoint/
查看十六进制内容
hexeditor 文件名
Magic Header
Magic header/Magic number,是具有无法解释含义的唯一值,用于识别文件格式或协议。
例如下图中的89 50 4E 47 0D 0A 1A 0A,就是PNG文件的Magic Header。

此类题目通常是需要我们用16进制读取文件数据,然后将被修改过的Magic Header改回正确的数据
对照:https://en.wikipedia.org/wiki/List_of_file_signatures
Binwalk提取隐藏信息
binwalk -e 文件名
-e 即extract
例子:

PCAP中的图片、文件取证
PCAP中的敏感信息:如名字带flag的文件,图片格式的文件,POST请求,带账号密码的文件等
查看所有关联文件
binwalk PCAP包
分离并保存关联文件
foremost PCAP包
查找指定字符串,-i是不区分大小写
string PCAP包 | grep -i "字符串"
例子:

解码
echo "字符串" | 编码 -d
如:
echo "dEo2NFpxYmRMdw==" | base64 -d
Wireshark中的HTTP方法筛选
http.request.method == GET
PCAP提取USB键位信息
这里的USB键位信息指的是:键位信息,鼠标信息,存储设备信息。
URB_INTERRUPT in :表示键盘USB信息。
筛选出Leftover Capture Data
tshark -r 文件名 -T fields -e usb.capdata
-r: -r <infile> 设置读取本地文件
-T: -T pdml|ps|text|fields|psml,设置解码结果输出的格式,包括text,ps,psml和pdml,默认为text
-e: 如果-T fields选项指定,-e用来指定输出哪些字段;
还未弄清楚USB信息部分,待续
本文介绍了CTF中进行图像和文件取证的基本方法,包括GIF取证、文件取证、ZIP压缩密码爆破、MINIX文件挂载、查看十六进制内容、Magic Header识别及PCAP文件中的图片和USB键位信息提取。通过Linux命令和工具,如convert、binwalk、Wireshark等,解析隐藏在各种格式中的信息。
7624

被折叠的 条评论
为什么被折叠?



