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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
apimspray — Azure apim ミニプロキシ | Kitploit
ツール/GitHubGitHub/crtvrffnrt/apimspray
OSINT (オープンソースインテリジェンス)偵察パスワード攻撃情報収集クラウドセキュリティレッドチーミング
GitHubcrtvrffnrt/apimspray

apimspray

Azure apim ミニプロキシ

リポジトリを見る
61611日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

Apimspray

apimspray

Python Azure License Status

apimsprayは、認可されたセキュリティ研究やRed Team活動のために設計された、専用のEntra IDパスワードスプレーツールキットです。Azure API Management(APIM)ゲートウェイを分散型・ローテーションプロキシレイヤーとして活用し、IPローテーションを実現します。

このプロジェクトの詳細については、ブログ記事をご覧ください。

前提条件

  • Azure CLI(az): リソースデプロイ用のローテータースクリプトに必要です。(Azure CLIに認証済みのCLIセッション、またはAzure Cloud Shellからスクリプトを実行してください)
  • 有効なAzureサブスクリプション: APIM Consumptionティアのリソースをデプロイするために必要です(コストはごくわずかで、短時間の評価では通常<$0.01です)。

インストール

  1. リポジトリをクローンします。
  2. Python依存関係をインストールします。
    root@kitploit:~
    pip install -r requirements.txt
    
  3. Azure CLIにログインしていることを確認します。
    root@kitploit:~
    az login
    
    注: ローテータースクリプトは、バックグラウンドでアクティブなAzure CLIセッションに依存してリソースをデプロイします。

セットアップ

クイックスタート(Azure Cloud Shell)

認証済みのAzure環境から直接apimsprayを実行します。

Open in Azure Cloud Shell
root@kitploit:~
git clone https://github.com/crtvrffnrt/apimspray.git
cd apimspray
python3 apimspray.py --help

1. ゲートウェイのデプロイ

複数のAPIMゲートウェイをさまざまな場所にデプロイします。

root@kitploit:~
python3 apimspraycreate.py --count 5 --outfile urls.txt

germanywestcentralとwesteuropeに33個のAPIMインスタンスをデプロイし、urls.txtに保存します。

root@kitploit:~
 python3 apimspraycreate.py --location germanywestcentral,westeurope --count 33 --outfile urls.txt

apimspraycreate CLIリファレンス:

root@kitploit:~
usage: apimspraycreate.py [-h] --outfile OUTFILE [--count COUNT] [--location LOCATION] [--prefix PREFIX] [--realm-prefix REALM_PREFIX] [--delete-old]

apimspraycreate - Azure APIM Deployer

options:
  -h, --help            show this help message and exit
  --outfile OUTFILE     Output file for URLs
  --count COUNT         Number of instances
  --location LOCATION   Comma-separated APIM location(s) to deploy into. When provided, only those regions are used and the first location is used for the resource group.
  --prefix PREFIX       API URL prefix
  --realm-prefix REALM_PREFIX
                        Realm API prefix
  --delete-old          Delete old resource groups

重要: すべての方法において、バックグラウンドでアクティブなazセッション(az login)が必要です。

2. ワードリストの準備

ターゲットリストを用意してください。

  • users.txt: UserPrincipalNameのリスト(例: [email protected])。
  • passwords.txt: スプレーするパスワードのリスト。

3. 偵察 / UPN生成(オプション)

ユーザーリストがない場合は、ヘルパースクリプトgenerate_upns.pyを使用できます。このツールは:

  1. ターゲットAzureテナントにクエリを実行し、接続済みかつ確認済みのドメインをすべて検出します。
  2. GitHubから統計的に可能性の高いサービスアカウントユーザー名のリストをダウンロードします。
  3. UPN(UserPrincipalName)の順列リストを生成し、users.txtに保存します。

使用方法:

