Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
droopescan — 一款基于插件的扫描器,可帮助安全研究人员识别多种CMS(主要是Drupal和Silverstripe)中的问题。 | Kitploit
工具/GitHubGitHub/samjoan/droopescan
漏洞扫描器信息收集Web安全
GitHubsamjoan/droopescan

droopescan

一款基于插件的扫描器,可帮助安全研究人员识别多种CMS(主要是Drupal和Silverstripe)中的问题。

查看仓库
1.4k2742年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

droopescan

Build Status PyPI version AGPL license

一个基于插件扫描器,帮助安全研究人员识别多个CMS中的问题。

未经事先双方同意,使用droopescan攻击目标是非法的。最终用户有责任遵守所有适用的地方、州和联邦法律。开发者不承担任何责任,也不对因使用本程序造成的任何误用或损害负责。请注意,虽然droopescan输出远程主机上最可能安装的CMS版本,但版本号与漏洞之间的任何关联必须由用户手动完成。

支持的CMS包括:

  • SilverStripe
  • Wordpress
  • Drupal

部分功能支持:

  • Joomla(仅版本枚举和有趣的URL)
  • Moodle(插件和主题非常有限,请小心)
root@kitploit:~
computer:~/droopescan$ droopescan scan drupal -u http://example.org/ -t 32
[+] 未找到主题。

[+] 发现可能的感兴趣URL:
    Default changelog file - https://www.example.org/CHANGELOG.txt
    Default admin - https://www.example.org/user/login

[+] 可能的版本:
    7.34

[+] 发现的插件:
    views https://www.example.org/sites/all/modules/views/
        https://www.example.org/sites/all/modules/views/README.txt
        https://www.example.org/sites/all/modules/views/LICENSE.txt
    token https://www.example.org/sites/all/modules/token/
        https://www.example.org/sites/all/modules/token/README.txt
        https://www.example.org/sites/all/modules/token/LICENSE.txt
    pathauto https://www.example.org/sites/all/modules/pathauto/
        https://www.example.org/sites/all/modules/pathauto/README.txt
        https://www.example.org/sites/all/modules/pathauto/LICENSE.txt
        https://www.example.org/sites/all/modules/pathauto/API.txt
    libraries https://www.example.org/sites/all/modules/libraries/
        https://www.example.org/sites/all/modules/libraries/CHANGELOG.txt
        https://www.example.org/sites/all/modules/libraries/README.txt
        https://www.example.org/sites/all/modules/libraries/LICENSE.txt
    entity https://www.example.org/sites/all/modules/entity/
        https://www.example.org/sites/all/modules/entity/README.txt
        https://www.example.org/sites/all/modules/entity/LICENSE.txt
    google_analytics https://www.example.org/sites/all/modules/google_analytics/
        https://www.example.org/sites/all/modules/google_analytics/README.txt
        https://www.example.org/sites/all/modules/google_analytics/LICENSE.txt
    ctools https://www.example.org/sites/all/modules/ctools/
        https://www.example.org/sites/all/modules/ctools/CHANGELOG.txt
        https://www.example.org/sites/all/modules/ctools/LICENSE.txt
        https://www.example.org/sites/all/modules/ctools/API.txt
    features https://www.example.org/sites/all/modules/features/
        https://www.example.org/sites/all/modules/features/CHANGELOG.txt
        https://www.example.org/sites/all/modules/features/README.txt
        https://www.example.org/sites/all/modules/features/LICENSE.txt
        https://www.example.org/sites/all/modules/features/API.txt
    [... 为README省略 ...]

[+] 扫描完成(耗时 0:04:59.502427)

你可以通过运行以下命令获取完整的选项列表:

root@kitploit:~
droopescan --help
droopescan scan --help

为什么不用X?

因为droopescan:

  • 速度快
  • 稳定性高
  • 保持最新
  • 支持多站点同时扫描
  • 100% Python实现

安装

使用pip(推荐)

使用pip安装很方便:

