之前说过一些信息搜集相关的东西(漏了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抓包的更多相关文章

  1. 【原创】医鹿APP九价HPV数据抓包分析

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! 医鹿APP九价HPV数据抓包分析 操作环 ...

  2. fiddler学习总结--手机端(APP/微信小程序)抓包

    步骤一.手机和电脑要在同一个局域网中 步骤二.完成fiddler的基本配置,与web端抓包一样: TOOLS-->options-->connections-->1.设置端口:2.勾 ...

  3. 【转】蓝牙ble app开发(三) -- 抓包

    原文网址:http://blog.csdn.net/lckj686/article/details/43156617 关于android 蓝牙app开发抓包的重要性在 android 蓝牙ble ap ...

  4. 转:APP开发浅谈-Fiddler抓包详解

    原文地址:http://www.luoxudong.com/?p=306 Fiddler抓包工具在APP开发过程中使用非常频繁,对开发者理解HTTP网络传输原理以及分析定位网络方面的问题非常有帮助.今 ...

  5. APP开发浅谈-Fiddler抓包详解

    Fiddler抓包工具在APP开发过程中使用非常频繁,对开发者理解HTTP网络传输原理以及分析定位网络方面的问题非常有帮助.今天抽点时间出来总结一下Fiddler在实际开发过程中的应用. 我开发过程中 ...

  6. 启xin宝app的token算法破解——抓包分析篇(一)

    为了提升逆向技术,最近几日研究了企cha查的sign和启xin宝的token算法,目前已经成功破解,两个app均是最新版,并将企cha查写成爬虫小demo,放在github上,详情查看 https:/ ...

  7. APP | edxposed框架+trustmealredy模块抓包小程序

    出品|MS08067实验室(www.ms08067.com) 本文作者:ketchup(Ms08067实验室 SRSP TEAM小组成员) 一.下载edxposed框架,由于安卓5.0版本以下的不支持 ...

  8. 手机app/h5页面http请求抓包调试

    1.抓包机器跟客户端手机连上同一wifi热点,最好是第三者提供的移动wifi,公司内网wifi网络访问有限制. 2.设置手机客户端http代理 三者关系图示:

  9. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(11)-Fiddler设置安卓手机抓包,不会可是万万不行的!

    1.简介 Fiddler不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求. Fiddler能截获 Android 和 Windows Phone 等 ...

随机推荐

  1. 『无为则无心』Python函数 — 28、Python函数的简单应用

    目录 1.函数嵌套调用 2.Python函数的简单应用 (1)打印线条 (2)函数计算 (3)打印图形 3.函数的说明文档 (1)函数的说明文档的作用 (2)函数说明文档的语法 (3)查看函数的说明文 ...

  2. 简单学习java内存马

    看了雷石的内存马深入浅出,就心血来潮看了看,由于本人java贼菜就不介绍原理了,本文有关知识都贴链接吧 前置知识 本次主要看的是tomcat的内存马,所以前置知识有下列 1.tomcat结构,tomc ...

  3. 『与善仁』Appium基础 — 1、Android系统的测试环境搭建

    目录 1.Android操作系统简介 (1)Android系统诞生 (2)Android系统的结构 (3)Android测试环境搭建整体思路 2.Java环境安装 (1)JDK8下载 (2)安装JDK ...

  4. SuperEdge 易学易用系列-SuperEdge 简介

    关于 SuperEdge SuperEdge 是由腾讯.Intel.VMware.虎牙直播.寒武纪.首都在线和美团等多家公司共同发起的边缘容器管理系统,它基于原生 Kubernetes.针对边缘计算和 ...

  5. [刘阳Java]_Spring AOP注解详细介绍_第8讲

    这节内容非常关键,我们会比较详细地介绍Spring AOP注解的使用 1. 要使用Spring AOP注解,必须满足如下的事项 导入Aspectj的jar.Spring3.0-AOP.jar.aopa ...

  6. File类与常用IO流第四章——IO字节流

    一切文件在存储时,都是以二进制数字的形式保存的,都是一个一个字节.无论使用什么样的流对象,底层传输的始终是二进制数据. 字节输出流 OutputStream java.io.OutputStream ...

  7. Python (paramiko) 连接Linux服务器

    目录 参考资料 Paramiko 安装 连接Linux 文件上传/下载 文件封装 其他 参考资料 https://www.liujiangblog.com/blog/15/ https://blog. ...

  8. mysql - 按条件统计

    在表中分别统计mt =0 和 mt>0 的个数 方法一:select count(if(mt=0,1,null)) as a,count(if(mt>0,1,null)) as b fro ...

  9. Spring,Spring-boot(一)

    前言 Spring作为java开源世界第一开源框架,已经成为事实上的Java EE开发标准. 最根本的使命就是简化Java开发. 不重复制造车轮 Don't reinvent the wheel .从 ...

  10. 第三篇--如何修改exe文件版本号和文件信息

    控制台程序添加版本信息方法: 项目右键 Add-->Resource-->选择Version-->new,然后就可以修改里面的信息了,重新编译一下就OK.