mitmproxy 抓包神器-6.如何在linux操作系统中安装(超详细不踩坑)

前言

常见的抓包工具有fiddler 和 charles, 这些工具都是需要安装本地客户端,python 版的抓包工具可以用 mitmproxy。
mitmproxy 相比Charles、fiddler的优点在于,它可以命令行方式或脚本的方式启动服务,跨平台使用。

Linux 环境安装

mitmproxy(man-in-the-middle attack proxy),中间人攻击工具,可以用来拦截、修改、保存 HTTP/HTTPS 请求
官方文档地址https://docs.mitmproxy.org/stable/
mitmproxy 工具有以下三个组件构成

  • mitmproxy 是具有 SSL/TLS 功能的交互式拦截侦听代理,具有用于HTTP/1,HTTP/2和WebSockets的控制台界面。
  • mitmweb 是用于 mitmproxy 的基于 Web 的界面, 提供一个可视化界面帮助我们查看抓取的请求,可以修改返回内容。
  • mitmdump 它是mitmproxy的命令行接口,利用它我们可以对接Python脚本,用Python实现监听后的处理。

先pip安装mitmproxy

pip3.9 install mitmproxy

我用的python3.9版本,安装的mitmproxy 9.1版本

[root@xx]# pip3.9 show mitmproxy
Name: mitmproxy
Version: 9.0.1
Summary: An interactive, SSL/TLS-capable intercepting proxy for HTTP/1, HTTP/2, and WebSockets.
Home-page: http://mitmproxy.org
Author: Aldo Cortesi
Author-email: aldo@corte.si

启动服务

输入 mitmproxy 命令即可启动服务,监听端口是8080

mitmweb 是用于 mitmproxy 的基于 Web 的界面, 提供一个可视化界面帮助我们查看抓取的请求,可以修改返回内容

[root@xx]# mitmweb 
[11:48:37.804] HTTP(S) proxy listening at *:8080.
[11:48:37.805] Web server listening at http://127.0.0.1:8081/
[11:48:37.866] No web browser found. Please open a browser and point it to http://127.0.0.1:8081/

默认监听端口是8080, web访问服务地址:http://服务ip:8081/

这里的服务器ip是内网ip, 也就是通过 ifconfig 查看到的,必须你的本机和 linux 服务器都是一个局域网的才可以
(如果服务器是阿里云,腾讯云等这种服务器,需带上block_global启动参数:mitmweb --set block_global=false,并开放访问端口权限)

Chrome 浏览器代理插件 SwitchyOmega 安装与使用

chrome 浏览器安装 SwitchyOmega, 具体参考这篇https://www.cnblogs.com/yoyoketang/p/18033578

新增情景模式-代理服务器-点应用选项保存

浏览器启用切换到代理服务访问网站

安装https 证书

mitmproxy 默认只抓取http的请求,https 的请求需要安装证书
上一步浏览器使用代理后,访问http的请求是可以正常访问的,当访问https的请求,比如https://www.baidu.com/

看到如上提示,说明代理设置成功了。

接下来浏览器输入http://mitm.it/

如果看到的是以下界面,说明前面一步代理ip地址没配置对,或者没启用代理

这里需要注意是接着前面的步骤,linux开启mitmproxy 服务--chrome 设置代理(并切换到代理服务),浏览器打开后安装本机操作系统对应的证书,比如我的是windows本机

(翻译:出于安全原因,mitmproxy CA在第一次启动时唯一生成,并且不在不同设备上的mitmproxy-installation之间共享。这样可以确保其他mitmproxy用户无法拦截您的流量。)
下载windows系统证书mitmproxy-ca-cert.p12 (需注意下载的证书,必须是你mitmproxy 启动服务,浏览器切换对应代理后,访问http://mitm.it/ 下载的)

谷歌浏览器-设置-隐私和安全-安全-管理证书

导入证书

勾选证书导入

再次访问百度就就可以正常访问了。

查看linux服务器抓包情况

如果是 mitmproxy 命令启动服务, 访问百度就能看到抓到的请求

选中请求,可以查看http请求详情

posted @ 2024-02-26 15:43  上海-悠悠  阅读(826)  评论(0编辑  收藏  举报