root@kitploit:~
# 特定のドメインまたはテナントIDに対してusers.txtを生成
python3 generate_upns.py --target example.com
# またはテナントIDを使用
python3 generate_upns.py --target 00000000-0000-0000-0000-000000000000

generate_upns CLIリファレンス:

root@kitploit:~
usage: generate_upns.py [-h] --target TARGET

Generate UPNs from connected Azure Tenants and Service Accounts.

options:
  -h, --help       show this help message and exit
  --target TARGET  Target Domain (e.g., example.com) or Tenant UUID

使用方法

root@kitploit:~
usage: apimspray.py [-h] [--urls URLS] [--users USERS] [--passwords PASSWORDS] [--output OUTPUT] [--tenant TENANT] [--domain DOMAIN] --mode {spray,validate} [--pace {stealth,low,mid,medium,high}]
                    [--continue-on-success]

apimspray - Entra ID Assessment Tool

options:
  -h, --help            show this help message and exit
  --urls URLS           Path to APIM URLs file (from apimspraycreate.py or apimsprayrotator.sh)
  --users USERS         Path to users file
  --passwords PASSWORDS
                        Path to passwords file
  --output OUTPUT       Output directory
  --tenant TENANT       Tenant ID or Domain
  --domain DOMAIN       Append domain to users if missing
  --mode {spray,validate}
                        Operation mode. 'spray' tests all passwords against all users (1:N). 'validate' performs 1:1 credential pair testing.
  --pace {stealth,low,mid,medium,high}
                        Pacing profile for requests and lockout management:
                         - high:    15 workers, 0.1s delay, 10 passes/chunk, 5m lockout, 20 safe threshold
                         - medium:  5 workers,  1.0s delay,  5 passes/chunk, 10m lockout, 10 safe threshold, 10% jitter
                         - low:     2 workers,  5.0s delay,  2 passes/chunk, 15m lockout,  5 safe threshold, 20% jitter
                         - stealth: 1 worker,  30.0s delay,  1 pass/chunk,   20m lockout,  1 safe threshold, 40% jitter
  --continue-on-success
                        Continue the assessment even after finding valid credentials.

モード

  • validate: user:passwordペアのリストをチェックします。リストの長さは同じである必要があります。

    root@kitploit:~
    python3 apimspray.py --urls urls.txt --mode validate --users u.txt --passwords p.txt
    
  • spray: 1つのパスワードを全ユーザーに対して試行し、設定された間隔を待ってから次のパスワードに移行します。

    root@kitploit:~
    python3 apimspray.py --urls urls.txt --mode spray --users users.txt --passwords common_passwords.txt --pace medium
    

ペーシングプロファイル

--pace引数はスプレーの攻撃性を制御します。値は安定性と安全性を確保するためにハードコードされています。

  • 試行数: ロックアウトタイマーがリセットされるのを待つために一時停止する前に、各ユーザーに対して試行するパスワードの数。
  • ロックアウト待機: パスワードチャンク間のスリープ時間。
  • 安全しきい値: この数以上のアカウントがロックされた(AADSTS50053)場合、ツールは即座に中止します。
  • ジッター: 遅延をランダム化し、静的なタイミング分析を回避します。

出力

結果はresults/<timestamp>/ディレクトリに保存されます。

  • valid_*.txt: 認証成功(MFA要求あり、またはトークン受信)。
  • blocked_*.txt: ロックされた、または条件付きでブロックされたアカウント。
  • failed_*.txt: 無効な資格情報、またはユーザーが見つからなかったもの。

クレジットと参考資料

  • o365spray: ROPCフローのロジックの着想。
  • TeamFiltration: ツール構造のデザインの着想。
  • FireProx: クラウドゲートウェイローテーション技術の先駆者。
ツールをダウンロード
プロファイルワーカー数遅延試行数(チャンク)ロックアウト待機安全しきい値ジッター
high150.1s105m20 ロック0%
medium51.0s510m10 ロック10%
low25.0s215m5 ロック20%
stealth130.0s120m1 ロック40%