DC:1

💡 原文中文,约1000字,阅读约需3分钟。
📝

内容提要

本文介绍了对靶机进行渗透测试的过程,通过发现Drupal Site并利用RCE漏洞获取flag1,进一步获取配置文件和mysql账号密码,但数据库连接不成功,使用msf渗透工具成功获取thefinalflag,登录数据库后发现密码加密,需要运行脚本进行解密,最终成功获取所有flag。

🔎

延伸解读

从信息收集到漏洞利用的路径

文章展示了渗透测试的典型流程:先通过nmap或arp-scan确认靶机存活,再扫描端口发现Drupal站点。访问robots.txt和maintainers.txt文件后,推测Drupal版本为7.x,并找到对应的RCE漏洞。这种从公开信息推断版本、再匹配已知漏洞的方法,是渗透测试中常见且高效的思路,读者可借鉴其信息收集的细致程度。

数据库连接失败后的替代方案

在获取MySQL账号密码后,作者尝试连接数据库却失败,同时缺少flag3。提权尝试也因exp问题未成功。随后改用msf的drupalgeddon模块,成功获取thefinalflag。这提示我们,当单一攻击路径受阻时,灵活切换工具或利用框架(如Metasploit)可能打开新局面,不必固守一种方法。

密码加密与脚本解密的启示

登录数据库后发现admin密码是加密的,需要运行主目录下的脚本进行解密。根据代码注释,脚本功能是对密码加密并用新hash替换admin的hash,然后登录获取flag3。这提醒读者,遇到加密凭证时,应寻找相关脚本或注释,理解加密逻辑,才能有效利用已有信息,而非盲目爆破。

❓

Q&A

如何确认靶机是否存活?

可以使用nmap或arp-scan命令确认靶机存活。

如何利用RCE漏洞获取flag1?

通过访问robots.txt和maintainers.txt文件,推测Drupal版本为7.x,并找到RCE漏洞,成功利用后获取flag1。

在渗透测试中如何获取数据库的账号密码?

可以通过找到cms的配置文件sites/default/settings.php来获取数据库的账号密码。

为什么数据库连接失败?

数据库连接失败可能是因为缺少flag3,或者提权尝试失败。

如何使用msf渗透工具获取thefinalflag?

选择drupalgeddon模块,使用php/meterpreter/reverse_tcp载荷,成功获取thefinalflag。

获取所有flag的过程是怎样的?

通过利用RCE漏洞获取flag1,找到配置文件获取flag2和mysql账号密码,使用msf工具获取thefinalflag,最后解密密码获取flag3,最终成功获取所有flag。

🏷️

标签

➡️

继续阅读