コンテンツにスキップ

SMB 関連 mixin は lib/msf/core/exploit/remote/smb/ に分かれています。中心は Msf::Exploit::Remote::SMB::Client で、Tcp と NTLM、Report を含みます。

mixin用途
Msf::Exploit::Remote::SMB::Client基本接続
...::Client::Authenticated認証付き操作
...::Client::PsexecPsExec 系
...::Client::PipeAuditor などパイプ列挙
...::Server / Share攻撃側 SMB サーバ
include Msf::Exploit::Remote::SMB::Client
include Msf::Exploit::Remote::SMB::Client::Authenticated
include Msf::Auxiliary::Scanner
include Msf::Auxiliary::Report
オプション意味
SMBUser / SMBPass / SMBDomain認証(USERNAME/PASSWORD/DOMAIN に fallback するものあり)
SMBDirectraw SMB(445)か
SMBNameNetBIOS 名(139 向け)
SMB::ProtocolVersion方言
def run_host(ip)
connect
smb_login
# shares / tree connect など
report_service(host: ip, port: rport, name: 'smb', info: ...)
rescue Rex::Proto::SMB::Exceptions::Error, Rex::ConnectionError => e
vprint_error("#{ip}: #{e.message}")
ensure
disconnect
end

実在例: modules/auxiliary/scanner/smb/smb_version.rb、smb_enumshares.rb、smb_login.rb

Authenticated mixin を足し、共有上のファイルや named pipe へ進みます。AD CS / DCERPC 系はさらに MsIcpr や DCERPC mixin が乗ることがあります。

クライアントに強制的に繋がせてハッシュやファイルを渡す用途です。SMB::Server 系を使います。

  • 署名強制や SMBv1 無効環境では失敗しやすい。advanced オプションを show advanced で確認する。
  • 資格情報は Git 管理する .rc に書かない(運用ノートの方針と同じ)。