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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Go365 — Office365ユーザー攻撃ツール | Kitploit
ツール/GitHubGitHub/optiv/go365
パスワード攻撃情報収集ペネトレーションテスト認証
GitHuboptiv/go365

Go365

Office365ユーザー攻撃ツール

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Go365 v2.0

  • AWS Gatewayの問題を修正(h0useh3ad氏に感謝!)
  • プロキシサーバー接続が失敗しても停止しなくなりました
  • graphエンドポイントを追加

Go365を使用する前に、このREADMEをすべてお読みください!

Go365は、Office365(現在/間もなくMicrosoft365)を使用する組織に対するユーザー列挙*およびパスワード推測攻撃を実行するために設計されたツールです。Go365は、他のほとんどのツールが使用しないlogin.microsoftonline.com上の独自のSOAP APIエンドポイントを使用します。メールアドレスとパスワードでクエリされると、エンドポイントはAzure AD認証コードを返します。このコードはGo365によって処理され、結果が画面または出力ファイルに表示されます。

* ユーザー列挙はパスワード推測試行と併せて実行されます。そのため、ユーザー列挙のみを実行する特定のフラグや機能はありません。代わりに、最初のパスワード推測攻撃を実行し、結果を解析して有効なユーザーを見つけてください。

以下の3つの箇条書きを読んでください!
  • このツールは、o365を利用するすべてのドメインで動作するとは限りません。テストでは、ほとんどのフェデレーションドメインで動作することが確認されています。一部のドメインでは、有効なパスワードも提供された場合でも、有効なユーザーのみを報告します。結果は異なる場合があります!
  • このツールでテストしたドメインでは、複数回のパスワード失敗後に実際にアカウントがロックされることはありませんでした。結果は異なる場合があります!
  • このツールは、ターゲット組織のo365インスタンスに対する「攻撃」を許可されたセキュリティ専門家が使用することを目的としています。

入手方法

オプション0

OS用のプリコンパイル済みバイナリをこちらからダウンロードしてください。

オプション1

ソースをダウンロードしてローカルでコンパイルします。

  1. Goをインストールします。
  2. リポジトリをクローンします。
  3. リポジトリに移動してコンパイルします(アホ)。
root@kitploit:~
go build Go365.go
  1. 生成されたバイナリを実行します。

使い方

root@kitploit:~
$ ./Go365

  ██████         ██████   ██████  ██████
 ██                   ██ ██       ██
 ██  ███   ████   █████  ███████  ██████
 ██    ██ ██  ██      ██ ██    ██      ██
  ██████   ████  ██████   ██████  ██████

 Version: 2.0
 Authors: paveway3, h0useh3ad, S4R1N, EatonChips

Usage:

  -h                            このヘルプを表示


  必須 - エンドポイント:

    -endpoint [rst or graph]    使用するエンドポイントを指定
                                : (-endpoint rst)   *クラシックGo365!* login.microsoftonline.com/rst2.srf. SOAP XMLリクエスト、XMLレスポンス
                                : (-endpoint graph)  login.microsoft.com/common/oauth2/token. HTTP POSTリクエスト、JSONレスポンス

  必須 - ユーザー名とパスワード:

    -u <string>                 テストする単一のユーザー名
                                : "@domain.com" の有無にかかわらずユーザー名
                                : ドメインを指定するには -d フラグも必要
                                : (-u [email protected])

    -ul <file>                  使用するユーザー名リスト(-u を上書き)
                                : ファイルは1行に1ユーザー名
                                : ユーザー名には "@domain.com" を含めることができます
                                : ドメインが指定されていない場合、-d のドメインが使用されます
                                : (-ul ./usernamelist.txt)

    -p <string>                 試行するパスワード
                                : 特殊文字を含む場合はシングルクォートで囲む
                                : (-p password123)  または (-p 'p@s$w0|2d')

    -pl <file>                  使用するパスワードリスト(-p を上書き)
                                : ファイルは1行に1パスワード
                                : -delay フラグで試行間に待機時間を設定可能
                                : (-pl ./passwordlist.txt)

    -up <file>                  使用するユーザー・パスワードリスト(上記すべてを上書き)
                                : 1行にユーザー名とパスワードを ":" で区切って記述
                                : ユーザー名の重複に注意!
                                : (-up ./userpasslist.txt)

  必須/オプション - ドメイン:

    -d <string>                 テストするドメイン
                                : ユーザー名またはユーザー名リストに "@targetcompany.com" が含まれていない場合に使用
                                : (-d targetcompany.com)

  オプション:

    -w <int>                    試行間の待機時間(秒)
                                : デフォルト: 1秒。5秒推奨。
                                : (-w 10)

    -delay <int>                パスワードリストを使用する場合のスプレー間の遅延(秒)
                                : デフォルト: 60分(3600秒)推奨。
                                : (-delay 7200)

    -o <string>                 出力ファイル
                                : ファイルが存在する場合は追記、存在しない場合は作成
                                : (-o ./Go365output.out)

    -proxy <string>             使用する単一のSOCKS5プロキシサーバー
                                : IPアドレスとポートを ":" で区切る
                                : SOCKS5プロキシ
                                : (-proxy 127.0.0.1:1080)

    -proxyfile <string>         SOCKS5プロキシサーバーのリストが記述されたファイル
                                : 各行にIPアドレスとポートを ":" で区切る
                                : リクエストごとにランダムにプロキシサーバーを選択
                                : (-proxyfile ./proxyfile.txt)

    -url <string>               リクエスト送信先のエンドポイント
                                : Amazon API Gatewayの 'Invoke URL'
                                : このオプションを使用することを強く推奨します。Googleで調べるか、
                                : 以下を参照: https://bigb0sss.github.io/posts/redteam-rotate-ip-aws-gateway/
                                : (-url https://notrealgetyourown.execute-api.us-east-2.amazonaws.com/login)

    -debug                      デバッグモード
                                : XMLレスポンスを表示

例

root@kitploit:~
  ./Go365 -endpoint rst -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com
  ./Go365 -endpoint graph -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com -w 5
  ./Go365 -endpoint rst -up ./userpass_list.txt -delay 3600 -d pwnthisfakedomain.com -w 5 -o Go365output.txt
  ./Go365 -endpoint graph -u legituser -p 'coolpasswordbro!123' -d pwnthisfakedomain.com -w 5 -o Go365output.txt -proxy 127.0.0.1:1080
  ./Go365 -endpoint rst -u legituser -pl ./pass_list.txt -delay 1800 -d pwnthisfakedomain.com -w 5 -o Go365output.txt -proxyfile ./proxyfile.txt
  ./Go365 -endpoint graph -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com -w 5 -o Go365output.txt -url https://notrealgetyourown.execute-api.us-east-2.amazonaws.com/login

  さらに、-pl および -delay フラグを使用して、パスワード推測キャンペーン全体をスケジュールすることもできます :)
  ./Go365 -endpoint rst -ul ./user_list.txt -d pwnthisfakedomain.com -w 5 -o Go365output.txt -url https://notrealgetyourown.execute-api.us-east-2.amazonaws.com/login -proxyfile listofprox.txt -pl listofpasswords.txt -delay 7200

  *ヒント: 「アカウントロック」応答が多い場合は、プロキシまたはAWS Gatewayの使用を検討してください。

