APP攻防-Frida反证书抓包&移动安全系统&资产提取&评估扫描
目录
APP攻防-Frida反证书抓包&移动安全系统&资产提取&评估扫描
#知识点:
#章节点:
#核心点:
#内在-资产提取-AppinfoScanner
#内在-安全评估-MobSF&mobexler
#外在-证书抓包-frida-server&r0capture
环境配置过程:
1、本地安装Frida
2、模拟器安装Frida
3、转发并启动Frida
编辑
#知识点:
1、资产提取-AppinfoScanner
2、评估框架-MobSF&mobexler
3、抓包利器-Frida&r0capture
#章节点:
1、信息收集-应用&资产提取&权限等
2、漏洞发现-反编译&脱壳&代码审计
3、安全评估-组件&敏感密匙&恶意分析
#核心点:
0、内在点-资产提取&版本&信息等
1、抓包点-反代理&反证书&协议等
2、逆向点-反编译&脱壳&重打包等
3、安全点-资产&接口&漏洞&审计等
#内在-资产提取-AppinfoScanner
AppinfoScanner一款适用于以HW行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具,可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态WEB站点中关键的资产信息并提供基本的信息输出,如:Title、Domain、CDN、指纹信息、状态信息等。
首先说一下内在和外在,内在提取就是说在源码中提取到的相关信息,而外在提取比如说burp抓包抓到的数据包就是外在提取。他们两个的区别就比如说一个网站源码它所支持的功能不一定都会表现出来,就好比文件上传这个功能,可能代码里面写了但是没有启用,所以网站就没有文件上传的功能。可以说内在就是看源码,外在就是看它表现的东西。
这个工具AppinfoScanner是前年刚出的一个项目,在第十节的时候说过了具体用法。没有下面要讲的工具所提取到的信息全面,不建议作为主力工具使用。
我们直接启动这个工具可能会报错,因为需要py的一些模块,提示缺哪个模块就去py目录下pip3 install 模块名
这里我们把想要做资产提取的app放到该工具的根目录下,直接输入第一条命令即可。
这里我测试的是在商店里面随便下的一款游戏叫至尊传说,然后输入命令之后,看到下面就代表正在进行资产提取。
最后完成之后会在该目录下生成一个表格和txt,我们直接看表格,txt不太好看。可以看到他把app的相关url、域名、IP等等列举了出来。
#内在-安全评估-MobSF&mobexler
移动安全框架 (MobSF) 是一种自动化的一体化移动应用程序 (Android/iOS/Windows) 渗透测试、恶意软件分析和安全评估框架,能够执行静态和动态分析。MobSF 支持移动应用程序二进制文件(APK、XAPK、IPA 和 APPX)以及压缩源代码,并提供 REST API 以与您的 CI/CD 或 DevSecOps 管道无缝集成。动态分析器可帮助您执行运行时安全评估和交互式仪器测试。
Mobexler是基于Elementary OS的定制虚拟机,旨在帮助进行Android和iOS应用程序的渗透测试。Mobexler预装了各种开源工具,脚本,黑客必备软件等,这些都是安全测试Android和iOS应用程序所必需的。
可以说mobsf就是一款类似AWVS的工具,专门对app进行测试的,除了会对app的相关漏洞进行分析,还会对资产进行提取,可以说很方便了。而Mobexler则是一款类似kali的虚拟机,里面集成了很多工具,大多是针对app的,MobSF也包含其中。我建议直接装好Mobexler,就比较方便了。
直接用mobsf的话就是利用docker输入两条命令即可:docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8008:8000 opensecurity/mobile-security-framework-mobsf:latest
我这里还是建议用Mobexler,因为比较方便。如果说要自己配置这个虚拟机的话需要给他磁盘大于50g,我这里直接用到迪总给的,所以下载之后vm打开即可。
进来之后会发现这里不仅有burp还有mobsf以及等会会学到的frida等等工具,还有用于ios的工具。
这里我们打开mobsf之后,直接在虚拟机浏览器输入127.0.0.1:8000即可打开。也可以来到真实机输入虚拟机ip加8000端口打开。把想要进行测试的apk放进去即可。
弄完之后就会出现一个页面,可以看到各种各样的信息,还有安全漏洞以及服务器地址等等
#外在-证书抓包-frida-server&r0capture
app抓包的时候如果能抓到,那就没啥事了,如果说不能抓到的话,有下面两个原因,我们在抓app的包的时候,直接进去就卡死或者说什么也不显示又或则没网。只要是显示不正常的,那说明我们用burp不行了,所以接下来要介绍这个项目来解决抓不到包的问题
-r0capture仅限安卓平台,测试安卓7、8、9、10、11 可用 ;
无视所有证书校验或绑定,不用考虑任何证书的事情;
通杀TCP/IP四层模型中的应用层中的全部协议;
通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等、及它们的SSL版本;
通杀所有应用层框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;
无视加固,不管是整体壳还是二代壳或VMP,不用考虑加固的事情;
-Firda 是一款易用的跨平 Hook 工具, Java 层到 Native 层的 Hook 无所不能,是一种 动态 的插桩工具,可以插入代码到原生 App 的内存空间中,动态的去监视和修改行为,原生平台包括 Win、Mac、Linux、Android、iOS 全平台。
环境配置过程:
1、本地安装Frida
pip install frida
pip install frida-tools
这个就是我们需要在py目录下打开cmd利用pip安装这两个库,这里要注意安装frida的版本。(安装太慢建议更换pip源)
这里我下载的是16.0.18的frida,那么等会给模拟器下载的时候也要下载相同版本的frida。
2、模拟器安装Frida
这里使用的是夜神模拟器,逍遥不行,建议就用夜神。
注意:版本要与本地Frida一致
下载:Releases · frida/frida · GitHub
真机:ARM版本及位数 模拟器:无ARM的位数
我们这里是模拟器,所以就下载不带arm的版本即可,并且版本号要于电脑的frida版本一致。下载的是server就是服务器版本的,我的模拟器是32位的,所以就下载的图片中的第三个。
如果说你不知道你的模拟器是32位还是64位,我们来到模拟器的bin目录用cmd打开,输入命令getprop ro.product.cpu.abi连接到模拟器
前提要打开模拟器,因为我输入命令提示不是批处理文件,所以我直接把这个exe拖进去了。可以看到这里是32位的,就下载的32位的服务版本的frida
下载好之后解压,然后把该文件放到模拟器的bin目录下。
来到cmd这里输入下列命令,这个adb push命令就是把电脑文件发送到模拟器里面,不可以直接粘贴。
来到模拟器这里就可以看到这个服务器版本的frida已经上传上去了。
接下来我们就来运行它,相当于是把模拟器作为服务端,然后在本机去连接它。
首先切换目录来到local目录下,接着我们直接运行的话会提示没有权限,我们直接把权限弄成777,也就是可读可写可执行。运行之后没反应,那大概率就是运行成功了。
我们在打开一个cmd输入命令ps | grep frida 出现下面的页面就代表运行成功了。
3、转发并启动Frida
接下来我们来到本机打开cmd,输入下列命令查看模拟器进程,出现如下提示说明连接成功了,下面的进程就是模拟器的进程。
然后输入-R的命令看看能不能中转成功,这里不能中转成功
来到刚才的bin目录利用adb设置转发端口之后,再次输入-R命令,看看能不能转发成功。
这里再次输入,能够成功转发。
这里我们打开游戏中心之后,再次输入-R命令发现多了游戏中心,说明能够抓取到。到此为止就保证环境已经配置成功了。
首先在模拟器/data/data这个目录下面是关于各个软件的包名,但是无法知道哪个是哪个,这里我们使用工具apk资源提取器,把这个工具拖到模拟器里面,直接打开。就可以知道包名了。这里是用探探app来演示,这个app如果直接用burp抓包是抓不了的,这里我们利用这个frida配合脚本来抓。
这里使用py脚本来进行抓包,用的是attach模式,把抓到的包保存为pcap文件,这个文件格式是wrieshark的保存文件,因为抓到的包它不止有http和https的协议,而wrieshark是支持很多协议的。
这里输入命令 python r0capture.py -U com.p1.mobile.putong -v -p tantan.pcap直接就开始抓包了,我们点开探探之后就会发现抓到了很多数据包。
然后我们进去之后随便点点就退出来等待抓包结束,因为数据包很多,所以建议不要在软件里面停留太久,我这停了一会数据包就142兆了。完成的数据包会在当前脚本目录显示
然后我们利用wrieshark打开这个文件即可(wrieshark工具的安装在第三节的时候安装了),打开之后就是各种协议的数据包,而探探用burp是抓不了的,也就说有的app用burp是抓不了包的,需要采用这种方式去抓包。下节课我们会讲怎么把这个联动到burp上面。这个wrieshark能抓不同协议的数据包,而burp、茶杯、fridder则是只能抓web协议,就是http/s,但有的数据包它不走web协议,但他也可能有安全问题,这个时候我们就要用到这个wrieshark了。
移动攻防主要为下面两个方面,以第一个渗透测试为主,而逆向破解这一块的话在本期课程也是有所涉及。主要是因为这个逆向破解这一块迪总也不是特别会,再加上它有这个壳,有点还是商业壳脱不了,所以就不会讲太多。