AuthBrute
Msf::Auxiliary::AuthBrute は、ユーザ / パスワード辞書からのログイン試行を定型化します。実装は lib/msf/core/auxiliary/auth_brute.rb です。SSH / SMB / HTTP ログイン scanner などと組み合わせます。
include
Section titled “include”include Msf::Auxiliary::AuthBruteinclude Msf::Auxiliary::Scannerinclude Msf::Auxiliary::Report足される主なオプション
Section titled “足される主なオプション”| オプション | 意味 |
|---|---|
USERNAME / PASSWORD | 単一組 |
USER_FILE / PASS_FILE | 辞書 |
USERPASS_FILE | user pass 形式 |
USER_AS_PASS | ユーザ名をパスとしても試す |
BLANK_PASSWORDS | 空パスワード |
STOP_ON_SUCCESS | 成功でその host を止める |
BRUTEFORCE_SPEED | 速度 0–5 |
DB_ALL_CREDS / DB_ALL_USERS / DB_ALL_PASS | DB から候補追加 |
PASSWORD_SPRAY | パス固定でユーザを回す(advanced) |
使い方の骨格
Section titled “使い方の骨格”def run_host(ip) cred_collection = build_credential_collection( username: datastore['USERNAME'], password: datastore['PASSWORD'] )
scanner = Metasploit::Framework::LoginScanner::SSH.new( configure_login_scanner( host: ip, port: rport, cred_details: cred_collection, stop_on_success: datastore['STOP_ON_SUCCESS'], framework: framework, framework_module: self ) )
scanner.scan! do |result| credential_data = result.to_h credential_data.merge!( module_fullname: fullname, workspace_id: myworkspace_id ) if result.success? create_credential_and_login(credential_data) print_good("#{ip}:#{rport} - Success: #{result.credential}") else invalidate_login(credential_data) vprint_error("#{ip}:#{rport} - Failed: #{result.credential}") end endend実在の大きな例: modules/auxiliary/scanner/ssh/ssh_login.rb
| パターン | 設定 |
|---|---|
| 単一正規クレデンシャル確認 | USERNAME + PASSWORD、辞書は空 |
| ユーザ固定・パス辞書 | USERNAME + PASS_FILE |
| 両方辞書 | USER_FILE + PASS_FILE |
| spray | PASSWORD_SPRAY true + ユーザ多数 |
| DB の既存 cred を再利用 | DB_ALL_CREDS true(要 DB) |
- HTB / 検証環境でも lockout と速度に注意する。
- DB 未接続で
DB_ALL_*を立てると警告が出て無視される。 - 「成功したらセッションも欲しい」場合は
CreateSession系オプションや CommandShell mixin を別途確認する(モジュールによる)。

