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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Spray365 — Spray365は、カスタマイズ可能な2段階パスワードスプレー方式により、Microsoftアカウント(Office 365 / Azure AD)へのスプレー攻撃を容易にします。組み込みの実行プランには、Azure Smart Lockoutや安全でない条件付きアクセスポリシーをバイパスしようとするオプションが含まれています。 | Kitploit
ツール/GitHubGitHub/markoh17/spray365
パスワード攻撃IDS/IPS回避ペネトレーションテストクラウドセキュリティ認証レッドチーミングArchived
GitHubmarkoh17/spray365

Spray365

Spray365は、カスタマイズ可能な2段階パスワードスプレー方式により、Microsoftアカウント(Office 365 / Azure AD)へのスプレー攻撃を容易にします。組み込みの実行プランには、Azure Smart Lockoutや安全でない条件付きアクセスポリシーをバイパスしようとするオプションが含まれています。

リポジトリを見る
381571年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Spray 365 ロゴ


Spray365 とは?

Spray365 は、Microsoft アカウント (Office 365 / Azure AD) の有効な資格情報を特定するパスワードスプレー (password spraying) ツールです。Spray365 は、既に利用可能な他の多くのパスワードスプレーツールと何が違うのでしょうか?Spray365 では、「実行計画 (execution plan)」からパスワードをスプレーすることができます。スプレー操作のずっと前に事前生成された実行計画を持つことには、Spray365 が活用する多くの利点がありますが、これによりネットワークエラーやその他の中断後でもパスワードスプレーを再開 (-R オプション) することができます。Spray365 を直接使用して実行計画を生成するのが最も簡単ですが、互換性のある JSON 構造を出力する他のツールを使用すれば、独自のパスワードスプレーワークフローを簡単に構築できます。

Spray365 は、資格情報をスプレーする際に役立ついくつかのオプションを提供します。ランダムなユーザーエージェントを使用して、許可されるデバイスの種類を制限するように構成された安全でない条件付きアクセスポリシーを検出し、バイパスすることができます。同様に、--shuffle_auth_order 引数は、より予測しにくい方法で資格情報をスプレーする優れた方法です。このオプションは、インテリジェントなアカウントロックアウト (例: Azure Smart Lockout) をバイパスする試みとして追加されました。完璧ではありませんが、資格情報が試行される順序をランダム化することには、これらのスプレー操作の検出をさらに困難にするなど、他の利点もあります。Spray365 は、HTTP/HTTPS 経由のプロキシトラフィックもサポートしており、スプレー操作のソースを操作するための Burp Suite などの他のツールとよく統合されます。

実行計画の生成 (ステップ1)

実行計画の生成

実行計画による資格情報のスプレー (ステップ2)

実行計画のスプレー

Spray365 の結果を確認 (ステップ3)

パスワードスプレーの結果を確認

はじめに

必要条件

  • Python
    • 3.9 (最小)
    • 3.10 (推奨)

インストール

リポジトリをクローンし、必要な Python パッケージをインストールして、Spray365 を実行してください!

root@kitploit:~
$ git clone https://github.com/MarkoH17/Spray365
$ cd Spray365
~/Spray365$ pip3 install -r requirements.txt -U
~/Spray365$ python3 spray365.py

使用方法

実行計画の生成 (通常)

資格情報をスプレーするには実行計画が必要なので、まず作成する必要があります!Spray365 は、generate コマンドを "normal" モードで実行することで、自身で実行計画を生成できます (spray365.py generate normal)。詳細はヘルプ (spray365.py generate -h / spray365.py generate normal -h) を参照してください。

root@kitploit:~
$ python3 spray365.py generate normal -ep <execution_plan_filename> -d <domain_name> -u <file_containing_usernames> -pf <file_containing_passwords>

例:

root@kitploit:~
$ python3 spray365.py generate normal -ep ex-plan.s365 -d example.com -u usernames -pf passwords

実行計画の生成 (監査)

