当前位置:   article > 正文

APP渗透总结_app渗透测试 和 web一样么

app渗透测试 和 web一样么

APP渗透测试和Web渗透测试本质上没有区别。目前APP应用主要分为Android和IOS,但是由于苹果的IOS操作系统不开源,所以一般对IOS系统进行渗透和反编译会比较困难,所以一般对APP系统进行渗透测试都是对Android进行测试。

目录

安装安卓模拟器抓包

安装证书

设置代理

抓包测试

 APP渗透信息搜集

AppInfoScanner工具

Fiddle工具

安装证书

反编译工具

脱壳工具

APK资源提取

小程序抓包

抓包通杀脚本

APP安全监测

MobSF安全框架评估

下载MobSF

Frida调试框架

下载安装

简单测试

绕过反代理、反证书检测

绕过反代理

绕过反证书

后续流程


安装安卓模拟器抓包

为了更好地对APP流量进行抓包,所以需要在电脑上下载安卓模拟器。

市面上有很多模拟器,这里推荐夜神模拟器。下载地址:夜神安卓模拟器-安卓模拟器电脑版下载_安卓手游模拟器_手机模拟器_官网

安装证书

抓HTTPS的包需要安装证书。

找到/storage/emulated/Pictures目录,将证书放入

 更改文件后缀名为cer,并在设置中安装证书,设置证书名称和密码即可。

设置代理

 抓包一般配合的都是BurpSuite工具,那么就需要设置代理才能够进行抓包。

在BurpSuite添加一个代理,任意选择端口和IP

然后在模拟器里同样设置相同IP和端口代理

抓包测试

随便点开浏览器抓包

 APP渗透信息搜集

和Web渗透测试一样,APP渗透测试第一步同样也是信息收集,只不过APP的信息收集相较于Web信息收集不同的就是APP是封装起来的,需要对APK文件(Android应用安装包)进行反编译或者使用工具进行抓包获取域名、端口、参数等信息。

AppInfoScanner工具

AppInfoScanner是一款适用于以HW行动/红队/渗透团队为场景的移动端(Android、IOS、Web、H5、静态网站)信息收集扫描工具,可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态Web站点中关键的资产信息并提供基本的信息输出, 如:Title、Domain、CDN、指纹信息、状态信息等。

下载地址:GitHub - kelvinBen/AppInfoScanner: 一款适用于以HW行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具,可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态WEB站点中关键的资产信息并提供基本的信息输出,如:Title、Domain、CDN、指纹信息、状态信息等。

使用:

python app.py android i <apk file>

要注意的是尽量不要拿大厂制作的APP进行测试,因为一般都是加壳的,加壳主要作用就是为了防止攻击者随意修改apk文件或者进行破解等。

能够获取到一系列URL,访问URL地址就可以进行进一步测试。

Fiddle工具

Fiddle也是一个抓包工具。在Web渗透测试中,BurpSuite是用的最多的一个抓包工具,但是BurpSuite抓APP的包还是不是那么方便的。而Fiddle也是一款非常强大、灵活、操作简单的抓包工具。直接在官方地址就可以免费下载:Download Fiddler Web Debugging Tool for Free by Telerik

在实际的信息获取过程中,APPInfoScanner项目收集的相关信息还是较少的,这时候就需要使用Fiddle共同进行收集。

安装证书

使用Fiddle工具抓取HTTPS包同样需要安装证书,但是需要用到FiddlecertMaker工具(Bouncy Castle证书生成器)进行安装,因为新版本的Android拒绝超过两年有效期的证书。FiddlecertMaker下载地址:FiddlecertMaker下载

下载后点击安装即可,如果提示版本不正确,下载最新版本即可。

选择export root certificate to desktop导出证书

然后在模拟器中安装CA证书,和上面步骤一样。

安装完之后Fiddle就可以抓取APP的数据了。

Fiddle抓取包可以看到php版本、IP地址、URL等信息,这些足够进行下一步的渗透了。比如获取到IP地址,那么就可以利用这个IP地址进行扫描端口等测试。

反编译工具

反编译方面能使用到的工具有很多,比如jadx、Android Killer、apktool、安卓修改大师等,但大多数都不咋更新了。

关于反编译工具的总结可以参考这篇文章:APK反编译工具汇总-CSDN博客

