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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
msteams — Microsoft Graph APIを使用してMicrosoft Teamsチャネル経由でエージェントトラフィックをトンネリングするMythic C2プロファイル。AES256暗号化、ジッター、キルデート、プロキシサポートを備えています。 | Kitploit
ツール/GitHubGitHub/whispergate/msteams
防御ツールペネトレーションテストフレームワーク暗号化/復号化ツールポストエクスプロイトコマンド&コントロールユーティリティとフレームワークレッドチーミングペイロード開発
GitHubwhispergate/msteams

msteams

Microsoft Graph APIを使用してMicrosoft Teamsチャネル経由でエージェントトラフィックをトンネリングするMythic C2プロファイル。AES256暗号化、ジッター、キルデート、プロキシサポートを備えています。

リポジトリを見る
28172日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

msteams

Microsoft Graph API を使用して Microsoft Teams チャネル経由で通信する Mythic C2 プロファイル。

仕組み

root@kitploit:~
Agent <---> Microsoft Teams Channel <---> C2 Server <---> Mythic
  1. エージェントは OAuth2 クライアントクレデンシャルを使用して Microsoft Entra ID に認証する
  2. Mythic メッセージ (base64 エンコード、AES 暗号化) を Teams チャネルに投稿する
  3. C2 サーバーは Graph API 経由でチャネルをポーリングし、新しいメッセージを Mythic に転送する
  4. Mythic の応答がチャネルに投稿される
  5. エージェントはチャネルをポーリングして応答を取得する

通信は通常の Teams チャネルアクティビティとして見えます。

このプロファイルは以下をサポートします:

  • Kill Dates
  • Sleep Intervals with Jitter
  • AES256 Encryption
  • Proxy Configuration
  • オプションのメッセージクリーンアップ (処理後にメッセージを削除)
  • 送信用の Webhook フォールバック

インストール

Mythic サーバーから:

root@kitploit:~
sudo ./mythic-cli install github https://github.com/Whispergate/msteams

またはローカルフォルダから:

root@kitploit:~
sudo ./mythic-cli install folder /path/to/msteams

Entra ID のセットアップ

  1. アプリ登録 - Azure Portal > Microsoft Entra ID > アプリの登録 で作成
  2. クライアントシークレット - 証明書とシークレット で生成
  3. API のアクセス許可 - アプリケーションのアクセス許可を付与し、管理者の同意を行う:
    • ChannelMessage.Read.All - チャネルメッセージの読み取り
    • ChannelMessage.Send - チャネルメッセージの送信
  4. チームとチャネルの ID - Graph Explorer または Teams クライアントのチャネルリンクから取得

ChannelMessage.Send が利用できない場合は、Group.ReadWrite.All を使用するか、Webhook URL を設定してください。

完全なセットアップ手順は、インストール後の Mythic ドキュメントページ https://<your-mythic-server>:7443/docs/c2-profiles/msteams にあります。

設定

Mythic UI から編集: C2 Profiles > msteams > View/Edit Config。

互換性のあるエージェント

  • Starburst - WinHTTP ベースの MS Teams トランスポートによる完全サポート

msteams C2 プロファイルパラメータを実装する任意の Mythic エージェントがこのプロファイルを使用できます。エージェントは以下を行う必要があります:

  1. 設定されたクレデンシャルを使用して Graph API に認証する
  2. base64 エンコードされた Mythic メッセージを設定された Teams チャネルに投稿する
  3. C2 サーバーからの応答をチャネルでポーリングする

Azure なしでのテスト

Azure や M365 アカウントなしでローカルテストを行うためのモックテストインフラが test/ に含まれています。これにより、コンパイル済みインプラントを含む完全な C2 パイプラインを、ローカルの偽 Graph API に対してテストできます。

