您是否曾觉得需要一个放大镜来观察网络流量?
认识 Mitmproxy。
这款开源强大工具可让您拦截、修改和分析 HTTP/1、HTTP/2 和 WebSocket 流量。它非常适合网络开发人员、网络管理员和理想的安全专业人员使用。
本文涵盖了关于 Mitmproxy 的所有必要知识(如果您是初学者)。 它概述了该服务的优缺点、安装步骤、基本用法以及 SSL/TLS 设置、Python 自动化和 Docker 集成等高级功能。

免责声明: 免责声明:本材料仅供参考。它并不构成对任何活动(包括非法活动)、产品或服务的认可。在使用我们的服务或依赖此处的任何信息时,您全权负责遵守适用的法律,包括知识产权法。对于因以任何方式使用我们的服务或此处包含的信息而造成的损害,我们不承担任何责任,除非法律明确要求。
目录
- Mitmproxy 概述
- 它是什么?
- 优点和缺点
- Mitmproxy 使用案例
- 如何安装 Mitmproxy(分步指南)
- Windows
- 利纳克斯
- MacOS
- Mitmproxy 入门
- 启动 Mitmproxy
- 配置浏览器或设备
- 验证配置
- 如何使用 Mitmproxy
- 使用 Mitmproxy 可以做的更多事情
- 使用网络界面
- 使用 Mitmdump
- 设置 SSL/TLS 证书
- 使用 Python 自动执行任务
- 在 Docker 中运行 Mitmproxy
- 常见问题部分
- 结语。
1.Mitmproxy 概述
Mitmproxy is an open-source powerful toolset for intercepting, modifying, and analyzing network traffic (specifically HTTP/1, HTTP/2, and WebSockets). It’s an SSL/TLS-capable intercepting proxy. It is perfect for debugging, testing, and security assessments. 它有三种口味,可以满足您的各种需求:
- Mitmproxy: 互动控制台可让您详细了解流量拦截情况。
- Mitmweb: 简单易用的网络界面,看起来和感觉就像 Chrome 浏览器的 DevTools。
- Mitmdump: 一种命令行工具,与 tcpdump 类似,用于编写脚本和实现自动化。
Mitmproxy 是什么意思?
词的第一部分 -> MitM(中间人)是一个网络安全术语,指一种攻击或技术。在这种情况下,攻击者会秘密拦截并可能篡改双方之间的通信,而双方都认为自己是在直接通信。代理"(或中间人)的另一面是指客户端和服务器之间的中介。它允许用户拦截、检查和修改网络通信。 Mitmproxy 使用了这一概念,但使用的方式是可控的、符合道德规范的。
Mitmproxy 优点和缺点
每种工具都有其优缺点,这款工具也不例外。 在本节中,我们将深入探讨使用它的主要优势和可能存在的隐患。 这将帮助您确定它是否完全符合您的需求。
| Pros 优点 | Cons 缺点 |
| 互动式交通拦截和分析: 实时捕获、修改和回放 HTTP/HTTPS 流量。 | 陡峭的学习曲线 要求具备网络和证书方面的知识。 |
| SSL/TLS 功能: 为安全拦截生成 SSL/TLS 证书。 | 命令行驱动 对于图形用户界面用户来说,依赖 CLI 可能具有挑战性。 |
| 双接口和高级过滤: CLI 和网络界面 (mitmweb) 具有强大的过滤选项。 | 资源密集型: 大流量计算需求高。 |
| 脚本、自动化和自定义插件: 用于自定义脚本和附加组件的 Python API。 | 兼容性问题: 某些应用程序和复杂设置的问题。 |
| 跨平台支持 适用于 Windows、Linux 和 macOS。 | 安全风险: 需要严格的安全措施来避免攻击。 |
| 自由与开源: 社区支持下的无障碍环境。 | 手动配置: Docker 和云环境的复杂设置。 |
推荐用于哪些用途?Mitmproxy 使用案例举例
- 调试应用程序 使用 Mitmproxy 捕捉并分析 HTTP 请求和响应。这有助于找出响应缓慢或有效载荷过大的问题,从而解决延迟问题。截获流量以查看发送和接收的数据也有助于调试与数据相关的问题。此外,它还有助于模拟各种服务器响应,查看应用程序如何处理错误。
- 渗透测试。 利用 Mitmproxy,您可以捕获并调整 HTTP/HTTPS 流量,模拟攻击(如 SQL 注入、XSS)并识别漏洞。此外,您还可以记录和调整合法流量,以测试重放攻击和会话固定等弱点。在这方面,Mitmproxy 还可以帮助拦截加密流量,以验证证书处理、加密标准和 HTTPS 整体安全性。
- 隐私测量。 Mitmproxy 可用于捕获和检查流量,确保敏感信息不被泄露。您还可以用它来验证数据处理和传输是否符合 GDPR 等隐私法规。人们还用它来分析第三方服务。分析应用程序与第三方服务之间的流量,确保它们不会收集不必要的数据。
2.如何安装 Mitmproxy(分步指南)
a.视窗:分步安装指南
- 下载安装程序 从 官方网站.
- 运行安装程序: 执行下载的文件,并按照屏幕上的说明完成安装。

