关于Droopescan

Droopescan是一款基于插件模式的CMS安全扫描工具,广大研究人员可以利用Droopescan轻松识别多种CMS系统中潜在的安全问题。

请注意,虽然Droopescan可以扫描和识别目标设备上安装的CMS版本信息,但版本号和漏洞之间的任何关联必须由用户手动完成。

支持的CMS

当前版本的Droopescan支持以下CMS系统:

SilverStripe

Wordpress

Drupal

Joomla

Moodle

工具特性

运行速度快

工作稳定

定期升级更新

允许同时扫描多个站点

100%纯Python开发

工具安装

使用pip安装(推荐)

我们推荐广大用户使用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

BlackArch安装

sudo pacman -S droopescan

Docker安装

我们可以构建一个Docker镜像,并在Docker中运行Droopescan:

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

工具使用

指定测试目标

我们可以使用-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

或者,下列命令可以同时开启工具的“CMS自动识别”功能

droopescan scan -U list_of_urls.txt

包含URL列表的文件内容结构如下,其中每一个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/

身份认证

该工具完全支持.netrc文件和http_proxy环境变量。

我们可以使用一个.netrc文件来进行基础认证:

machine secret.google.com

    login [email protected]

password Winter01

我们还可以设置http_proxy和https_proxy变量:

export http_proxy='user:password@localhost:8080'

export https_proxy='user:password@localhost:8080'

droopescan scan drupal --url http://localhost/drupal

工具输出

该工具支持标准输出格式,即提供人类可读的输出数据,主要以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对象:

$ 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"]}}

许可证协议

本项目的开发与发布遵循APGL开源许可证协议。

项目地址

Droopescan:GitHub传送门

参考资料

https://github.com/BlackArch/blackarch/blob/master/packages/droopescan/PKGBUILD

https://www.gnu.org/software/inetutils/manual/html_node/The-_002enetrc-file.html

https://github.com/droope/droopescan/blob/development/plugins/drupal/versions.xml

本文作者:Alpha_h4ck, 转自FreeBuf