APP攻防--反模拟器&反代理&反证书&真机逃逸&XP框架&Frida技术

APP抓包技术

关于APP抓包,使用burpsuite抓模拟器中的数据包,需要将模拟器中的网络设置代理,代理地址为burpsuite监听的地址与端口,要想成功获取https数据包,需要将burpsuite证书导入模拟器中,在Android7.0之后的系统需要将证书导入系统认证,具体操作参考

转载--逍遥模拟器与burpsuite抓包配置问题

反模拟器检测绕过

在对目标进行抓包渗透时,有时候会显示检测到模拟器,目标APP并不能正常运行。



面对反模拟器时,一般使用以下三种思路进行绕过

  • 使用真机进行测试
  • 配置模拟器参数

例如,配置模拟器中的手机号、运营商、手机型号、内存、硬盘等等,使得模拟器能够绕过目标APP的检测

  • 将APP的apk文件进行逆向,将检测代码进行删除后在进行重打包。这种方式需要看的懂代码

反代理检测绕过

在对一些APP进行抓包的时候,明明网络没有任何问题,但是就是显示网络不可用、网络不可达、数据异常,并且抓不到访问数据包,这时候要考虑APP是不是进行了代理检测。

  • 代理软件绕过

    • 很多软件只检测了模拟器中网络的高级设置是不是使用了高级代理设置,这时候可以尝试使用代理软件进行设置。例如Postern,设置代理规则等即可转发流量,具体操作网上查询。
  • 主机逃逸
    • 由于我们的APP安装在模拟器中,相当于放在虚拟机中,APP检测代理也不会检测宿主机上的网络设置。这时候我们可以使用代理工具,比如在proxifier中设置代理规则,将模拟器进程的流量转发至burpsuite监听的端口上,这样就可以绕过代理检测。
  • APP逆向删除检测代理代码,重打包

主机逃逸方法:

  1. 想要设置转发,首先找到模拟器进程。

在proxifier中设置代理服务器,地址为burpsuite所监听的地址和端口

设置监听规则,将所有运行的进行流量全部拦截,同时运行模拟器。



查看进程名称,即可找到模拟器进程。

  1. 重新设置代理规则

将找到疑似模拟器的进程名称写入,动作改为转发至burpsuite,之后便可以绕过代理检测。

反证书检测绕过

证书检测有两种检测方式,分为单向认证或者双向认证。

绕过思路分为四种思路:

  1. XP框架绕过单向认证
  2. Frida框架通杀脚本转发WireShark
  3. Frida框架配合脚本转发burpsuite
  4. 将APK进行逆向将证书提取安装至burpsuite

XP框架绕过单向认证

1.使用XP框架中模块绕过证书检测

安装XP模块:

夜深模拟器直接在应用市场安装即可

逍遥模拟器:

参考模拟器xposed框架安装7.1-64教程

  1. 安装JustTrustMe模块

下载地址JustTrustMe

下载apk之后将apk安装到模拟器即可

  1. 启动模块并重启模拟器

详细步骤可以参考

app渗透之Burp抓取app数据包

Frida框架通杀脚本转发WireShark

  • Hook技术

Hook 技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。

Frida就是Hook技术的一种框架

  • Frida框架

Firda 是一款易用的跨平Hook工具, Java层到Native层的Hook无所不能,是一种 动态 的插桩工具,可以插入代码到原生App的内存空间中,动态的去监视和修改行为,原生平台包括Win、Mac、Linux、Android、iOS全平台

  • r0capture脚本

    • 仅限安卓平台,测试安卓7、8、9、10、11、12、13 可用 ;
    • 无视所有证书校验或绑定,不用考虑任何证书的事情;
    • 通杀TCP/IP四层模型中的应用层中的全部协议;
    • 通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等等、以及它们的SSL版本;
    • 通杀所有应用层框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;
    • 无视加固,不管是整体壳还是二代壳或VMP,不用考虑加固的事情;

Frida框架安装:

  1. 本地安装Frida
pip install frida
pip install frida-tools
  1. 模拟器中安装Frida服务端

