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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
GoCD_PoC_Supply_Chain_Attack — CVE-2021-43287 CVE-2021-43288 CVE-2021-43289 CVE-2021-43290 | Kitploit
ツール/GitHubGitHub/higorgabrieldcf/gocd_poc_supply_chain_attack
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用ポストエクスプロイトセキュリティ仮想化ペネトレーションテストサプライチェーンセキュリティ学習と教育

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
レッドチーミング
GitHubhigorgabrieldcf/gocd_poc_supply_chain_attack

GoCD_PoC_Supply_Chain_Attack

CVE-2021-43287 CVE-2021-43288 CVE-2021-43289 CVE-2021-43290

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

GoCD 20.10.0 — PoC: CVE-2021-43287 · CVE-2021-43288 · CVE-2021-43289 · CVE-2021-43290

著者 / Author: Higor Farias — PRIDE Security

⚠️ 法的通知 / LEGAL DISCLAIMER

[PT] 本資料は、教育および攻撃的セキュリティ研究の目的のためにのみ作成されています。明示的な許可を得た制御された環境でのみ使用してください。誤用は利用者の全責任となります。

[EN] 本資料は、教育および認可された攻撃的セキュリティ研究の目的のためにのみ作成されています。明示的な書面による許可を得た制御された環境でのみ使用してください。誤用は利用者の全責任となります。


目次 / Table of Contents

  1. 概要 / Overview
  2. ソフトウェアサプライチェーンへの影響 / Software Supply Chain Impact
  3. 脆弱性 / Vulnerabilities
  4. 攻撃チェーン / Attack Chain
  5. 前提条件 / Prerequisites
  6. DockerによるPoC環境 / PoC Docker Environment
  7. スクリプトの使用 / Script Usage
    • gocd_rce_noauth.py — 認証なしRCE / Unauthenticated RCE
    • gocd_urldns.py — URLDNS / デシリアライズ検出
  8. 参考文献 / References
  9. タイムライン / Timeline
  10. 対策 / Mitigation

1. 概要 / Overview

[PT] GoCDはThoughtWorksが維持するCI/CDプラットフォームです。21.3.0以前のバージョンにおいて、SonarSourceの研究者は認証不要で攻撃可能な脆弱性チェーンを特定しました。このリポジトリの2つのスクリプトは以下を示します:

  • gocd_rce_noauth.py — 認証なしでRCE(リモートコード実行)に至るまでのチェーン全体のエクスプロイト。
  • gocd_urldns.py — URLDNSガジェットチェーンとDNSコールバックを用いたJavaデシリアライズのアウトオブバンド検出(登録済みエージェントの一覧表示には有効な認証情報が必要)。

[EN] GoCDはThoughtWorksが維持するCI/CDプラットフォームです。21.3.0以前のバージョンにおいて、SonarSourceの研究者は認証ゼロで攻撃可能な脆弱性チェーンを特定しました。このリポジトリの2つのスクリプトは以下を示します:

  • gocd_rce_noauth.py — 認証なしでRCE(リモートコード実行)に至るまでのチェーン全体のエクスプロイト。
  • gocd_urldns.py — URLDNSガジェットチェーンとDNSコールバックを用いたJavaデシリアライズのアウトオブバンド検出(登録済みエージェントの一覧表示には有効な認証情報が必要)。

2. ソフトウェアサプライチェーンへの影響 / Software Supply Chain Impact

[PT] GoCDは組織のソフトウェア配信チェーンにおいて中核的な位置を占めています:ビルド、テスト、アーティファクト生成、本番環境へのデプロイをオーケストレーションします。gocd_rce_noauth.pyによって示されているように、RCEを通じてGoCDサーバーを侵害すると、攻撃者はそのプロセスのすべての段階に対する制御権を取得し、バイナリへのバックドア挿入、アーティファクトの改ざん、または最終ユーザーに製品が届く前にソースコードや認証情報を外部へ漏洩させることが可能になります。このシナリオは、ビルドパイプラインへのアクセスが数千の顧客へのマルウェア配布につながったSolarWinds攻撃(2020年)に類似しています。

[EN] GoCDは組織のソフトウェア配信チェーンにおいて中核的な位置を占めています:ビルド、テスト、アーティファクト生成、本番環境へのデプロイをオーケストレーションします。gocd_rce_noauth.pyによって示されているように、RCEを通じてGoCDサーバーを侵害すると、攻撃者はそのプロセスのすべての段階に対する制御権を取得し、バイナリへのバックドア挿入、アーティファクトの改ざん、または最終ユーザーに製品が届く前にソースコードや認証情報を外部へ漏洩させることが可能になります。このシナリオは、ビルドパイプラインへのアクセスが数千の顧客へのマルウェア配布につながったSolarWinds攻撃(2020年)に類似しています。

