使用mitmproxy进行电脑或手机抓包

本文详细介绍了如何通过Python库安装MitmProxy,包括客户端下载、pip安装,以及如何在不同操作系统上启动并配置mitmdump。重点讲解了如何为Android设备生成并安装证书以实现抓包功能,需确保手机已root并正确处理证书权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装mitmproxy

1 配置MitmProxy

MitmProxy可以说是客户端,也可以说是一共python库

方式一:客户端

在这个地址下可以下载对应的客户端安装即可

Downloads

方式二:brew 下载

brew install mitmproxy

方式三:Python库

pip install mitmproxy

通过这个pip命令可以下载好MitmProxy,由于主要通过python中的mitmproxy来进行抓包操作,因此主要以方法三来进行操作

2 启动MitmProxy

MitmProxy启动有三个命令(三种模式)

  1. mitmproxy,提供命令行界面
  2. mitmdump,提供一个简单的终端输出(还可以配合Python抓包改包)
  3. mitmweb,提供在线浏览器抓包界面

在window下,对mitmproxy使用不太可行,就将使用

mitmdump启动

mitmdump

这样就启动mitmdump,接着在本地设置代理Ip是本机IP,端口8080,也可设置-p 来使用不同的端口

在启动后会有一个隐藏文件.mitmproxy,其中有几个文件,就是我们需要的证书文件,或者在启动后,将端口配置好后前往mitm.it进行证书的下载安装

在对电脑进行证书安装推荐后者,可以方便的安装,对于手机端,推荐前者通过将证书手动拷入手机侧的系统用户下,如果使用后者安装的证书,手机端默认位于用户侧,没有root权限,在进行抓取时会抓取不到

3、将证书装入手机端

对装入的手机端的要求,必须为已经进行过root的手机,否则由于得不到root的权限

1生成Android要求的证书格式

由于Android系统级别的证书文件名是以‘0’为后缀,以证书的hash值为名字,所以,我们需要根据证书生成对应的hash值,我们使用这些文件中的mitmproxy-ca-cert.pem,命令如下:

openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.pem | head -1

然后就会生成唯一的hash值,我为c8750f0d,mimtproxy应该也都为该值,如果没有openssl方法,就将hash值当做c8750f0d就好,之后将当前的CA证书复制出一份改为c8750f0d.0,当手机中有相同的hash则可以将0变成1、2、3,如c8750f0d.1,c8750f0d.2,假设:生成的hash值为c8750f0d,那么就像mitmproxy-ca-cert.pem 复制为c8750f0d.0

cp mitmproxy-ca-cert.pem c8750f0d.0

2、将证书放入手机中

先将证书放入手机的安装目录下

adb push ~/.mitproxy/c8750f0d.0 /sdcard/Download

随后将证书从安装目录直接移到系统的证书目录下

adb -s device_id shell

3、将证书放入/system下

防止没有权限则进入使用root用户,以及防止是只读临时修获得权限

su

mount -o rw,remount /system

移动证书到系统下

mv /sdcard/Download/c8750f0d.0 /system/etc/security/cacerts

chmod 664 /system/etc/security/cacerts/c8750f0d.0

对此,CA证书装入手机端系统下完成。

### 使用 mitmproxy 对橙光游戏进行抓包 为了成功使用 `mitmproxy` 抓取橙光游戏的数据流量,需确保设备配置正确并按照特定流程操作。 #### 设备准备与网络设置 确保用于测试的移动设备连接到同一Wi-Fi网络下,并将该Wi-Fi的手动代理服务器地址设为运行 `mitmproxy` 的电脑IP地址。对于安卓iOS设备,在无线局域网设置里找到HTTP代理选项,输入主机名(即PC IP)和端口8080[^1]。 #### 启动 mitmproxy 并加载脚本 通过命令行启动工具,可以附加自定义Python脚本来处理拦截下来的请求响应数据流: ```bash mitmproxy -s path/to/your/mitmproxy_script.py ``` 此命令会打开图形界面版本;如果偏好无窗口模式,则可替换为 `mitmdump` 者 `mitmweb` 来分别获得命令行版是基于Web浏览器管理面板的形式。 #### 安装证书以便解密HTTPS通信 由于大多数现代应用都采用加密传输协议,因此还需要安装由 `mitmproxy` 自动生成的安全证书至目标手机上,这样才能正常查看HTTPS内容。访问 http://mitm.it/ ,下载对应平台适用格式(.cer,.crt),然后依据提示完成信任CA根证书的过程。 #### 开始监控指定域名下的活动 一旦上述准备工作就绪之后,就可以针对具体的游戏服务端API接口实施更细致化的过滤条件了。比如只关心来自某个子域(`*.chengguang.com`)的所有GET/POST方法调用了: ```python def request(flow): if "chengguang.com" in flow.request.pretty_host and (flow.request.method == "GET" or flow.request.method == "POST"): print(f"[+] {flow.request.method} Request to: {flow.request.url}") ``` 这段简单的脚本能够帮助识别出哪些URL路径被频繁访问以及它们携带了什么样的参数信息等有用情报。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值