Misc
我的壁纸
bg.jpg用binwalk分离得到压缩包,里面有三个文件,并提示snow密码为snowday
肯定就是snow加密咯,并且flag.txt有空白字符,将其snow解密得到flag第三部分f86361842eb8}
flag.wav一听就是经典的SSTV加密,可以直接进行sstv转png得到二维码,扫描得到flag第二部分eaa2-4d62-ace6-
还剩一个youshouldknowme.jpg,用exiftool或者直接查看属性可以看到passwd_is_7hR@1nB0w$&8
,用steghide得到flag第一部分flag{b921323f-
拼接得到 flag{b921323f-eaa2-4d62-ace6-f86361842eb8}
流量深处
查看流量包发现第二个UDP流尾部有zip结尾标志以及一个key,但是找不到zip头
翻第一个UDP流时突然看到了KP,并且通过十六进制搜索到了04 03 4b 50,猜测第一个UDP流要进行数据反转
根据时间戳顺序,两个UDP流是交叉传输的,所以根据目的端口号识别,端口号是12345的是反向数据,12346的是正向数据,写脚本拼接(自己写的比较烂,这里借鉴并学习他人脚本)
from scapy.all import *
def extract_udp_data(pcap_file, output_file):
udp_data = []
packets = rdpcap(pcap_file) # 读入流量包文件
# print(packets)
# # <secret.pcapng: TCP:30 UDP:7884 ICMP:100 Other:0>
for packet in packets:
print(packet.data)
if UDP in packet:
udp_payload = packet[UDP].payload
timestamp = packet.time
udp_data.append((timestamp, bytes(udp_payload), packet[UDP].dport))
# 相关属性可以从Lib\site-packages\scapy\packet.py 或者 Lib\site-packages\scapy\layers\tls\session.py中看
# Sort the data by timestamp
udp_data.sort(key=lambda x: x[0])
with open(output_file, 'wb') as file:
for timestamp, data, port in udp_data:
if port == 12345:
# Reverse the data for port 12345
data = data[::-1]
file.write(data)
if __name__ == "__main__":
pcap_file = "secret.pcapng"
output_file = "combined_data"
extract_udp_data(pcap_file, output_file)
压缩包解压得到secret.wav,结合文件结尾的key,deepsound解密
得到鼠标坐标文件
利用Macro Recorder在画图工具上绘制得到flag