【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护

文章目录

  • 1. 写在前面
  • 2. 代理检测绕过
    • 2.1. Postern
    • 2.2. Drony
    • 2.3. ProxyDroid
    • 2.4. HttpCanary
  • 3. 客户端证书绑定绕过
    • 3.1. JustTrustMe
    • 3.2. JustTrustMePlus
    • 3.3. JustTrustMe++
    • 3.4. Frida脚本
    • 3.5. Objection
  • 4. 双向证书绑定绕过
    • 4.1. 绕过客户端
    • 4.2. 绕过服务端
  • 5. Root检测绕过
    • 5.1. magisk
    • 5.2. Frida
    • 5.3. Objection
    • 5.4. 非Root检测
  • 6. Frida检测绕过
    • 6.1. 使用frida提前注入
    • 6.2. 使用魔改Frida
    • 6.3. Magisk+riru+riru-gadget插件注入
    • 6.4. Virtualapp进行注入
  • 7. 框架抓包
    • 7.1. flutter
  • 8. 使用Hook发包函数方法

【作者主页】:吴秋霖
【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作!
【作者推荐】:对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》,对分布式爬虫平台感兴趣的朋友可以关注《分布式爬虫平台搭建与开发实战》
还有未来会持续更新的验证码突防、APP逆向、Python领域等一系列文章

1. 写在前面

  安卓APP抓包技能是安全、爬虫、测试等人员必备的一项技术!目前市面上的安卓应用防护手段越来越完善,抓包这一步往往阻止了很多人前进的步伐

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第1张图片

如上所示!在接下来的内容中,将围绕上图去介绍多种APP防护的绕过技术与一系列实用工具和方法

2. 代理检测绕过

  在APP抓包中,代理检测是一种安全机制。检测应用程序是否正在通过代理服务器进行网络请求,防止恶意用户或者非法用户通过抓包工具获取应用程序的数据

2.1. Postern

1、首先安装好postern全局代理工具后打开点击配置代理:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第2张图片

2、修改好配置信息后保存:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第3张图片

3、修改好配置规则保存:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第4张图片

4、最后使用BurpSuite或Charles配合抓取APP应用数据包,可以参考我之前的这篇文章:使用Python爬取快手视频与评论(App与Web端分析)

2.2. Drony

1、打开drony,右滑,滑到setting界面:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第5张图片

2、点击下面的wifi:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第6张图片

3、选择你抓包工具所在的网络wifi,这里我由于是在模拟器里,那肯定就只有这一个:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第7张图片
4、按次序如下配置,这里的ip和端口即是抓包工具所在pc端的电脑的局域网的ip,和抓包工具的端口,我这里是用的fiddler,端口为8889:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第8张图片

5、接着往下滑,filter default value 选allow all,然后点击Rules:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第9张图片

6、配置个过滤规则,右边按那个加号新建一个:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第10张图片

7、Action选Local proxy chain,然后Application选择目标app,前提你得在虚拟机里安装好目标app,且是能正常打开并请求数据的!最后记得保存一下:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第11张图片
8、以上就配置完了,然后一路返回,返回到settings里,然后左滑到LOG,点击下面的OFF,由OFF变为ON。就可以开始抓包了

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第12张图片

2.3. ProxyDroid

1、使用ProxyDroid,操作和Postern相似:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第13张图片

2.4. HttpCanary

1、打开HttpCanary,点击设置选择要抓包的应用:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第14张图片

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第15张图片

2、找到你要抓包的应用,先运行要抓包的软件,再运行HttpCanary,点击右下角开始抓包:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第16张图片

3、通过静态注入的方式改包:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第17张图片

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第18张图片

3. 客户端证书绑定绕过

  在APP抓包中,客户端证书绑定的目的以确保应用程序与服务器之间的通信是加密和双向验证的。这种机制使用了证书技术来验证应用程序和服务器之间的身份,并确保数据传输的安全性

3.1. JustTrustMe

1、在Xposed/EdXposed模块中找到JustTrustMe并勾选,然后重启生效:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第19张图片

2、点击JustTrustMe设置作用域:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第20张图片

3、在作用域中选择要抓包应用:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第21张图片

3.2. JustTrustMePlus

1、在Xposed/EdXposed模块中找到JustTrustMePlus并勾选,然后重启生效:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第22张图片

2、 点击JustTrustMePlus选择打开:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第23张图片

3、选择要hook的应用:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第24张图片

3.3. JustTrustMe++

1、在Xposed/EdXposed模块中找到JustTrustMe++并勾选,然后重启生效:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第25张图片

2、点击JustTrustMe++设置作用域:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第26张图片

3、在作用域中选择要抓包应用:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第27张图片

3.4. Frida脚本

1、使用开源脚本ssl-sslping脚本:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第28张图片

2、测试设备运行frida_server:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第29张图片

3、使用ssl-sslping脚本,hook测试应用:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第30张图片

另外也可自行分析apk。编写绕过检测的脚本!

3.5. Objection

1、测试设备运行frida_server:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第31张图片

2、启动objection:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第32张图片

3、使用命令进行注入应用:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第33张图片

