SuperAPI AI 工具集

protocol-reverse-engineering

安全与审计

查看项目

更新于 10-15 09:51

技能介绍

用途

本技能用于网络协议逆向工程,面向安全研究、协议互操作以及调试场景,提供从流量捕获、协议分析到自定义协议文档编写的完整技术参考。其目标是帮助分析人员识别未知或私有网络协议的报文边界、字段结构与消息类型,并将理解结果沉淀为可复用的协议规范。

主要能力

  • 流量捕获:覆盖 Wireshark 图形化捕获(指定接口、过滤器、写入文件、环形缓冲轮转)、tcpdump 命令行捕获(含 -s 0 全包捕获与实时十六进制显示)、以及 mitmproxy 透明代理与 SSL/TLS 拦截、Burp Suite 代理配置等中间人捕获方式。
  • 协议分析:Wireshark 显示过滤器、跟踪 TCP/HTTP 流、导出对象、TLS 解密配置;tshark 字段提取、会话统计、端点统计、JSON 导出与协议层次统计;以及用 Scapy 读取 pcap、过滤与构造自定义报文。
  • 协议识别:列出常见协议签名(HTTP、TLS/SSL、DNS、SMB、SSH、FTP、SMTP、MySQL、PostgreSQL、Redis、MongoDB)与协议头部通用模式(魔数/签名、版本、标志、长度、消息类型、序列号/会话 ID、载荷)。
  • 二进制协议分析:给出长度前缀消息、TLV、固定头+变长载荷等结构示例,提供基于 Python struct 的报文头解析、消息循环解析、TLV 解析与十六进制转储格式化代码。
  • 加密识别与分析:用熵值判断明文/压缩/加密(给出阈值区间)、列出常见加密特征(高且均匀的熵、无明显结构、长度为块大小倍数、可能带 IV);提取 TLS 元数据、JA3/JA3S 指纹与证书信息;介绍通过 SSLKEYLOGFILE(预)主密钥日志和使用 RSA 私钥的解密途径。
  • 自定义协议文档:提供协议规范模板,包括概述、传输层、消息格式(头部字段表)、消息类型表、状态机与交互示例。
  • 解析器实现:给出 Wireshark Lua 解析器示例,定义字段、消息类型映射,并将解析器注册到指定 TCP 端口。
  • 主动测试:使用 Boofuzz 定义协议结构并进行模糊测试;使用 Scapy 重放与修改报文(含删除校验和字段以触发重算)后重放。
  • 最佳实践:给出分析工作流(多次捕获、识别边界、映射结构、比较样本识别字段、编写规范、实现解析/生成器验证、边界与模糊测试)与常见可观察特征清单。

使用方式

资料以命令行与代码片段形式给出方法示例,例如使用 tshark -i eth0 -w capture.pcap 进行捕获、tshark -r capture.pcap -T fields -e ip.src -e ip.dst -e tcp.port 提取字段、tshark -r capture.pcap -q -z conv,tcp 查看会话统计,以及通过 Python 调用 rdpcap/send 分析和构造报文。TLS 解密可通过设置环境变量 SSLKEYLOGFILE 并在 Wireshark 的 TLS 协议首选项中填写(预)主密钥日志文件实现。自定义协议解析器需编写 Lua 脚本并在 DissectorTable.get("tcp.port") 中注册对应端口。

适用场景

适用于对未知或私有网络协议进行捕获与分析、识别报文结构与消息类型、判断载荷是否加密或压缩、梳理 TLS 连接特征,以及为协议编写文档、Wireshark 解析器和开展模糊/重放测试的研究与调试工作。

限制

资料未说明这些工具与方法所支持的具体操作系统、软件版本或平台兼容性,也未给出任何性能或成功率方面的保证。加密流量分析中的私钥解密方式被注明仅适用于 RSA 密钥交换。资料中未提及收费、价格或授权信息。部分内容(如协议模板中的字段与消息类型)为示例,并非针对某一真实协议的确定结论,实际协议字段需以捕获样本分析为准。