行业动态

防御吧作为15年知名老牌域名服务商,CNNIC和CANN双认证域名注册商,已经
持续为500多万个域名提供服务,包括智能DNS/自由转移/隐私保护等服务!
简述APP资产收集与突破抓包限制
2022-06-24 14:48:36 【

资产提取

AppinfoScanner

首先还是我们经常使用的AppinfoScanner,AppinfoScanner是一款适用于以HW行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具,可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态WEB站点中关键的资产信息并提供基本的信息输出,如:Title、Domain、CDN、指纹信息、状态信息等。



cd AppInfoScanner

python-m pip install -r requirements.txt

安装依赖库之后,直接将APK放到该工具的文件夹中,使用该脚本去扫描该APK文件中所含的链接信息


这里运行命令为


1.扫描Android应用的APK文件、DEX文件

pythonapp.pyandroid-ixxx.apk

2.扫描IOS应用的IPA文件、Machine-o文件

pythonapp.pyios-ixxx.ipa

3.扫描web站点的文件、目录、需要缓存的站点URL

pythonapp.pyweb-iwww.xxx.com

这里我们的目标是APK文件,所以我们直接使用第一条命令即可


pythonapp.pyandroid-i 123.apk



这时,AppinfoScanner就会将该APK中所涉及到的链接全部都提取出来,在扫描后会在AppinfoScanner中输出一个以当前时间命名的xls文件,其中就包含了对该APP中所提取的一些资产信息,但是该xls中的资产提取的并不完整,可能是我APK的原因吧




在out文件夹中还会有一个以该APK名所命名的文件夹,里面存放这该APK所逆向出来的源代码,这里我们可以将该源代码导入到IDEA中




打开IEDA,然后选择打开,选择所输出的文件夹,单击确定




使用快捷键ctrl+shift+F全局搜索,去搜索该代码中的一些关键信息,如http://、https://等也可以获得一些关键信息




MonSF

移动安全框架 (MobSF) 是一种自动化的一体化移动应用程序 (Android/iOS/Windows) 渗透测试、恶意软件分析和安全评估框架,能够执行静态和动态分析。MobSF 支持移动应用程序二进制文件(APK、XAPK、IPA 和 APPX)以及压缩源代码,并提供 REST API 以与您的 CI/CD 或 DevSecOps 管道无缝集成。动态分析器可帮助您执行运行时安全评估和交互式仪器测试。


MonSF是基于docker运行的,我们只需要找来一台安装docker的主机运行如下两条命令即可


dockerpull opensecurity/mobile-security-framework-mobsfdockerrun -it -p 8008:8000 opensecurity/mobile-security-framework-mobsf:late



这里拉取环境之后直接运行即可,由于我之前已经拉取了环境,所以比较快一些,如果刚开始的话会需要等待一段拉取时间,如果已经拉取成功环境之后,下次启动只需要


docker run -it -p 8008:8000 opensecurity/mobile-security-framework-mobsf:latest

命令即可


启动好之后,直接访问docker主机的8008端口




这里就是我们搭建好的MobSF界面,为web图形化界面,这里我们直接将APK拖到或者上传MobSF中之后,它就会对当前APK进行一个扫描,扫描完成之后即可看到这个APK的一些安全信息



也可以去将该APK的java源代码、Smali源代码等




一些易受攻击的点




和网址、电子邮件等信息



还可以对目标生成一份报告等等其他功能,这里不再阐述



突破抓包限制

在测试APP中,经常会遇到一种情况,就是当我们打开代理之后,或者经常会出现抓不到包、一直检测失败


等各种情况,这里大概情况分为两点


APK做了防抓包机制,如反代理或反证书校验的检测

该APK没有走http/S协议,走了其他协议

首先让我们先了解一下什么是反代理和反证书校验


反代理,当该APK在启动时会判断客户端是否启动代理,如果启动代理则无法进行通信

反证书检测,抓包时,无法连接网络并且也接收不到任何数据,将APP代码内置仅接受指定域名的证书,而不接收操作系统或浏览器内置的CA根证书

突破反代理

首先当我们的APK的检测机制为反代理时,我们该如何去进行一个绕过,这里他的判断机制是当检测到客户端启动代理时,不发送数据,那我们可以不使用模拟器的代理,而使用本机的代理工具去包含安卓模拟器去启动,再将代理工具的流量转发到我们的burp上,哪这样我们的流量走向就成了下图,模拟器中并没有设置代理,但是他的整个流量都会走proxifier,proxifier会将流量都转发到burp上面,从而达到绕过反代理的效果。