アカウントロック!(ドメイン防御)

ヒント: 実際にアカウントがロックされているわけではない可能性が高いです。

ターゲットドメインに対して一定数のクエリを実行すると、結果にアカウントがロックされたと表示される場合があります。

この防御がトリガーされると、ユーザー列挙は信頼できなくなります。有効なユーザーと無効なユーザーに対するリクエストがランダムにアカウントロックを報告するためです。

root@kitploit:~
...
[-] User not found: [email protected]
[-] User not found: [email protected]
[-] Valid user, but invalid password: [email protected]
[!] Account Locked Out: [email protected]
[-] Valid user, but invalid password: [email protected]
[!] Account Locked Out: [email protected]
[!] Account Locked Out: [email protected]
[-] Valid user, but invalid password: [email protected]
[-] Valid user, but invalid password: [email protected]
[!] Account Locked Out: [email protected]
...

これは、一定期間内にターゲットドメインに対して有効なユーザークエリが一定数行われた場合にトリガーされる防御メカニズムです。試行回数と期間はターゲット組織によってカスタマイズ可能なため、ターゲットドメインによって異なります。

防御への対抗策

待機時間

防御メカニズムは時間とIPアドレスに基づいています。Go365はリクエスト間に待機時間を挿入するオプションと、リクエストの発信元を分散するプロキシオプションを提供します。ターゲットドメインの防御メカニズムを回避するには、長い待機時間と複数のプロキシサーバーを使用してください。

少なくとも15秒の待機時間を推奨します。-w 15

SOCKS5プロキシ

それでも「アカウントロック」応答が返ってくる場合は、リクエストをプロキシしてみてください。プロキシオプションはSSH SOCKS5ダイナミックプロキシ(ssh -D <ポート> ユーザー@プロキシサーバー)でのみテストされています。

DO、AWS、Vultrなどで多数のSOCKS5プロキシを作成し、次のようなファイルを作成します。

root@kitploit:~
127.0.0.1:8081
127.0.0.1:8082
127.0.0.1:8083
127.0.0.1:8084
127.0.0.1:8085
127.0.0.1:8086
...

ツールは指定されたプロキシサーバーをランダムに順次使用し、リクエスト間に指定された待機時間を入れます。

-w 15 -proxyfile ./proxies.txt

Amazon API Gateway

さらに、このツールがAmazon API Gatewayと連携できるようにエンドポイントURLを指定することもできます。https://login.microsoftonline.com/rst2.srfエンドポイントを指すゲートウェイを設定し、-urlパラメータに提供されたInvoke URLを設定します。リクエストごとにIPがローテーションされるはずです。

-url https://justanexample.execute-api.us-east-2.amazonaws.com/login

ツールをダウンロード