首页
社区
课程
招聘
[原创]安卓APP抓包之双向认证突破
2021-1-18 21:04 25204

[原创]安卓APP抓包之双向认证突破

2021-1-18 21:04
25204

APP抓包问题已经是老生常谈的一个问题了,今天正好碰到这个问题,经过一番折腾最终解决了这个问题。

 

先解决安卓7手机/模拟器正常抓包问题:

1、先把burp的der证书导出


2、使用opensl对证书进行相应的配置

将der转换成pem,命令如下:

openssl x509 -inform DER -in cacert.der -out cacert.pem



3、查看pem证书的hash值并记录,命令如下:

openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1


4、将pem证书改名为“hash值.0”:

mv cacert.pem 9a5ba575.0


5、将证书上传到手机/模拟器:

使用root权限启动

adb root


6、重新安装分区读写:

adb remount


7、把9a5ba575.0证书文件复制到手机/模拟器的系统证书文件夹,并设置644权限,设置完成后重启手机/模拟器: 以下路径与手机/模拟器路径一致(如:/sdcard/Download/9a5ba575.0)

adb shell
mv /sdcard/Download/9a5ba575.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/9a5ba575.0


8、重启完成后查看证书是否为系统级信任证书


至此,安卓7的burp证书已被系统信任(上述演示的模拟器为逍遥模拟器,这个模拟器我也只是偶尔用一下,其他手机/模拟器操作步骤差不多),但是经过以上一顿乱搞后,你会发现抓手机/模拟器浏览器的包时还是会弹出证书的问题,被测APP如果不是证书绑定(SSL Pinning)和双向认证的问题,还是可以正常进行抓包测试的。我安卓7用的少,因为证书问题有点麻烦,基本上都是用安卓5进行测试,除非一些APP只能安卓7以上版本才能运行,才会用到安卓7进行测试。


开始进入正题(突破双向认证)

之前有看到过双向认证证书的突破思路,今天正好在项目中碰到了,而且app又正好没有加固,免除了脱壳烦恼,因此有了以下突破过程:

刚开始不知道APP做了双向证书校验,结果杯具就发生了。


然后开始寻找之前某大佬提供的突破思路

因为app没有进行加固,可以直接用jadx反编译出来,然后全局搜索".cer"、".crt"、".pfx"、"PKCS12"、"keyStore"等等关键字,我这里搜索的是client.pfx。


转到代码位置查看详情(证书安装密码、其他密码等等信息),可以看到,pfx证书没有设置密码(本地测试安装了下,看到有需要输入密码,第一次尝试过输入密码,结果提示密码错误,第二次尝试不输入密码却安装成功了,于是开启了全局搜索之旅,看到没有设置证书安装密码):


1、将APP以压缩包形式解压出来


2、进入解压出来的目录,可以搜索一些证书的后缀文件,例如cer/p12/pfx等,一般安卓下的为bks,也可以先去assets或者res目录下去找找。我碰到的apk就在assets目录下存放:


3、本来以为还得在文件夹里面继续找key,找了一圈无果,然后咨询了某大佬,大佬让我直接把key导出来,因为之前没遇到过,觉得有点新鲜,就刚了一波

openssl pkcs12 –in client.pfx –nocerts –nodes –out client.key


这里需要注意的是,导出key的时候需要输入密码,也就是这个地方(如下图)

因为我这里是没有设置密码的,所以不用输入,直接回车导出;如果设置了证书密码,这里需要输入证书密码才能把key导出来。

 


4、有了key剩下的就好办了,将crt证书和key文件合并成“.p12”证书文件,合并的时候记得对证书进行加密(也就是加个证书密码),不加密码burpsuite是无法导入的。

合并证书命令如下:

openssl pkcs12 -export -inkey client.key -in client.crt -out client.p12


5、将证书导入到burpsuite:


6、证书导入成功,并且已启用


7、接下来就是见证奇迹的时刻了,为了保险起见先重启一下手机/模拟器(最好是彻底关闭然后再打开,我是这样操作的),最后成功抓到该APP的数据包


以上就是本次突破双向认证成功抓包的全过程,有问题可共同探讨、学习,本人技术也不是很好,可能有很多地方描述的不是很好,有问题的地方还请各位指正。

 

