news 2026/8/20 14:12:12

MITM_Toolkit:基于 mitmproxy 的网络流量与 TLS 审计平台

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MITM_Toolkit:基于 mitmproxy 的网络流量与 TLS 审计平台

目录

    • 1. 整体定位
    • 2. 架构
    • 3. 两层拦截模型
    • 4. 审计 AP
      • 4.1 配置
      • 4.2 设备管理
    • 5. 4G/5G 蜂窝
    • 6. 实时流量
    • 7. TLS 审计
      • 7.1 被动证书校验矩阵
      • 7.2 主动 TLS 探测
    • 8. 隐私发现
    • 9. 改包(主动模式)
    • 10. 安全设计
    • 11. 当前状态

最近做移动 App 和车机 TCU 安全审计时,需要长时间对设备流量做 TLS 姿态分析和隐私数据扫描,手动起 mitmproxy + hostapd 太繁琐,于是包了一个浏览器驱动的审计平台 MITM_Toolkit,备份下设计思路。

1. 整体定位

面向授权实验室场景下对移动 App、车机/TCU、嵌入式 Linux、IoT 网关的黑盒/白盒审计。作用域是 IP 及其之上(HTTP/HTTPS、MQTT/CoAP 等),不做链路层——链路层是另一个工具(Wireless_Toolkit)的事。

两条接入链路:

  • 审计 AP:外置 USB 网卡建热点(hostapd + dnsmasq + iptables),设备连上即透明拦截,不需在设备上设代理
  • 4G/5G 蜂窝:对接 URSP_B210mini(srsRAN + Open5GS + B210)蜂窝实验网,手机附着后在ogstun上拦截

两条链路同一套两层拦截模型,可以并存。

2. 架构

单 Python 进程、多线程:mitmproxy 引擎独占一个线程(asyncio 事件循环),Flask/waitress 控制台在主线程,进程内队列 + SSE 通讯,前端监听:50000