flowchart TD
    ATK(["🕵️ Atacante / Attacker\n(não autenticado / unauthenticated)"])

    subgraph EXPLOIT ["Exploração / Exploitation"]
        E1["CVE-2021-43287\nLeitura do cruise_config\n(tokenGenerationKey + agentAutoRegisterKey)"]
        E2["Path Traversal\nLeitura de /etc/go/jetty.xml\ne /proc/self/environ"]
        E3["Registro de agente falso\nFake agent registration"]
        E4["Desserialização Java\n(AspectJWeaver gadget chains)\nSobrescreve jetty.xml + restart"]
        E5["💥 RCE no servidor GoCD\nRCE on GoCD server"]
        E1 --> E2 --> E3 --> E4 --> E5
    end

    subgraph PIPELINE ["Pipeline CI/CD comprometido / Compromised CI/CD Pipeline"]
        P1["📦 Build de artefatos\nBinary/artifact build"]
        P2["🧪 Execução de testes\nTest execution"]
        P3["📤 Publicação de pacotes\nPackage publication\n(npm, PyPI, Docker Hub...)"]
        P4["🚀 Deploy em produção\nProduction deployment"]
        P1 --> P2 --> P3 --> P4
    end

    subgraph IMPACT ["Impacto / Impact"]
        I1["🔑 Vazamento de credenciais\nCredential leak\n(tokens, SSH keys, API keys)"]
        I2["🦠 Backdoor em artefatos\nBackdoor in build artifacts"]
        I3["📂 Exfiltração de código-fonte\nSource code exfiltration"]
        I4["☠️ Ataque à cadeia de suprimentos\nSupply chain attack\n(usuários finais afetados / end users impacted)"]
        I1 & I2 & I3 --> I4
    end

    ATK --> EXPLOIT
    E5 -->|"Controle total do runner\nFull runner control"| PIPELINE
    P1 -->|"Artefatos envenenados\nPoisoned artifacts"| I2
    P3 -->|"Pacotes maliciosos\nMalicious packages"| I4
    P4 -->|"Produção comprometida\nCompromised production"| I4
    E5 -->|"Leitura de secrets\nSecrets read"| I1
    E5 -->|"Acesso ao repositório\nRepository access"| I3

3. 脆弱性 / Vulnerabilities

CVE種類 / TypeCVSS 3.1CWE認証
CVE-2021-43287情報漏洩7.5 HIGHCWE-200❌ 不要 / None
CVE-2021-43288格納型 XSS6.1 MEDIUMCWE-79Agent
CVE-2021-43289パストラバーサル — PUT8.1 HIGHCWE-22Agent
CVE-2021-43290パストラバーサル — GET8.1 HIGHCWE-22Agent

CVE-2021-43287 — Business Continuity: 認証なしの漏洩 / unauthenticated leak

[PT] エンドポイント /go/add-on/business-continuity/api/cruise_config は、認証を要求せずにサーバー設定の完全な XML を返します。この XML には <server> 要素の属性が含まれており、agentAutoRegisterKey と tokenGenerationKey が含まれます — これはエージェントを登録し、認証済みリクエストに署名するために必要な2つのキーです。さらに、プラグインエンドポイントの pluginName パラメータはパストラバーサルシーケンス(../../../../../../)を受け入れ、/proc/self/environ や /etc/go/jetty.xml などのシステム上の任意のファイルを読み取ることができます。

[EN] /go/add-on/business-continuity/api/cruise_config エンドポイントは、認証を要求せずにサーバー設定の完全な XML を返します。この XML には <server> 要素の属性が含まれており、agentAutoRegisterKey と tokenGenerationKey が含まれます — これはエージェントを登録し、認証済みリクエストに署名するために必要な2つのキーです。さらに、プラグインエンドポイントの pluginName パラメータはパストラバーサルシーケンス(../../../../../../)を受け入れ、/proc/self/environ や /etc/go/jetty.xml などのシステム上の任意のファイルを読み取ることができます。

スクリプトが悪用するエンドポイント / Endpoints used by the scripts:

GET /go/add-on/business-continuity/api/cruise_config
GET /go/add-on/business-continuity/api/plugin?folderName=&pluginName=../../../../../../proc/self/environ
GET /go/add-on/business-continuity/api/plugin?folderName=&pluginName=../../../../../../etc/go/jetty.xml

CVE-2021-43289 / CVE-2021-43290 — remoteBuildRepository を介した Java デシリアライゼーション

[PT] エンドポイント /go/remoting/remoteBuildRepository は、ヘッダー Authorization: base64(HMAC-SHA256(tokenGenerationKey, agent_uuid)) のみで認証された Java シリアライズオブジェクト(Content-Type: application/x-java-serialized-object)を受け入れます。tokenGenerationKey は CVE-2021-43287 を介して取得されるため、認証情報を持たない攻撃者が悪意のあるガジェットチェーンを送信できます。スクリプトは AspectJWeaver に基づく 2 つのカスタム ysoserial ガジェットを使用します:

  • AspectJWeaverFileUpload1 — サーバーのファイルシステムに任意のファイルを書き込みます(悪意のあるバージョンで /etc/go/jetty.xml を上書きするために使用)。
  • AspectJWeaverFileRead1 — /dev/random を読み取り、Jetty に再起動を強制して変更された jetty.xml をロードさせ、java.lang.Runtime.exec() を介して注入されたコマンドをトリガーします。

[EN] エンドポイント /go/remoting/remoteBuildRepository は、ヘッダー Authorization: base64(HMAC-SHA256(tokenGenerationKey, agent_uuid)) のみで認証された Java シリアライズオブジェクト(Content-Type: application/x-java-serialized-object)を受け入れます。tokenGenerationKey は CVE-2021-43287 を介して取得されるため、認証されていない攻撃者が悪意のあるガジェットチェーンを送信できます。スクリプトは AspectJWeaver に基づく 2 つのカスタム ysoserial ガジェットを使用します:

  • AspectJWeaverFileUpload1 — サーバーのファイルシステムに任意のファイルを書き込みます(悪意のあるバージョンで /etc/go/jetty.xml を上書きするために使用)。
  • AspectJWeaverFileRead1 — /dev/random を読み取り、Jetty に再起動を強制して変更された jetty.xml をロードさせ、java.lang.Runtime.exec() を介して注入されたコマンドをトリガーします。

4. 攻撃チェーン / Attack Chain

gocd_rce_noauth.py — 認証不要の完全チェーン / Full unauthenticated chain

ツールをダウンロード