中文/
中文/
中文/
中文/
中文/
中文/
中文/
中文/
中文/
中文/
软件Tags: [db:tag]
Droopescan是一款基于插件的扫描器,可帮助安全研究人员发现Drupal,SilverStripe,Wordpress,Joomla(枚举版本信息和可利用URL地址)和Moodle的问题。
安装:
使用pip安装会非常容易:
apt-get install python-pip
pip install droopescan
手动安装如下:
git clone https://github.com/droope/droopescan.git
cd droopescan
pip install -r requirements.txt
./droopescan scan --help
特点:
扫描类型
Droopescan的准确率在默认情况下是最精准的,而不会因为过多的并发请求而超载目标服务器。由
于这一点,所以在默认情况下将使用四个线程对目标进行大量数据请求;你也可以使用-number和-
threads参数分别更改这些设置。
这个工具可以使用四种测试模式。默认情况下所有测试模式都在运行,但是您可以使用-e或--
enumerate来指定以下内容:
p -- Plugin checks:执行数千个HTTP请求,并返回目标主机上已安装所有插件的列表。
t -- Theme checks:如上所述,但仅检查主题。
v -- Version checks:下载多个文件,根据这些文件的校验和,返回一个所有可能版本的列表。
i -- Interesting URL checks: 检查有价值的URL(例如:管理面板,Readme等)
目标说明:
您可以通过-u或--url参数指定特定的主机来扫描:
droopescan scan drupal -u example.org
您还可以省略drupal参数。这将触发“CMS识别”,就像这样:
droopescan scan -u example.org
可以使用-U或-url-file参数扫描多个url。该参数应该设置为包含url列表文件的路径:
droopescan scan drupal -U list_of_urls.txt
在本例中,drupal参数也可以省略。对于每个站点,它将会发出几个GE请求来执行CMS识别,如果站
点是支持的CMS版本,它会被扫描并添加到输出列表中。例如,这可以在所有站点上运行
droopescan。
droopescan scan -U list_of_urls.txt
下面的示例列表中每一个url包含一个代码块,每行一个:
http://localhost/drupal/6.0/
http://localhost/drupal/6.1/
http://localhost/drupal/6.10/
http://localhost/drupal/6.11/
http://localhost/drupal/6.12/
一个包含URL的文件和一个通过制表符或空格分隔默认主机头的也可以用于URL文件。当在大型主机
上进行扫描时,您可以方便地进行操作,并防止不必要的DNS查询。请看下面的一个例子:
192.168.1.1 example.org
http://192.168.1.1/ example.org
http://192.168.1.2/drupal/ example.org
扫描器会扫描官方网站特定的CMS(例如wordpress.org WordPress),但是官方网站很少在他们的
CMS系统上运行vainilla,或者做一些其他改版的事情。例如,WordPress.org运行最新版本的
WordPress,因为droopescan在所有的WordPress扫描中发现校验和不匹配,所以不会被确定为任
何已知的WordPress版本。
身份验证
应用程序完全支持.netrc文件和http_proxy环境变量。
使用.netrc文件进行基本身份验证。一个示例netrc(一个名为.netrc的文件放在根目录主目录中)文件可
以如下所示:
machine secret.google.com
login admin@google.com
password Winter01
您可以设置http_proxy和https_proxy变量。它们允许您设置HTTP代理,在其中您可以处理更复杂的
身份验证类型(例如:Fiddler、ZAP、Burp)。
export http_proxy='user:password@localhost:8080'
export https_proxy='user:password@localhost:8080'
droopescan scan drupal --url http://localhost/drupal
注意:允许代理拦截和对带有SSL的WEB应用程序测试,droopescan必须允许自签名或其他无效的证
书。
输出
该应用程序既支持“标准输出”,也支持JSON,后者更适合机耗。这个稳定输出只在主要版本之间。
这可以用 --output控制。一些示例JSON输出如下所示(除去多余的空格):
{ "themes": { "is_empty": true, "finds": [ ] }, "interesting urls": { "is_empty": false, "finds": [ { "url": "https:\/\/www.drupal.org\/CHANGELOG.txt", "description": "Default changelog file." }, { "url": "https:\/\/www.drupal.org\/user\/login", "description": "Default admin." } ] }, "version": { "is_empty": false, "finds": [ "7.29", "7.30", "7.31" ] }, "plugins": { "is_empty": false, "finds": [ { "url": "https:\/\/www.drupal.org\/sites\/all\/modules\/views\/", "name": "views" }, [...snip...] ] } }
如果不运行部分扫描,JSON对象可能缺少一些属性。
这就是多站点输出的样子;每一行都包含一个有效的JSON对象,如下所示。
$ droopescan scan drupal -U six_and_above.txt -e v {"host": "http://localhost/drupal-7.6/", "version": {"is_empty": false, "finds": ["7.6"]}} {"host": "http://localhost/drupal-7.7/", "version": {"is_empty": false, "finds": ["7.7"]}} {"host": "http://localhost/drupal-7.8/", "version": {"is_empty": false, "finds": ["7.8"]}} {"host": "http://localhost/drupal-7.9/", "version": {"is_empty": false, "finds": ["7.9"]}} {"host": "http://localhost/drupal-7.10/", "version": {"is_empty": false, "finds": ["7.10"]}} {"host": "http://localhost/drupal-7.11/", "version": {"is_empty": false, "finds": ["7.11"]}} {"host": "http://localhost/drupal-7.12/", "version": {"is_empty": false, "finds": ["7.12"]}} {"host": "http://localhost/drupal-7.13/", "version": {"is_empty": false, "finds": ["7.13"]}} {"host": "http://localhost/drupal-7.14/", "version": {"is_empty": false, "finds": ["7.14"]}} {"host": "http://localhost/drupal-7.15/", "version": {"is_empty": false, "finds": ["7.15"]}} {"host": "http://localhost/drupal-7.16/", "version": {"is_empty": false, "finds": ["7.16"]}} {"host": "http://localhost/drupal-7.17/", "version": {"is_empty": false, "finds": ["7.17"]}} {"host": "http://localhost/drupal-7.18/", "version": {"is_empty": false, "finds": ["7.18"]}} {"host": "http://localhost/drupal-7.19/", "version": {"is_empty": false, "finds": ["7.19"]}} {"host": "http://localhost/drupal-7.20/", "version": {"is_empty": false, "finds": ["7.20"]}} {"host": "http://localhost/drupal-7.21/", "version": {"is_empty": false, "finds": ["7.21"]}} {"host": "http://localhost/drupal-7.22/", "version": {"is_empty": false, "finds": ["7.22"]}} {"host": "http://localhost/drupal-7.23/", "version": {"is_empty": false, "finds": ["7.23"]}} {"host": "http://localhost/drupal-7.24/", "version": {"is_empty": false, "finds": ["7.24"]}} {"host": "http://localhost/drupal-7.25/", "version": {"is_empty": false, "finds": ["7.25"]}} {"host": "http://localhost/drupal-7.26/", "version": {"is_empty": false, "finds": ["7.26"]}} {"host": "http://localhost/drupal-7.27/", "version": {"is_empty": false, "finds": ["7.27"]}} {"host": "http://localhost/drupal-7.28/", "version": {"is_empty": false, "finds": ["7.28"]}} {"host": "http://localhost/drupal-7.29/", "version": {"is_empty": false, "finds": ["7.29"]}} {"host": "http://localhost/drupal-7.30/", "version": {"is_empty": false, "finds": ["7.30"]}} {"host": "http://localhost/drupal-7.31/", "version": {"is_empty": false, "finds": ["7.31"]}} {"host": "http://localhost/drupal-7.32/", "version": {"is_empty": false, "finds": ["7.32"]}} {"host": "http://localhost/drupal-7.33/", "version": {"is_empty": false, "finds": ["7.33"]}} {"host": "http://localhost/drupal-7.34/", "version": {"is_empty": false, "finds": ["7.34"]}}
调试
当事情不按您的方式进行时,您可以通过使用 --debug-requests 命令来检查原因。
某些输出可能如下所示:
computer:~/droopescan# droopescan scan silverstripe -u http://localhost -n 10 -e p --debug-requests [head] http://localhost/framework/... 403 [head] http://localhost/cms/css/layout.css... 404 [head] http://localhost/framework/css/UploadField.css... 200 [head] http://localhost/misc/test/error/404/ispresent.html... 404 [head] http://localhost/widgetextensions/... 404 [head] http://localhost/orbit/... 404 [head] http://localhost/sitemap/... 404 [head] http://localhost/simplestspam/... 404 [head] http://localhost/ecommerce_modifier_example/... 404 [head] http://localhost/silverstripe-hashpath/... 404 [head] http://localhost/timeline/... 404 [head] http://localhost/silverstripe-hiddenfields/... 404 [head] http://localhost/addressable/... 404 [head] http://localhost/silverstripe-description/... 404 [ ] No plugins found. [ ] Scan finished (0:00:00.058422 elapsed) --debug该调试参数也可用于调试应用程序内部部件。
统计
通过运行以下命令,您可以获得扫描器功能的最新报告
droopescan stats
一些示例输出可能如下所示:
Functionality available for ‘drupal’: - Enumerate plugins (XXXX plugins.) - Enumerate themes (XXXX themes.) - Enumerate interesting urls (X urls.) - Enumerate version (up to version X.X.X-alphaXX, X.XX, X.XX.) Functionality available for ‘joomla’: - Enumerate interesting urls (X urls.) - Enumerate version (up to version XX.X, X.X.X, X.X.XX.rcX.) Functionality available for ‘wordpress’: - Enumerate interesting urls (X urls.) - Enumerate version (up to version X.X.X, X.X.X, X.X.X.) Functionality available for ‘silverstripe’: - Enumerate plugins (XXX plugins.) - Enumerate themes (XX themes.) - Enumerate interesting urls (X urls.) - Enumerate version (up to version X.X.XX, X.X.XX, X.X.XX.)
验证在droopescan中可用于CMS安装的最新版本非常重要,否则结果可能不准确。