前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scrounger:iOS和Android移动应用程序渗透测试框架

Scrounger:iOS和Android移动应用程序渗透测试框架

作者头像
FB客服
发布2018-09-21 12:14:52
9380
发布2018-09-21 12:14:52
举报
文章被收录于专栏:FreeBuf

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

视频简介

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

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

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

运行条件

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

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

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

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

使用

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

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

命令行选项

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

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

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

控制台示例

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

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

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

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

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

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

设备示例

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

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

可扩展性

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

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

创建你自己的模块

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

示例:

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

真实场景案例

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

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

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

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

Needle (https://github.com/mwrlabs/needle) Drozer (https://github.com/mwrlabs/drozer) iOS-application-analyser (https://github.com/timb-machine/ios-application-analyser)

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 视频简介
  • 运行条件
  • 使用
  • 命令行选项
  • 控制台示例
  • 设备示例
  • 可扩展性
  • 创建你自己的模块
  • 真实场景案例
  • 后续开发、反馈和特别感谢
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档