Mitmproxy HTTPS 代理工具

发布时间: 更新时间: 总字数:528 阅读时间:2m 作者: IP上海 分享 网址
专栏文章
  1. Mitmproxy HTTPS 代理工具(当前)
  2. Inode 使用

mitmproxy是一套工具,为HTTP/1、HTTP/2和WebSockets提供一个交互式的、支持SSL/TLS的拦截代理。mitmproxy使用Python开发。

介绍

特点:

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

工具:

  • mitmproxy 交互式的命令行界面
  • mitmweb 提供基于浏览器的图形用户界面
  • mitmdump 提供非交互式终端输出。类似与tcpdump

安装

Docker

  • 启动服务
# 仅启动服务端
$ docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy
$ docker run --rm -it [-v ~/.mitmproxy:/home/mitmproxy/.mitmproxy] -p 8080:8080 mitmproxy/mitmproxy

# 启动服务端和web ui
$ docker run --rm -it -d -p 8080:8080 -p 8081:8081 -v ~/.mitmproxy:/home/mitmproxy/.mitmproxy mitmproxy/mitmproxy mitmweb --web-host 0.0.0.0
[10:42:24.925] HTTP(S) proxy listening at *:8080.
[10:42:24.927] Web server listening at http://0.0.0.0:8081/
[10:42:25.005] No web browser found. Please open a browser and point it to http://0.0.0.0:8081/

# 客户端
$ http_proxy=http://localhost:8080/ curl http://www.xiexianbin.cn
$ https_proxy=http://localhost:8080/ curl -k https://www.xiexianbin.cn

# dump
$ docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy mitmdump
$ docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy mitmdump --set ssl_insecure=true
  • 使用采用启动服务端和web ui,访问 web 地址:http://172.20.0.142:8081/

  • 生成的证书的位置:

$ ls ~/.mitmproxy
mitmproxy-ca-cert.cer  mitmproxy-ca-cert.pem  mitmproxy-ca.pem
mitmproxy-ca-cert.p12  mitmproxy-ca.p12       mitmproxy-dhparam.pem

# 查看 CA 证书
$ openssl x509 -noout -text -in ~/.mitmproxy/mitmproxy-ca-cert.cer
  • 查看是否生效
$ https_proxy=http://localhost:8080/ curl -k -i -v https://www.xiexianbin.cn
...
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=www.xiexianbin.cn
*  issuer: CN=mitmproxy; O=mitmproxy
...

参考

  1. https://github.com/mitmproxy/mitmproxy
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数