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

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

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

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

ツールディレクトリ

カテゴリ

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

SteppingStones

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

リポジトリを見るウェブサイト
24334591日前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
  8. アプリケーションを起動します:
    • 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/
  9. タスクと管理者ユーザーを設定するためにアプリケーションにアクセスします: 例: ローカルで実行している場合は 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ドキュメントは常に次の構造を持ちます:

{
    "type": "notification type",
    "message": "Human readable message"
}

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

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

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

{"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がアクセスできるすべてのデータが含まれるわけではないため、推奨される取り込み方法ではありません。
ツールをダウンロード