还是把自己平时发现的,自认为有点意思的点罗列出来,班门弄斧,师傅们别笑话→.→
本次想分享的是关于自己遇到的一些关于app测试抓包遇到几种状况,同时也看到好多身边的小伙伴很多时候根本不会折腾这些方式,另外自己暂且还没有将技术探究到多深入,希望文中的点能让人有所可用。
首先,通过一张图我们可以看到我们日常抓包一直说的“设置代理”,“走代理”到底对于C/S或者B/S的交互来说意味着什么,扮演了什么样的角色。
接着,我们设置代理之后,通过导入证书之类的操作之后就可以抓到http、部分https的包了。我尝试用两张图来直观展示代理软件证书的作用(此处是导入burpsuite证书),浏览器导入证书之后访问网站的情况截图,其实这中间涉及到ssl的一些点,我把参考文章放到了最后,有需要的可以看下具体的认证过程,如下图所示:
那么测试过程中有一些情况是只“导证书、设代理”这些是不够的,需要在借助一些其他工具或者使用其他方式的。我们说说这些情况下我们可以做些什么突破或绕过限制:
如本标题所言,just trust me,我们自然要说的就是xposed的一个好用的模块JustTrustMe
**Point: disable** An xposed module that disables SSL certificate checking for the purposes of auditing an app with cert pinning
使用的话已经有特别多的文章介绍使用,以夜神的安卓模拟器为例,也就只需要我们做几个简单的操作:
你可以随便找一个常用APP测试即可,有很多部分App是使用此框架和模块后即可抓到包了。
与JustTrustMe类似的,SSLUnPinning自然针对SSLPinning而生,他也是Xpose下的一个模块。
**Point: bypass** Android Xposed Module to bypass SSL certificate validation (Certificate Pinning).
在安装xposed之后
结合上面的justtrustme模块使用,效果很好。
这里的代理软件指的场景是结合安卓模拟器,不在模拟器本地设置代理,通过宿主机将模拟器流量全部代理到抓包软件的方式。
Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。
Proxifier可以通过设置,将进程流量定向到特定的代理,简单说就是可以全局走代理,也可以单独进行走单独代理。网上文章倒是有不少。我想要说的就是针对模拟器不能设代理的问题,将夜神的流量代理到抓包软件去。
你应该见到过这几种提示吧?
“XXX请检查是否设置代理”
"XXX已停止运行"
应用运行检测本地是否设置代理,并终止应用运行,说白了就是不允许本机设置代理运行。OK,fine,那就不设置代理了呗。这时候Proxifier不就正好派上用场了么。
试了一下,Mac下不管是夜神还是Genymotion都是同一个进程。
找了半天,中间像下面的图中看到的,一直设置进程为“Nox App Player”,其实mac下的进程添加的时候应该是VBoxHeadless
那,如果应用App运行时不允许在模拟器运行,直接终止运行咋个办,那你可以试试虚拟机了,也就是VirtualXposed
VirtualXposed一开始应该是为了让像我一样的不想刷Xpose、获取root一顿操作的懒人设计的,像图中看到的克隆应用等功能,或者是真实物理机双开应用。模拟了一个虚拟环境,其中还运行着Xpose,还有自己可以安装其他模块。
对于测试而言,正好应用于众多应用App模拟器不允许运行的状况,VirtualXposed内运行应用,手机设置代理,避免了模拟器运行的检测,同时可以设置代理进行抓包测试。
傻瓜式操作,所有功能大概一看就知道了。
某次测试中,Android6以上机子使用VirtualXposed抓不到包,我Android6的红米note3可以
某次测试中,装了高版本的VirtualXposed导致Xpose module运行出现bug,无法脱掉App的壳儿,换了低版本的VirtualXposed可以。
这么长时间,被动扫描这么好的方式,可以结合在我们的抓包过程,
配合burpsuite插件passive-scan-client,将流量也全部抓发到chaitin的xray或者其他被动扫描服务
将Proxifier代理出的流量直接全部代理到xray进行扫描,毕竟Proxifier相当好用