コンテンツにスキップ

後片付け

対象にファイルや設定を残した場合の後始末です。検証環境でも「何を置いたか」を消せるようにしておくと安全です。

include Msf::Exploit::FileDropper
def exploit
remote = '/tmp/' + Rex::Text.rand_text_alpha(8)
# ... アップロード ...
register_file_for_cleanup(remote)
# ... 実行 ...
end
API用途
register_file_for_cleanup(path)ファイル
register_files_for_cleanup(*paths)複数
register_dir_for_cleanup(path)ディレクトリ

セッション取得後やモジュール終了時に削除を試みます。失敗することもあるので、notes にパスを残します。詳細は FileDropper です。

def cleanup
disconnect if respond_to?(:disconnect)
super
end

接続や一時ジョブを自分で開いたら、ここで閉じます。super を忘れないこと。

アカウント追加や cron 改変などの admin / manage 操作は、FileDropper だけでは足りません。

  • Description に「何を変えるか」を明記する。
  • 可能なら削除 / 戻し用の action や手順をモジュールか documentation に書く。
  • SideEffects に CONFIG_CHANGES などを入れる。
# module 実行後
loot
notes
sessions -l
jobs -l

自作スクリプトの配置物は ~/lab 方針でも追跡します。