0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android APP渗透之双向认证突破

冬至子 来源:闻鸡习武 作者:吾奶习武之人 2023-05-20 14:08 次阅读

Android APP渗透之双向认证突破

今天有hxd发来一个APP说存在双向认证,没法正常抓包进行渗透,抓包的结果长下面这个样子,一般抓包看到服务器返回“400 No required SSL certificate was sent”那基本就可以确认测试的目标APP使用了双向认证,这种情况下,想要正常抓包进行渗透的话,就必须要从APP客户端中,把客户端证书以及证书密钥给找出来,然后导入抓包工具,即可正常抓包(同时需开启justtrustme等绕过服务端证书校验的插件)。

图片

客户端证书及密钥获取

接下来,我们就来看看怎么获取APP客户端证书及密钥,一般情况下,能用工具一把梭的话那肯定最好,平时常用的dump证书及密钥的工具主要有以下几个:

r0capture

r0capture具备客户端证书导出功能:默认开启;必须以Spawm模式运行;

运行脚本之前必须手动给App加上存储卡读写权限;

并不是所有App都部署了服务器验证客户端的机制,只有配置了的才会在Apk中包含客户端证书;

导出后的证书位于/sdcard/Download/包名xxx.p12路径,导出多次,每一份均可用,密码默认为:r0ysue;

hooker

也是基于frida的hook工具,支持客户端证书dump

平时常用的自动dump证书的工具就这两个,不过这次遇到的双向认证APP,使用证书dump也没有成功。

手动寻找证书及密钥

获取证书

既然用工具没法直接获取到证书及密钥,那就只好自己动手分析了,首先我们先来找客户端证书文件。客户端证书文件的话,一般直接解压apk包,在解压文件夹里的assets目录下可能会存在客户端证书文件,如下:

图片

看到有这两个明显的证书文件,证书文件一般直接双击即可安装导入到本地,这2个证书文件中的client.pfx双击安装证书的过程中,提示需要密码,而另一个不需要,经过验证,不需要密码的证书不是客户端证书(导入BurpSuite后抓包验证)

图片

获取密钥

APP脱壳后反编译查看源码,因为APP要使用客户端证书,肯定要从资源文件目录下去读取,因此尝试在源码中搜索关键字:"client.pfx",

图片

通过阅读代码,感觉在instance.load(open, "".toCharArray()); 代码处,应该传入证书密码打开证书文件,但是代码中显示的是一个空""字符串。第一次遇到空密码,有点拿不准,网上检索一下类似代码片段。

图片

发现在加载证书调用load方法的时候,参数2就是证书密码。

验证密钥

既然代码中显示证书密钥为空"",那本地安装client.pfx 输入空密码试试。

输入空密码,证书导入成功,说明这个APP的证书密码确实为空。

客户端证书导入BurpSuite

经过前面的操作,我们已经拿到的客户端证书文件,以及客户端证书密钥

导出key

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

图片

由于之前通过反编译查看源码确认证书密钥为空,因此提示输入密码的时候直接回车就行。

图片

合成p12证书文件

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

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

图片

导入p12证书抓包

在BurpSuite→User options→TLS→Client TLS Certificates中添加导入客户端证书:

图片

设置证书及证书密钥

图片

密码输入正确即可导入成功。

图片

成功抓包

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

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3923

    浏览量

    127114
  • dump
    +关注

    关注

    0

    文章

    13

    浏览量

    9505
