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 等 ...
随机推荐
- 使用RestTemplate发送post请求,请求头中封装参数
最近使用RestTemplate发送post请求,遇到了很多问题,如转换httpMessage失败.中文乱码等,调了好久才找到下面较为简便的方法: RestTemplate restTemplate ...
- python之学生信息管理系统
1 #!usr/bin/python 2 #encoding=utf-8 3 4 #1. 打印学生管理系统界面 5 def printStd(): 6 print ("*"*50) ...
- Elasticsearch-02-入门:集群、节点、分片、索引及常用API
2. 基础入门 2.1 重要概念 2.1.1 集群和节点 1)cluster Elasticsearch集群是由一个或多个节点组成,通过其集群名称来进行唯一标识.节点在搜索到集群之后,通过判断自身的 ...
- WPF教程十五:数据模板的使用(重发)
数据模板 数据模板是一段如何显示绑定在VM对象的XAML代码.数据模板可以包含任意元素的组合,基于Binding来显示不同的信息. 在实际的开发中数据模板的应用场景很多,同样一个控件可以根据不同的绑定 ...
- WPF教程七:通过App.xaml来了解Application类都能干什么
这个章节来了解Application类,我考虑了一晚上决定跳过控件类相关的学习,因为控件如果只是入门的话每个控件F12跳过去看一下属性.事件就能大致了解的差不多,而且控件比较多,每个都这样看一遍,感觉 ...
- C语言:预处理命令总结
预处理指令是以#号开头的代码行,# 号必须是该行除了任何空白字符外的第一个字符.# 后是指令关键字,在关键字和 # 号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令,该指令将在编译器进行 ...
- Hive——元数据表含义
Hive--元数据表含义 1.VERSION -- 查询版本信息 Field Type Comment VER_ID bigint(20) ID主键 SCHEMA_VERSION va ...
- python之数据驱动Txt操作
一.新建数据Mail163.txt文本 二.Txt_Mail163.py脚本如下: import unittestfrom selenium import webdriverfrom selenium ...
- Requests方法 -- Token获取操作
获取token和code流程如下:a.先登陆抓包查看post(提交表单操作)头中是否有token和code关键字b.已知步骤a中出现了token和code,不登录前刷新登陆页面,查看response中 ...
- Docker的学习体验
由于兴致使然,便想学习一点Docker技术.于是,写了这篇学习Docker的体会.笔拙,见谅. 第一件事--把网线插上 相信很多人都被官网的<Sample application>的 do ...