参考链接:
https://www.secpulse.com/archives/117194.html

https://www.secpulse.com/archives/54027.html

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2021-7-7 11:03 被丶空心编辑 ,原因:
收藏
点赞6
打赏
分享
打赏 + 1.00雪花
打赏次数 1 雪花 + 1.00
 
赞赏  Editor   +1.00 2021/01/23 精品文章~
最新回复 (20)
雪    币: 4391
活跃值: (2134)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
miaostart 2021-1-19 10:56
2
0
很详细,学习了。
雪    币: 174
活跃值: (3646)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
TUGOhost 2021-1-19 12:07
3
0
可以的很实用
雪    币: 3907
活跃值: (5712)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
roysue 3 2021-1-19 13:40
4
1
试试这个:
https://github.com/r0ysue/r0capture
一步到胃
雪    币: 205
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
CtrlAltDelet 2021-1-19 14:50
5
0
roysue 试试这个: https://github.com/r0ysue/r0capture 一步到胃
反调试怎么办
雪    币: 335
活跃值: (1257)
能力值: ( LV4,RANK:48 )
在线值:
发帖
回帖
粉丝
These-us 2021-1-19 20:15
6
0
使用的是那个app测试哇,想复现一下
雪    币: 3907
活跃值: (5712)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
roysue 3 2021-1-19 21:35
7
0
CtrlAltDelet 反调试怎么办
反调试用https://github.com/hluwa/strongR-frida-android/
雪    币: 385
活跃值: (425)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
丶空心 2021-1-19 23:55
8
0
These-us 使用的是那个app测试哇,想复现一下
项目上的APP,无法外放,抱歉
雪    币: 205
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
CtrlAltDelet 2021-1-20 15:59
9
0
roysue 反调试用https://github.com/hluwa/strongR-frida-android/
谢谢您
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
ol4three 2021-1-21 11:05
10
0
大佬可以给个APK吗想自己试一下 ol4three@gmail.com
雪    币: 3654
活跃值: (3828)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
caolinkai 2021-1-21 16:50
11
0
roysue 试试这个: https://github.com/r0ysue/r0capture 一步到胃
肉丝大佬
雪    币: 17790
活跃值: (59943)
能力值: (RANK:125 )
在线值:
发帖
回帖
粉丝
Editor 2021-1-23 10:42
12
0
感谢分享!mark!
雪    币: 350
活跃值: (220)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mllaopang 2021-1-25 08:06
13
0
感谢分享
雪    币: 59
活跃值: (185)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
heartbeast 2021-1-26 10:36
14
0
一般都用公钥证书吧
雪    币: 72
活跃值: (343)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xinsui 2021-4-24 08:52
15
0
licolico.cn 这个它的官方地址 。这个APP用fiddler什么也抓不到,证书也添加到系统目录里了,XP去双验证模块也添加了。用httpcanary抓也不行,显示网络异常,估计是检测VPN,帅哥有时间能看看这个APP吗
雪    币: 62
活跃值: (533)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
万里星河 2021-4-25 08:51
16
0
roysue 试试这个: https://github.com/r0ysue/r0capture 一步到胃
双向认证也能搞?
雪    币: 1
活跃值: (946)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_阿达西 2022-9-23 18:38
17
0
服务器认证客户端是怎么解决的
客户端认证服务端是怎么解决的
文章没写清楚啊。。。
雪    币: 10
活跃值: (61)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mweb 2022-11-1 17:39
18
0
wx_阿达西 服务器认证客户端是怎么解决的 客户端认证服务端是怎么解决的 文章没写清楚啊。。。
看不懂就在看几遍,注意带上脑子
雪    币: 119
活跃值: (1431)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小爱逆天 2022-11-1 19:09
19
0
感谢分享
雪    币: 1476
活跃值: (1659)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
顾忧 2022-11-15 21:54
20
0
大佬,请问crt证书也是跟上面导出key一样的步骤吗?
雪    币: 1769
活跃值: (1072)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
南枫 2022-11-16 09:40
21
0
不错呢,抽空尝试一下
fiddler也是一样操作吗?
游客
登录 | 注册 方可回帖
返回