- 验证安装: 打开命令提示符并键入 mitmproxy、mitmweb 或 mitmdump 以验证安装。如果工具正确启动,说明安装成功。但仍然无法捕获流量。

b.Linux使用软件包管理器和源码安装
要在 Linux 上安装 Mitmproxy,可以使用软件包管理器或从源代码安装。
使用软件包管理器
您可以下载特定发行版的独立二进制文件(访问 官方网站 来查找这些二进制文件),或者使用每个发行版各自的软件包管理器。这两种方法都提供了预编译的二进制文件,简化了 mitmproxy 的安装。此外,软件包管理器还提供自动的依赖关系管理和更新。
Arch Linux
|
1 |
苏都 pacman -S mitmproxy |
Fedora
|
1 |
苏都 dnf 安装 mitmproxy |
Debian/Ubuntu:
|
1 2 |
苏都 适切 更新 苏都 适切 安装 mitmproxy |

源安装:
如果你愿意,也可以从源代码中安装。所有说明如下。
|
1 2 |
笨蛋 复制 https://github.com/mitmproxy/mitmproxy.git CD mitmproxy |
安装依赖项并构建
|
1 2 |
核心 安装 -r 要求.文本 蟒蛇 设置.py 安装 |
使用 pipx 进行 Python 软件包管理
安装 pipx
|
1 2 |
蟒蛇 -m 核心 安装 --用户 pipx 蟒蛇 -m pipx 确保路径 |
安装 mitmproxy:
|
1 |
pipx 安装 mitmproxy |
c. macOS:通过 Homebrew 安装
前提条件:安装 Homebrew:如果您尚未安装 Homebrew,请按照以下说明进行安装 自制啤酒官方网站.
安装 mitmproxy:
|
1 |
酿 安装 mitmproxy |

验证安装:
打开终端并键入 mitmproxy、mitmweb 或 mitmdump 以验证安装。

Mitmproxy 用户正在寻求可扩展性和性能?
Rapidseedbox 如何提供帮助?
高流量处理
保证正常运行时间
触达全球
增强匿名性
---
3.Mitmproxy 入门。
在您的平台上安装后,就是使用它的时候了。在本节中,我们将学习基本配置和设置、基本命令以及如何在不同设备和浏览器上进行设置。
注意: 默认情况下,Mitmproxy 会启动一个 Proxy HTTP.它还能收听 http://localhost:8080。
a.启动 Mitmproxy:
- (如上一节所示)打开终端,输入 "mitmproxy "启动命令行界面。mitmproxy 界面应如下截图所示:

- 键入 "mitmweb "启动网络界面。它将自动启动(如下截图所示)。
- 如果无法启动,请打开浏览器,进入 http://localhost:8081。

- Mitmdump: 键入 mitmdump 可使用命令行工具编写脚本。

