枫叶
枫叶
发布于 2026-07-24 / 25 阅读
1
0

【VulnHub】渗透学习——DC-1靶机导入和详细渗透教程

导入

先下载靶机的文件

官方地址:DC: 1 ~ VulnHub

夸克网盘:https://pan.quark.cn/s/e6b5b7c6524a 提取码:1jJS

下载完成后是.ova的文件,双击打开或者在VMware中点击左上方的“文件”--“打开”,然后选择下载好的.ova文件就行。

信息收集

靶机ip:192.168.31.105

攻击机ip:192.168.31.149

导入并开启后,先用nmap扫描靶机的ip地址

nmap -sn 192.168.31.0/24

可以看到主机名为DC-1的ip是192.168.31.105

接着扫描ip地址的端口号

nmap -sV -p- 192.168.31.105

可以看到开放了22和80端口。

访问80端口,发现是Drupal的站点。

使用dirsearch扫描站点目录后,没发现什么有用的东西。

用whatweb工具查看Drupal的版本号是啥

whatweb -v 192.168.31.105

往下划可以看到版本号为7

开始攻击

使用msfconsole攻击

打开msf后,先搜索有没有相关的模块

search Drupal 7

我们使用序号为1的那个就行,接着查看需要的参数

use 1
show options

"Required"栏为yes的是必填项,我们需要填写RHOST参数。

RHOST就是目标地址

填写完成后就可以输入run开始攻击,当出现meterpreter就成功了。

接着输入shell去获取shell

此时的shell是非交互式的shell,我们可以去获取一个可交互式的shell。

python -c 'import pty; pty.spawn("/bin/bash")'

Flag1

查看当前文件夹下有什么东西,发现flag1.txt

Every good CMS needs a config file - and so do you.
每个好的 CMS 都需要一个配置文件 - 你也一样。

根据文件提示要找到站点的配置文档了。

其实先不急,先看看还有没有啥信息。

Flag4

看看有没有其他的账户。

cat /etc/passwd

在这里发现了flag4

进账户目录下面看看

cd /home/flag4
ls

发现flag4.txt

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?
您可以使用相同的方法来查找或访问根中的标志吗?
大概。但也许事情没那么容易。  或者也许是这样?

提示得提权了。那些接着前面flag1的线索继续找吧,提权放到后面。

Flag2

接着flag1的提示,使用find命令寻找文件

find -name *setting*

发现一个可疑文件

直接cat查看一下,发现数据库登录账号和密码,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?
暴力破解和字典攻击不是
获得访问权限的唯一方法(并且您将需要访问权限)。
您可以用这些凭据做什么?

Flag3

接着上面,直接登录数据库看看

登录成功!

接着就查数据库、表,看看有没有什么可以用的上的地方

show databases;
use drupaldb;

这里面一共就2个数据库,使用下面的那个数据库

接着查有那些表

show tables;

表有挺多,但是有一张users表感觉可以用上。

查看表里面的数据

显示的有点乱,可以通过缩小字体的方式解决。

发现有admin账户的密码,但是密码被加密了,得想个办法解决。

找找是不是有加密密码的脚本

发现在script文件夹下有个加密脚本

发现这个脚本是用php写的,咱们运行一下。

php scripts/password-hash.sh 123456
$S$DrtOqc7M5fHxbQwH6.B1Ik4TfyXIVg.IeyTn6LvWl.veYW2oJc8I

这里有个坑:

要运行这个脚本,你必须在/var/www这个目录下面运行,不能进入脚本所在的文件夹运行,不然显示缺失依赖文件。

这里获取到密码的加密值后,替换到admin账户中。

update users set pass='$S$DrtOqc7M5fHxbQwH6.B1Ik4TfyXIVg.IeyTn6LvWl.veYW2oJc8I' where name='admin';

替换完成,可以使用admin账户登录了。

在Content标签下发现flag3。

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 将帮助查找密码 - 但您需要 -exec 该命令来找出如何获取影子中的内容。

FinalFlag

提权,接着前面发现的flag4,开始提权。

使用 find / -perm -u=s -type f 2>/dev/null 查看哪些命令具有suid权限可以供我们利用

咱们使用find来提权。

find / -name index.php -exec "/bin/sh" \;

在root目录下面找到最终的flag。

完成!


评论