DC-2靶场通关记录

0.序言/确定端口

与DC-1一样也拥有5个flag,镜像下载地址为DC:2 ~ VulnHub,下载解压导入VM打开即可,依旧需要将靶机和kali置于同一网段下即可

开启kali后依旧先确定ip以及端口

靶机的mac地址为 

image

ifconfig确定kali的ip,然后根据ip查端口

nmap -sn 192.168.220.129/24

-sn : 相当于Ping扫描,只做存活主机探测,不做端口扫描

/24:CIDR 前缀长度,/24相当于扫C段256个端口

image

确定靶机ip为192.168.220.131

然后扫一下端口看看开放了哪些服务

nmap -A -p- 192.168.220.131

-A是全面扫描, -p-是扫描全部端口(0-65535)

image

开了80和7744,注意到80是http服务,网站访问一下,发现访问失败,且ip被转化为了域名。

image

想起在下载地址中提到要配置hosts文件

image

 

image

image

再试着访问一下

image

成功!

 

1.flag1

发现网站页面上就有个flag,点进去看看

image

翻译:

你通常使用的词表可能无法使用,所以或许你只需要用“cewl”即可。

密码越多越好,但有时你根本无法获得全部密码。

以第一个身份登录,查看下一个标志。

如果找不到,请以另一个身份登录。

cewl是一个kali自带的爬虫生成自定义字典,用于爆破。

理解来说就是让我们用爆破的方式进行登录

2.flag2

但是登录的地址在哪儿呢?没有找到提示,选择直接开扫看看能不能扫出来

dirsearch -u http://dc-2/ -x 403 404(dirsearch不是kali自带的(好像不是))

常见配置:

-u URL目标网址(必选)

-e php,html,txt指定扫描后缀扩展名

-w 字典.txt自定义字典,不使用内置字典

-r递归扫描,发现目录继续往下扫

-i 200,302只显示指定状态码

-x 404,403排除指定状态码

-o result.txt输出保存到文件

--random-agent随机 UA,绕过简单反爬

--delay 0.5请求延时,防止封 IP

-l urls.txt批量扫描多个 url 列表

image

发现一个url,复制访问一下看看

image

访问成功,看来下一步就需要用到cewl进行爆破了,lz这里没有了解过cewl,先去补习一下: cewl工具使用 - jackie_le - 博客园

大概懂了,就是个爬网页信息然后存起来的功能

cewl http://dc-2 -w /root/桌面/dc-2 

找到对应路径,发现确实多了一个dc-2的文件,打开看看里面有什么

image

这些内容应该是用来充当密码的,那怎么知道用户都有谁呢?(盲猜一手有admin)

有点懵,回想了一下工具和步骤,好像没有扫用户名的。不会要用bp拿字典去爆吧?

应该是可行的,但看到别的大佬是根据网站的指纹信息来确定方式的

因为网站是WordPress,有一个专门正对于其工具为wpscan(kali自带)

WordPress是全球流行的博客网站,许多外国的博客都是用它搭建的,但是存在着很多漏洞(CVE‑2017‑5487)

wpscan --url http://dc-2 -e u (-e u : 作用为枚举用户)

发现一共有三个用户:admin,jerry和tom

image

在桌面写一个txt把这三放进去,然后和刚才cewl生成的字典拿去爆

image

wpscan --url http://dc-2 -U /root/桌面/user -P /root/桌面/dc-2

image

爆出来了俩,没有admin(密码分别是adipiscing和parturient)

登录一个试试

image

翻阅发现flag2

image

如果你没法利用 WordPress 走捷径,还有另一条路,希望你找到另一个入口点

3.flag3

wordpress是该网站的指纹,不走这条路是否意味着让我们注意http网站之外的东西?

但还有一个账号也爆出来了,登录一下看看有没有什么东西

登陆进去啥也没有,这条路到头了

一开始进行端口探测时除了80端口,还有一个7744端口是ssh服务,连一下试试

ssh jerry@192.168.220.131 -p 7744 

image

奇怪,输了密码也连不上,什么情况

试一下另一个账号tom

ssh tom@192.168.220.131 -p 7744

image

连上了,ls发现路径下的flag3.txt文件,cat读一下发现命令被禁止了

image

rbash 原理:只能执行 PATH 环境变量里面目录下的程序

看一下PATH:echo $PATH

image

发现有四个可以执行,分别是less,ls,,scp和vi。这里需要用到vi或者less(scp用于复制)

less flag3.txt(进去后按q退出)

image

 Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.

 

得到flag3的内容

4.flag4

flag3内容中提到了su,su是一个用于切换用户的命令,ssh既然tom可以登录进来,应该是需要让我们用su切换到jerry用户

试一下失败了,被rbash禁止了,需要进行rbash逃逸。因为可以用到vi命令,可以对文件内容进行编辑,于是使用vi进行逃逸

在flag3.txt里写入

vi flag3.txt,然后i进行写入,

:set shell=/bin/bash
:shell

然后发现cd可以用了,到处cd然后ls看看

image

最终在一系列搜寻之和发现jerry目录,在里面发现flag4.txt

image

Good to see that you've made it this far - but you're not home yet. 

You still need to get the final flag (the only flag that really counts!!!).  

No hints here - you're on your own now.  :-)

还差一个flag,而已经没有提示了(其实最后一行还是提示了,暗示需要用到git)

5.flag5

image

找到root位置,cd进不去

回想起来不对啊,不是提示要用到su命令吗?好像到现在也没用上。

先在环境变量中加上bin(因为bin中可以使用那些命令),然后就可以完成切换啦

export PATH=$PATH:/bin:/usr/bin

image

成功切换!

image

然后发现jerry用户也无法cd到root里去。查一下jerry被允许干啥

sudo -l

image

 用户 jerry 可在 DC-2 上执行以下命令:
(root) NOPASSWD: /usr/bin/git

 居然有个美好的提示:git!和前面的flag4提示内容对应了

sudo git help config 。这里的关系其实有点绕。

该语句的功能查看 git 的 config(配置)帮助文档。 当帮助内容比较长时,git 默认调用系统的 less 分页程序来分页显示文本。

less 有一个内置功能:在阅读页面输入 !命令,可以执行操作系统命令

前面加了 sudo ,所以 git 进程是以 root 身份运行的

 然后直接输入!/bin/bash

就会以 root 身份启动 bash,拿到 root shell

 image

成功拿到root权限,再进root文件夹,获得最终flag

image

 

 6.总结

 靶场整体流程可以视为:

网页信息收集 → WordPress 爆破 → SSH 登录受限 shell → rbash 逃逸 → su 切换用户 → sudo NOPASSWD 提权 root

 先扫靶机端口服务,然后根据SRC漏洞工具获得账号密码,再在ssh进到受限shell,通过rbash逃逸切换用户,最终通过git+less 逃逸拿到 root。

还是可以看作:信息收集--漏洞利用--提权  的流程

要点汇总:

  1. hosts 文件修改,域名访问网站
  2. wpscan 枚举用户 + 爆破 WordPress 账号
  3. rbash 受限 shell 的原理与逃逸(vi /less)
  4. su 切换用户:需要目标用户密码;su -是完整登录式切换
  5. Linux 提权排查顺序:sudo -l > SUID > cron > 内核漏洞
  6. GTFOBins:sudo 可执行 git,利用 less 分页器!逃逸获取 root shell

 

posted @ 2026-09-11 17:02  反对的只剩下月亮  阅读(12)  评论(0)    收藏  举报