安卓修改大师可以轻松将任何APK安装包进行反编译,替换应用程序界面上的任何文字和图片,并且通过代码级别的修改,实现汉化、破解、功能增强,甚至可以在任何的界面添加自定义的代码和功能。本软件需要您的电脑安装了 .Net Framework 4.0以上版本和JDK1.8以上版本方可正常使用。这个软件需要¥,也正常,或许也可以去找破解版的,这里就不细说。

jdax是一款使用广泛的反编译工具,可以一键将apk文件还原成Java代码,使用简单,功能强大,还具有一些附加功能可以辅助代码追查。下载地址:GitHub - skylot/jadx: Dex to Java decompilerjadx本身是一个命令行工具,它也有配套的图形化界面工具jadx-gui。想要更了解的,参考文章讲的很好:2023最新版Android逆向教程——第2天:dex反编译工具的安装和使用_jadx-CSDN博客

Android Killer前几年就不更新了,但是也可以进行简单的反编译操作,上手简单。下载地址:GitHub - liaojack8/AndroidKiller: 整理了插件與IDE環境讓AndroidKiller能繼續用

脱壳工具

很多APK文件都加壳加固,比如使用网易易盾进行加固等,那么就需要进行脱壳再进行反编译。不过,像网易易盾这种大厂进行加壳的,不是那么容易脱。

BlackDex,下载地址:GitHub - CodingGay/BlackDex: BlackDex is an Android unpack(dexdump) tool, it supports Android 5.0~12 and need not rely to any environment. BlackDex can run on any Android mobile phone or emulator, you can unpack APK File in several seconds.

下载完成后只要点击相应的应用,就可以进行脱壳。

也可以使用Xposed框架,然后下载网上开源的Xposed脱壳模块(FDex2和反射大师较为经典)

MT管理器可以直接在商店或者官网进行下载,是一个非常强大的文件管理器。不仅如此,MT管理器还可以用于APK逆向修改,比如编辑APK文件等。

APK资源提取

在某些情况下会获取不带APK文件的提取,但是很多工具进行测试又需要用到APK文件,那么就需要使用到APK资源提取工具,网上的工具很多,这里就不提供了。

小程序抓包

关于小程序抓包,会较麻烦,因为由于微信问题,在高版本的微信中,大部分小程序是抓不到包的。所以建议使用低版本的微信进行测试。

实战参考:【干货】针对微信小程序的渗透测试(附实战)

抓包通杀脚本

通常APP流量是走HTTP/HTTPS协议的,但是如果APP不走这两个协议,那么Fiddle和BurpSuite就抓不了包,就可以配合Frida使用通杀脚本来使用Wireshark抓取抓不到的包。

项目地址:

r0ysue/r0capture:安卓应用层抓包通杀脚本_Python - GitCode开源社区

脚本简介:

  • 仅限安卓平台,测试安卓7、8、9、10、11 可用 ;(不允许使用模拟器)
  • 无视所有证书校验或绑定,不用考虑任何证书的事情;
  • 通杀TCP/IP四层模型中的应用层中的全部协议;
  • 通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等等、以及它们的SSL版本;
  • 通杀所有应用层框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;
  • 无视加固,不管是整体壳还是二代壳或VMP,不用考虑加固的事情;
  • (限制) 基于Java的虚拟机,暂未支持 flutter(开发框架),flutter走的已经不是java的虚拟机了!

抓包使用示例:

1、获取应用包名

adb shell am monitor

 2、给应用添加读取存储空间权限,启动Frida-server

  1. adb shell
  2. cd /data/local/tmp
  3. chmod 777 frida-server
  4. ./frida-server ##运行

3、使用Attach模式抓包(也可以使用Spawn模式抓包,但是建议使用Attach模式,可以保存成pcap文件供后续使用Wireshark分析)。

python r0capture.py -U com.dianping.v1 -p 123.pcap

APP安全监测

MobSF安全框架评估

MobSF--移动的安全框架,是一个自动化的,一体化的移动应用程序(Android/IOS/Windows)测试,恶意软件分析和安全评估框架,能够执行静态和动态分析。MobSF支持移动的应用二进制文件(APK,XAPK,IPA&APPX)沿着压缩源代码,并提供REST API,以便与CI/CD或DevSecOps管道无缝集成。动态分析器可帮助您执行运行时安全评估和交互式仪表化测试。

下载MobSF

下载MobSF建议使用Linux系统来安装,因为Linux有集成的环境,如果安装在Windows或MAC会比较麻烦。可以使用Docker进行一键安装。

我这里使用在centos上进行安装下载,其他Linux版本可以自行搜索,都差不多其实。

