绪论
如果各位师傅觉得有用的话,可以给我点个关注~~ 如果师傅们有什么好的建议也欢迎联系我~~ 感谢各位师傅的支持~~
正文部分
在这个手机时代,越来越多的人的焦点放在手机上,所以很多程序也从原来的web程序转变为了app程序, 所以对于web渗透工程师,只会web的抓包测试是不够的,还要学会对app进行抓包并且分析。本文章主要是围绕burp无法抓app包的原因以及如何测试进行分析。
早期在i春秋的投稿文章,本篇文章作者fkalis,本文属i春秋原创奖励计划,未经许可禁止转载,文章链接:https://bbs.ichunqiu.com/thread-63357-1-1.html
没有走web协议
原因:
在web测试中大多数师傅采用的抓包工具都是burp suite,但是这款工具只适用于抓web协议的数据包, 在面对非web协议的数据包时候,使用burp suite是无法进行抓包的,又由于有的app本身的通讯并不使用 web协议,而采用的是tcp等协议,使用burp suite自然无法抓到数据包。
如何解决(这时候如何进行app测试)
1. 使用wireshark,科莱网络分析系统等软件进行分析
wireshark,火绒科莱网络分析系统的原理和burp suite 不一样,burp suite是基于代理来进行抓包分析的, 而wireshark,和科莱网络分析系统是基于网卡的进行抓包,他不仅会把web数据的流量进行抓取,也会把 其他协议的数据进行抓取
缺点
1.无法实时修改数据包
2.数据包比较杂乱,对于wireshark语法不熟悉的人,查看起来比较困难
wireshark
科莱分析系统
2. 使用app的api提取
虽然有的app他在数据传输时候没有使用web协议,但是他可能会有app内可能会存在着某些api接口,我们可以通过软件提取app内的api接口,然后转为对api的web测试,这种方法就可以将app程序的测试转为web的测试,接下来就可以使用web的测试思路进行测试,有web就进行web测试,没有web就进行服务端口的测试。
可以使用ApkAnalyser等工具进行apk的提取
3.逆向破解
当上述方法都无法可以尝试使用逆向破解的方法进行测试,这部分是属于逆向部分的知识了,我也知道的比较少,只能推荐一个比较好用的工具 ---安卓修改大师
由于我的修改大师环境有问题,无法打开,就从网上找了一个图
走web协议但是任然无法使用burp抓到包
原因:
1.app对代理有检测,实现了反代理功能,导致无法使用burp suite抓包
2.app对证书有校验,当证书不对时候,网址无法访问
3,app对模拟器有检验,设置了反模拟器,使用模拟器无法打开app
如何解决
如果想要解决上述三个问题,就需要进行检验的绕过。
绕过的前置知识
1. 什么是app hook
hook又叫钩子,用最简单的话来说,就是对app的代码进行调用或者篡改APP代码
2. 如何以web测试的思路去看对app
其实可以讲app类比于web的前端页面,而app内运行的代码(本质是java),
可以类比于前端的js代码而使用hook去修改app的代码就类比于修改使用
再浏览器去修改js的代码,实现客户端检测的绕过。简单来说,
运行再手机的app可以类比于运行再浏览器的前端代码,可以通过客户端
直接进行修改
具体的绕过思路
-
app检测证书和代理的原理
(其实他的原理和web是一样的,分为客户端和服务器端)
(1)在客户端和服务器端都不检测 ---没有检测
(2)在客户端有检测,在服务器端没有检测
(3)在客户端和服务器端都有检测
-
绕过姿势
(1)在客户端和服务器端都不检测
相当于没有检测,使用正常测试思路测试就行.
(2)在客户端有检测,在服务器端没有检测
I. 万能方法(需要一定的hook代码编写功能)使用hook,修改app的代码
面对在客户端检测的目标,也就是通过你下载app,app在你手机上运行检测代码
就相当于web的前端js,所以可以采用hook,hook简单来说就是用就是去调用或者
篡改APP代码,也就是相当于把web里面检测的js代码修改了,这就实现了绕过。
Xposed&JustTrust就可以实现hook,
这种方法可以同时绕过app的客户端检测证书和客户端检测代理
hook具体的可以参考这篇文章:
注意:在逍遥模拟器内的xp框架无法直接安装,需要从本地安装然后再进行上传,夜神等其他模拟器,直接从应用市场下载即可。
(23条消息) xposed+justTrustme使用与分析_猫星人不会笑的博客-CSDN博客
II.绕过客户端检测代理还有一种方法,由于检测代码是在客户端运行
也就是他只能检测你手机的配置等来判断你有没有设置代理,
这时候就可以采用模拟器+Proxifier转发+burp suite实现绕过改包。
Proxifier转发他的实现是通过网卡的转发来实现的,不需要你在手机上
配置代理,所以app运行的时候不会检测到代理的配置。等他经过了网卡后
再通过Proxifier转发到burpsuite。
绕过客户端检测代理还可以使用手机本身的抓包工具,
直接再手机上面抓不需要设置代理
不使用proxifer代理的情况
在模拟器内配置代理
1.在手机链接wifi的地方长按就可以打开这个界面,
2.将代理设置为手动
3.主机名写你电脑的ip
4.端口写burpsuite监听的端口
burpsuite设置
上述过程需要在手机上设置代理,这就会导致app客户端可以通过检测手机的代理设置
来判断手机是否开了代理,检测出开了代理,就阻止app的访问,所以我们需要通过
proxifer进程代理来实现绕过,进程代理就相当于在电脑进程内进行转发,
而不是由手机直接设置的代理
使用proxifer代理的情况
先要下载proxifier软件
选择代理服务器进行代理的配置
设置和burp suite监听端口一样的端口
burp suite监听端口
设置完成后可以通过检查判断是否可以成功连接
配置代理规则
点击添加
然后再应用程序中选择模拟器的进程,以及安装目录的exe所在位置
并且将动作设置为刚刚设置的代理服务器
完成上述即可实现不在手机上配置代理就可以抓包
注意:在设置应用程序的时候一定要将模拟器的进程,以及安装目录的exe全都选
了,不然有可能导致无法抓包!!!!
III.反编译逆向提取证书重编打包这个和hook的原理是一样的
通过修改app的代码,讲检测的代码去除或者修改,再重新打包,实现绕过。
(同时绕过app的客户端检测证书和客户端检测代理,还可以绕过部分
(例如以xxf来判断代理的服务器验证,只需要hook处理了客户端验证,
然后通过burp抓包改xxf请求头即可)服务器验证代理,如果是其他的只
能使用wires hark和r0了)
IV.直接通过wireshark抓包,他是直接从网卡抓包,不需要设置代理,
也不需要设置证书。
V.frida+r0capture.py感觉和wireshark差不多,而且比较麻烦,
(3)在客户端和服务器端都检测
由于对方服务器还有检测,所以无法通过hook进行绕过,有服务器的检测我还没有很好的方法进行绕过,
知识补充
在使用模拟器进行测试时候,有可能会发现模拟器无法正常打开app,这是由于app设置了反模拟器功能,所以我们需要绕过这个反模拟
具体实现
1.改模拟器
修改模拟器的某些特征代码,让app无法识别模拟器,就可以实现绕过
2.xp框架hook,Xposed&JustTrust就可以实现hook
使用xp框架将app识别模拟器的代码进行修改,从而实现绕过。
知识星球
具体的星球介绍可以看一下这里~~
注意:帮会和星球是为了考虑大家的方便习惯,福利和内容是一致的,后续更新也是一致的~~~只需要进行一次付费就可以啦~~(建议还是使用帮会)项目合作
有甲方大大,或者厂商师傅,或者其他的项目,欢迎咨询,我以及团队始终将客户的需求放在首位,确保客户满意度~~
目前主要的服务范围:
1. 渗透测试、漏洞扫描
2. 代码审计
3. 红蓝攻防
4. 重保以及其他攻防类项目
5. 红队武器化开发以及蓝队工具开发
6. CTF相关赛事的培训等
7. cnvd,cnnvd,edu,cve等证书
8. nisp,cisp等证书