Android应用渗透:双向认证突破

图片[1]-Android应用渗透:双向认证突破-山海云端论坛

今天收到了一个APP,发现存在双向认证,导致无法正常抓包进行渗透。通常在抓包中,如果服务器返回“400 No required SSL certificate was sent”,基本可以确定目标APP使用了双向认证。在这种情况下,为了正常抓包进行渗透,需要从APP客户端中获取客户端证书和证书密钥,然后导入抓包工具,同时需开启绕过服务端证书校验的插件(如justtrustme)。

图片[2]-Android应用渗透:双向认证突破-山海云端论坛

Frida环境配置

在PC上配置Frida环境略过,下面主要介绍在iOS设备上安装Frida Server的两种方式。

Frida Server默认版本安装

  1. 添加Frida官方源:https://build.frida.re
  2. 搜索并安装Frida:

pip install frida

  1. 验证安装结果:

frida-ps

Frida Server指定版本安装

  1. 下载指定版本的Frida Server。
  2. 安装指定版本的Frida Server:

dpkg -i frida-server.deb

  1. 验证安装结果:

frida-ps

Frida检测绕过

提取Frida文件

通过Frida Server默认版本安装方式,可以在cydia中查看相关文件的安装路径:

  • /usr/lib/frida/frida-agent.dylib
  • /usr/sbin/frida-server

将以上两个文件拷贝出保存。

卸载Frida Server

在Cydia中卸载Frida Server。

恢复Frida Server

/usr/lib/目录下新建一个frida文件夹,并将之前拷贝的两个文件放入frida文件夹中。

运行Frida Server

通过上述方式恢复Frida Server文件后,进入手机shell,手动运行Frida Server。

  1. SSH连接手机shell:

ssh root@your_device_ip

  1. 启动Frida Server:

/usr/sbin/frida-server

  1. 验证安装结果:

frida-ps

Frida检测绕过效果

绕过APP提示“设备存在风险”后退出。

尝试使用Frida对目标APP进行hook,如果APP仍然提示设备存在风险,先启动APP,等APP正常打开后,再使用attact模式对APP进行hook。

Android APP渗透之双向认证突破

客户端证书及密钥获取

工具获取

使用r0capture或hooker等工具进行客户端证书的dump,但这些工具可能在双向认证APP中无法成功。

手动查找

获取证书

在APK包解压后的assets目录下可能存在客户端证书文件。

获取密钥

通过反编译APP源码,查找证书文件加载的地方,尝试找到证书的密码。密码为空的情况下,尝试直接导入证书。

导入证书抓包

使用openssl导出证书密钥:

<code>openssl pkcs12 -in client.pfx -nocerts -nodes -out client.key</code>

将pfx证书和key文件合并成“.p12”证书文件:

<code>openssl pkcs12 -export -inkey client.key -in client.pfx -out client.p12</code>

在BurpSuite的TLS设置中导入客户端证书,设置证书及证书密钥,成功输入密码后即可导入成功。

成功抓包

成功搞定双向认证抓取到数据包。

Reference:

https://github.com/r0ysue/r0capture:https://github.com/r0ysue/r0capture[2]

https://github.com/CreditTone/hooker:https://github.com/CreditTone/hooker[3]

https://bbs.pediy.com/thread-265404.htm:https://bbs.pediy.com/thread-265404.htm

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容