收藏 人收藏

    评论

    相关推荐

    Android App环境检测分析

    这个原理就是APPAndroidManifest.xml文件中application是否配置了android:debuggable="true",设置true支持动态调试
    的头像 发表于 12-01 10:26 851次阅读

    Android APP如何进行访问硬件驱动

    本文我们要讲的是在用 i.MX8 平台开发时,Android APP 如何进行访问硬件驱动。
    的头像 发表于 12-04 13:50 1453次阅读
    <b class='flag-5'>Android</b> <b class='flag-5'>APP</b>如何进行访问硬件驱动

    请问Matter Android APP是否支持连接市面上的Matter设备?

    各位大佬们,请教下我基于matter开源的Android App,是否可以连接市面上其他的matter协议设备并且进行控制呢?如果不可以,是需要其他认证码?
    发表于 07-24 07:25

    【Thunderboard Sense试用体验】(二)动手编译APP

    )动手编译APP【Thunderboard Sense试用体验】(三)供电问题梳理【Thunderboard Sense试用体验】(四)体验官方Demo【Thunderboard Sense试用
    发表于 06-09 16:49

    关于Android下的APP开发体验过程记录

    关于Android下的APP开发体验过程记录
    发表于 03-04 11:38

    基于HARN改进算法的双向认证方案

    现在的单向认证在某些应用环境中被证明是不安全的,需要在系统之间进行双向认证。本文设计了一种基于改进的HARN 数字签名算法的双向认证方案,并
    发表于 08-04 14:44 13次下载

    Android开发APP应该如何省电

    AndroidManifest.xml中加上DEVICE_POWER的权限。可是加了权限之后,ADT又提示错误“Permission is only granted to system apps”。这下傻眼了,怎么会说“权限只授予系统应用程序”呢?不过这难不倒我,咱把app
    发表于 07-30 17:35 0次下载
    <b class='flag-5'>Android</b>开发<b class='flag-5'>APP</b>应该如何省电

    该如何渗透检测APP存在的安全漏洞

    IOS端的APP渗透测试在整个互联网上相关的安全文章较少,前几天有位客户的APP数据被篡改,导致用户被随意提现,任意的提币,转币给平台的运营造成了很大的经济损失。
    发表于 03-31 11:42 1364次阅读

    基于AndroidAPP安全检测技术浅析

    基于AndroidAPP安全检测技术浅析
    发表于 06-28 16:03 16次下载
    基于<b class='flag-5'>Android</b>的<b class='flag-5'>APP</b>安全检测技术浅析

    Java代码加密支持Android App Bundle动态化框架

    传统App加壳技术无法应用在App Bundle模式生成的数据包之上。然而,几维安全推出的Java2C加固方案完美支持Android App Bundle动态化框架,守护企业的核心代码
    的头像 发表于 07-29 16:13 2278次阅读
    Java代码加密支持<b class='flag-5'>Android</b> <b class='flag-5'>App</b> Bundle动态化框架

    Android 12“App Pairs”功能:改造分屏多任务能力

    Android 12“App Pairs”功能:新分屏多任务能力,安卓,app,谷歌,分屏,应用程序
    发表于 02-04 14:45 1716次阅读

    基于Android的果蝇识别APP

    本文档的主要内容详细介绍的是基于Android的果蝇识别APP采用随机森林,神经网络等多种算法。
    发表于 03-01 09:28 6次下载

    APK渗透测试工具:AppMessenger

    APK渗透测试工具:AppMessenger,一款适用于以APP病毒分析、APP漏洞挖掘、APP开发、HW行动/红队/渗透测试团队为场景的移
    的头像 发表于 11-18 09:32 2764次阅读

    Arduino/Android蓝牙伺服电机控制安卓APP

    电子发烧友网站提供《Arduino/Android蓝牙伺服电机控制安卓APP.zip》资料免费下载
    发表于 12-05 09:14 4次下载
    Arduino/<b class='flag-5'>Android</b>蓝牙伺服电机控制安卓<b class='flag-5'>APP</b>

    Android App开发新选择:使用Chaquopy轻松结合Python

    当今的程式开发中,Python已经成为了一个非常流行的语言,因为它可以快速编写出高效的代码。然而,如果要将Python结合到Android App(应用程式)中,需要进行一些复杂的设置和调整
    的头像 发表于 04-25 20:29 2058次阅读
    <b class='flag-5'>Android</b> <b class='flag-5'>App</b>开发新选择:使用Chaquopy轻松结合Python