Fiddler在安卓7.0以上系统抓包环境的搭建及常见大坑

查看 143|回复 9
作者:秋狝   
Fiddler版本:FiddlerSetup_5.0.20204.45441.exe
手机系统版本:安卓9,已经root(测试机)
官网下载安装包
https://www.telerik.com/download/fiddler
安装包打开,一路下一步就行.
安装好后打开Tools->options


1.jpg (71.6 KB, 下载次数: 0)
下载附件
2023-3-30 22:24 上传

Yes->是->是->确定,HTTPS选完如下图所示


2.jpg (47.97 KB, 下载次数: 0)
下载附件
2023-3-30 22:24 上传

设置端口,按下图中勾选,端口填默认


3.jpg (73.31 KB, 下载次数: 0)
下载附件
2023-3-30 22:24 上传

确定->ok
配置完毕后,需要手机和电脑处于同一网络,目前有两种方式:
1.自己常用的非root手机开热点,笔记本和测试机连接同一个网络
2.笔记本电脑开热点,测试机连接
[color=]3.不能笔记本和测试机都连接路由器的wifi,这里我尝试过,完全不行,千万不要这么做
查看ip地址,可以在控制台输入ipconfig,也可以使用fiddler右上角Online查看,这里是命令ipconfig的截图


4.png (176.51 KB, 下载次数: 0)
下载附件
2023-3-30 22:36 上传

查看图中ipv4地址
手机浏览器访问 http://192.168.xxx.xx:8888/ 下载证书。
将下载好的证书(FiddlerRoot.cer)拷贝到电脑上,需要安装一个OpenSSL
https://slproweb.com/products/Win32OpenSSL.html
下载Win64 OpenSSL v1.1.1t Light就可以,安装好需要加到环境变量中,然后在控制台执行以下命令
openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer


5.png (67.64 KB, 下载次数: 0)
下载附件
2023-3-30 22:47 上传

此时就可以新建一个269953fb.0文件,把下面的内容拷贝进去,从-----BEGIN CERTIFICATE----- ... .... -----END CERTIFICATE-----,都不要漏掉
将269953fb.0文件拷贝到手机中的常用目录,然后借用re管理器将此文件放到系统目录/system/etc/security/cacerts/,之前有试过mt管理器,会报错,后来去搜原因,作者bin说用re管理器试试,用了发现re果然行
此时抓包还是不行的话,Fiddler 默认的证书生成工具对移动端可能会出现不兼容的情况,需要安装一个插件CertMaker for iOS and Android,点击下面链接直接下载
https://telerik-fiddler.s3.amazonaws.com/fiddler/addons/fiddlercertmaker.exe
下载之后直接点击安装就可以了,但是要关闭Fiddler否则无法安装, 然后重启Fiddler,然后在Fiddler中重置一下所有证书,点击Fiddler菜单选择Tools-> Options -> HTTPS -> Actions -> Reset All Certificates进行重置证书 ,并且手机也要重新再一次的下载并配置证书!
因为我当时也是半天都不行了,试了各种方案,所以这里没办法重新复现一次完美的安装过程,不过以上应该就可以正常抓包了,说以下几点我百度得到的答案,但是我成功之后回头验证了一下,发现没卵用的地方
1.关闭防火墙
实际上不需要关闭防火墙,开着防火墙,也能访问网站,也能下载证书,所以如果不行,一定不是防火墙的锅,关闭防火墙唯一的好处就是,ios抓包的时候,测试链接延迟速度,如果开了防火墙是超时的,只有关闭防火墙才能准确检测,一般情况下可以关闭防火墙
2.搜索OnBeforeRequest,添加
if (oSession.host.toLowerCase() == "webserver:8888")
{
            oSession.host = "webserver:80";
}
窗口键+R打开运行命令框,输入regedit后回车,打开注册表编辑器,右边窗口空白处右击鼠标新增80端口监听:
这个没有用,如果不行,一定不是上面这个操作的问题,实际验证,完全不需要这一步
3.防火墙入站规则配置,先打开防火墙和网络保护 -> 点击下面的“高级设置” -> 点击左边菜单“入站规则” -> 点击右边菜单“新建规则” -> 选择“端口”:....
这一步试都别试
4.之前搭建环境,看了很多文章,照着上面做,发现要么时灵时不灵,要么干脆就是不灵,或者重启后就失效了,后来反复验证,找到了问题所在,参考多个教程发现如果执行以下命令
openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer
得到了这个269953fb值
但是按照某些文章的操作
openssl x509 -in FiddlerRoot.cer -inform DER -out fiddler.pem -outform pem
openssl x509 -inform PEM -subject_hash -in fiddler.pem | head -1
82635c67
为什么出来两个不同的值,当时也不明白,反正人家文章是这么写的,可能就是正确的,就用这个82635c67.0文件去试,结果就出现了刚才的描述,各种问题,后来发现正规操作
openssl x509 -in FiddlerRoot.cer -inform DER -out fiddler.pem -outform pem
openssl x509 -subject_hash_old -in fiddler.pem | head -1
269953fb
这就一致了...两者.0文件的hash都一样,之前两个不同值的情况还特意去看了pem和cer文件的区别,看了半天,没看出个所以然来,不过搞定了这个,也算是踩了个坑,这样一来无论使用cer还是pem,都没有问题了
Charles,BurpSuite同理,我在这两个软件上面踩了同样的坑
还是fiddler好用,速度打开很快,界面很友好,用起来很舒服,BurpSuite最慢,不过在某些地方,可能Charles,BurpSuite有用武之地,fiddler就不行了

防火墙, 下载次数

苦涩看红尘   

很多软件,已经对fd免疫了
fd已经不在是无敌了,只要设置代理IP,就会被检测到,然后软件打不开,安装XP框架,安装强制走第三方代理都不行
除非把证书安装到系统根证书,强制安装过去(借助电脑OpenSSL生成的那种),有时候也不行,不知道为啥,繁琐,而且还不一定有效
最后,还是选择了小黄鸟,有root,可以一键式弄到系统根证书,不走代理IP,通过VPN抓取,大部分都能抓到
我为52pojie狂   

好帖,收藏了。万一哪一天用到了,可以提前必坑,少走弯路了。
三滑稽甲苯   

有的软件不走系统代{过}{滤}理,这个问题有办法解决吗
jffwoo   

这个坑将来可以跳过了
makmak79   

感觉fiddler很难抓到包了
颜师古都   

既然root了 刷个面具 在搞个模块就可以解决安卓抓包的问题了
guyuelintian   

感谢楼主的分享 正是需要的~
wfghim   

学会了。感谢楼主的逻辑
初级菜鸟   

没有root的高版本安卓手机可以抓https包吗?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部