导语:在上一篇文章中我们讲解了安卓设备的基本架构。本篇文章,我们来讲解一些安卓应用渗透测试工具并且为正式攻击进行一些基础设置。
在上一篇文章中(安卓应用程序渗透测试一),我们讲解了安卓设备的基本架构。本篇文章,我们来讲解一些安卓应用渗透测试工具并且为正式攻击进行一些基础设置。
安卓渗透测试工具有很多,但每个工具各有所长,哪些工具有什么功能,能实现什么目的,我们能从中提取什么细节才是最重要的。
我们也可以使用一些框架中内置的工具集,下面这些框架都是开源的:Appuse,Appie,Santoku,Pentestbox,MobSF等等。
先从APPuse开始
APPuse是由AppSec Labs开发的VM虚拟机。它是安卓环境中移动应用安全测试的独特平台,包括AppSec Labs开发的独家定制工具。APPuse专业版官网地址在这里,https://appsec-labs.com/appuse-pro/,免费版本就够用了。
APPuse dashboard(主界面)如下:
模拟器
模拟器是内置在APPuse框架中的,或者我们也可以添加外部的已经root过的移动设备进行测试。启动模拟器可以提供一个虚拟设备。
Root设备:它将使用superuser.apk文件来对模拟器设备进行root并获取sudo权限。
打开ADB shell:这会打开一个ADB shell。(ADB的意思是安卓调试桥,它是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互)。如果你不想使用模拟器,可以将移动设备连接到App中使用。
第一步:在移动设备上启用USB调试模式并且连接到机器。
第二部:adb设备会显示已经连接的设备。
安卓应用渗透测试工具
在很多渗透测试案例中都大有帮助的基础工具,框架中都已经提供了,你只需要点击工具就行,如图:
· Burp Suite:Burp Suite是web安全测试中的瑞士军刀,堪称神器。它是一个代理工具,可以拦截客户端和服务器端的请求。
· Wireshark:这是一款网络流量捕获工具,可以清楚的显示网络上的数据包。
· IDA:IDA是Windows,Linux或Mac操作系统下的多处理器反汇编工具和调试器。
· Eclipse:Eclipse为几乎所有语言和体系结构提供IDE环境和平台。
· NetBeans:使用Java,JavaScript,HTML5,PHP,C / C ++等开发桌面,移动和Web应用程序,源代码免费开源。
· Firefox:黑客浏览器。
· SQLite浏览器:用于查看数据库文件。
· Nmap:网络扫描器,可以扫端口和漏洞,也是开源的,我们可以安装使用。
.apk文件的逆向
对于逆向来说,很多渗透测试工具也已经集成在APPuse里了,工具如图:
如果要加载已安装在设备/模拟器中的.apk文件,请单击加载APK 。你也可以从本地选择.apk文件,当然你也可以从Google商店中选择文件。
我们主要是要解码一个APK文件,我们需要运行apktool d filename.apk命令。运行之后,它会在当前目录下创建一个文件夹,其中包含反编译文件。或者也可以用另一种方式,在App中,使用它与dashboard(主界面)全部链接起来,dashboard我们可以直接利用。
APK的概念
apk文件是一个zip压缩文件。zip文件包含XML文件和其他安卓应用源文件。Apktools工具对源文件进行解码并且将安卓字节码转换成汇编级别的小文件。Dex2jar工具将dex文件转换为存档在jar文件中的Java字节码文件。JD-GUI和Luyten工具将Java字节码反编译成Java源代码文件。
安装或选择.apk文件后,我们可以通过点击View Manifest来查看安卓清单文件。
Dalvik虚拟机不使用Java字节码,使用的是它自己的文件格式dex(Dalvik Executable Format)。它包含多个类和相关数据的定义。
Smali/Baksmali分别是dex文件格式的重编译和反编译程序。
保存Java源—dex2jar工具将.dex文件解码成.jar文件。
JD-GUI是一个图形实用工具,可以显示”.class”文件的Java源代码。
Drozer工具
这个工具并没有内置在APPuse中,你可以通过下面链接中的指南来安装。
https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf
Drozer可以让你假装成安卓APP中的一个角色并与其它应用程序交互。它跟实际安装的应用程序一样,实际安装的APP有什么功能,它也同样具备,比如使用安卓的进程间通信(IPC)机制并与底层操作系统交互。
敬请期待安卓应用程序渗透测试三。