Metasploit 運用ノート
HTB などの検証環境で Metasploit を使うためのメモです。接続準備はリソーススクリプト (.rc) で自動化し、対象ごとの値はプロファイルに分けます。資格情報やチケットは Git で管理しません。
コードの参照先は、リポジトリ同梱の packages/metasploit-framework です。参照している上流リポジトリのコミットは次のとおりです。
- リポジトリ: rapid7/metasploit-framework
- コミット:
2d664636002d3bfee1451c6832469f2756c54d4a(短縮2d66463600、2026-10-08)
このコミットより後の変更は参照版に含まれません。コマンドや API を使う際は、同梱ツリーの更新履歴も確認してください。
これらのコマンドには、認証情報の取得、リレー、リモート実行、永続化など、対象システムへ大きな影響を与える機能があります。検証環境または明示的な許可を得た環境だけで使用してください。
| # | 用途 | ページ |
|---|---|---|
| 0 | ワークスペース、msfdb、db_nmap、setg、作業ディレクトリ | 基本操作と DB |
| 1 | .rc の置き方と再利用 | リソーススクリプト |
| 2 | SSH / WinRM ログインと Meterpreter 昇格 | SSH / WinRM ログイン |
| 3 | リバースシェルの待ち受けと Meterpreter への昇格 | ハンドラと待ち受け |
| 4 | Meterpreter からシェル / PowerShell、portfwd | Meterpreter 操作 |
| 5 | vim / tmux 用のフル TTY(Meterpreter 外) | Fully Interactive TTY |
| — | オプション誤検知、昇格失敗、到達性、PTY 失敗 | トラブルシューティング |
モジュール作成
Section titled “モジュール作成”| 用途 | ページ |
|---|---|
| 入口・判断表 | モジュール作成 |
| 共通手順(1 ステップずつ) | 共通手順 |
| Exploit | Exploit |
| Auxiliary | Auxiliary |
| Post | Post |
| Mixin と API | Mixin と API |
| ヘルパー関数 | ヘルパー関数 |
send_request_cgi の使い方 | send_request_cgi |
rc/: Git 管理するテンプレート。秘密情報を入れない。profiles/: 対象ごとのRHOSTS、LHOSTなど。Git 管理しない。logs/:spoolの出力先。loot/: 手動で拾ったファイルや Metasploit loot から移した重要ファイルの保管先。.rcの中身は読みやすい複数行で書き、実行時に貼る例は msfconsole 内でrun verbose=true option=valueのように 1 行で実行する。
~/lab/├── msf/│ ├── rc/│ ├── profiles/│ ├── logs/│ └── loot/└── notes/~/.msf4 には Metasploit 本体の DB、設定、loot が混在します。自作スクリプトや対象ごとの記録は ~/lab にまとめると、SSH ログイン後に探しやすく、ホスト OS へ rsync する対象も一つにまとまります。
msfconsole -q -r ~/lab/msf/profiles/target.local.rc起動後はモジュールごとに show options を確認します。Metasploit のバージョンによって、CreateSession、DOMAIN、RPORT、ペイロードのオプションなどの名前や既定値が変わることがあります。
迷ったときの境界
Section titled “迷ったときの境界”- SSH / WinRM の認証情報は
.rcに保存しない。 - Meterpreter では、ハンドラによる待ち受けと既存セッションからの昇格を分ける。
- 列挙や特権昇格を一度に自動化しすぎない。難しい対象では重要な出力が埋もれやすい。
- バインドシェルは対象側が待ち受け、Kali 側から接続しに行くペイロードとして扱う。
- Kerberos チケット操作は
klistで観察してから、必要な専用手順に分ける。無理に WinRM / SSH のログインスクリプトと統合しない。

