RedHawk(红隼)创新性更新(1)
RedHawk v2.0 更新记录(一):代理内核重写 —— 从「手写 HTTP 解析」到「h11 状态机」
红隼 · 落叶 · 万物生歌 · AI 驱动红队安全工具台
一、先说结论
RedHawk v2.0 的第一块地基已经落地:抓包代理内核从「Python 标准库手写 HTTP 解析」重写为「h11 状态机 + asyncio 事件驱动」架构。
一句话主旨:把「青春版 Burp」的代理,从"正确性靠赌"升级为"正确性由状态机保证",并为 HTTP/2、WebSocket、SSE 铺好了可插拔的地基。
二、为什么重写?(这次更新的背景)
RedHawk 是一款 AI 驱动的授权渗透测试一体化工作台(抓包 / 发包 / 扫描 / AI 研判 / 复现报告)。v1.0 的抓包代理基于 http.server + ssl + urllib 手写,协议支持只有 HTTP/1.1,HTTPS 中间人靠自维护 TLS socket + 手动解析明文 HTTP。
技术评审给出过很直白的结论:
“这个方法能工作,但边界情况很多——连接复用、分块传输、压缩、超大 body、异常关闭、复杂 multipart、长连接等。普通测试没事,一碰到复杂 SaaS 或文件上传,事情就开始变得很有人类特色。”
现代 Web 大量使用 HTTP/2、WebSocket、SSE、流式接口——手写协议解析这条路走不到那一步。所以 v2.0 第一步,就是重写代理内核。
三、本次更新做了什么
1. 新增 traffic_engine 流量引擎包(7 个模块)
src/redhawk/traffic_engine/
├── listener.py # asyncio 监听 + 健康检查过滤 + CONNECT/TLS 升级
├── client_h1.py # h11 状态机处理器(keep-alive / chunked / 异常关闭)
├── upstream.py # 上游转发会话(目标解析、请求转发、响应回传、入库)
├── recorder.py # 流量记录(与 v1 完全兼容)
├── server.py # ProxyServer 生命周期(后台 asyncio 线程)
├── config.py # 集中配置(环境变量,函数式读取)
└── __init__.py
核心设计:协议解析全部交给久经考验的 h11(HTTP/1.1 状态机)——连接复用、分块传输、半关闭、异常关闭由库兜底,我们只写转发、MITM 编排、记录。这正是「能用现成最强工具就不造轮子」的体现。
2. intercept.py 从 549 行瘦身到 235 行
- 删除手写的
_ProxyHandler、同步 socket TLS 隧道(约 300 行) - 保留 Repeater 发包、原始请求解析、流量归类、系统代理接管
- 通过 re-export 保持接口完全兼容——web.py 一行未改
3. HTTPS 中间人证书修复
- CA 证书补
SubjectKeyIdentifier,站点证书补SKI + AuthorityKeyIdentifier - 修复 OpenSSL 3 下
CERTIFICATE_VERIFY_FAILED: Missing Authority Key Identifier(HTTPS MITM 端到端测试暴露的真实问题)
4. 代理核心第一次有了端到端测试
v1.0 的代理只有生命周期测试(启动/停止),真实的"请求→转发→记录"链路没有任何自动化验证。本次新增 7 项端到端测试:
| 测试 | 验证内容 |
|---|---|
| GET / POST 端到端 | 请求经代理转发 + 流量入库(url/status/body) |
| keep-alive 三连发 | 同一连接多请求复用 |
| 自环过滤 | Host=代理端口 → 200 且不记录 |
| 探测过滤 | captiveportal → 204 且不记录 |
| HTTPS MITM 全链路 | CONNECT → 动态证书 → TLS 解密 → 记录 |
| 生命周期 | start/stop/可重复启动 |
四、更新后的优势(对比 v1)
| 维度 | v1.0 | v2.0-W1 |
|---|---|---|
| HTTP 解析 | 手写(边界情况多) | h11 状态机(库兜底) |
| 分块传输(chunked) | 记录不完整(无 CL 的响应 body 丢失) | 自动解组帧,完整记录 |
| keep-alive 复用 | 手写状态管理 | 状态机保证 |
| 转发 | urllib 整包缓存 | 流式转发(边收边转,不爆内存) |
| HTTPS MITM | 同步 socket + select 隧道 | asyncio start_tls + h11 over TLS |
| 测试覆盖 | 无端到端 | 7 项端到端 + HTTPS 全链路 |
| 代码规模 | 549 行(含 300 行手写解析) | 235 行 + 200 行 h11 编排 |
最关键的结构性变化:协议层与代理逻辑分离,HTTP/2、WebSocket、SSE 后续只需要「加模块」而不是「重写内核」——这正是 v2.0 路线图里 HTTP Proxy 4/10 → 8/10 的路径。
五、测试结果
python -m pytest tests/ -q
# 129 passed, 2 skipped
- 原 v1.0:122 passed, 1 skipped
- 本次:+7 项端到端测试全部通过,v1 回归全绿,零破坏
六、下一步计划(v2.0 路线图)
- W2:上游连接池(连接复用)、chunked / 100-continue 专项测试、补回上游代理支持
- W3:HTTP/2 MITM(双连接事件桥接 + 流控 + 流映射)、大 body 流式落盘(废除 2MB 截断)
- W4:WebSocket 隧道(帧级转发 + 消息记录)、SSE 流式事件记录
- Phase B/C:证据引擎(AI 结论程序化验证)、资产知识图谱、受控安全 Agent、企业级授权与审计链
七、项目信息
- 开源地址:https://github.com/whisperBrocade/RedHawk
- 官网:https://whisperbrocade.github.io/RedHawk/
- License:MIT
⚠️ RedHawk 是面向安全研究、CTF、教学演示与授权渗透测试的专业工具。使用前必须获得目标系统的明确书面授权,遵守所在国家/地区的全部法律法规。未授权使用、误用、滥用产生的一切法律后果由使用者自行承担。
红隼 · 落叶 · 万物生歌 · Built with ❤️
欢迎 Star ⭐ 与交流,后续更新会继续发布在 CSDN。
Ciallo~(∠・ω )⌒☆
更多推荐


所有评论(0)