Spray365 は、有効な資格情報をスプレーすることで、多要素認証 (MFA) や条件付きアクセスポリシーの構成を監査することもできます。監査スタイルの実行計画は、特定の資格情報ペアに対して、User-Agent + AAD Client ID + AAD Endpoint ID のすべての組み合わせを試行します。

Spray365 は、generate コマンドを "audit" モードで実行することで、監査スタイルの実行計画を生成できます (spray365.py generate audit)。詳細はヘルプ (spray365.py generate -h / spray365.py generate audit -h) を参照してください。ユーザーとパスワードのリストを別々に提供することも可能ですが (-u と -pf)、これらのオプションはパスワードスプレー (監査ではない) の実行計画により適しており、無効なログイン試行が多くなる可能性があります。代わりに、-u / --user_file と --passwords_in_userfile の使用を検討してください。これにより、Spray365 は入力ファイルの各行をコロンで分割し、コロンの前をユーザー名、後ろをパスワードとして扱うことで、パスワードを "user_file" から抽出するように指示されます (例: <username>:<password>, jsmith:Password01)。

root@kitploit:~
$ python3 spray365.py generate audit -ep <execution_plan_filename> -d <domain_name> -u <file_containing_usernames_and_passwords> --passwords_in_userfile

例:

root@kitploit:~
$ python3 spray365.py generate audit -ep ex-plan.s365 -d example.com -u usernames --passwords_in_userfile

実行計画のスプレー

実行計画が作成されたら、Spray365 を使用して処理できます。"spray" モード (spray365.py spray) で Spray365 を実行すると、指定された実行計画が処理され、適切な資格情報がスプレーされます。すべてのタイプの実行計画 (通常および監査) をこのモードで処理できます。詳細はヘルプ (spray365.py spray -h) を参照してください。

root@kitploit:~
$ python3 spray365.py spray -ep <execution_plan_filename>

例:

root@kitploit:~
$ python3 spray365.py spray -ep ex-plan.s365

スプレー操作の結果の確認

実行計画から資格情報をスプレーした後、Spray365 は結果を含む JSON ファイルを出力します。このファイルは、JQ などの他のツールを使用して処理し、スプレー操作に関する洞察を得ることができます。しかし、Spray365 には "review" コマンドも含まれており、次の事項について確認するために使用できます:

  • 有効 (および無効) なアカウント
  • 有効 (および無効) な資格情報
  • 部分的に有効な資格情報 (認証は成功したが、MFA / 条件付きアクセスポリシーによってアクセスが防止されたもの)

詳細はヘルプ (spray365.py review -h) を参照してください。

root@kitploit:~
$ python3 spray365.py review <spray_results_json_filename>

例:

root@kitploit:~
$ python3 spray365.py review spray365_results_2022-05-20_18-58-31.json

Spray365 の使用方法

生成モード (通常)
root@kitploit:~
Usage: spray365.py generate normal [OPTIONS]

  Generate a vanilla (normal) execution plan

Options:
  -ep, --execution_plan           File path where execution plan should be saved  [required]
  -d, --domain                    Office 365 domain to authenticate against  [required]
  --delay                         Delay in seconds to wait between authentication attempts  [default: 30]
  -mD, --min_loop_delay           Minimum time to wait between authentication attempts for a given user. This option takes into account the time one spray iteration will take, so a pre-authentication delay may not occur every time  [default: 0]
  
  User options:
    -u, --user_file               File containing usernames to spray (one per line without domain)  [required]

  Password options: [mutually_exclusive, required]
    -p, --password                Password to spray
    -pf, --password_file          File containing passwords to spray (one per line)
    --passwords_in_userfile       Extract passwords from user_file (colon separated)

  Authentication options:
    -cID, --aad_client            Client ID used during authentication. Leave unspecified for random selection, or provide a comma-separated string
    -eID, --aad_endpoint          Endpoint ID used during authentication. Leave unspecified for random selection, or provide a comma-separated string

  User Agent options: [mutually_exclusive]
    -cUA, --custom_user_agent     Set custom user agent for authentication requests
    -rUA, --random_user_agent     Randomize user agent for authentication requests  [default: True]

  Shuffle options: [all_or_none]
    -S, --shuffle_auth_order      Shuffle order of authentication attempts so that each iteration (User1:Pass1, User2:Pass1, User3:Pass1) will be sprayed in a random order with a random arrangement of passwords, e.g (User4:Pass16, User13:Pass25, User19:Pass40). Be aware this option introduces the possibility that the time between consecutive authentication attempts for a given user may occur DELAY seconds apart. Consider using the-mD/--min_loop_delay option to enforce a minimum delay between authentication attempts for any given user.
    -SO, --shuffle_optimization_attempts [default: 10]

  -h, --help                      Show this message and exit.
