解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径

设备版本:window:win7旗舰版、python版本:python3.7.0、pycahrm版本:PyCharm Community Edition 2019.3.3 x64、 手机:红米pro.

mitmdump下手机突然无法联网,发现不是网络问题,证书也安装了,但是删除代理就可以上网,因而是代理的问题,但是抓包必须代理。
而在模拟器上发现模拟器却可以成功,因而手机连不上网不是电脑关闭或者禁止了连接,可能是手机禁止了连接。(当然这个结论的得出需要许多前提条件:在这个结论之前,ping通了网关,查看了端口,这些都是正常的;查看了电脑的启动项也没有发现被禁掉的进程、服务等会影响到代理网络(ps:为了加速开机,我的许多服务自己禁掉了,之前我怀疑可能是禁掉的服务导致电脑关闭了手机的代理连接或者截断了手机的申请))
但是代理里面那儿的问题了,在之前联网的时候发现网站总是出现证书过期,而mitmproxy又是中间人代理,因而可能是由于mitmproxy证书导致的代理问题。后来发现安卓6以后不信任用户级证书。因而需要将证书放在系统证书下
代理的问题两条解决思路:
1、不用手机,在电脑上用模拟器(我用的是夜神),实测可以(推荐较为简单)
2、受到模拟器的启发手机进行root,手机红米pro。root有三种方式,手机app root软件,但是我的红米pro无法root;其次连接电脑使用root软件;使用卡刷刷入root.这三种方法中,前两个我都无法root,原因暂时不知道。第三种方法,需要先对手机进行解锁(重要!!!据说一般都是要解锁的,由于我不知道这一步卡了整整一天,希望大家吸取教训),原本我以为前两者不成功的原因在于没有解锁,我用另一个手机解锁后进行了root但是仍然不成功,原因不明;而在刷root中还发现有一些小米手机的开发者选项中可能没有设备解锁这个选项,解锁的方式非常麻烦(没有实测);然后刷入twrp第三方recovery,手机都有其自身的recovery(按下电源开关和音量+同时就可以进入),但是原本的recovery只有简单的重启、清除数据、关机等。刷入第三方的twrp recovery后可以在recovery界面将root文件刷入,刷入之后就可以获得root权限(root包直接在网上下载即可,全名:【Root-SuperSU-2.76.zip】)。之后在twrp中刷入root包,刷入后手机即可获得root权限。
此时虽然获得root权限,但是不知道为什么用一键root之类的工具还是不能获得root权限,root工具报错为su版本问题,也就是说似乎是缺少root管理工具,也就是虽然手机获得了root权限但是root权限没有分配。需要下载一个叫super-su的软件,会对su进行更新,然后可以分配root权限。
可以分配root权限后开始刷系统证书,即将用户证书刷成系统证书。将用户证书刷成系统证书首先在mitm.it中下载一个安卓版本的证书。
证书下载也存在问题,需要使用代理,没有代理会进入
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
这需要在电脑上配置一个代理叫做Proxy SwitchyOmega
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
将这个扩展程序进行如下设置
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
之后在电脑上开启,即选中刚刚设置的代理,然后需要启动mitmproxy,windows上不能使用mitmproxy,但是可以使用mitmdump和mitmweb,这两个都可以使用,前者没有web界面只能看不能动,后者可以看见监听的内容还能进行拦截修改等等。不启动mitmweb或者mitmdump,直接使用代理的情况如下:
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
只有启动mitmdump后才能有网即在cmd中输入mitmdump
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
,启动后
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
可以正常下载。
将下载后的证书进行openssl证书转型,将pem转成0文件类型,即
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
类型转换方式为求取hash即c8750f0d,然后直接修改文件类型即改名即可。
openssl的安装 我找了一圈基本都非常麻烦,基本逻辑都是博主BaiPeter《Windows 下openssl安装与配置》中所说的,先下载ActivePerl等等,非常麻烦,需要下载一系列的东西。我自己安装的是vs2019,博主安装的是vs2010,差点就卸载2019换成2010了,但是2019基础上下载了许多东西,一旦卸载就要重来,觉得十分麻烦就等等了。结果在下载的openssl中的bin目录中存在openssl程序即:
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
直接打开后:
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
输入命令求取hash可以参考博主一碗单炒饭《给Android7及以上的手机安装系统级证书,实现Fiddler或者其他程序的HTTPS的抓包》在openssl中使用这个命令:openssl x509 -inform PEM -subject_hash_old -in cacert.pem。,之后会返回hash,我的就是c8750f0d,博主一碗单炒饭的命令无效即下图:可以直接进行改名。
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
然后可以参照《添加Fiddler/Mitmproxy证书为安卓系统证书》中的方法进行证书安装到系统目录中去。
然后代理问题还是没有解决!!!!!!!!
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
继续这个路径即证书问题的解决,原本以为到系统证书应该解决了,但是发现还有一个关于证书忽略的路径,即适用xposed的justtrustme模块进行证书信任,但是xposed总是安装不上,安卓5以上需要按照的xposed框架下载下来也不能安装。直到发现xposed的免root版本,virtual-xposed以及太极这个app,可以虚拟运行xposed。
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
安装上justtrustme还是无效,代理问题还是没有办法解决。
证书这条路已经走到了尽头,证书也刷成了系统证书,但是代理问题始终无法解决。

因而问题可能不在证书上了,而浏览器上的报错为代理连接失败(之前使用的其他浏览器为小米自带的浏览器以及chrome
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
错误始终为error_on_proxy之类的,但是不知道问题在哪里?)直到使用uc浏览器,它的报错为
解决:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
说明错误路径为无法连接代理,可能为代理的信号没有发出(这个问题许多人似乎没有,可能是我自己将许多启动项禁止了,其中某种启动项关乎这个问题导致的,因为在某篇文章中提到过需要进行ip转发。)

解决方法:既然错误路径为无法连接代理,可能为代理的信号没有发出。mitmdump都强调在同一个局域网中,因而手机和电脑都连接一个wifi,在一个wifi中出现代理连接出错,于是换成了热点。即有电脑发出热点,而手机连上电脑的热点,两者依然在同一个局域网中。之前使用猎豹wifi,这个问题还是无法解决,换成了360wifi现在成功了。

系统证书的唯一好处就是浏览器不会报证书警告,不会要查看证书了,但似乎没有什么用!!!!!

哎,绕了一大圈全是白费功夫!!!!!!!!!!!!!!!

【1】http://www.site-digger.com/html/articles/20191205/762.html