┌────────────────────── 单个 Python 进程 ──────────────────────┐ │ [主线程] Flask + htmx + Bootstrap(:50000) │ │ │ HTTP /api/* ▲ SSE /api/stream │ │ ▼ │ │ │ Store(SQLite+内存) ←── SSE broker │ │ ▲ 起停 AP(sudo argv) ▲ upsert_flow/tls/finding │ │ apmanager ── audit-ap.sh(hostapd/dnsmasq/iptables/tcpdump) │ │ [mitmproxy 线程] asyncio loop:DumpMaster + AuditAddon │ │ transparent 监听:48081 ← iptables PREROUTING REDIRECT │ └──────────────────────────────────────────────────────────────┘

启动:

./deploy.sh# 建 venv、装依赖、生成桌面快捷方式./start.sh# 启动,打印访问地址# 浏览器打开 http://<本机IP>:50000

状态总览首页:

3. 两层拦截模型

说明
被动层AP/蜂窝网一起来即默认可见;显示连接元数据(对端、SNI、DNS、明文 HTTP host);不需装 CA
拦截层独立 4 个开关:MITM 解密 / 拦截所有 TCP / 拒绝 QUIC(UDP443) / 全流量 PCAP;任一勾选即可开始

拦截层与「打开 AP」解耦——可以先被动抓元数据,确认设备连上后再开解密。

4. 审计 AP

4.1 配置

选外置 USB 网卡建热点,设 SSID/密码/频段/信道/DHCP(默认网段192.168.66.0/24)。AP 运行后设备照常上网,流量元数据被动可见。

内置卡承载 SSH 和默认路由,不能用来建 AP。起停时自检,若目标接口是默认路由接口则拒绝操作,绝不掐断上行。

4.2 设备管理

AP 运行后可看已连设备(在线状态、JA3、流量、CA 已安装标记),管理 PCAP 抓包文件(列表/下载/删除),运行日志分 hostapd / dnsmasq 实时查看。

5. 4G/5G 蜂窝

对接 URSP_B210mini 蜂窝实验网,与审计 AP 同一套两层模型可并存。URSP 起网、手机附着后,用户面流量在ogstun上被动可见;要解密再对ogstun透明重定向进 mitmproxy(与 AP 对称的 4 个开关)。UE 列表按IMSI手动标「CA 已装」,蜂窝 UE 网段10.45.x与 AP 的192.168.66.x一眼区分。

6. 实时流量

两层视图:被动层看连接元数据,拦截层看解密的请求/响应。可按 host/URL/方法/设备过滤,一键隐藏广播/多播噪声(只隐藏显示,PCAP 照常录)。

点进单条流看请求/响应头和体(JSON 自动美化)、命中的隐私发现,可复制为 curl 或导出该报文。

7. TLS 审计

7.1 被动证书校验矩阵

对每条连接判定,按设备「CA 已安装」标记着色:

设备反应判定
接受我方证书(CA 已安装)预期,未做证书固定
未装 CA 却接受证书校验缺失(真漏洞)
拒绝严格校验 / 可能证书固定
明文无加密传输

同时采集 JA3 指纹、TLS 版本/套件、上游证书。

7.2 主动 TLS 探测

  • 客户端探测:设备浏览器打开https://mitm.sec,收到自签证书——报错 = 校验正常,无警告 = 未校验证书链(真漏洞,与是否装 CA 无关)
  • 服务端探测:sslscan 直连目标,枚举协议版本、弱套件与证书

8. 隐私发现

解密内容实时按规则扫描,内置 11 条规则(PII:手机号/身份证/银行卡;凭据:JWT/API Key/私钥;设备标识:MAC/IMEI/VIN)。支持运行时自定义正则(含 ReDoS 防护)。

可按「发现」平铺查看:

也可按「报文」折叠查看,每个报文下列出命中的所有条目:

9. 改包(主动模式)

主动模式下按 host + 作用域改/删头、正文替换、改状态码。默认关闭,需在本页显式切到主动模式才生效;取证时保持只读。

10. 安全设计

# 所有子进程调用一律 argv 数组,不经 shellsubprocess.Popen(["hostapd",config_path],...)# 正确# subprocess.Popen(f"hostapd {config_path}", shell=True) # 绝不这样做
  • 参数写入captures/ap.params(KEY=VALUE),脚本白名单解析,不 source/eval
  • 文件下载/删除路径经白名单校验;服务端探测目标经白名单 + SSRF 兜底
  • 改动型请求带 Origin/Referer 跨域校验(CSRF 兜底)
  • 控制台默认不设登录鉴权,信任局域网环境

11. 当前状态

持续迭代中。证据文件(PCAP、导出、报告、CA)在captures/ca/,均附 SHA-256 存证。导出格式:JSON / HAR(可导入 Burp/Chrome)/ HTML 审计报告。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/20 14:04:33

LangChain / Advanced usage / Human-in-the-loop

原文链接&#xff1a;https://docs.langchain.com/oss/python/langchain/human-in-the-loop高级用法 人机协同 复制页面 人机协同&#xff08;Human-in-the-Loop&#xff0c;HITL&#xff09;中间件让您可以为智能体的工具调用添加人工审核环节。当模型提议执行某个可能需要审核…

作者头像 李华
网站建设 2026/8/20 13:59:17

ClickShow:让鼠标点击“看得见”的Windows鼠标点击特效工具

ClickShow&#xff1a;让鼠标点击“看得见”的Windows鼠标点击特效工具 【免费下载链接】ClickShow 鼠标点击特效 项目地址: https://gitcode.com/gh_mirrors/cl/ClickShow 无论是录制操作教程、在线授课&#xff0c;还是在会议演示中讲解软件流程&#xff0c;观众最常问…

作者头像 李华
网站建设 2026/8/20 13:57:13

赛车电子元器件供应链:从车规级标准到赛道实战的可靠性保障

1. 从一场胜利看电子元器件在赛车运动中的隐形战场最近看到董荷斌在亚洲勒芒系列赛又拿下一个冠军的消息&#xff0c;作为一位长期关注赛车运动&#xff0c;同时也对背后技术支撑感兴趣的从业者&#xff0c;我感触颇深。这不仅仅是一个车手或一个车队的胜利&#xff0c;更是整个…

作者头像 李华
网站建设 2026/8/20 13:55:18

AI Agent开发成本优化:从Token消耗原理到工程实践

1. 先搞清楚“AI Agent烧掉100倍Token”到底在说什么 如果你最近在关注AI应用开发&#xff0c;特别是基于大语言模型的智能体&#xff08;Agent&#xff09;&#xff0c;可能已经听过一个说法&#xff1a;一个AI Agent单次执行消耗的Token数量&#xff0c;可能是普通聊天对话的…

作者头像 李华
网站建设 2026/8/20 13:55:00

智驾车载以太网(14)-switch交换机之port

从本文档开始后续都开始介绍switch交换机的各个模块特性,本文主要介绍一下switch的port口。 switch的port是什么? 我们知道以太网和can,lin这些总线形式的通讯方式是不同的,以太网通讯的2个设备之间是点对点的连接方式,如果想要实现一对多的通讯就需要一个总线设备。swi…

作者头像 李华