网站客服:zx81024163 |

安卓APP抓包之双向认证突破

2023-05-30 06:02:10发布    浏览513次    信息编号:56778

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

安卓APP抓包之双向认证突破

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

1.首先导出burp的der证书

2.相应地配置证书

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

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

3.查看并记录pem证书的哈希值。 命令如下:

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

4、将pem证书重命名为“hash value.0”:

mv cacert.pem 9a5ba575.0

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

从 root 权限开始

adb root

6、重新安装分区读写:

adb remount

7、将.0证书文件复制到手机/模拟器的系统证书文件夹中,并设置644权限。 设置完成后重启手机/模拟器:

以下路径与手机/模拟器一致(eg:///.0)

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

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

至此, 7的burp证书已经被系统信任(上面演示的模拟器是逍遥模拟器,我只是偶尔用这个模拟器,其他手机/模拟器的操作步骤类似),但是经过上面乱七八糟,你会发现手机/模拟器浏览器的抓包还是会弹出证书问题。 如果被测APP不是证书绑定(SSL)和双向认证的问题,抓包测试仍然可以正常进行。 我很少用安卓7,因为证书问题有点麻烦。 基本上我都是用 5来测试,除非有的app只能运行在 7以上,那我就用 7来测试。

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

之前看到过双向认证证书的突破思路,今天在项目中恰好遇到,恰好app没有加固,免去了解包的麻烦,所以下面突破过程:

一开始不知道APP做了双向证书校验,结果悲剧了。

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

因为app没有加固,所以可以直接用jadx反编译,然后全局搜索“.pfx”、“.pfx”、“”、“”等关键字,我这里搜索的是.pfx。

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

可以看到,pfx证书没有设置密码

1.解压APP为压缩包形式

2、进入解压后的目录,可以搜索一些证书后缀的文件,比如cer/p12/pfx等,一般下的都是bks,也可以去或者到res目录下找. 我遇到的apk存放在目录中:

3、本来以为还要继续在文件夹里找key,结果一无所获,又咨询了某位大佬,老板让我直接导出key,因为之前没遇到过,我觉得是有点新,所以我只是挥手

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

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

因为我这里没有设置密码,所以不用输入,直接回车即可导出; 如果设置了证书密码,我需要在这里输入证书密码导出密钥。

4.有了钥匙,剩下的就好办了。 将 crt 证书和密钥文件合并到“.p12”证书文件中。 合并的时候记得给证书加密(也就是加证书密码)。 没有密码,您无法导入。

合并证书命令如下:

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

5. 将证书导入到:

6.证书导入成功并启用

7.下一步就是见证奇迹。 保险起见,先重启手机/模拟器(最好完全关机再开机,我是这样操作的)

提醒:请联系我时一定说明是从星空网上看到的!