コンテンツにスキップ

AutoCheck

Msf::Exploit::Remote::AutoCheck は、exploit / run の前に check を自動実行します。include ではなく prepend します。実装は lib/msf/core/exploit/remote/auto_check.rb です。

class MetasploitModule < Msf::Exploit::Remote
prepend Msf::Exploit::Remote::AutoCheck
include Msf::Exploit::Remote::HttpClient
def check
CheckCode::Appears('service detected')
end
def exploit
# AutoCheck が先に check する
end
end

include すると明示的に失敗します。

  1. AutoCheck が true(default)なら check を実行。
  2. Vulnerable / Appears → 続行。必要なら report_vuln。
  3. Detected → 警告のうえ続行。
  4. Safe など → 失敗扱い。ForceExploit true なら強行可能。
オプション意味
AutoCheck自動 check の有無
ForceExploitcheck 結果を無視して実行
set AutoCheck false
set ForceExploit true
  • check 内では fail_with より CheckCode を返す。
  • check は破壊的すぎないこと(DoS で Vulnerable を証明しない)。
  • Scanner では check_host を使う。

関連: 入口メソッド