前言
本文是我在学习过程中的总结,希望可以被指导提议指正。
APP概况
app跟一个网站很像。
网站分为前端后端。
app就好像网站的前端一样,app不需要浏览器,而前端需要浏览器。
他们都需要服务器,也就是说,进行web渗透的理论能够拿到app渗透中来。
而对APP渗透又会多出一个对APP自身这个软件进行安全测试。
APP信息收集思路
1.从APP自身内部进行信息收集
即通过反编译,对代码进行审查从中获取有用信息
2.从APP外部进行信息收集
即通过抓包,从数据包中获取有用的信息
3.根据收集到的域名,对相关域名ip进行信息收集
内部信息收集
mobsf
通过mobsf进行APP分析。
他可以安装在服务器中,也可以使用mobexler这样的已经把他集成在其中的专门的系统中。
我这里用的是mobexler系统中的,我的服务器中也有,但是一用就死机,相对而言虚拟机中的还好一点。
点击启动后就可以用浏览器访问他绑定的端口上传apk文件进行分析
之后等待他分析完成就可以得到很多的APP信息。
这里面包含了服务器位置,可能出现漏洞的代码,反模拟器反***等代码。信息十分的全。
外部信息收集
抓包
但是对于APP来说,抓包相对来说还是比较困难的。
抓包主要有三个困难点:
1.反代理
2.证书校验
3.反模拟器
反模拟器
现象
现象就是我们用模拟器打开这个文件就会提示网络异常,即使我们有网络并且没有开启代理。
判断方法
我们用模拟器打开这个APP,会发现网络不可用。然后我们把它放到一个真实手机中再进行测试,如果能够正常访问,那么就说明他是屏蔽了模拟器,我们用模拟器是无法正常使用的。
(放到手机中前,尽量先用上面那个内部信息收集进行分析一下,保证没有恶意代码)
反制思路
因为我们完全可以使用真机进行测试,这些其实也没有太大的必要进行。但是以备不时之需吧。
1.尝试更换模拟器模拟的手机型号与配置
2.用真机进行测试
3.反编译他的代码,删除他判断虚拟机的代码。
反代理绕过
proxifer绕过法绕过。
常规代理检测思路
常规的代理检测大多是检测我们系统有没有开启网络代理。
而我们burp的抓包思路就是通过开启网络代理,把数据包发到哪个代理模拟服务器中,再发往目标而实现的。
这样我们就需要开启代理才能抓到包,而APP就能够检测到我们开启了网络代理。
proxifer抓包
proxifer是通过本机重定向,让数据包走到本机的其他抓包软件中,从而实现抓包。这也就是说,我们并不需要开启网络代理就可以抓包。
具体实现
我写在这篇博客中了,包含了一些案例和操作。
APP代理检测绕过------基于proxifier-CSDN博客
证书校验绕过
如果APP是https协议,那么必须在模拟器上安装好burp证书后才能进行抓包,否则就会出现burp没反应的情况。
我懒得写安装过程了,直接上我看的材料吧。
我写的这个文章的时候忽然从b站找到了这个。里面很多东西跟我这个文章很像,可以看一波。
Burpsuite--夜神模拟器抓包从入门到精通_哔哩哔哩_bilibili
证书校验的形式:
1.客户端,服务端都没有校验(无校验)
2.客户端检测,但是服务端不检测(单项校验)
3.客户端检验,服务端也检验(双向校验)
无校验的情况可以直接抓包。
单项校验
目前比较多的校验形式,检测速度比较快,不影响性能速度。
可以用Xposed(夜神中能直接搜到)配合JustMePlush绕过。
也可以反编译后删除对应的检测代码。
缺点:如果是双向校验就会失败,无法绕过。而且与双向校验的工具相冲突,使用本工具后用双向校验的工具就无法打开应用了。
双向校验
可以通过frida和r0capture进行绕过。
缺点:只能抓到发送过去的数据包,并不能对数据包进行更改。
具体操作:安卓APP反证书抓包(基于frida和r0capture[总结各种坑])_frida 抓包r0capture-CSDN博客
后续信息收集思路
解决抓包等问题后,尤其是经过mobsf对APP的分析之后我们就解锁了APP的域名,ip等信息,可以用收集web的方法去搜集相关的信息了。
后续渗透思路
APP跟网站其实很像。
网站常用的那些xss,sql等在APP中也可能存在。
其中还有很多逻辑漏洞等。
经过了抓包之后就可以进行更多的渗透测试了。
主要渗透思路分为两大部分:
1.对域名ip资产等进行渗透测试
2.反编译,对APP本身进行逆向
结语
希望这篇文章对您有帮助。其中的案例都是我现找的,不直接截图使用我学习的视频中的案例了。