Vulnhub靶场-DC-DC_1

靶机下载地址https://download.vulnhub.com/billu/Billu_b0x.zip

image-20251118132102789

打开靶场发现需要登录

渗透过程

1.信息收集

1
nmap -sP 192.168.23.0/24  

image-20251118132342585

靶机地址为192.168.23.135

探测端口

image-20251118132544421

发现开放了22端口,开放了ssh服务,OpenSSH 6.0p1

发现开放了80端口,存在web服务,Apache httpd 2.2.22,Drupal

发现开放了111端口,开放了rpcbind服务

先查看80端口

image-20251118132635341

参考这个

[ MSF使用实例 ] 利用永恒之黑采用正向连接 shell 获得主机权限(CVE-2020-0796)(SMBGhost)_msf正向shell-CSDN博客

image-20251118134628239

Wappalyzer 插件 用于识别网站所使用的技术栈,它通过分析页面的代码、资源等信息,精准列出了该网站的 CMS、前端库和编程语言,是 Web 技术分析的常用工具。

可以得到的信息

内容管理系统(CMS):使用的是 Drupal 7

使用 searchsploit drupal 7 可以查询到 Drupal 7 版本的多个漏洞利用代码

searchsploit 中可找到对应的利用脚本(如 exploit/php/webapps/44449.rb),结合 Metasploit 模块 exploit/unix/webapp/drupal_drupalgeddon2 可快速执行攻击。

使用MSF渗透
flag1

搜索drupal7的漏洞

1
searchsploit drupal 7

image-20251118152931039

进入 Metasploit 6 的交互控制台

1
msfconsole

search drupal 来搜索 Drupal 相关的漏洞模块

image-20251118153331729

使用编号1开始攻击 填写ip和端口

image-20251118153440840

攻击成功

image-20251118153542049

输入shell可以进入交互界面

image-20251118153901997

image-20251118153911688

cat flag1.txt
Every good CMS needs a config file - and so do you.

打开发现提示信息,内容提示寻找站点的配置文件

Drupal的默认配置文件为/var/www/sites/default/settings.php

image-20251118154151042

拿到flag2和数据库信息

flag2

Brute force and dictionary attacks aren’t the

only ways to gain access (and you WILL need access).

What can you do with these credentials?

暴力破解和字典攻击并非获取访问权限的唯一途径(而你肯定需要获得访问权限)。使用这些凭证你能做什么呢?

$databases = array (
‘default’ =>
array (
‘default’ =>
array (
‘database’ => ‘drupaldb’,
‘username’ => ‘dbuser’,
‘password’ => ‘R0ck3t’,
‘host’ => ‘localhost’,
‘port’ => ‘’,
‘driver’ => ‘mysql’,
‘prefix’ => ‘’,
),

flag3

下一步登录数据库

python -c ‘import pty;pty.spawn(“/bin/bash”)’ //如果发现对方机器上有 python 的话

image-20251118155148661

image-20251118155217098

1
select * from users\G;

image-20251118180141656

可以看到这个密码是被加密的

该密码不是普通的加密,有可能是网站自己的加密方式。尝试搜索一下相关文件

image-20251118180555875

image-20251118180707995

可以看到这是一个php的加密文件

我们可以用这个脚本生成一个简单的密码 覆盖掉数据库中的密码

image-20251118180806406

覆盖admin的密码

image-20251118181114545

登陆网站

image-20251118181145263

成功登录

简单查看一下看到flag3

image-20251118181239110

Special PERMS will help FIND the passwd - but you’ll need to -exec that command to work out how to get what’s in the shadow.

特殊的PERMS将有助于找到passwd-但您需要执行该命令以确定如何获取shadow中的内容。

这句话提示需要利用特殊权限(SUID/SGID) 来找到密码相关信息,并且需要通过 -exec 命令来获取 /etc/shadow 中的内容(Linux 系统中存储用户加密密码的文件

flag4

flag3 提示中提到 “get what’s in the shadow”(获取 /etc/shadow 中的内容),而 /etc/shadow 是存储用户密码哈希的文件(只有 root 可直接访问)。要破解密码或提权,通常需要先结合 /etc/passwd 中的用户名,再去尝试读取 /etc/shadow 的哈希值。

查看 /etc/passwd 获取目标用户名列表

image-20251118183724928

发现 flag4,flag4是一个普通用户

尝试读取他的家目录

image-20251118183832439

Can you use this same method to find or access the flag in root?
Probably. But perhaps it’s not that easy. Or maybe it is?

你能用同样的方法找到或访问根目录下的 flag 吗?

有可能。但也许没那么容易,又或者,其实很简单呢?

服务器开放了 22 端口

hydra工具爆破flag4用户的密码

1
hydra -l flag4 -P /usr/share/john/password.lst 192.168.23.135 ssh

image-20251118184118601

密码为orange

image-20251118184216834

提权

常见的可用于 SUID 提权的文件有:

1
2
find、bash、nmap、vim、more、less、nano、cp 
//当没有s权限时可以使用:chmod u+s 命令路径,增加权限

查找哪些命令具备 SUID 标识

相关命令:

1
2
find / -perm -4000 2>/dev/null
find / -perm -u=s -type f 2>/dev/null

查看 suid 权限的可执行二进制程序

find / -perm -4000 2>/dev/null

通过此命令寻找可利用的 SUID 程序,尝试提权

image-20251118182838660

输出中明确包含 /usr/bin/find,且 find 具有 SUID 权限(所有者通常为 root),这意味着普通用户(如当前的 www-data)执行 find 时,会临时获得 root 权限。

直接通过 find-exec 参数调用 shell,获取 root 交互终端:

为什么选择 find

其他 SUID 程序(如 supasswd)通常有严格的权限校验或功能限制,而 find-exec 参数允许执行任意命令,且因 SUID 权限会以 root 身份运行,是最直接的提权方式。

利用 find 命令随便查找一个正确的文件(夹)路径,后面加上 -exec shell 命令 \;

提权 /bin/bash 或者 /bin/sh

1
2
3
4
5
6
7
8
www-data@DC-1:/var/www$ find cron.php -exec "/bin/bash" \;
find cron.php -exec "/bin/bash" \;
bash-4.2$ find cron.php -exec "/bin/sh" \;
find cron.php -exec "/bin/sh" \;
# whoami
whoami
root
#

image-20251118183311612

image-20251118183432626

成功提权