首先打开我们在内网渗透测试中经常使用的代理工具Proxifier,到配置文件中的代理服务器选项–>添加代理服务器–>服务器ip地址与端口为burp所监听的端口–>协议选择HTTPS,点击确定




在设置好代理之后,我们再来设置规则


点击确定之后,我们将夜神模拟器重启,可以看到数据包已经在传递了




这时我们再打开反代理的APK时,就可以看到我们的burp已经成功接收到了数据


突破证书校验进行抓包


那么如果APK是基于证书校验或者走了其他的比如SSL等协议,那这时候我们该如何去抓取该APK的数据包呢?


这里我们就可以尝试使用frida+r0capture+wireshark组合,使用frida和r0capture联动去抓取该APK的所有数据包,然后使用wireshark去进行分析该APK的流量详情。


首先各工具的下载地址为


https://github.com/r0ysue/r0capture

https://github.com/frida/frida/releases

https://www.wireshark.org/#download

首先安装Frida

本地安装firdra和firdra-tools,使用pip进行安装


pipinstall frida

pipinstall frida-tool

模拟器安装frida-server


这里在安装的时候需要注意以下两点


1、根据模拟器的位数去下载其相对应的frida-server脚本


在这里可以调用夜神模拟器路径下的nox_adb.exe去调用命令


nox_adb.exe shell //进入到模拟器bash视图

getprop ro.product.cpu.abi //查看位数信息



这里可以看到我们的模拟器系统为x86操作系统


2、frida-server的版本要与本机pip安装的版本一致


可以使用pip list来查看我们所安装的frida的版本信息,这里我们本地所安装的frida版本为15.1.22,那么我们的模拟器也下载15.1.22版本的frida-server就可以了




通过刚刚的基本信息之后,我们了解到,我们要下载版本为15.1.22,x86的frida,这里我们直接打开下载界面找到该版本进行下载即可,这里arm为真机使用版本,x86和x86_64为模拟器使用版本,这里我们下载frida-server-15.1.22-android-x86.xz文件即可




下载完成之后,我们将其放到夜神模拟器的bin目录下,使用Nox_adb.exe将其上传到模拟器中


nox_adb.exe push frida-server-15.1.22-android-x86 /data/local/frida-server



运行frida

OK,上传成功,接下来进入到模拟器的bash视图下,执行frida-server即可


nox_adb.exe shellcd /data/local/frida-server

ls -lh

chmod u+x frida-server



好,这里我们成功运行了frida-server,接下来就检查一下他是否正常运行并是否和我们本机的frida正常连接


模拟器中ps | grep frida-server,可以看到进程


本机中frida-ps -U or frida-ps -R可以正常返回




这里frida-ps -R报错,则使用adb forward tcp:27042 tcp:27042将流量转发出去




然后就是我们的最后一步,获取我们要抓取的APK包名,这里有两种查看方式,一种是在/data/data目录中存放这所有文件的包名,还有就是可以使用APK资源提取器去查看APK的包名,这里我习惯用第二种方式比较可视化一些




然后就可以启动我们的r0capture工具进行抓包分析,命令为


python r0capture.py -U -f 包名 -v -p 文件名.pcap

这时,r0capture就会自动启动该APK文件,并将我们在进行操作时的流量进行保存为pacp,当我们停止运行该APK后,就会在r0capture中看到命名的pacp文件




这里我们直接打开分析即可



这里就成功抓取到了我在进行验证时的数据包,成功绕过证书检测等机制,但是该方法有些弊端,就是所导出的数据包我们并不能将其进行修改,后续最佳的办法为frida+r0capture联动fillder和XPosed框架去绕过限制,但这里由于篇幅原因,下一篇再来说一说以下方法吧!


】【打印关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇Web常见的漏洞描述与修复方案 下一篇如何避免严重网络安全事故的发生?

立足首都,辐射全球,防御吧专注云防御及云计算服务15年!

联系我们

服务热线:13051179500 18910191973
企业QQ:1245940436
技术支持:010-56159998
E-Mail:xihedata.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解决防御与加速) 版权所有 增值许可:京B2-20140042号
售前咨询
公司总机:18910191973
24小时电话:010-56159998
投诉电话:18910191973
值班售后/技术支持
售后服务/财务
备案专员
紧急电话:18610088800