排除故障!
如果您看到以下一行 "[12:10:38.265] mitmproxy 证书授权已过期! 做到以下几点...
此错误信息表明 Mitmproxy 证书授权(CA)已过期。要解决这个问题,请删除 .mitmproxy 文件夹中与 CA 相关的文件,以便生成新的 CA。删除过期的 CA 文件后,工具会在重启时自动重新生成新的 CA。
以下是解决此问题的步骤:
删除 CA 相关文件:
|
1 |
rm -rf ~/.mitmproxy |
重新启动 Mitmproxy:
|
1 |
mitmdump |

b.配置浏览器或设备。
要使用它,请将浏览器或设备设置为通过 Mitmproxy 接收所有流量。您可以在谷歌浏览器、火狐浏览器、微软Edge浏览器或iOS(iPhone/iPad)或安卓等设备上设置代理。但请注意,不同浏览器和设备的代理配置会有所不同。
设置 HTTP 代理:
- 打开浏览器或设备网络设置。不知道什么是 HTTP 代理?在此阅读更多 (HTTP 代理服务器)的不同之处,并从 SOCKS5 代理服务器.
- 查找代理设置(通常可在高级设置或连接设置下找到)。
- 将 Web HTTP 代理 (1) 设置为 http://localhost:8080 或 127.0.0.1:8080 (2),然后单击确定 (3)。

安装 Mitmproxy CA。
- 打开浏览器,导航至 http://mitm.it.您将看到一个页面,指示您安装 Mitmproxy 证书管理机构 (CA)。
- 找到相应的平台并下载证书。如果下载失败......请按照该平台上的说明进行操作。 http://mitm.it page.

- 您可以通过检查系统证书来验证 mtimproxy CA 证书是否已安装。
- 对于 macOS,请进入 "钥匙串访问">"证书"。确保 SSL 设置为 "始终信任"。