root@kitploit:~
apt-get install python-pip
pip install droopescan

从源码安装

手动安装步骤如下:

root@kitploit:~
git clone https://github.com/droope/droopescan.git
cd droopescan
pip install -r requirements.txt
./droopescan scan --help

master分支对应最新发布版(即pypi上的版本)。development分支不稳定,所有拉取请求必须针对development分支提交。

BlackArch

BlackArch 软件包安装(由第三方维护):

root@kitploit:~
sudo pacman -S droopescan

Docker

你可以构建一个Docker镜像并从Docker运行droopescan:

root@kitploit:~
git clone https://github.com/droope/droopescan.git
cd droopescan
docker build -t droope/droopescan .
# 显示帮助
docker run --rm droope/droopescan
# 扫描Drupal站点的示例
docker run --rm droope/droopescan scan drupal -u https://drupal.example.com

功能特性

扫描类型

Droopescan旨在默认情况下尽可能准确,同时避免因过多并发请求而使目标服务器过载。因此,默认情况下会使用四个线程发送大量请求;可以通过--number和--threads参数更改这些设置。

该工具能够执行四种类型的测试。默认情况下会运行所有测试,但你可以使用-e或--enumerate标志指定其中一种:

  • p — 插件检查:执行数千次HTTP请求,返回目标主机上已安装的所有插件列表。
  • t — 主题检查:如上所述,但针对主题。
  • v — 版本检查:下载多个文件,并根据这些文件的校验和返回所有可能的版本列表。
  • i — 有趣URL检查:检查有趣的URL(管理面板、README文件等)。

目标指定

你可以通过传递-u或--url参数指定要扫描的特定主机:

root@kitploit:~
    droopescan scan drupal -u example.org

你也可以省略drupal参数。这将触发“CMS识别”,如下所示:

root@kitploit:~
    droopescan scan -u example.org

可以使用-U或--url-file参数扫描多个URL。此参数应设置为包含URL列表的文件的路径。

root@kitploit:~
    droopescan scan drupal -U list_of_urls.txt

在此示例中也可以省略drupal参数。对于每个站点,它将执行若干GET请求以进行CMS识别,如果站点被认定为支持的CMS,则会进行扫描并添加到输出列表中。例如,这对于在整个组织的站点上运行droopescan非常有用。

root@kitploit:~
    droopescan scan -U list_of_urls.txt

下面的代码块包含一个URL列表示例,每行一个:

root@kitploit:~
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和用于覆盖默认Host头的值(由制表符或空格分隔)的文件也可以用于URL文件。当扫描大量主机且希望避免不必要的DNS查询时,这非常方便。为清楚起见,下面是一个示例:

root@kitploit:~
192.168.1.1	example.org
http://192.168.1.1/	example.org
http://192.168.1.2/drupal/	example.org

扫描官方站点(例如WordPress的wordpress.org)来测试扫描器是否适用于特定CMS是很有诱惑力的,但官方站点很少运行纯净的CMS安装,或者会做一些非常规的事情。例如,wordpress.org运行的是WordPress的最新开发版本,droopescan无法将其识别为WordPress,因为校验和与任何已知的WordPress版本都不匹配。

身份验证

该应用程序完全支持.netrc文件和http_proxy环境变量。

对于基本身份验证,请使用.netrc文件。一个示例netrc文件(名为.netrc,放在你的主目录中)可能如下所示:

root@kitploit:~
machine secret.google.com
    login [email protected]
    password Winter01

你可以设置http_proxy和https_proxy变量。这些变量允许你设置父HTTP代理,在其中可以处理更复杂的身份验证类型(例如Fiddler、ZAP、Burp)。

root@kitploit:~
export http_proxy='user:password@localhost:8080'
export https_proxy='user:password@localhost:8080'
droopescan scan drupal --url http://localhost/drupal

警告: 为了允许拦截代理和测试具有不良SSL的应用程序,droopescan默认允许自签名或无效证书。˙ ͜ʟ˙

输出

