浅析APP代理检测对抗( 三 )


7.1、使用Burp透明代理 (1)安卓端设置
首先在设备上手动进行设置:将所有请求80、443端口的tcp流量进行nat转发到192.168.50.177(burp的监听地址)的对应端口上
adb shellsuiptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to192.168.50.177:80iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to192.168.50.177:443
查看当前规则是否成功添加
iptables -t nat -L
(2)代理服务器端设置
添加80和443的端口监听
在【】中设置端口,选中 【All 】并对【 】做出如下设置
to port - 如果配置了这个选项,Burp会在每次请求转发到指定的端口,而不必受限于浏览器所请求的目标 。
Force use of SSL - 如果配置了这个选项,Burp会使用HTTPS在所有向外的连接,即使传入的请求中使用普通的HTTP 。您可以使用此选项,在与SSL相关的响应修改选项结合,开展般的攻击使用Burp,其中,强制执行HTTPS的应用程序可以降级为普通的HTTP的受害用户的流量在不知不觉中通过代理 。
设置之后,此时burp就可对转发到这里的80和443端口的流量进行透明代理 。
注意:如果出现443端口被占用,查找进程kill掉即可 。经过测试,burp成功抓取到了请求包 。
这里不禁思考,如果是基于进行的数据转发,那么刚才的是否也内置了一些路由规则呢?查看一下开启时当下的规则
血泪避坑:网上出现了很多教程,最关键的规则写法不一,导致多次测试结果并不成功,如果将安卓终端的80和443端口同时转发到burp上监听的唯一一个端口则会出现连接错误 。根据burp官方文档说明为每个端口号设置监听器会更加稳定,也就是要设置两个代理监听 。
8.总结
根据不同的代码检测,也会有不同的应对方法,所以,遇到APP出现抓包闪退等问题,先逆向,查看源码,在通信处仔细进行分析,再针对检测代码进行绕过,才是正解 。本文提到的并不是固定的处理方法,如果文章有叙述不当,尽请矫正 。
9.参考链接