APP渗透测试之安卓APP抓包
之前说过一些信息搜集相关的东西(漏了APP没讲),按照渗透测试的完整流程,我作为测试,测个APP,也很合理吧
既然能用burpsuite测试web,那就能用burpsuite测试APP(有大佬自称用burpsuite行走江湖多年,靠插件和经验打遍天下无敌手)
本次演示采用夜神模拟器+burpsuite v2020.11 (啊当然不是因为夜神最niubility,而是我手头就有它了 ,如果要抓的APP不能在夜神上运行、或者框架安不了,确定是模拟器的问题,就换一个模拟器,什么mumu、雷电、天天、逍遥...)
系统为安卓7 (版本太低的不予讨论)
为了抓HTTPS的包,没安装证书的,自行下载、导入、安装(简单说一下,比如浏览器安装证书,如果burpsuite监听的是本机的8080端口,那就浏览器访问http://localhost:8080,下载CA证书,然后在浏览器中导入cacert.der,安到受信任的根证书颁发机构,直到看到PortSwigger CA,证明导入成功)
在模拟器配置,长按网络修改网络,采用代理,IP为本地主机IP,端口也设一个,啥都行比如8081
然后在burpsuite中新建一个绑定代理,选择本机IP和刚刚写的端口
最终变成
然后在夜神模拟器中用浏览器访问192.168.25.203:8081下载证书(嫌安全警告弹得烦,也可以在本地机器设代理后上访问http://192.168.25.203:8081,下载证书后再共享到模拟器中安装)
下载CA证书,然后打开模拟器中“下载”可以看到证书
别忘了把后缀从.der改成.cer(der安不了),然后拖到SD卡的路径中,到设置-》安全-》从SD卡安装,选择这个证书
为证书起个名字,设置PIN码,随便搞一个记得住的,安装成功之后会提示安装成功
完活儿,然后正常来说就可以用burpsuite抓一些模拟器中APP或者其他什么的数据包了
but,这只是比较理想的情况
实际上会出现各种问题:
1.本机不允许设置网络代理
像我最初做的例子,就属于开了模拟器本机的代理,那有些APP就是会检测代理,你设置了本机代理我干脆就不让你正常运行!怎么搞嘛
常见的一种方法是在模拟器外部抓包来规避检测,比较常规的办法就是利用proxifier(当然,先要按照之前的步骤安证书,区别在于这回不用手动修改模拟器网络代理配置)
配置代理服务器,选本机IP,端口8080(burpsuite怎么写,这里就怎么写,burpsuite默认监听8080),HTTPS
再配置规则,名字随便起,把夜神模拟器进程Nox.exe(不一定就是这个,看你机器上显示的是什么就写什么)导入规则,代理选之前配的
启用此规则
然后用burpsuite即可绕过限制抓包(吧)
模拟器-》proxifier-》burpsuite
2.APP认证机制
有一个问题:HTTPS抓包一个朴素的思想是什么?
答:MITM,对客户端伪装成服务端,对服务端伪装成客户端
这里有一篇介绍HTTPS认证原理(单向认证、双向认证)的文章,总结了一下 https://www.cnblogs.com/yaphetsfang/articles/12858356.html
但是有些APP会采用SSL-Pinning 机制来进行抵抗抓包
那么,如何绕过SSL-Pinning机制呢?(很多东西,模拟器上是用不了的,必须真实手机环境)
(1)老版本安卓系统(7以下)可能会没有针对第三方证书的限制,无此机制限制,可按照常规办法抓包(但前提是APP能在上面正常运行)
(2)或者有root权限,能把这些个第三方证书安到系统默认预置的证书区里面
(3)再或者 Xposed+JustTrustMe、VitualXposed+JustTrustMe
VitualXposed可以在不需要设备root的情况下,修改App的行为 https://vxposed.com/
Xpose框架是一款可以在不修改APK的情况下影响程序运行或修改系统的框架服务 https://github.com/rovo89/Xposed
JustTrustMe是Github上面的一个开源项目,是xposed中的一个模块,用于禁止SSL证书验证 https://github.com/Fuzion24/JustTrustMe?utm_source=testingpai.com
使用较为复杂,请参考:
https://blog.csdn.net/u011215939/article/details/95461286
http://www.yxssp.com/23278.html
(4)frida,仍然是比较复杂,参考:
https://xz.aliyun.com/t/6102
https://www.cnblogs.com/Eeyhan/p/12916162.html
(5)反编译APK
有壳先脱壳,我等渣渣脱壳只能用大佬写的工具
之后用工具反编译,之后。。。之后我就不会了(理直气壮),安卓一窍不通,正常来说需要修改内容
哪位大佬给条明路
3.root检测问题
很多模拟器默认root(先不讨论这玩意有没有实际效果),这可能导致部分APP被限制。。。功能,打不开、闪退,更没法抓包
要么关掉root
要么绕过root检测,检测可能会通过检测系统版本、看看有没有安什么root管理器啊、需要root的框架啦什么的
相关软件有很多,但本菜鸡安卓逆向玩的不好,所以这里就只是提一下,具体方法参考其他师傅们的文章吧
剩下的,就基本上和web测试一样了,该用代理池用代理池,该用扫描器用扫描器
未经允许,禁止转载
APP渗透测试之安卓APP抓包的更多相关文章
- 【原创】医鹿APP九价HPV数据抓包分析
本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! 医鹿APP九价HPV数据抓包分析 操作环 ...
- fiddler学习总结--手机端(APP/微信小程序)抓包
步骤一.手机和电脑要在同一个局域网中 步骤二.完成fiddler的基本配置,与web端抓包一样: TOOLS-->options-->connections-->1.设置端口:2.勾 ...
- 【转】蓝牙ble app开发(三) -- 抓包
原文网址:http://blog.csdn.net/lckj686/article/details/43156617 关于android 蓝牙app开发抓包的重要性在 android 蓝牙ble ap ...
- 转:APP开发浅谈-Fiddler抓包详解
原文地址:http://www.luoxudong.com/?p=306 Fiddler抓包工具在APP开发过程中使用非常频繁,对开发者理解HTTP网络传输原理以及分析定位网络方面的问题非常有帮助.今 ...
- APP开发浅谈-Fiddler抓包详解
Fiddler抓包工具在APP开发过程中使用非常频繁,对开发者理解HTTP网络传输原理以及分析定位网络方面的问题非常有帮助.今天抽点时间出来总结一下Fiddler在实际开发过程中的应用. 我开发过程中 ...
- 启xin宝app的token算法破解——抓包分析篇(一)
为了提升逆向技术,最近几日研究了企cha查的sign和启xin宝的token算法,目前已经成功破解,两个app均是最新版,并将企cha查写成爬虫小demo,放在github上,详情查看 https:/ ...
- APP | edxposed框架+trustmealredy模块抓包小程序
出品|MS08067实验室(www.ms08067.com) 本文作者:ketchup(Ms08067实验室 SRSP TEAM小组成员) 一.下载edxposed框架,由于安卓5.0版本以下的不支持 ...
- 手机app/h5页面http请求抓包调试
1.抓包机器跟客户端手机连上同一wifi热点,最好是第三者提供的移动wifi,公司内网wifi网络访问有限制. 2.设置手机客户端http代理 三者关系图示:
- 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(11)-Fiddler设置安卓手机抓包,不会可是万万不行的!
1.简介 Fiddler不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求. Fiddler能截获 Android 和 Windows Phone 等 ...
随机推荐
- sqlite用法总结
p.p1 { margin: 0; font: 16px "Helvetica Neue"; color: rgba(0, 0, 255, 1) } p.p2 { margin: ...
- buu pyre
一.下载附件是是pyc的字节码文件,找个在线网站反编译一下 思路还是挺清晰: 先逆着求出code, 这里就是求余,有点麻烦,那个+128%128其实没啥用的,省略就好了 算法里面再处理一下细节,跑一下 ...
- 使用Hugo框架搭建博客的过程 - 主题配置
前言 博客部署完成后,恭喜你可以发表第一篇:Hello world!但是LoveIt这么好用的主题,不配置一番可惜了. 基本功能配置 主题配置最好参考已有的配置,比如LoveIt作者写的介绍,还有主题 ...
- spring boot 集成mqtt
1.pom文件中添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...
- Leetcode3.无重复字符的最长子串——简洁易懂
> 简洁易懂讲清原理,讲不清你来打我~ 输入字符串,找到无重复.最长.子串,输出长度 个车站,从左到右编号1~n.有M1辆列车从第1站开始往右开,还有M2辆列车从第n站开始往左开.列车在相邻站台间所需的运行时间是固定的,因为所有列车的运 ...
- 搭建NFS服务
说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建yum仓库的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需要查看相关软件版本和主 ...
- windows上安装python3里没有pip问题,解决办法!
安装python3: 1.下载python:https://www.python.org/downloads/ 2.安装: 3.安装完成进cmd里验证,但发现无pip包 所以操作步骤如下: 1.下 ...
- Orchestrator+Proxysql 实现自动导换+应用透明读写分离
前面一篇博客我介绍了如何通过Orachestrator+脚本实现自动导换. 这一章,我来演示一下如何通过Orchestrator+Proxysql 实现自动导换+应用透明读写分离 总体架构 可选架构1 ...
- ts踩坑笔记
1.react中 this.el 报错 Property 'el' does not exist on type,添加el: any; 2.使用window.xx编译总是报错,用下面方法解决 let ...