mitmproxy:中间人攻击HTTP/HTTPS代理,支持录制|重播|拦截|动态修改数据

mitmproxy介绍

mitmproxy是一款具有交互式TLS功能的拦截HTTP/HTTPS代理工具,适用于渗透测试人员和软件开发人员。mitmproxy包含了三大组件:

  1. mitmproxy:mitmproxy是一个控制台工具,允许交互式检查和修改HTTP流量。它与mitmdump的不同之处在于,所有流都保存在内存中,这意味着它可以获取和操作会话。使用 ?用于查看帮助。
  2. mitmdump:mitmdump是mitmproxy的命令行助手。它提供类似tcpdump的功能,使您可以查看,记录和以编程方式转换HTTP流量。有关完整文档,请参阅 --help 命令输出。
  3. mitmweb:mitmweb是mitmproxy的基于Web的用户界面,允许交互式检查和修改HTTP流量。与mitmproxy一样,它与mitmdump的不同之处在于所有流都保存在内存中,这意味着它用于获取和操作会话。

mitmproxy截图

mitmproxy:中间人攻击HTTP/HTTPS代理,支持录制|重播|拦截|动态修改数据
mitmproxy命令行

mitmproxy安装

mitmproxy支持不同系统高效的安装,选择你的系统

完善的文档就像一本好的教科书,带你快速入门

mitmproxy功能

  • 拦截HTTP/HTTPS请求和响应并动态修改它们
  • 保存完整的HTTP会话,以便以后重播和分析
  • 重播HTTP会话的客户端
  • 重播以前录制的服务器的HTTP响应
  • 反向代理模式,用于将流量转发到指定的服务器
  • OSX和Linux上的透明代理模式
  • 使用Python对HTTP流量进行脚本化更改
  • 用于拦截的SSL / TLS证书是即时生成的
  • 还有更多......

mitmproxy支持的代理模式

  1. 常规(默认)
  2. 透明代理
  3. 反向代理
  4. 上游代理
  5. SOCKS代理

如何选择代理模式?他们的工作流程是什么?看下图:

mitmproxy:中间人攻击HTTP/HTTPS代理,支持录制|重播|拦截|动态修改数据

mitmproxy支持的协议

  1. HTTP/1.0 and HTTP/1.1
  2. HTTP/2
  3. WebSocket
  4. Raw TCP / TCP Proxy / Fallback

如果不设置mitmproxy协议,mitmproxy默认使用通用TCP,但在两个重要方面有所不同:

mitmproxy生态系统

Mitmproxy为许多著名的开源项目提供支持:

  • pathod:mitmproxy的姐妹项目,用于处理格式错误的HTTP / 1,HTTP / 2和WebSocket请求。
  • netograph:隐私分析和测试服务。
  • tamper:一个基于mitmproxy的Chrome devtools扩展,可修改请求数据。
  • bdfproxy:一个BackDoorFactory集成到动态修改二进制文件的shell代码。
  • mastermind:来自ustwo的一个项目,提供了一种模拟API或网站的方法

总结

之前体验盒子也介绍过很多代理工具,而mitmproxy与他们明显的不同之处在于,它提供了更好的文档,更大的扩展空间。不仅是代理,还有类似Chrome扩展之类的支持,会话的重放,证书协议等等。