Skip to content

怎么使用 FileDropper 清理文件

L edited this page May 19, 2020 · 1 revision

在某些利用场景中, 例如本地特权升级, 命令执行, 文件上传, SQL 注入等, 你很可能必须上传一个或多个恶意文件才能获得对目标计算机的控制. 好吧, 聪明的攻击者不应该留下任何东西, 因此, 如果模块需要将某些东西放到文件系统上, 在达到目的后立即将其删除很重要. 这就是为什么我们创建 FileDropper mixin 的原因.

示例

FileDropper mixin 是一个文件管理器, 可让你跟踪文件, 然后在创建会话时将其删除. 要使用它, 首先像这样包含 mixin:

include Msf::Exploit::FileDropper

接下来, 告诉 FileDropper mixin 使用 register_file_for_cleanup 方法在创建会话之后文件将在哪里. 每个文件名都应该是完整路径, 或相对于会话的当前工作目录. 例如, 如果我要将有效负载上传到目标计算机的远程路径: C:\Windows\System32\payload.exe, 及如下声明:

register_file_for_cleanup("C:\\Windows\\System32\\payload.exe")

如果我的会话的当前目录已经在 C:\Windows\System32\, 那么我可以简单的调用该方法:

register_file_for_cleanup("payload.exe")

如果要注册多个文件, 还可以提供多个文件名作为参数:

register_file_for_cleanup("file_1.vbs", "file_2.exe", "file_1.conf")

请注意, 如果漏洞利用模块使用 on_new_session, 则实际上会覆盖 FileDropper 的 on_new_session.

参考

https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/core/exploit/file_dropper.rb

Clone this wiki locally