1、docker拉取MobSF

docker pull opensecurity/mobile-security-framework-mobsf

2、启动MobSF

docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

3、打开MobSF,访问地址http://ip:8000

 使用方法就是简单的上传APK文件即可,然后等待分析结果查看就好。

Frida调试框架

Frida是一款基于Python+JavaScript的Hook调试框架,是一款易用的跨平台Hook工具,Java层到Native层的Hook无所不能,是一种动态的插桩工具,可以插入代码到原生APP的内存空间中,动态的去监视和修改行为,原生平台包括Win、Mac、Linux、Android、IOS全平台。

使用Frida可以获取到进程的信息(模块列表,线程列表,库导出函数),可以拦截指定函数和调用指定函数,可以注入代码。主要工作方式是将脚本注入到目标新的进程中,而且在执行过程中可以实时看到其中的变化。

不过如果需要持久化的Hook还是需要通过Xposed等其他框架,但是Frida具有动态的灵活性对逆向和自动化逆向提供了巨大帮助。

下载安装

需要python环境进行下载,如果没有python环境请自行安装。

Frida分为客户端(控制端)和服务端(被控制端)。

1、客户端安装Frida

  1. pip install frida -i https://pypi.mirrors.ustc.edu.cn/simple/
  2. pip install frida-tools -i https://pypi.mirrors.ustc.edu.cn/simple/
  3. #查看frida版本
  4. frida --version

2、查看服务端模拟器的版本位数。首先要打开模拟器,然后在模拟器安装目录下bin文件打开cmd

  1. adb shell ##进入模拟器
  2. getprop ro.product.cpu.abi ##查看位数

3、服务端安装frida-server。服务端的版本要同客户端的版本一致,且下载模拟器的位数。下载地址:Frida-server

4、下载好Frida-server后要上传至模拟器。

adb push 文件位置 /data/local/tmp

5、给予运行权限并运行

  1. adb shell
  2. cd /data/local/tmp
  3. chmod 777 frida-server
  4. ./frida-server ##运行

6、开启端口转发

adb forward tcp:27042 tcp:27042

7、执行命令查看是否成功部署。

  1. #列出设备上正在运行的进程PID和进程包
  2. frida-ps -U

简单测试

通过frida-ps -U获取到应用进程包名后,可以编写一个js脚本(也可以编写python脚本)来注入到进程使其执行。

比如有一个进程包名为com.test.bw2,编写了一个helloworld.js脚本,使其打印出“helloworld!”

  1. setTimeout(function()){
  2. Java.perform(function()){
  3. consoe.log("helloworld!");
  4. }
  5. }
  6. #setTimeout()函数是JS的定时器,可以规定延迟时间再执行某个操作
  7. #Java.perform表示Frida将会从这里开始执行JavaScript脚本
  8. #console.log()主要用于在浏览器的控制台中输出信息,返回代码的执行结果和调试信息

然后连接到应用程序进程中然后运行JS脚本

  1. frida -U -l [js文件路径] [进程包名]
  2. frida -U -l C:\hello.js com.test.bw2

执行命令后可以看到客户端回显输出了helloworld

这里有一篇文章很详细讲述了Frida的使用,且给了很多常用工具函数:Frida使用 - 知乎

绕过反代理、反证书检测

如果抓取不到APP应用的数据包,很有可能就是APP设定了反代理或者反证书验证机制进行绕过。

绕过反代理

存在反代理的情况,一般会提示网络连接失败,检查网络状态之类的信息。

绕过方法:

1、可以通过Proxifier绕过代理(使用方法有在其他文章讲到)

2、也可以通过r0capture安卓通杀脚本进行绕过

绕过反证书

绕过反证书可以通过r0capture安卓通杀脚本,XP框架,反编译提取证书等手段进行绕过。

XP框架下载后,需要安装配置Xposed模块,可以从Xposed框架本身的模块板块或第三方下载然后上传获得。比如可以下载JustMePlush模块,选择软件就可以绕过反证书了。

后续流程

在测试过程,修改了APK文件需要将其回编译(就是将修改后的文件修复)。可以使用apktool工具:

apktool b 文件夹名称

大多数APK文件都需要签名才可下载(如果不需要,那就是存在漏洞),可以使用MT管理器进行APK签名,添加签名后就可以进行安装了。

总而言之,这篇文章也只是简单的总结,之后还需要更加深入的去了解实践。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/752880
推荐阅读
相关标签
  

闽ICP备14008679号