关于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演示站点
//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 admin@google.com
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开源许可证协议。
项目地址
https://github.com/SamJoan/droopescan
参考资料
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
原文始发于微信公众号(FreeBuf):Droopescan:一款基于插件模式的CMS安全扫描工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论