android app 渗透测试工程师,Scrounger:iOS和Android移动应用程序渗透测试框架

Scrounger是一个模块化的移动应用程序渗透测试框架工具。它将Android和iOS这两个主流的移动操作系统同时整合到了一个框架中,极大的方便和满足了我们日常任务的需求。此外,Scrounger还具有使用方便、文档丰富、易于扩展等优点。

视频简介

Scrounger由许多模块组成,这些模块都建立在一个强大的核心之上。这样做的好处是,可以像Metasploit一样易于扩展。如果你希望Scrounger执行其他检查,你只需添加一个新模块,然后通过Scrounger的交互式控制台或命令行界面执行。

此外,Scrounger同时包含了Android和iOS模块。因此,在移动应用评估期间你不需要使用多款工具,而只需使用这一款工具学习一组命令就可以完成任务。

Scrounger中已经捆绑了几个模块,你可以运行这些模块来对移动应用程序执行多项检查。

3a3921f09c03acf52041693db62da17b.png

运行条件

在主机和某些iOS二进制文件需要安装某些软件包。

但是,Scrounger已为我们打包了大多数iOS二进制文件,并提供了一个在设备上安装它们的模块。具体请参阅Scrounger GitHub页面。

如果不满足条件,某些模块将无法运行。

另外,设备需要越狱和root权限。

使用

Scrounger的使用主要有两种方式:命令行或交互式控制台。

命令行主要用于执行所有检查或自动化脚本。控制台用于运行一定数量的模块或执行特定操作,例如反编译,重新编译和签名应用程序,提取某些文件等。

命令行选项

使用命令行时,你可以列出可用模块及其参数,可用设备,执行完整分析(运行特定类型应用程序的所有模块 - Android或iOS)并运行特定模块,同时传递必要的参数。

3fb4f9dda353f05edff5abee2aee26c1.png

以下是在Android应用程序上使用Scrounger命令行运行特定模块的示例。

首先,我们列出要运行模块的所需选项,然后运行。

996a14bad1cc0a43a6e280b0b6699d53.png

f5be87a94a06f07b521680bc501add68.png

控制台示例

控制台包含了几个强大的选项,提供自动完成(包括文件路径自动完成),模块搜索,能够重新使用来自其他模块的结果作为参数、命令使用历史以及反向搜索已使用的命令。

以下是控制台列出iOS可用模块的示例。

4bfa13ef6db485f3c6654de22a10d04d.png

除了列出模块外,还将显示模块功能的简要说明。对于iOS和Android,有两种主要类型的模块,misc和analysis。misc模块是辅助模块,对应用程序,其文件/设备执行多个操作。为了评估是否存在任何的安全漏洞,analysis模块将分析应用程序文件,应用程序本身及其生成的文件。

dceb58fedc3b6a7c56f1134d359e909f.png

首先,我们运行options命令查看特定模块所需的参数(这和Metasploit是一样的)。options命令还会显示全局选项。如果设置了该参数并且有模块使用了相同参数,则它的值将被自动设置。设置好了所需参数,我们再次运行options命令确保已正确设置了所有选项,并使用run命令运行模块。

可以看到,Scrounger通过运行某些模块生成了一些输出和结果,这些结果也可以被其他模块所使用。

267b63dd2020c93e3753ce8e3c492884.png

d5ec3601faa6a598abf2d0b9ba0d2ee1.png

我们可以使用show results命令来查看执行其他模块返回的所有存储结果。print命令可用于显示存储在某个结果上的值,也可用于打印存储在全局或模块参数中的值。如果你想在其它模块中使用这些结果,可以通过result:关键字设置使用。设置完成后运行模块即可。

设备示例

有几个模块将需要与IOS或Android设备进行交互。在命令行或控制台中添加设备也非常的简单。

ed6d6d3dc40306a1def454f97da23888.png

在此示例中,我们将使用add_device命令将一个Android设备添加到控制台(它将尝试获取连接的设备并将其显示为可选项)。然后,使用set global命令,我们将设备设置为device 1。使用misc/list_apps命令时,由于已设置全局选项并且存在具有相同名称的模块参数,因此它将自动填充该参数的值。

可扩展性

Scrounger的可扩展性,可以让你轻松的包含自定义模块,并根据渗透测试人员的偏好执行自定义的检查。安装Scrounger时,将会为你创建所有所需目录。在~/.scrounger/modules/custom下,已为你创建了一个自定义模块目录。

在以下示例中,创建了一个自定义模块并放置在了custom/analysis/ios/目录下。从路径就可以判断出,false_positive模块是一个针对iOS应用程序的模块。

67d37e5adcae3ee2b4d7cac04d0ba374.png

创建你自己的模块

创建自定义模块非常的简单,只需三个步骤:根据模块要执行的操作在正确的模块目录下创建文件,创建两个变量meta和options,以及函数run。

示例:from scrounger.core.module import BaseModule

class Module(BaseModule):

meta = {

"author": "RDC",

"description": """Just a Test Analysis module""",

"certainty": 100

}

options = [

{

"name": "output",

"description": "local output directory",

"required": False,

"default": None

},

]

def run(self):

print("This is a print from the custom module")

return {

"print": "This will be print by scrounger's console.",

"false_positive_result": {"title": "This is a False Positive - just a test",

"details": "No details",

"severity": "Low",

"report": True}

}

下次启动scrounger-console时,新创建的文件将会自动添加到可用模块列表中。在创建模块时,还需要考虑许多其它的元素,尤其是analysis模块。更多信息请参阅Scrounger提供的有关所有可用模块的全面文档,以及如何创建自定义模块的详细说明:https://github.com/nettitude/scrounger/docs

真实场景案例

在典型的移动应用程序评估中,我们将尝试运行尽可能多的模块。Scrounger也考虑到了这一点,在控制台中我们可以通过一个名为full_analysis的模块来运行所有模块,在命令行中则添加-f选项即可。

此选项/模块将反编译应用程序,并运行所有必要的辅助模块以及其他可用模块。然后创建一个JSON文件,其中包含返回report=True的各个模块的结果和详细信息。命令行可执行文件还有一个-p选项,用于读取JSON文件并将所有结果和详细信息打印到控制台。

ec90c50000c357ef99b049f38d53f5a1.png

a8b1584c5642640f77ac1b86f22ee5d4.png

3f4a4ef14928c05d6cd3cf7002529fa7.png

后续开发、反馈和特别感谢

后续Scrounger将添加支持更多的功能。具体可以参见GitHub README的末尾部分。如果你有任何的反馈想法或建议,那么欢迎你随时在GitHub上提交。最后,特别感谢工具的所有开发人员!

*参考来源:nettitude,FB小编 secist 编译,转载请注明来自FreeBuf.COM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值