本文将为您介绍Android渗透测试环境。我应该使用哪些工具?我是否真的需要一台物理设备?渗透测试应用程序是否需要设备已获得root权限?我将尝试在下面的内容中回答所有这些问题以及其他问题。
实体设备 vs 模拟器
互联网上有一个关于渗透测试人员应该使用物理设备还是模拟设备的激烈辩论。我不会说你应该只坚持一种选择,因为情况并非总是如此。你可能会遇到一些情况,模拟器是无用的,也有一些情况下物理设备无法胜任任务。我将为你列举一些各自的优缺点,然后你可以选择最适合你的。
物理设备
优点
大多数Android设备都配备了ARM处理器;
不依赖于笔记本电脑的规格要求;
缺点
您无法更改Android API级别以适应您的需求;
Root操作可能会砖砌您的手机,因此很难更换;
一些设备型号尚未有Root方法。
模拟器
优点
您可以自由选择Android API并在它们之间进行切换;
如果发生故障,您可以随时启动一个新的模拟器;
轻松进行Root操作或使用已经Root的模拟器。
缺点:
由于缺乏规范,某些应用可能会崩溃;
它会消耗笔记本电脑的资源;
一些模拟器缺乏当今应用所必需的生物识别认证功能。
设置您的Android设备
由于下面的内容大部分适用于实体设备和模拟设备,我将只介绍用于模拟设备的相关方面。在设置Android环境时,有许多免费选项可供选择。最常见的是Android虚拟设备(AVD)、Genymotion和NoxPlayer。Genymotion默认是root状态,NoxPlayer可以选择启用root权限,而AVD则可以轻松获取root权限。
Android虚拟设备
首先,让我们使用Android Studio创建一个新的虚拟设备。以下是一些需要注意的事项:
如果您选择创建一个没有Google Play服务的设备,默认情况下该设备是已经root过的,但是安装服务可能会比较困难。
如果您需要Play服务,那么默认情况下该设备是没有root过的,您可能需要对其进行root。
使用Android Studio创建一个设备
个人使用Pixel 3作为我的测试设备
选择API版本,我选择一个已经安装了Google API的版本
完成模拟器设置
现在,如果你使用一个没有安装谷歌API的模拟器,你可以跳过这一部分。
如何为你的AVD(Android虚拟设备)获取Root权限 - Magisk
多亏了XDA社区,我们现在有一个脚本,可以立即为你的AVD获取Root权限并在模拟器上安装Magisk。这个工具叫做rootAVD,你可以在GitHub上找到它。
https://github.com/newbit1/rootAVD
按照说明操作并为您的设备设置根目录
下一条命令就是我用来对我的AVD进行Root操作的命令,它每一次都能正常工作,你可以试一试。
./rootAVD.sh ~/Android/Sdk/system-images/android-31/google_apis/x86_64/ramdisk.img
Genymotion
您可以从官方网站下载Genymotion。下载后,为了创建模拟器,您需要创建一个账户。创建并登录账户后,下一步是创建设备,我将使用Google Pixel 3。
在 Genymotion 上创建模拟器
正如我之前提到的,Genymotion 模拟器默认是 root 的,因此您不必自己动手。
默认获得root权限
准备您的设备
无论您使用何种类型的设备,您都需要在设备上安装一些工具来利用应用程序并发现漏洞。其中最重要的两个是Drozer和Frida。
Drozer
Drozer 是模拟流氓应用程序的好工具。F-Secure 停止了开发,但它仍然可以毫无问题地用于您的渗透测试。在他们的 GitHub 页面上,有一个应该安装在设备上的APK 。命令是
adb install drozer-agent-2.3.4.apk
Frida
Frida 是面向开发人员、逆向工程师和安全研究人员的动态检测工具包。可以按照以下步骤在设备上安装 Frida 服务器:
- 从https://github.com/frida/frida/releases下载具体版本
- 解压使用:$ xz -d ~/Downloads/frida-server-16.0.2-android-x86.xz
- 现在使用以下方法将其推送到设备上:$ adb push frida-server-16.0.2-android-x86 /data/local/tmp/frida-server
- $ adb shell chmod +x /data/local/tmp/frida-server
- $ adb shell su /data/local/tmp/frida-server
Frida 的有趣之处在于您不需要获得 root 权限的设备即可运行它。您可以轻松地修补应用程序以包含Frida-gadget库并在设备上安装新签名的应用程序。有一篇有趣的 文章 向您展示了将小工具附加到应用程序的两种方法。还有第三种解决方案:反对patchapk。它是一个基本上包含其他几个系统命令的命令,尽可能自动化修补过程。
安装 BurpSuite 的证书
为了能够拦截应用程序发送到后端服务器的流量,您需要在设备上安装 Burp 证书并使用代理服务器。有很多资源可以为您提供解决方案,但我建议您按照此处找到的 PortSwigger 文档进行操作。
提示:Magic SafetyNet 认证
SafetyNet 提供一组服务和 API,帮助保护您的应用免受安全威胁,包括设备篡改、错误 URL、潜在有害应用和虚假用户。听起来篡改设备时代即将结束,但与任何其他客户端验证一样,如果有足够的时间,您最终可以绕过它。有一个可用的 Magisk 模块,由 kdrag0n 开发,可以在他的GitHub页面上找到。
准备渗透测试站
在设置渗透测试环境时,由于不同的问题,有时可能很难安装所有必需的工具。为了解决这个问题,Enciphers 的家伙开发了一个虚拟机,其中包含所有必要的工具,可以立即使用,没有任何问题。您可以在此处找到更多详细信息。
如果您仍然只需要在渗透测试站上安装几个工具,我将向您简要介绍我在几乎所有活动中使用的最重要的工具。下面描述的所有工具和安装方法都适用于 Ubuntu,但您可以在其文档中找到有关 Windows 的详细信息。
MobSF
移动安全框架 (MobSF) 是一种自动化的一体化移动应用程序 (Android/iOS/Windows) 渗透测试、恶意软件分析和安全评估框架,能够执行静态和动态分析。更多详细信息可以在他们的GitHub 页面上找到,但在 Ubuntu 上的简单安装包含以下 3 个步骤:
git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.gitcd Mobile-Security-Framework-MobSF./setup.sh
APK工具
是用于逆向工程第 三 方、封闭、二进制 Android 应用程序的工具。它可以将资源解码成几乎原始的形式,并在进行一些修改后重建它们。您可以在此处找到更多详细信息,但安装非常简单
wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktoolwget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.7.0.jar -O apktool.jarmv apktool /usr/local/bin/mv apktool.jar /usr/local/bin/chmod +x /usr/local/bin/apktoolchmod +x /usr/local/bin/apktool.jarapktool -v
apktool 已完全安装
Jadx-Gui
用于从 Android Dex 和 apk 文件生成 Java 源代码的命令行和 GUI 工具。将 Dalvik 字节码从 APK、dex、aar、aab 和 zip 文件反编译为 java 类。解码 AndroidManifest.xml 和其他资源。包括去混淆器。更多详细信息可以在应用程序的 GitHub上找到。
Drozer
Drozer 允许您通过承担应用程序的角色并与 Dalvik VM、其他应用程序的 IPC 端点和底层操作系统交互来搜索应用程序和设备中的安全漏洞。尽管它已经退役并且不再开发,但我仍然将它用作移动渗透测试的首选工具。更多细节可以在他们的GitHub上找到。
wget https://github.com/WithSecureLabs/drozer/releases/download/2.4.4/drozer_2.4.4.debsudo dpkg -i drozer-2.4.4.deb
Frida
如前所述,Frida 是每个渗透测试人员在日常移动渗透测试方法中都应该使用的必备工具。它可以帮助您以最佳方式执行动态分析,注入与操作系统通信的 JavaScript 脚本。根据他们的文档,我们发现 Frida 可以挂钩任何函数、监视加密 API 或跟踪私有应用程序代码。您还可以编辑、点击保存并立即查看结果,而无需编译步骤或程序重新启动。您可以使用以下方法轻松安装 Frida:
python3 -m pip install frida-tools
你可以到这个网站
https://codeshare.frida.re/
搜索已经制作的脚本,或者您可以创建自己的脚本。此外,您可以使用以下任一命令来使用脚本:
frida -U -f com.android.example -l Frida_Scripts/bypass_ssl_pinning_various_methods.jsfrida -U -f com.android.example --codeshare sowdust/universal-android-ssl-pinning-bypass-2
Objection
Objection是一个运行时移动探索工具包,由 Frida提供支持,旨在帮助您评估移动应用程序的安全状况,而无需越狱。它可以帮助您绕过指纹、SSL 固定等等。
您可以使用 python 的 pip 安装它,方法如下
python3 -m pip install objection
介绍这个工具,所以你点击查看。要安装它,只需使用以下命令:
npm install -g rms-runtime-mobile-security
结论
我希望本文能帮助您创建移动渗透测试环境或改进现有环境。随着行业变化如此之快,一些工具可能会被淘汰,一些新工具可能会出现,但方法论并没有改变。
最后
朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
1.网安必备全套工具包和源码
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,路线图上的每一个知识点,我都有配套的视频讲解。
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加护网行动、CTF和挖SRC漏洞的经验和技术要点。
网安方面的电子书我也收藏了200多本,基本上热门的和经典的我都有,也可以共享。
4.NISP、CISP等各种证书备考大礼包
5.CTF项目实战
学习网安技术最忌讳纸上谈兵,而在项目实战中,既能学习又能获得报酬的CTF比赛无疑是最好的试金石!
6.网安大厂面试题
这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~