安装之前首先确认本地Frida版本

frida --version
  1. 进入模拟器命令行查看模拟器版本及位数
abd.exe shell
getprop ro.product.cpu.abi

下载与本地Frida版本以及模拟器位数一致的服务端,Frida服务端下载地址链接Frida

  1. 将下载解压后的Frida服务端放入模拟器中,开启服务端并设置转发
adb.exe push frida-server /data/local
adb.exe shell
cd /data/local/
chmod 777 frida-server
./frida-server
adb.exe forward tcp:27042 tcp:27042
  1. 判断连接是否成功
frida-ps -U
frida-ps -R

执行两条命令可以看到模拟器中的进程及开启转发成功,frida-ps -R看不到结果是因为没有做端口转发.

成功开启Frida服务并转发至宿主机效果如下



通杀脚本转发流量

  1. 下载通杀脚本

通杀脚本下载地址r0capture

  1. 确认Frida服务端启动,并成功转发进程至宿主机
  2. 获取要截取目标APP数据包的包名

建议使用APK资源提取器1.0获取包名

使用效果图:

  1. 运行通杀脚本
python r0capture.py -U -f 包名/程序名 -p xxxx.pcap

运行效果或其他使用方法见项目说明

运行脚本之后,模拟器端会自动运行目标APP,下面进行调试即可

  1. 使用wireshark分析数据即可

Frida框架配合脚本转发burpsuite

  1. 设置模拟器网络代理,转发至burpsuite

  2. 下载Frida脚本

    FridaScripts

  3. 确认Frida服务端启动,并成功转发进程至宿主机

  4. 获取要截取目标APP数据包的包名

  5. 运行脚本文件

frida -U -f 包名 -l SSLUnpinning.js

这里项目中很多脚本都有不同功能,绕过双向证书使用SSLUnpinning.js文件。

运行脚本之后,模拟器端会自动运行目标APP,接下来目标APP的数据包即可正常转发至burpsuite。

反编译获取证书

反编译获取证书文件需要深厚的逆向知识以及代码能力,这里不再记录。

APP攻防--反模拟器&反代理&反证书&真机逃逸&XP框架&Frida技术的更多相关文章

  1. 免费开发者证书真机调试App ID失效问题:"Unable to add App ID because the '10' App ID limit in '7' days has been exceeded."解决方案(5月5号)

    免费开发者证书真机调试App ID失效问题:"Unable to add App ID because the '10' App ID limit in '7' days has been ...

  2. XE8 & IOS开发之免费证书真机调试:开发证书、AppID、开发授权profile的申请,附Debug真机调试演示(XCode7 Beta版或以上版本适用,有图有真相)

    网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 注意,苹果发布Xcode ...

  3. iOS开发之 XCode6.0的iOS免证书真机测试方法(MAC及黑苹果均有效)

    参考:http://mobile.51cto.com/iphone-455500.htm XCode6.0的iOS免证书真机测试方法(MAC及黑苹果均有效) 前提:设备已经越狱 目前在XCode上开发 ...

  4. 【原】xcode5&IOS7及以下版本免证书真机调试记录

    搞了有一段IOS开发了,之前一直在企业做,近阶段主要在公司做C++服务端开发,打算在空闲实现搞搞个人开发,为自己赚钱,IDP还没申请下来,所以先用此方法在越狱设备上先做一下app的免证书真机调试,先记 ...

  5. XE6 /XE8 & IOS开发之免证书真机调试三步走,生成iPA文件并安装到其它苹果设备上

    XE6 & IOS开发之免证书真机调试(1):颁发属于自己的App签名证书(有图有真相) XE6 & IOS开发之免证书真机调试(2):连接真机并运行App(有图有真相) XE6 &a ...

  6. iOS工具——Xcode9无证书真机调试

    入坑iOS开发这么久,一直都是在模拟器上运行,公司的项目也都有公司的开发者账号进行真机调试.但是很多时候在网上download一些demo想在真机上运行看一下效果的时候都没法成行,今天抽空好好研究和学 ...

  7. Xcode5.1.1+ios 7.1.2 免证书真机调试

    Xcode假设不破解.无法真机调试, 也无法编译真机Release文件.仅仅有付费开通Apple开发人员账号,才干申请真机调试.而Xcode进行破解后,结合越狱的iPhone或iPad, 就可以免官方 ...

  8. Xcode7--免证书真机调试

    Xcode7之前,想要真机调试,必须花99刀购买开发者账号,而且步骤繁琐,需要下载证书.随着Xcode7的推出,大幅度的简化了真机调试的步骤,对ios开发工作者和正在学习ios开发的众多码农们,可以说 ...

  9. Xcode7免证书真机调试

    最近一直忙于项目,对于Xcode7的一些新功能还没去尝试,今天尝试了下挺好用的!避免了以前真机调试繁琐的配置,很是爽啊.又可以节约很多小伙伴的时间了.废话不多说咱们一起来配置一下. 第一步 打开需要真 ...

  10. 升级到Xcode6.2后 免证书真机调试出错的问题

    我的本来是Xcode6.1 可以正常免证书真机调试,升级到Xcode6.2以后,真机调试就报错,然后就又按照这篇文章http://www.cnblogs.com/liuliuliu/p/4030524 ...

