安卓渗透第二弹-绕过单双向证书抓包

0x01 前言

接上篇文章的环境配置,现在app都会使用SSL证书,分为单向、双向,大概意思是

单向证书:服务器认证,客户端不需要证书。双向证书:服务器和客户端相互认证。

如果我们针对这些目标,直接抓包的话,由于没有证书的缘故,会导致抓不到包,本文会讲解使用LSPosed以及frida的hook脚本来绕过单双向证书验证。

0x02 正文

将压缩包中的代理工具导入模拟器

安卓渗透第二弹-绕过单双向证书抓包

IP使用本机ip,抓包工具一样,yakit或者bp都行

安卓渗透第二弹-绕过单双向证书抓包

点击保存,点击左侧的抽屉,打开配置规则

安卓渗透第二弹-绕过单双向证书抓包

选择:通过代理连接,代理组就使用刚才命名的代理名称即可,

安卓渗透第二弹-绕过单双向证书抓包

导出Ykit SSL证书,然后共享到模拟器中,后缀改为crt,把后面的pem删了就行。

安卓渗透第二弹-绕过单双向证书抓包

安卓渗透第二弹-绕过单双向证书抓包

安卓渗透第二弹-绕过单双向证书抓包

然后导入证书,操作流程如下:

设置–>网络和互联网–>互联网–>网络偏好设置–>安装证书

安卓渗透第二弹-绕过单双向证书抓包

安装完成之后,在浏览器试一下,正常应该是这种

安卓渗透第二弹-绕过单双向证书抓包

我们如果挂上代理,直接抓包的话,随便打开一个app,都会提示服务器或者网络错误

安卓渗透第二弹-绕过单双向证书抓包

绕过单向证书校验

将下面的apk拖入模拟器中,然后可以在LSPosed中看到这个模块

安卓渗透第二弹-绕过单双向证书抓包

安卓渗透第二弹-绕过单双向证书抓包

启用模块,并添加需要测试的APP,在后面勾选上即可。   

添加完之后,重启模拟器,挂上代理,在尝试抓包

效果如下:

安卓渗透第二弹-绕过单双向证书抓包

这个模块只支持单向证书绕过,app为双向证书验证的话,还是不行,如下:

安卓渗透第二弹-绕过单双向证书抓包

因为该app使用了双向证书验证,这时候需要使用frida的hook脚本。

将压缩包中的FridaScripts-main.zip,里面有一个SSLUnpinning.js,首先需要启动服务端的frida,然后启动转发, 在本地hook,有两种方案,

第一种是Spawn模式(自启动目标应用,相当于以调试模式启动APK)

第二种是attach模式(附加的形式对目标应用进行Hook)

第一种方案:

首先需要找到这个app的包名,在LSPosed中可以看到,或者使用压缩包中打包的软件

安卓渗透第二弹-绕过单双向证书抓包

选择目标,点击反编译,点击APK信息,可以看到应用包名

安卓渗透第二弹-绕过单双向证书抓包

找到包名后,使用下面命令运行

frida -U  -l .SSLUnpinning.js -f 包名 --no-pause

效果如下:

安卓渗透第二弹-绕过单双向证书抓包

安卓渗透第二弹-绕过单双向证书抓包

第二种方案:

自己在模拟器中手动运行需要hook的app,然后使用frida-ps -U来查看连接,找到对应的PID后,使用下面的命令

frida -U -l .SSLUnpinning.js PID--no-pause

效果如下:

安卓渗透第二弹-绕过单双向证书抓包

这里推荐使用第二种,第一种有一些app可能会检测frida的特征,使用附加的方式,会好一些。

0x03 文末

文章中所涉及的资源,均打包网盘,扫描二维码即可下载。

安卓渗透第二弹-绕过单双向证书抓包

原文始发于微信公众号(琴音安全):安卓渗透第二弹-绕过单双向证书抓包

版权声明:admin 发表于 2024年8月28日 上午10:04。
转载请注明:安卓渗透第二弹-绕过单双向证书抓包 | CTF导航

相关文章