安装mitmproxy
1 配置MitmProxy
MitmProxy可以说是客户端,也可以说是一共python库
方式一:客户端
在这个地址下可以下载对应的客户端安装即可
方式二:brew 下载
brew install mitmproxy
方式三:Python库
pip install mitmproxy
通过这个pip命令可以下载好MitmProxy,由于主要通过python中的mitmproxy来进行抓包操作,因此主要以方法三来进行操作
2 启动MitmProxy
MitmProxy启动有三个命令(三种模式)
- mitmproxy,提供命令行界面
- mitmdump,提供一个简单的终端输出(还可以配合Python抓包改包)
- 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证书装入手机端系统下完成。