随机推荐

  1. Qt源码阅读(五)-deleteLater

    Qt deleteLater作用及源码分析 个人经验总结,如有错误或遗漏,欢迎各位大佬指正 在本篇文章中,我们将深入分析源码,探讨deleteLater的原理. deleteLater是Qt框架提供的 ...

  2. Vue-Element UI 文件上传与下载

    项目结构 后端 前端 效果演示 上传文件 下载文件 Code 后端代码 跨域 /** * 跨域配置 * @author Louis * @date Jan 12, 2019 */ @Configura ...

  3. CVPR 2023 | RCF:完全无监督的视频物体分割

    TLDR: 视频分割一直是重标注的一个task,这篇CVPR 2023文章研究了完全不需要标注的视频物体分割.仅使用ResNet,RCF模型在DAVIS16/STv2/FBMS59上提升了7/9/5% ...

  4. 【技术积累】Mysql中的SQL语言【技术篇】【三】

    聚合函数 SUM函数 在MySQL中,SUM函数是用于计算数值列的总和的聚合函数.它接受一个数值列作为参数,并返回该列中所有值的总和. 以下是一个使用SUM函数的示例: 假设我们有一个名为" ...

  5. Day09_Java_作业

    A:简答题 1.什么是多态,多态的前提是什么? 2.多态中成员(成员变量,成员方法,静态成员方法)的访问特点是什么? 3.多态的好处? 4.多态的弊端是什么,如果我们想访问子类的特有的功能我们应该怎么 ...

  6. 面霸的自我修养:Java线程专题

    王有志,一个分享硬核Java技术的互金摸鱼侠加入Java人的提桶跑路群:共同富裕的Java人 平时我在网上冲浪的时候,收集了不少八股文和面试文,内容虽然多,但质量上良莠不齐,主打一个不假思索的互相抄, ...

  7. linux 字符集与编码格式相关

    字符集:​多个字符的集合. # 书写系统字母与符号的集合. 字符编码:​把 字符集 中的字符 编码为(映射)指定集合中的某一对象. # 以便文本在计算机中存储和通过通信网络的传递 查看文件的的编码格式 ...

  8. Django:TypeError: view must be a callable or a list/tuple in the case of include().

    错误: path("uploads/(?P<path>.*)$", 'django.views.static.serve', {"document_root& ...

  9. webpack dev server 与 hot module replace 提高开发效率

    通过 webpack 命令编译源代码时,如果我们对源代码进行了修改,需要重新执行命令才能看到编译后的效果. 这样在开发中非常的影响效率,如果存在一种方式,当文件被修改时,webpack 自动监听重新编 ...

  10. 免费拥有自己的 Github 资源加速器

    TurboHub 是一个免费的 Github 资源加速下载站点,可以帮助你快速下载 Github 上的资源.其核心逻辑是通过 Azure Static Web Apps 服务和 Azure Funct ...