该应用程序支持“标准输出”(适合人工阅读)和JSON(更适合机器消费)。输出在主要版本之间保持稳定。

这可以通过--output标志控制。一些JSON输出示例如下(省略多余空格):

root@kitploit:~
{
  "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对象。

root@kitploit:~
    $ 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命令检查原因。

一些输出可能如下所示:

root@kitploit:~
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
[+] 未找到插件。

[+] 扫描完成(耗时 0:00:00.058422)

--debug参数也存在,可用于调试应用程序内部逻辑。

统计信息

你可以通过运行以下命令获取扫描器功能的最新报告:

root@kitploit:~
    droopescan stats

一些输出示例如下:

root@kitploit:~
‘drupal’的可用功能:
- 枚举插件(XXXX个插件。)
- 枚举主题(XXXX个主题。)
- 枚举有趣的URL(X个URL。)
- 枚举版本(最高版本 X.X.X-alphaXX, X.XX, X.XX。)
‘joomla’的可用功能:
- 枚举有趣的URL(X个URL。)
- 枚举版本(最高版本 XX.X, X.X.X, X.X.XX.rcX。)
‘wordpress’的可用功能:
- 枚举有趣的URL(X个URL。)
- 枚举版本(最高版本 X.X.X, X.X.X, X.X.X。)
‘silverstripe’的可用功能:
- 枚举插件(XXX个插件。)
- 枚举主题(XX个主题。)
- 枚举有趣的URL(X个URL。)
- 枚举版本(最高版本 X.X.XX, X.X.XX, X.X.XX。)

验证droopescan中是否包含CMS安装的最新可用版本非常重要,否则结果可能不准确。

贡献

创建你自己的插件

你可以为你最喜欢的CMS添加支持。这个过程其实很简单,通过查看plugins/文件夹中的example.py文件可以了解大量信息。

这个文件应该作为你实现的基础。

你可以为Joomla创建自己的插件并按如下方式启用:

root@kitploit:~
$ cp plugins/example.py plugins/joomla.py
$ cp plugins.d/example.conf plugins.d/joomla.conf

然后你需要进入plugins/joomla.py并修改一些内容:

  • 类名需要改为Joomla。
  • 插件标签(位于Meta.label)需要改为joomla。
  • 在文件末尾,register调用需要修改以反映正确的类名。
  • 暴露的函数‘example’需要重命名为joomla。
root@kitploit:~
    @controller.expose(help='example scanner')
    def joomla(self):
        self.plugin_init()

我们还需要修改plugins.d/joomla.conf文件,并将其改为以下内容:

root@kitploit:~
[joomla]
enable_plugin = true

现在状态应该如下所示:

root@kitploit:~
$ droopescan scan joomla
[+] --url参数是必需的。

你的下一步是生成一个有效的插件词表、一个有效的主题词表、一个versions.xml文件,以及可选的有趣URL列表,并用适合你实现的值替换joomla.py中的所有变量。

插件需要能够自动更新,以便接受拉取请求。进一步的文档可能稍后提供,但目前请记住需要实现update_version_check、update_version、update_plugins_check和update_plugins。作为参考,请查看drupal.py文件。这是为了确保插件保持更新。

问题与拉取请求

欢迎创建新插件的拉取请求,前提是这些插件的维护是自动完成的。

请记住,拉取请求应针对development分支而不是master。问题可以在此处GitHub的问题跟踪器中提出。

要运行测试,需要安装一些依赖项。运行以下命令将会安装它们并运行测试:

root@kitploit:~
    apt-get install libxslt1-dev libxml2-dev zlib1g-dev python python-pip python-dev python3 python3-pip python3-dev
    pip install -r requirements.txt -r requirements_test.txt
    pip3 install -r requirements.txt -r requirements_test.txt
    ./droopescan test

你可以使用-s标志运行单个测试。

root@kitploit:~
./droopescan test -s test_integration_drupal

许可证

该项目使用AGPL许可证授权。请参阅LICENSE文件。

下载工具