VnlnHub EvilBox---One
字数 1427 2025-08-12 11:34:27

EvilBox---One 靶场渗透测试教学文档

靶场环境搭建

  1. 下载与导入

    • 下载 EvilBox---One 的 .ova 虚拟机文件
    • 使用 VMware 导入该虚拟机文件
  2. 网络配置

    • 将网络模式设置为 NAT 模式(也可使用桥接模式,但需与攻击机保持一致)
    • 启动虚拟机后,IP 地址可能不会显示,但可通过扫描发现

信息收集

  1. IP 扫描

    • 扫描 NAT 网段(示例中发现攻击机 IP 为 192.168.52.128,靶机为 192.168.52.135)
  2. 端口扫描

    • 发现开放端口:
      • 22 端口:SSH 服务
      • 80 端口:HTTP 服务(Apache 服务器)

Web 渗透测试

  1. 初始访问

    • 访问 80 端口显示 Apache 默认页面
    • 检查 robots.txt 文件
  2. 目录枚举

    • 发现 /secret 目录
    • 在 /secret/ 下发现 index.html(无内容)
    • 使用不同工具测试:
      • dirsearch 未发现结果
      • gobuster 和 feroxbuster 发现 evil.php 文件
  3. evil.php 测试

    • 初始访问无内容,推测需要参数
    • 使用 ffuf 进行参数爆破:
      ffuf -w /usr/share/wordlists/seclists/Discovery/Web-Content/burp-parameter-names.txt:dic1 \
           -w /usr/share/wordlists/seclists/Discovery/Web-Content/canshuzhi.txt:dic2 \
           -u http://192.168.52.135/secret/evil.php?dic1=dic2 -fs 0
      
    • 发现参数:command=/etc/passwd
  4. 文件包含漏洞利用

    • 确认存在任意文件读取漏洞:
      • 可读取 /etc/passwd
      • 无法读取 /etc/shadow(权限不足)
    • 测试远程文件包含(失败)
    • 使用 PHP 伪协议读取文件源码:
      php://filter/convert.base64-encode/resource=evil.php
      
    • 使用 CyberChef 解码获取源码
    • 测试文件写入(失败,无写入权限)

SSH 渗透

  1. 用户发现

    • 从 /etc/passwd 发现可登录用户 mowree
  2. 密钥发现

    • 读取用户家目录发现 RSA 公钥和私钥
    • 私钥文件:id_rsa
  3. 私钥利用

    • 将私钥保存到攻击机
    • 赋予 600 权限
    • 发现私钥需要密码
  4. 私钥密码爆破

    • 使用 ssh2john 生成 hash:
      ssh2john id_rsa > passwd
      
    • 使用 john 爆破密码:
      john --wordlist=/usr/share/wordlists/rockyou.txt passwd
      
    • 成功爆破密码:unicorn
  5. SSH 登录

    • 使用私钥和密码登录:
      ssh -i id_rsa mowree@192.168.52.135
      
    • 获得普通用户 shell

权限提升

  1. sudo 提权检查

    • sudo -l 检查无可用提权命令
  2. SUID 提权检查

    • 查找 SUID 文件:
      find / -perm -4000 2>/dev/null
      
    • 未发现可利用的常见 SUID 程序(如 nmap、vim、find 等)
  3. 内核提权尝试

    • 搜索内核漏洞无果
  4. 文件权限检查

    • 查找可写文件:
      find / -writable 2>/dev/null | grep -v /proc | grep -v /sys | grep -v /run
      
    • 发现 /etc/passwd 文件可写
  5. passwd 文件提权

    • 生成 root 密码:
      openssl passwd -1
      
    • 替换 /etc/passwd 中 root 的密码字段
    • 使用 su 切换到 root 用户
    • 成功提权并获取 flag

