ISCC2026总决赛misc题 喧宾夺主的信号

1.工具:Wireshark、python、Stegsolve、CyberChef

2.解题:

我们先看题目,绝大部分都是某台被攻陷的摄像头在持续广播的垃圾组播流量,而真正的"攻击"并不在喧嚣之处、学会"三十六计"中的声东击西,或许在那些看似无意义的广播中,藏着打开真正宝藏的钥匙。我们知道了:流量里有大量无意义的组播广播包,"钥匙"又藏在广播流量中,也就是广播包本身并非完全没用。

我们先用Wireshark打开pcapng流量,然后我们在"统计"里面查看"协议分级",如下

我们发现几乎是UDP文件,少部分是tcp和其他流量包,我们先过滤tcp,如下

我们在里面发现了一个有"post"和"command"的流量包,我们打开,如下

我们发现了"command"和"note",说明"command"后面引号了的是真实的文件,我们观察应该是base64解码,我们打开CyberChef进行解码,如下

我们发现这是一个zip文件而且里面有一张图片,我们将它保存并解压,发现需要密码,如下

但是此时并没有密码的提示,这是我们想起了题目的提示,正如我们之前分析的"也就是广播包本身并非完全没用。"这句话,我们过滤UDP,如下

我们往下滑,发现一共有1509个流量包,如果我们一个一个去分析太慢了,因为之前就是base64解码,于是我写了一份python脚本进行自动base64解码,如下

python 复制代码
from scapy.all import *
import base64
import re

def decode_all_base64_in_udp(pcap_file, output_file='decoded_results.txt'):
    print(f'正在读取PCAP文件: {pcap_file}')
    packets = rdpcap(pcap_file)
    
    base64_pattern = re.compile(r'[A-Za-z0-9+/=]{20,}')
    results = []
    count = 0
    
    print('正在扫描并解码UDP数据包中的Base64内容...')
    
    for i, packet in enumerate(packets):
        if UDP in packet:
            payload = bytes(packet[UDP].payload)
            try:
                payload_str = payload.decode('utf-8', errors='ignore')
                if base64_pattern.search(payload_str):
                    src_ip = packet[IP].src if IP in packet else 'N/A'
                    dst_ip = packet[IP].dst if IP in packet else 'N/A'
                    src_port = packet[UDP].sport
                    dst_port = packet[UDP].dport
                    
                    try:
                        decoded = base64.b64decode(payload_str)
                        decoded_hex = decoded.hex()
                        decoded_len = len(decoded)
                        
                        try:
                            decoded_text = decoded.decode('utf-8')
                            is_text = True
                        except:
                            decoded_text = '非UTF-8编码(二进制数据)'
                            is_text = False
                        
                        result = {
                            'frame': i,
                            'src': f'{src_ip}:{src_port}',
                            'dst': f'{dst_ip}:{dst_port}',
                            'base64_len': len(payload_str),
                            'decoded_len': decoded_len,
                            'is_text': is_text,
                            'original': payload_str,
                            'decoded_hex': decoded_hex,
                            'decoded_text': decoded_text
                        }
                        results.append(result)
                        count += 1
                        
                        if count % 50 == 0:
                            print(f'已处理 {count} 个数据包...')
                            
                    except Exception as e:
                        pass
            except:
                pass
    
    print(f'扫描完成!共找到 {count} 个包含Base64编码的UDP数据包')
    
    with open(output_file, 'w', encoding='utf-8') as f:
        for result in results:
            f.write(f"帧号: {result['frame']}\n")
            f.write(f"源地址: {result['src']}\n")
            f.write(f"目标地址: {result['dst']}\n")
            f.write(f"原始Base64长度: {result['base64_len']} 字节\n")
            f.write(f"解码后长度: {result['decoded_len']} 字节\n")
            f.write(f"是否文本: {'是' if result['is_text'] else '否'}\n")
            f.write(f"原始Base64: {result['original']}\n")
            f.write(f"解码后(十六进制): {result['decoded_hex']}\n")
            if result['is_text']:
                f.write(f"解码后(文本): {result['decoded_text']}\n")
            f.write('-' * 80 + '\n\n')
    
    print(f'结果已保存到: {output_file}')
    return results

if __name__ == '__main__':
    decode_all_base64_in_udp('attachment-17.pcapng')

运行后它会将解密情况自动保存到文本文件里(会自动生成),我们打开文本文件,发现很多解密结果,我们想到题目里的"学会'三十六计'中的声东击西"提示,我们搜索,得到如下

我们在里面找到了类似的语句:ShengDongJiXi@36-1-6,,我们尝试,发现这就是密码,解密后我们得到了一个图片,如下

我们用Stegsolve打开,一帧一帧查看,发现每个颜色的0号似乎都有字(除了alpha),如下

但是我们看不清有什么,这是我们想到了LSB隐写,我们打开"Data Extract",选择如下选项

然后点"Preview"并划到最上面,如下

我们找到了flag为ISCC{1d3f1c4t10n_14Xs_txh3_k93y_t0_vQ1ct0ryz}

相关推荐
名字不相符3 天前
ctfshow之MISC入门(个人记录与学习)
学习·ctf·misc
蒲公英eric21 天前
攻防世界 misc题GFSJ0963-【pcap1】
ctf·misc·流量分析·攻防世界
LlNingyu1 个月前
简单流量分析,串通Wireshark基本使用
网络·wireshark·流量分析
蒲公英eric1 个月前
CTFshow misc入门misc8
ctf·misc·图片隐写·ctfshow·图片隐藏
蒲公英eric2 个月前
攻防世界 misc题GFSJ0403-【intoU】
ctf·misc·攻防世界·音频题
见青..2 个月前
[BUUCTF]Misc篇wp
网络安全·ctf·misc·buuctf
饮长安千年月3 个月前
玄机-工控题
ctf·s7·流量分析·西门子协议
unable code3 个月前
流量包取证-大流量分析
网络安全·ctf·misc·1024程序员节·流量包取证
unable code3 个月前
浏览器取证-[GKCTF 2021]FireFox Forensics
网络安全·ctf·misc·1024程序员节·浏览器取证