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

发表回复