解题思路 · 常用命令
Linux命令
binwalk
分析文件:
binwalk 文件名
分离文件:
binwalk -e 文件名
foremost
分离文件:
foremost 文件名 -o 输出目录名
dd
命令格式:
dd if=源文件名 of=目标文件名 bs=字节数 count块数 skip=字节数
可以结合binwalk使用
太过麻烦,也可使用winhex手动分离
cat
合并文件:
cat 第1个合并的文件 ...... 第n个合并的文件 > 输出的文件
md5sum
计算文件md5:
md5sum 文件名
exiftool
分析属性:
exiftool 文件名
zsteg
安装zsteg工具:
gem install zsteg
检测LSB隐写:
zsteg 文件名
aircrack-ng
检查cap包:
aircrack-ng cap包文件名
跑字典进行握手包破解:
aircrack-ng cap包文件名 -w 字典文件名
Windows命令
copy
合并文件:
copy /B 第1个合并的文件+......+第n个合并的文件 输出的文件
certutil
计算文件md5:
certutil -hashfile 文件名 md5
命令汇总
分离文件
Linux
binwalk -e 文件名
foremost 文件名 -o 输出目录名
dd if=源文件名 of=目标文件名 bs=字节数 count块数 skip=字节数
合并文件
Linux
cat 第1个合并的文件 ...... 第n个合并的文件 > 输出的文件
Windows
copy /B 第1个合并的文件+......+第n个合并的文件 输出的文件
基本解题思路
图片文件隐写
-
exif
查看详细信息 -
像素RGB值进行XOR、SUB、ADD等操作
-
LSB替换隐写
可使用zsteg命令分析
可使用python脚本分析 -
PNG图片打不开时可尝试通过TweakPNG校验CRC
可结合Winhex使用
循环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。
-
图片高度或宽度出错
-
使用Bftools工具解密图片
Windows命令:
1、
bftools.exe decode braincopter 要解密的图片名称 –output 输出文件名
2、
bftools.exe run 上一步输出的文件
-
Stegdetect工具探测加密方式
主要用于分析JPEG文件
Linux命令:
stegdetect 文件名
stegdetect -s 敏感度 文件名
压缩文件分析
-
伪加密
-
暴力破解zip
使用Ziperello工具
使用ARCHPR工具
流量取证分析
-
WireShark过滤器
常用的过滤命令
(“eq”可以用“==”代替)
1、过滤IP
ip.src eq ip地址
:源IP
ip.dst eq ip地址
:目标IP
ip.addr eq ip地址
例:
ip.src eq 192.168.7.146 or ip.dst eq 1.1.1.1
2、过滤端口
tcp.port eq 端口号
udp.port eq 端口号
tcp.dstport == 端口号
:只显示tcp协议且为特定目标端口
tcp.srcport == 端口号
:只显示tcp协议且为特定源端口
tcp.port >= 端口号1
tcp.port <= 端口号2
例:
tcp.port eq 192.168.7.146 or udp.port eq 192.168.7.146
tcp.port >= 1 and tcp.port <= 80
3、过滤协议
协议名
例:
tcp/udp/arp/icmp/http/ftp/dns/ip…
4、过滤MAC
eth.dst == MAC地址
:只显示为特定目标mac
例:
eth.dst == A0:00:00:04:C5:84
5、包长度过滤
udp.length == 长度
:指udp本身固定长度8加上udp下面数据包之和
tcp.len >= 长度
:指ip数据包,不包括tcp本身
ip.len == 长度
:除了以太网头固定长度14的其他部分,即从ip本身到最后
frame.len == 长度
:整个数据包长度,从eth开始到最后
例:
udp.length == 28
tcp.len >= 6
ip.len == 90
frame.len == 128
6、协议模式过滤
http.request.method == "请求方法名"
http.request.uri == "uri路径"
[协议] contains "字符串"
例:
http.request.method == “GET”
http.request.method == “POST”
http.request.uri == “/img/logo.gif”
http contains “GET”
http contains “HTTP/1.1”
http contains “flag”
http contains “key”
tcp contains “flag”
http.request.method == “GET” && http contains “User-Agent:”
-
WireShark流汇聚
1、HTML中直接包含重要信息
2、上传或下载文件内容,通常包含文件名、hash值等关键信息,常用POST请求上传
3、一句话木马,POST请求,内容包含eval,内容使用base64加密
-
WireShark数据提取
1、自动提取传输的文件内容:
文件 -> 导出对象 -> HTTP
2、手动提取文件内容:
-
无线WiFi流量包破解密码
用 aircrack-ng 工具进行wifi密码破解
检查cap包:
aircrack-ng cap包文件名
跑字典进行握手包破解:
aircrack-ng cap包文件名 -w 字典文件名
-
USB流量包文件分析
1、键盘流量抓取分析
Leftover Capture Data 中值与具体键位的对应关系,可参考:
https://www.usb.org/hid
Leftover Capture Data 数据提取方式1(此方法不好用):
Leftover Capture Data 数据提取方式2:
利用wireshark提供的命令行工具tshark,可以将leftover capture data数据单独复制出来
Linux及Windows命令:
tshark -r pcap文件 -T fields -e usb.capdata > 输出的txt文件名
2、鼠标流量抓取分析
-
HTTPS流量包文件分析