4. 双向证书绑定绕过

  双向证书绑定(也称为客户端证书绑定)是一种安全机制,它确保了在应用程序和服务器之间建立的连接是安全和可信的。通过双向证书绑定,不仅服务器验证客户端的身份,而且客户端也验证服务器的身份。这种机制在防止恶意用户、中间人攻击或数据篡改

4.1. 绕过客户端

1、客户端绕过的话通过上述方法步骤来绕过证书绑定

4.2. 绕过服务端

1、解压apk从安装包中找.p12、.cer、.crt、.pfx、PKCS12、keyStore等后缀文件:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第34张图片

2、将应用拖进jadx中进行反编译,然后全局搜索.p12、.cer、.crt、.pfx、PKCS12、keyStore等等关键字:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第35张图片

3、转到代码位置查看详情(证书安装密码、其他密码等等信息),可以看到,pfx证书本地测试安装是需要有密码的:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第36张图片

4、有了key剩下的就好办了,将crt证书和key文件合并成“.p12”证书文件,合并的时候记得对证书进行加密(也就是加个证 书密码),不加密码burpsuite是无法导入的。
合并证书命令:openssl pkcs12 -export -inkey client.key -in client.crt -out client.p12:

在这里插入图片描述

5、最后将证书导入到burpsuite:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第37张图片

6、然后就可以成功导入证书,并且启用:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第38张图片

5. Root检测绕过

  APP中的Root检测是为了确定用户的设备是否已经被Root或越狱(针对iOS设备)。当应用检测到设备已经被Root或越狱,它可能会采取相应的措施,例如拒绝运行、限制功能或者提高安全性策略,以防止应用数据被篡改或窃取

5.1. magisk

1、使用magisk绕root检测,打开magisk,再开启magisk hide,然后点击设置:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第39张图片

2、开启hide root:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第40张图片

3、然后选择要屏蔽root检测的应用:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第41张图片

5.2. Frida

1、逆向分析APP,找到root检测函数方法再绕过,对客户端进行反编译,分析查找root检测函数方法:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第42张图片

2、对root检测函数方法进行hook,修改返回值为false:

Java.perform(function () {
	var PostLogin = Java.use("com.android.insecurebank2.PostLogin");
	PostLogin.doesSUexist.implementation = function(){
		console.log("\n Inside the ShowRootStatus function");
		return false
	};
	console.log("\n not detection bypassed");
});

3、使用frida注入脚本:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第43张图片

5.3. Objection

1、测试设备运行Frida:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第44张图片

2、启动Objection:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第45张图片

3、使用命令进行屏蔽root检测:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第46张图片

5.4. 非Root检测

1、上述所有办法无法绕过时,可以使用非root环境进行测试,hook的问题可以使用其它工具解决

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第47张图片

6. Frida检测绕过

6.1. 使用frida提前注入

1、对于简单的客户端防注入,可以使用frida -U -f appname -–no-pause进行提前注入绕过:

在这里插入图片描述

6.2. 使用魔改Frida

1、使用strong Frida进行注入,该版本frida已修改大部分Frida特征值,可以绕过部分防Frida注入检测:StrongFrida

2、然后上传到安卓系统并运行:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第48张图片

3、然后对目标进行注入:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第49张图片

6.3. Magisk+riru+riru-gadget插件注入

1、安装magsik+Riru +riru-gadget模块,进行Frida gadget注入。模块安装地址:Riru-FridaGadget

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第50张图片

2、使用方法:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第51张图片

6.4. Virtualapp进行注入

1、安装我改写的virtualapp,可以在非root环境中自动注入frida gadget,可以绕过部分加固后的应用进行注入。使用时先添加需要注入应用:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第52张图片

2、然后运行应用,再frida -U gadget 注入目标应用:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第53张图片

7. 框架抓包

7.1. flutter

1、使用flutter框架的应用无法使用系统的代理功能进行流量代理,需要使用ProxyDroid进行全局流量代理:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第54张图片

2、使用Frida绕过flutter证书校验,针对国投瑞银的Frida脚本注入命令:
frida -U -f 包名/应用名 -l andriod-flutter-ssl-ad.js --no-pause
脚本如下:

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第55张图片

8. 使用Hook发包函数方法

1、对APP进行逆向分析,查找应用的发包函数方法,进行hook toburp再进行修改。需熟练使用xserver或HTTP Decrypt工具,
HTTP Decrypt 提供了Finds Hooks模块,可以在不逆向不脱壳的情况下快速的找到APP所使用的加解密算法,而toBurp模块提供了直接使用APP内的方法进行加解密,而不需自己动手敲代码,对于整体POST加密更是提供了自动化加解密功能,可以实现Burp一条龙,Burp Scanner ,Intruder自动加解密

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第56张图片

案例:某银行app使用阿里weex框架进行开发的,使用各种办法无法通过代理截获数据包,这时可以分析应用发包函数方法进行hook再转发到burp进行修改

【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护_第57张图片

最终分享一个万能的终极大法:自己分析、自己研究、自己Hook**

你可能感兴趣的:(Python爬虫实战,android,APP抓包,移动安全)