关键点总结

  1. 工具选择:不同目录枚举工具(dirsearch、gobuster、feroxbuster)可能有不同结果
  2. PHP 伪协议:当直接文件包含不可用时,php://filter 是读取源码的有效方法
  3. SSH 私钥利用:即使有私钥也可能需要爆破密码
  4. 非常规提权:检查系统异常权限设置(如全局可写的 /etc/passwd)
  5. 密码生成:使用 openssl passwd 生成符合 /etc/passwd 格式的密码哈希

防御建议

  1. 限制敏感文件权限(如 /etc/passwd)
  2. 避免在 Web 目录存放敏感信息(如 SSH 私钥)
  3. 对用户上传的参数进行严格过滤
  4. 使用强密码保护 SSH 私钥
  5. 定期检查系统异常权限设置
EvilBox---One 靶场渗透测试教学文档 靶场环境搭建 下载与导入 : 下载 EvilBox---One 的 .ova 虚拟机文件 使用 VMware 导入该虚拟机文件 网络配置 : 将网络模式设置为 NAT 模式(也可使用桥接模式,但需与攻击机保持一致) 启动虚拟机后,IP 地址可能不会显示,但可通过扫描发现 信息收集 IP 扫描 : 扫描 NAT 网段(示例中发现攻击机 IP 为 192.168.52.128,靶机为 192.168.52.135) 端口扫描 : 发现开放端口: 22 端口:SSH 服务 80 端口:HTTP 服务(Apache 服务器) Web 渗透测试 初始访问 : 访问 80 端口显示 Apache 默认页面 检查 robots.txt 文件 目录枚举 : 发现 /secret 目录 在 /secret/ 下发现 index.html(无内容) 使用不同工具测试: dirsearch 未发现结果 gobuster 和 feroxbuster 发现 evil.php 文件 evil.php 测试 : 初始访问无内容,推测需要参数 使用 ffuf 进行参数爆破: 发现参数:command=/etc/passwd 文件包含漏洞利用 : 确认存在任意文件读取漏洞: 可读取 /etc/passwd 无法读取 /etc/shadow(权限不足) 测试远程文件包含(失败) 使用 PHP 伪协议读取文件源码: 使用 CyberChef 解码获取源码 测试文件写入(失败,无写入权限) SSH 渗透 用户发现 : 从 /etc/passwd 发现可登录用户 mowree 密钥发现 : 读取用户家目录发现 RSA 公钥和私钥 私钥文件:id_ rsa 私钥利用 : 将私钥保存到攻击机 赋予 600 权限 发现私钥需要密码 私钥密码爆破 : 使用 ssh2john 生成 hash: 使用 john 爆破密码: 成功爆破密码:unicorn SSH 登录 : 使用私钥和密码登录: 获得普通用户 shell 权限提升 sudo 提权检查 : sudo -l 检查无可用提权命令 SUID 提权检查 : 查找 SUID 文件: 未发现可利用的常见 SUID 程序(如 nmap、vim、find 等) 内核提权尝试 : 搜索内核漏洞无果 文件权限检查 : 查找可写文件: 发现 /etc/passwd 文件可写 passwd 文件提权 : 生成 root 密码: 替换 /etc/passwd 中 root 的密码字段 使用 su 切换到 root 用户 成功提权并获取 flag 关键点总结 工具选择 :不同目录枚举工具(dirsearch、gobuster、feroxbuster)可能有不同结果 PHP 伪协议 :当直接文件包含不可用时,php://filter 是读取源码的有效方法 SSH 私钥利用 :即使有私钥也可能需要爆破密码 非常规提权 :检查系统异常权限设置(如全局可写的 /etc/passwd) 密码生成 :使用 openssl passwd 生成符合 /etc/passwd 格式的密码哈希 防御建议 限制敏感文件权限(如 /etc/passwd) 避免在 Web 目录存放敏感信息(如 SSH 私钥) 对用户上传的参数进行严格过滤 使用强密码保护 SSH 私钥 定期检查系统异常权限设置