无法通过 Mitmproxy 路由网络流量?
- 如果在打开网页 (http://mitm.it如果您看到以下信息 "If you can see this, traffic is not passing through mitmproxy"(如果您看到此信息,则流量未通过 mitmproxy),这意味着您的网络流量未被 mitmproxy 拦截。
- 这很可能是因为您没有正确设置代理服务器配置(在浏览器或设备上)。此外,请确保 mitmproxy 设置正确并正在运行。然后再试一次。

c.验证配置。
- 打开终端,使用以下命令启动服务:mitmproxy
- 一旦启动(如果配置正确),就会看到终端接收 HTTP 和 WSS 流量。

4.如何使用 Mitmproxy。
界面显示以下信息
- 流量部分: 屏幕的主要部分显示截获的 HTTP 和 WebSocket 流量列表。每一行代表一个 HTTP/WebSocket 请求和响应。
- 专栏
- 时间:显示捕获请求的时间。
- 协议:表示所使用的协议(如 HTTP、表示 WebSocket 的 WS)。
- 方法:使用的 HTTP 方法(如 GET)。
- 主机和路径:请求的目标主机和路径。
- 状态代码:服务器返回的 HTTP 状态代码。
- 内容:显示回复是否有内容。
- 持续时间:处理请求所需的时间(毫秒)。
详细流程信息
- 选定流程: 在底部,您可以看到所选流量的数量和一个小菜单
- 流动: 表示所选流量的数量。
- 代理: 显示活动代理配置。
- 其他选择 您可以使用 o(选项)、e(事件)、q(退出)等按键和其他各种命令与流程进行交互。(下文将详细介绍)

- 检查流量:
- 使用箭头键浏览流量列表。您将看到一个">>"符号在流量列表中上下移动。
- 按 Enter 键可详细查看特定流程。这样就可以查看头、内容以及有关请求和响应的其他信息。
- 例如,我们选择了主机为 mitm.it 的流量。在该部分中,您将看到有关标头的所有信息。此外,您还可以在选项卡中移动:请求、响应和其他详细信息。

- 过滤流量: 按 f 键并输入过滤条件(如特定主机名或请求类型),即可过滤流量。
- 例如,我们使用过滤器键入 "mitm.it",现在只能看到 mitm.it 主机。

- 选项和配置: 按 o 打开选项菜单,在这里可以配置 Mitmproxy 的各种设置。这些选项包括方法、大小、时间和 URL。

Mitmproxy 的底部菜单选项
- 在界面中,底部菜单提供了各种选项,用于与捕获的流量进行交互并配置 Mitmproxy 设置。

下面将详细解释底部菜单上显示的所有选项:
- 流动: 选择当前高亮显示的流程进行详细检查或操作。
- 选择: 允许您选择多个流程进行批量操作。
- 帮助: 访问使用 Mitmproxy 的帮助和文档。
- q 退出: 退出会话。
- r 重播: 重放选定的 HTTP 请求。
- E 活动: 查看 Mitmproxy 的事件日志,其中包括重要信息和错误。
- 出口: 将选定的流量导出到文件,以便日后分析或共享。
- 选项: 打开选项菜单配置设置。
- d 删除: 从列表中删除所选流量。
- i 拦截: 拦截请求,以便在将请求转发给服务器之前对其进行修改或检查。
- 马克 标记流量以执行批量操作,如删除或导出。
- 过滤器 应用筛选器,根据主机、方法或状态代码等标准只查看特定流量。
- e 编辑: 编辑所选流程的请求或响应。
- b 保存身体: 将所选流程的正文保存到文件中。
- z 清除列表: 清除列表中的所有流量。
- 节省流量: 将捕捉到的所有数据流保存到文件中。
- 更改布局: 在界面中切换不同的布局模式。
- 按 Ctrl+F 查找新内容: 自动跟踪并突出显示捕捉到的新流量。
使用 Mitmproxy 时需要更多帮助?
查看帮助:在 mitmproxy 界面中按下"?

下一步是什么?
现在,您已经掌握了开始使用 Mitmproxy 的知识。接下来该做什么呢?
- 开始捕捉: 当流量流经 Mitmproxy 时,您将实时看到 HTTP(或 WSS)请求和响应。您可以使用界面即时检查和修改它们。
- 分析流量: 在捕获的流量中查找模式、异常或特定数据。通过该工具,您可以对每个请求和响应进行细致入微的分析。
5.使用 Mitmproxy 可以做的更多事情
Mitmproxy 不仅仅是一个简单的网络流量拦截器,您还可以用这个神奇的工具做更多的事情。下面是您可以用这个工具做的另外五件很酷的事情。
a.使用网络界面。
使用内置的基于网络的图形用户界面,可以更轻松地进行流量分析和操作。如何启动?
- 启动 mitmweb: mitmweb
- 打开网络界面: 在浏览器中访问 http://localhost:8081。
b.使用 Mitmdump。
Mitmdump 随 Mitmproxy 安装一起提供。这是一款非交互式命令行工具,设计用于编写脚本和实现自动化。
- 启动 mitmdump: mitmdump
- 将流量保存到文件: mitmdump -w outfile
- 过滤和重放流量: mitmdump -nr infile -w outfile "~m post"
c.设置 SSL/TLS 证书
Traffic Interception isn’t complete without handling encrypted traffic. Mitmproxy simplifies SSL/TLS certificate setup so you can peek into HTTPS traffic seamlessly. How to do this?
- 该服务会创建 CA 证书,您将用它来签署拦截的流量。
- 在浏览器中导航至 http://mitm.it,然后按照说明在设备上安装 CA 证书。
- 安装 CA 证书后,Mitmproxy 将解密 HTTPS 流量,使您可以像检查、修改和分析未加密 HTTP 流量一样检查、修改和分析安全通信。
d.使用 Python 自动执行任务
让您的流量分析更上一层楼。Mitmproxy 的 Python API 可让您自动执行任务并自定义流量处理。
- 使用 Python 编写自定义插件,扩展工具的功能。例如,您可以自动修改请求或记录特定的流量模式。
- 通过 Python API,您可以完全控制拦截的流量。修改报头、改变请求路径,甚至根据自定义逻辑阻止特定请求。
e.在 Docker 中运行 Mitmproxy
您会很高兴知道 Mimtproxy 受 Docker 支持(如果您喜欢容器环境)。Docker 中的 Mitmproxy 可以很好地集成到现代开发工作流程中。
- 拉取 Docker 映像:从 DockerHub 下载官方镜像:docker pull mitmproxy/mitmproxy
- 在容器中运行: docker run -rm -it -p 8080:8080 mitmproxy/mitmproxy
6.常见问题部分。
1.如何使用 Mitmproxy 拦截 HTTP/HTTPS 请求?
要拦截 HTTP/HTTPS 请求,请将浏览器或设备配置为使用 Mitmproxy 作为代理。在终端中启动它,它就会开始捕获通过它的所有流量。然后,您就可以随时检查和修改这些请求了。更多信息请参阅本帖前面的章节。
2.Mitmproxy 能否处理大量网络流量?
是的,Mitmproxy 可以处理大量的网络流量。不过,对于非常大的流量,我们建议确保您的硬件支持负载。该工具提供各种选项来优化性能和有效管理流量。
3.Mitmproxy 如何管理 SSL/TLS 证书?
Mitmproxy 会生成证书颁发机构 (CA) 证书,您需要将其安装到设备上。这样 Mitmproxy 就能拦截和解密 HTTPS 流量。CA 证书用于即时签署其他证书。这样,截获的流量就会在浏览器或应用程序中显示为可信流量。
4.使用 Mitmproxy 安全吗?
Mitmproxy 是安全的(如果使用得当)。最佳做法是确保生成的 CA 证书只用于受信任的设备和环境。始终将 Mitmproxy 更新到最新版本,以便从安全补丁和改进中获益。最重要的是,请始终牢记,拦截流量只能以道德和合法的方式进行。
5.Mitmproxy 能否用于不同的托管环境和服务器?
当然可以。Mitmproxy 兼容各种托管环境和服务器。您可以在本地服务器、云环境甚至 Docker 容器中进行设置。
6.如何在 Docker 容器中运行 Mitmproxy?
要在 Docker 中运行 Mitmproxy,请使用 "docker pull mitmproxy/mitmproxy "命令从 DockerHub 提取 Mitmproxy 的官方镜像。然后,用 docker run -rm -it -p 8080:8080 mitmproxy/mitmproxy 启动一个容器。这种设置可以让你在容器环境中拦截流量。这非常适合与现代 DevOps 工作流程集成。
7.如何使用 Mitmproxy API 进行自定义流量操作?
Mitmproxy 提供功能强大的 Python API,允许您编写用于流量操作的自定义脚本。利用该 API,您可以自动执行任务、修改请求和响应,并实现复杂的逻辑。要开始使用,请编写脚本并运行 Mitmproxy,在脚本路径后加上 -s 标志。
8.Mitmproxy 能否用于网络搜索?
是的,Mitmproxy 是一款完美的网络搜索工具。通过它,您可以捕捉和修改网络流量,从而更轻松地从网页中提取数据。通过分析 HTTP 请求和响应,您可以更有效地自动收集数据。
9.Mitmproxy 的 TLS/SSL 配置流程是什么?
要在 Mitmproxy 中配置 TLS/SSL,您需要在设备上启动 CA 证书。这样 Mitmproxy 就能解密 HTTPS 流量。配置客户端以信任 CA 证书,从而确保安全无缝地截获加密流量。
10.Mitmproxy 有哪些替代或类似工具?
如果您正在探索 Mitmproxy 的替代方案(或类似工具),请考虑以下几点:
- Fiddler 具有友好的用户界面和强大的网络会话调试功能
- 查尔斯代理 的 SSL 代理和带宽节流功能
- 用于全面网络应用程序安全测试的 Burp 套件。
- OWASP ZAP 提供开源安全测试工具
- Wireshark 提供详细的网络协议分析
- Proxyman 为网络流量调试提供现代化界面
- HTTP Toolkit 通过引导式设置简化了 HTTP(S) 流量的拦截和调试。
7.最后的话
我们对 Mitmproxy 的特性和功能进行了 "肤浅 "的探讨。这篇文章的指南只涵盖了这一神奇工具的冰山一角。
在本指南中,我们介绍了不同操作系统的安装步骤、基本设置和使用方法。此外,我们还深入探讨了 SSL/TLS 拦截、Python 自动化和 Docker 集成等高级功能。
我们希望,有了这些知识,您就能充分利用 Mitmproxy 进行网络流量分析和操作。
0评论