生成モード (監査)
root@kitploit:~
Usage: spray365.py generate audit [OPTIONS]

  Generate an execution plan to identify flaws in MFA / Conditional Access Policies. This works best with with known credentials.

Options:
  -ep, --execution_plan           File path where execution plan should be saved  [required]
  -d, --domain                    Office 365 domain to authenticate against  [required]
  --delay                         Delay in seconds to wait between authentication attempts  [default: 30]
  -mD, --min_loop_delay           Minimum time to wait between authentication attempts for a given user. This option takes into account the time one spray iteration will take, so a pre-authentication delay may not occur every time  [default: 0]

  User options:
    -u, --user_file               File containing usernames to spray (one per line without domain)  [required]

  Password options: [mutually_exclusive, required]
    -p, --password                Password to spray
    -pf, --password_file          File containing passwords to spray (one per line)
    --passwords_in_userfile       Extract passwords from user_file (colon separated)

  Shuffle options: [all_or_none]
    -S, --shuffle_auth_order      Shuffle order of authentication attempts so that each iteration (User1:Pass1, User2:Pass1, User3:Pass1) will be sprayed in a random order with a random arrangement of passwords, e.g (User4:Pass16, User13:Pass25, User19:Pass40). Be aware this option introduces the possibility that the time between consecutive authentication attempts for a given user may occur DELAY seconds apart. Consider using the-mD/--min_loop_delay option to enforce a minimum delay between authentication attempts for any given user.
    -SO, --shuffle_optimization_attempts [default: 10]

  -h, --help                      Show this message and exit.
スプレーモード
root@kitploit:~
Usage: spray365.py spray [OPTIONS]

  Password spray user accounts using an existing execution plan

Options:
  -ep, --execution_plan         File path to execution plan  [required]
  -l, --lockout                 Number of account lockouts to observe before aborting spraying session (disable with 0)  [default: 5]
  -R, --resume_index            Resume spraying passwords from this position in the execution plan  [x>=1]
  -i, --ignore_success          Ignore successful authentication attempts for users and continue to spray credentials. Setting this flag will enable spraying credentials for users even if Spray365 has already identified valid credentials.

  Proxy options: [all_or_none]
    -x, --proxy                 HTTP Proxy URL (format: http[s]://proxy.address:port)
    -k, --insecure              Disable HTTPS certificate verification

  -h, --help                    Show this message and exit.
確認モード
root@kitploit:~
Usage: spray365.py review [OPTIONS] RESULTS

  View data from password spraying results to identify valid accounts and more

Options:
  --show_invalid_creds
  --show_invalid_users

  -h, --help            Show this message and exit.

謝辞

著者ツール/その他リンク
@__TexasRangermsspray: Azure AD に対するパスワードスプレー攻撃を実施し、Azure および Office 365 のエンドポイントにおける MFA の実装を検証するhttps://github.com/SecurityRiskAdvisors/msspray

免責事項

本ソフトウェアを、事前の相互同意なしに対象に攻撃するために使用することは違法です。エンドユーザーは、適用されるすべての地方、州、連邦法、および該当する利用規定に従う責任があります。本ソフトウェアを使用することにより、著作者は誤用または生じた損害に対する一切の責任を負わないものとします。

ツールをダウンロード