モックサーバーのセットアップ

  1. test/mock_server.py を Mythic ホストにコピーして起動します:

    root@kitploit:~
    python3 mock_server.py
    

    これにより、ポート 8443 で偽の Graph API が起動します。

  2. Mythic で msteams C2 プロファイルをモック値で設定します:

    root@kitploit:~
    {
      "tenant_id": "fake-tenant-id",
      "client_id": "fake-client-id",
      "client_secret": "fake-client-secret",
      "team_id": "fake-team-id",
      "channel_id": "fake-channel-id",
      "graph_base": "http://<mythic-host-ip>:8443/v1.0",
      "login_base": "http://<mythic-host-ip>:8443",
      "poll_interval": 3,
      "clear_messages": true,
      "debug": true
    }
    
  3. Mythic UI で msteams プロファイルを起動します。

コンパイル済みインプラント (Starburst) でのテスト

実際にコンパイルされたエージェントをモックに対してテストするには、エージェントバイナリを、実際の Graph API エンドポイントではなくモックサーバーの IP とポートをハードコードしてビルドする必要があります。Starburst エージェントのコード (agent_code/src/transport/msteams.cc) 内:

root@kitploit:~
// Change these for mock testing:
#define GRAPH_API_HOST  "<mythic-host-ip>"
#define LOGIN_HOST      "<mythic-host-ip>"
#define API_PORT        8443

// And change WINHTTP_FLAG_SECURE to 0 in WinHttpOpenRequest
// since the mock server uses plain HTTP:
        WINHTTP_DEFAULT_ACCEPT_TYPES,
        0

その後、Starburst を再インストールし、msteams プロファイル (同じ偽の tenant/client/team/channel ID を使用) でペイロードをビルドし、Mythic ホストに到達できる Windows VM 上で実行します。

本番ペイロードをビルドする前に、これらの変更を元に戻すことを忘れないでください:

root@kitploit:~
#define GRAPH_API_HOST  "graph.microsoft.com"
#define LOGIN_HOST      "login.microsoftonline.com"
#define API_PORT        443

        WINHTTP_DEFAULT_ACCEPT_TYPES,
        WINHTTP_FLAG_SECURE

偽エージェントでのテスト (コンパイル不要)

エージェントをコンパイルせずに簡単なパイプラインテストを行うには:

root@kitploit:~
GRAPH_URL=http://<mythic-host-ip>:8443 python test/fake_agent.py

詳細は test/README.md を参照してください。

OPSEC に関する考慮事項

  • メンバーシップを最小限にした専用のプライベートチャネルを使用する
  • clear_messages を有効にして処理後にクリーンアップする
  • レート制限を避けるため、poll_interval を適切な値 (10〜30 秒) に保つ
  • すべてのメッセージは Mythic ペイロードレベルで AES256 暗号化される
  • Teams メッセージはエンドツーエンド暗号化されていない (テナント管理者と Microsoft から閲覧可能)
  • Graph API のレート制限は、アプリごと、テナントごとに毎秒約 30 リクエスト

ファイル構成

root@kitploit:~
msteams/
  config.json                          # Mythic container config
  C2_Profiles/msteams/
    Dockerfile                         # Container image
    main.py                            # Mythic service entrypoint
    requirements.txt                   # Python dependencies
    rabbitmq_config.json               # RabbitMQ settings
    msteams/
      c2_functions/msteams.py          # C2Profile class + parameters
      c2_code/
        server.py                      # Main polling loop
        graph_client.py                # MS Graph API client
        mythic_client.py               # Mythic API forwarder
        config.py                      # Config singleton
        config.json                    # Default config values
  documentation-c2/msteams/_index.md   # Mythic docs page
  test/
    mock_server.py                     # Mock Graph API server
    fake_agent.py                      # Simulated agent for testing
    test_c2_server.py                  # Standalone C2 server test harness
    test_config.json                   # Test config with fake values
ツールをダウンロード
パラメータ説明デフォルト
tenant_idEntra ID テナント (ディレクトリ) ID
client_idアプリ登録のクライアント ID
client_secretアプリ登録のクライアントシークレット
team_idTeams チーム ID
channel_idTeams チャネル ID
webhook_url送信用のオプションの Webhook URL
graph_baseGraph API ベース URLhttps://graph.microsoft.com/v1.0
login_baseログインエンドポイントのベース URLhttps://login.microsoftonline.com
poll_intervalポーリング間隔 (秒)10
clear_messages処理後にメッセージを削除false
debug詳細ログを有効化false