
ネットワーク内のSMBを介して、認証情報が有効、無効、またはローカル管理者として有効かを大規模に識別するように設計されたマルチスレッドツール。さらに、ユーザーハンター機能も追加されました。
このツールは、迅速かつ効率的にエンゲージメントを実行したいペネトレーションテスター向けです。このツールは(以下のいくつかの追加機能も含めて)より隠密な作戦にも使用できますが、大規模ネットワークのスケールで使用した際に真価を発揮します。
中核となる機能は、ダンプした資格情報(またはハッシュ。パス・ザ・ハッシュも可能)のリストと、ドメイン上のシステムのリスト(ポート445をスキャンすることを推奨します。あるいは --scan を使用できます)を提供すると、ダンプした資格情報がドメイン上で有効かどうか、およびホストへのローカル管理者アクセス権があるかどうかを通知します。追加機能として、ユーザーハンティングやホスト詳細列挙などについては以下を参照してください。
Kali Linux 上で実行することを想定しています
.d8888b. 888 888b 888 d8b d8b
d88P Y88b 888 8888b 888 Y8P Y8P
888 888 888 88888b 888
888 888d888 .d88b. .d88888 888Y88b 888 888 88888b. 8888 8888b.
888 888P" d8P Y8b d88" 888 888 Y88b888 888 888 "88b "888 "88b
888 888 888 88888888 888 888 888 Y88888 888 888 888 888 .d888888
Y88b d88P 888 Y8b. Y88b 888 888 Y8888 888 888 888 888 888 888
"Y8888P" 888 "Y8888 "Y88888 888 Y888 888 888 888 888 "Y888888
888
d88P
888P"
v2.3 (Built 1/26/2018) - Chris King (@raikiasec)
ヘルプ: ./CredNinja.py -h
使用方法: CredNinja.py -a accounts_to_test.txt -s systems_to_test.txt [-t THREADS] [--ntlm] [--valid] [--invalid] [-o OUTPUT] [-p PASSDELIMITER] [--delay SECONDS %JITTER] [--timeout TIMEOUT] [--stripe] [--scan] [--scan-timeout SCAN_TIMEOUT] [-h] [--no-color] [--os] [--domain] [--users] [--users-time USERS_TIME]
複数のサーバーに対して複数のユーザー資格情報の有効性を迅速に確認し、 各サーバー上でそのユーザーがローカル管理者権限を持っているかどうかを通知します。
必須引数: -a accounts_to_test.txt, --accounts accounts_to_test.txt テストするユーザー資格情報の単語またはファイル。ユーザー名は "DOMAIN\USERNAME:PASSWORD" の形式で受け付けます。 -s systems_to_test.txt, --servers systems_to_test.txt テストするサーバーの単語またはファイル。単一のシステム、 システムリストを含むファイル名、gnmap ファイル、または cidr 表記の IP アドレスを指定できます。各資格情報は、SMB 経由で C$ を 参照しようとすることで、これら各サーバーに対してテストされます。
オプション引数: -t THREADS, --threads THREADS 使用するスレッド数。デフォルトは 10。 --ntlm パスワードを NTLM ハッシュとして扱い、パス・ザ・ハッシュを試みます。 --valid 有効/ローカル管理者の資格情報のみ表示します。 --invalid 無効な資格情報のみ表示します。 -o OUTPUT, --output OUTPUT 結果をファイルに出力します。 -p PASSDELIMITER, --passdelimiter PASSDELIMITER アカウントのユーザー名とパスワードの間の区切り文字を変更します。 デフォルトは ":" です。 --delay SECONDS %JITTER スレッドごとにリクエストを指定秒数遅延させ、さらにジッターを適用します (例: --delay 20 10 は 20 秒の遅延と 10% のジッター)。 --timeout TIMEOUT データを待機してタイムアウトするまでの秒数。デフォルトは 15 秒。 --stripe 各資格情報を 1 つのホストでのみテストし、単一システムへの 複数のログイン試行によるスパムを回避します(資格情報の有効性確認に 使用)。提供されたホストファイルからランダムにホストを選択します。 --scan ホストをキューに入れる前に、そのホストのポート 445 が利用可能かを 確認する簡単なチェックを実行します。 --scan-timeout SCAN_TIMEOUT --scan 引数で指定されたスキャンのタイムアウトを設定します。 デフォルトは 2 秒。 -h, --help このスクリプトの使い方についてのヘルプを表示します。 --no-color 出力の色をオフにします。書き出されるファイルは常に無色です。
追加情報取得: --os システムの OS を表示します(利用可能な場合。追加リクエストは送信されません)。 --domain システムのプライマリドメインを表示します(利用可能な場合。追加リクエストは送信されません)。 --users 過去 6 か月間にシステムにログインしたユーザーを一覧表示します(ローカル管理者が必要)。 ユーザー名と、そのホームディレクトリが変更されてからの日数を返します。 ホストごとに 1 つの追加リクエストを送信します。 --users-time USERS_TIME --users を変更し、指定した日数以内にログインしたユーザーを検索します (デフォルト 100 日)。
変更履歴:
v2.3 - いくつかの追加機能で更新
* gnmap ファイル解析を追加。--systems (-s) 引数に指定するファイルは
gnmap ファイル(拡張子 .gnmap)も可能になりました。
* cidr 表記解析を追加。--systems (-s) 引数に指定する IP アドレスは
cidr 表記も可能になり、適切に範囲を展開して IP 空間内のすべてのシステムを
テストします(事前にシステムをスキャンするために --scan を指定してください)。
* --scan をマルチスレッド化し、非常に高速になりました。
v2.0 - 前身の CredSwissArmy から CredNinja の初回リリース:
* 以前の CredSwissArmy と同じ機能(資格情報とホストリストを使用して SMB 経由で
ネットワーク全体のローカル管理者アクセスを検索)。
* 完全マルチスレッド化! 旧 CredSwissArmy の 8 倍の速度!
* エラーや複雑なパスワードの処理が大幅に改善。
* "--ntlm" オプションでパス・ザ・ハッシュが引き続き可能。
* 以前と同じ引数を維持。
* "--timeout" を追加。必要に応じてスキャンをより高速に完了できます。
* "--scan" を追加。ホストに資格情報を試行する前に、ポート 445 の簡単なスキャンを
実行して接続可能か確認します。
* "--stripe" を追加。各資格情報をランダムなシステムで 1 回だけテストします
(1 つのシステムのイベントログに不審な兆候を残さずに資格情報を検証するために使用)。
* "--delay" を追加。ホストスキャン間の遅延を指定して、より隠密に動作できます。
"--delay 10 20" は 10 秒の遅延と 20% のジッター(つまり 8 ~ 10 秒)になります。
* 色付き出力を追加。成功時にすぐわかります!
そして、ここからがクールな追加機能です
* "--os" を追加。フィンガープリント可能な各システムのオペレーティングシステムを
表示します(ターゲットホストに追加パケットは送信されません)。
* "--domain" を追加。システムが所属するプライマリドメインを表示します
(ターゲットホストに追加パケットは送信されません)。
* "--users" を追加。ホームディレクトリが X 日以内に変更されたユーザーのリストを
表示します(X は "--users-days" で変更可能、デフォルト 100 日)。基本的に、
ユーザーがログインしている、またはログインしたことがある場所を示す
SMB ユーザーハンターです(ターゲットホストごとに 1 つの追加パケットを送信します)。
* 近日公開予定: システム上で動作している可能性のあるアンチウイルスを通知する
アンチウイルス検出器。