从网上的资料来看,web应用渗透测试的资料真的很多,说不多的一定是门外汉,自己查去!但是最近因为公司项目的原因,我接触了APP渗透测试。
这里就要吐槽一下了,老板们真觉得黑客是万能的,似乎啥都能干,只要涉及到破解两字,你的缘分就到了。废话不多说,我们聊聊移动应用渗透测试。
众所周知,web应用渗透测试的流程是什么?山顶的朋友们回答一下,什么不知道!?
信息收集 -- 漏洞挖掘 -- 漏洞利用 -- getshell
提权 -- 权限维持 -- 清理痕迹 -- 撰写报告总结
此乃web应用渗透测试流程,但是当我准备运用这套思路对APP应用进行渗透时........哦豁...APP信息收集?
我发现这套思路流程完全运用不上,于是上网查了很久,始终是没有一个比较明确的渗透测试流程。现在正在写这篇文章的我已经研究了好几个月了,也得出了一定的心得,我总结一下我所认为的APP渗透测试流程。
1. 四大组件渗透 2. APP应用层渗透 3. 反编译
第一步四大组件渗透的渗透测试可能会得到一些敏感数据信息,尤其是Content Provider层组件。使用Drozer安全测试框架进行测试,扫描Content Provider是否有攻击面,如果存在,那可以尝试Content Provider注入。如果没有那就要进行APP应用层渗透了。
第二步APP应用层渗透的渗透测试思路可以运用web渗透测试流程的,但是有所区别,我们并不能用漏洞扫描器去扫APP,这做不到。
那么我们只能进行抓包分析,找到一些交互点,然后抓包分析参数,挖掘是否有注入漏洞,敏感信息泄露漏洞。(这里补充一下,我们渗透的目标是getshell)
第三步反编译这一步是不是办法中的办法,可能这么说很幼稚,因为逆向工程在渗透APP当中非常重要,但是从时间成本来看,需要的时间很长,逆向可并不是一件简单的事情。
同时我们的目的是什么?是getshell!那我逆向出来后能getshell吗?不能!我们只能二次利用,做一个山寨版的,然后写入恶意代码再二次放入市场,等用户下载了山寨版后,就能获取用户的一些信息。
但问题是我们的目的不是这个啊!所以说,正常给公司打工的网络安全从业者,通常不需要做到反编译这一步,这通常由专门的逆向工程师去做。
上面的总结就只有这三点,可能有人说还有什么客户端程序安全测试、应用完整性校验、应用权限测试、组件通信分析、密码软键盘安全性测试等等,还有很多,但是但是但是!我当初把这些资料看完!发现对我渗透一点意义都没有啊!最后我还是乖乖的抓包分析各参数,反而会有进展。
若有不认可我的观点的可以看看OWASP Mobile Top 10 -- 10大移动应用安全漏洞
这里还要提一点,其实在第二步当中的APP应用层渗透和web渗透还是有相同地方的,这要你实践后就知道了。
APP肯定有前端的后台,仔细观察数据包收集信息,收集一级域名,再像Web一样进行子域名挖掘,查看DNS记录等,我们可以拿到其后台的地址。
但是获取后台只是第一步,还是要找SQL注入、文件上传、远程代码执行等漏洞,这些漏洞能帮助我们getshell,当然不是说其它漏洞没用,哪些有用哪些没用这是经验之谈了。
当然也有可能是我技术尚浅,若是各大表哥们有更好的思路、手法,希望能发表文章或投稿。