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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
SteppingStones — Cobalt StrikeおよびBloodHound統合を備えた、ウェブベースのレッドチーム活動のロギング、レポート、状況認識ツール。 | Kitploit
ツール/GitHubGitHub/nccgroup/steppingstones
スクリプトと自動化情報収集ペネトレーションテストコマンド&コントロールユーティリティとフレームワークレッドチーミング
GitHubnccgroup/steppingstones

SteppingStones

Cobalt StrikeおよびBloodHound統合を備えた、ウェブベースのレッドチーム活動のロギング、レポート、状況認識ツール。

リポジトリを見る
24334405日前Kitploit レビュー済み
ウェブサイト

人気

すべて見る →

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

すべてのツールを探索

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

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

Stepping Stones

目的

Red Team活動の記録保持、状況把握、報告を支援するハブです。 Stepping Stonesは、チームが活動を記録しレポートのスニペットを生成するためのWebベースのUIを提供します。 このUIは、報告フェーズだけでなく、エンゲージメント全体を通じて使用できる十分な速さを意図しています。

リリースブログ記事

インストール

Stepping StonesはPython Djangoアプリケーションです。ローカルコピーを実行するには:

  1. 最新版のPython 3をインストールします(WindowsとLinuxで3.12.2でテスト済み)
  2. このリポジトリのコピーのルートディレクトリに移動します
  3. 依存関係を他のアプリから分離するための仮想環境を作成します: python -m venv .venv
  4. 仮想環境をアクティブにします: .venv\Scripts\activate または *nix では source .venv/bin/activate
  5. 依存関係をインストールします: pip install -r requirements.txt
  6. サードパーティの background tasks モジュールが必要なマイグレーションをすべて持っていることを確認します: python manage.py makemigrations background_task
  7. データベーススキーマを最新の状態にします: python manage.py migrate
  • アプリケーションを起動します:
    • systemdを使用するLinuxシステムで実行する場合は、systemdガイドを参照してください
    • 開発版の場合:
      • python manage.py runserver と python manage.py process_tasks を並行して実行します
    • 本番版の場合:
      • ロックダウンのアドバイスを得るために python manage.py check --deploy を実行し、次のようなガイドに従います: https://docs.djangoproject.com/en/6.0/howto/deployment/
  • タスクと管理者ユーザーを設定するためにアプリケーションにアクセスします: 例: ローカルで実行している場合は http://127.0.0.1:8000 にアクセス
    • 注: 作成したユーザーはメインアプリでも使用され、記録されたイベントに対して「red team operator」として表示されるため、"admin"ではなく "ST" や "stephen" などの適切なユーザー名を選択してください。Cobalt Strikeインテグレーションを使用する場合は、両方のツールで同じユーザー名を使用するとインテグレーションが容易になります。
  • Cobalt Strike インテグレーション

    • ライセンスされたCobalt Strikeを /opt/cobaltstrike または c:\tools\cobaltstrike-dist\cobaltstrike に配置します

    チームサーバー上で - Stepping Stonesが接続できるようにファイアウォールに穴を開けます。例:

    • AWSでは、Team Serverの50050ポートへのアクセスをStepping Stonesのセキュリティグループに許可します
    • ホストでは、ファイアウォールがトラフィックも許可していることを確認します。例: sudo ufw allow proto tcp from 172.31.16.0/20 to any port 50050

    アプリケーションの更新

    ローカルコピーを実行している場合、gitでコードが更新され、新機能を利用したいときは:

    1. 両方のサービスを停止します。例: systemd を使用:
      • sudo service ssbot stop
      • sudo service steppingstones stop
    2. 最新バージョンを取得します。例: https://github.com/nccgroup/SteppingStones/archive/refs/heads/main.zip
    3. ダウンロードを解凍し、デプロイの上にファイルをコピーします。例: rm -rf /tmp/stepping-stones-main; unzip /tmp/stepping-stones-main.zip && cp -R /tmp/stepping-stones-main/* /opt/steppingstones
    4. steppingstonesディレクトリから仮想環境をアクティブにします(まだの場合): .venv\Scripts\activate または *nix では source .venv/bin/activate
    5. 新しい依存関係を取り込みます: pip install -r requirements.txt
    6. サードパーティの background tasks モジュールが必要なマイグレーションをすべて持っていることを確認します: python manage.py makemigrations background_task
    7. ローカルデータベースを新しいスキーマに移行するためのマイグレーションスクリプトを実行します: python manage.py migrate。
      • Djangoが python manage.py makemigrations の実行を促した場合は停止してStepping Stones開発者に連絡してください - すべてのユーザーが同じマイグレーションスクリプトセットで作業していることが重要であり、これらは開発者を通じて調整されるべきです。
    8. 両方のサービスを再起動します。例: systemd を使用:
      • sudo service ssbot restart
      • sudo service steppingstones restart
    9. エラーがないことを確認します。例: systemd を使用して journalctl -u steppingstones

    クリーンなデータベースで再開する

    同じインスタンスを異なるジョブで使用していて、古いデータをアーカイブして新しく開始したい場合は、次のことができます:

    • 上記の アプリケーションの更新 のステップ1を実行してアプリケーションを停止します
    • SQLiteデータベースの名前を変更します:
      • mv db.sqlite3 db.sqlite.OLD_CLIENT_NAME
    • 上記の インストール のステップ2、4、7〜9を実行して、正しいデータベース構造を作成し、新しく設定されたアプリケーションにアクセスします。

    バックアップ

    システムはSQLiteを使用します。サーバーのルートにある db.sqlite3 ファイルを定期的にバックアップするか、Web UIを介してバックアップし、貴重なデータを保護してください。

    Webフック

    設定されたWebフックURLには、主要なイベントごとに小さなJSONドキュメントが送信されます。 JSONドキュメントは常に次の構造を持ちます:

    root@kitploit:~
    {
        "type": "notification type",
        "message": "Human readable message"
    }
    

    type フィールドには次のいずれかを使用できます:

    • new beacon (これまで見られなかったビーコンが監視対象のTeam Serverに接続しました)
    • respawned beacon (以前に見られたビーコンが監視対象のTeam Serverに接続しました)
    • returned beacon (再接続を明示的に監視されていたビーコンが再接続しました)

    これを利用するには、次のブループリントに基づいた https://make.com のシナリオを使用できます:

    root@kitploit:~
    {"name":"Webhook to iOS","flow":[{"id":1,"module":"gateway:CustomWebHook","version":1,"parameters":{"hook":129792,"maxResults":1},"mapper":{},"metadata":{"designer":{"x":-386,"y":-129},"restore":{"parameters":{"hook":{"data":{"editable":"true"},"label":"My webhook"}}},"parameters":[{"name":"hook","type":"hook:gateway-webhook","label":"Webhook","required":true},{"name":"maxResults","type":"number","label":"Maximum number of results"}],"interface":[{"name":"type","type":"text"},{"name":"message","type":"text"}]}},{"id":8,"module":"ios:SendNotification","version":1,"parameters":{"device":171760},"mapper":{"body":"{{1.message}}","title":"{{1.type}}","action":"","priority":10,"collapsible":false},"metadata":{"designer":{"x":-31,"y":-128},"restore":{"expect":{"action":{"label":"Default"},"priority":{"label":"Deliver immediately"}},"parameters":{"device":{"data":{"editable":"undefined"},"label":"Personal Phone"}}},"parameters":[{"name":"device","type":"device:apn","label":"Device","required":true}],"expect":[{"name":"title","type":"text","label":"Title","required":true},{"name":"body","type":"text","label":"Body"},{"name":"action","type":"select","label":"Action","validate":{"enum":["open_url"]}},{"name":"priority","type":"select","label":"Priority","required":true,"validate":{"enum":[10,5]}},{"name":"collapsible","type":"boolean","label":"Collapse push notifications","required":true}]}}],"metadata":{"instant":true,"version":1,"scenario":{"roundtrips":1,"maxErrors":3,"autoCommit":true,"autoCommitTriggerLast":true,"sequential":false,"confidential":false,"dataloss":false,"dlq":false},"designer":{"orphans":[]},"zone":"eu1.make.com"}}
    

    上記のブループリントをインポートするには、空白のシナリオを作成し、Web UIの下部中央にある "..." (More) メニューの "Import Blueprint" 機能を使用します。

    さらに2つのステップが必要です:

    • Webhookの円をクリックし、名前付きの新しいWebhookを追加してURLを生成します
    • Appleロゴをクリックして、make.comのintegromatアプリでiPhoneを登録します。

    Webhookは、Stepping Stonesのwebhookページのボタンからテストできます。

    セキュリティモデル

    Stepping StonesはDjangoのモデルレベルの権限システムを利用しており、ユーザーが各データモデルの作成、編集、表示、削除を制限できます。 グループは /admin コンソールにあり、そのグループのメンバーに一連の権限(例: クライアントのBlue Teamに適したもの)を割り当てます。

    既存のグループは次のとおりです:

    ロール説明
    クライアントBlue Team - 読み取り専用イベントとファイルページを読むことができます
    クライアントBlue Team - 限定書き込みClient Blue Team - Read Only に加え、Eventのoutcomeおよびdetectionフィールドへの書き込みアクセスがあります

    インストールプロセス中に作成されたユーザーには "superuser" ステータスが付与されるため、暗黙的にすべての権限を持ちます。 ただし、adminコンソールから手動でユーザーを作成する場合は、そのユーザーが "staff" にも "superuser" にもマークされないようにしてください。そうすれば、暗黙の権限なしで開始し、グループに追加されることによってのみ権限を取得できます。

    ローカライゼーション

    ユーザーのタイムゾーンは /admin ポータルから変更できます。レポート内の時刻は、Blue Teamによる相関を容易にするために意図的にUTCで出力されます。

    Stepping Stonesで表示される日付形式は、Webブラウザのロケールと一致するはずです。つまり、ブラウザがUSロケールに設定されているユーザーは、Web UIとレポートスニペットでMM/DD/YYYY形式の日付を表示します。

    EventStream

    Stepping Stonesは、他のツールのログがJSONベースの独自のEventStream形式にフォーマットされていれば取り込むことができます。この形式は、スキーマやサンプルデータを含めて、SteppingStonesのWebインターフェース内で詳しく説明されています。

    EventStreamログがStepping Stonesに取り込まれると、特定の関連エントリをEventsにクローンしてレポートに使用できます。

    Cobalt Strike インテグレーションの詳細

    Cobalt Strikeを統合する推奨方法はSSBotを介するものです。これには、/opt/cobaltstrike または c:\tools\cobaltstrike にライセンスされたCobalt Strikeのコピーが必要で、Webインターフェースで設定された(有効な)チームサーバーへの接続に使用されます。

    統合後:

    • Source/Targetドロップダウンにビーコンが含まれます
    • FileドロップダウンにCSを介してアップロード/ダウンロードされたファイルが含まれます
    • Credentialsタブは、ツールの出力とCSに追加された資格情報に基づいて入力されます
    • 個々のCSアクションをイベントに変換できます - レポート品質を維持するために、アクションをまとめて複製するのではなく、選択的になり各イベントにコンテキストを追加してください。

    SSBotが意図したとおりに動作しない場合に使用できる追加のCLIコマンドがあります:

    • .\manage.py reset_cs_data [-s SERVER] - 指定されたチームサーバーから解析されたデータをリセットします。名前が指定されない場合はすべてをリセットします。これはCSログから派生したデータ(例: 手動でクローンされたイベントや資格情報)には影響しません。
    • .\manage.py parse_log_tar <file name> - チームサーバーから取得してtarでまとめたlogsディレクトリの内容を解析します。注: これにはSSBotがアクセスできるすべてのデータが含まれるわけではないため、推奨される取り込み方法ではありません。

    BloodHound インテグレーション

    Web UIを介して設定されたNeo4jサーバーは、次のために使用されます:

    • 資格情報がパスワード付きで追加されたとき、またはビーコンが特定のホスト上でsystemとして実行されたときに、BloodHoundの owned ステータスを更新します。
    • Source/Targetドロップダウンにユーザーとコンピューターを追加します
    • Stepping Stonesのcredentialsセクションでアカウントに関する追加のレポートを提供します

    レポートプラグイン

    プラグインを使用してStepping Stonesの機能を拡張できます。追加ドキュメントはここにあります。

    ツールをダウンロード