在渗透测试中,我们经常会碰到windows虚拟机,这些虚拟机往往会安装VMware Tools,利用VMware Tools的脚本执行功能可以实现一个开机自启动的后门。
关于这项技术的文章:
https://bohops.com/2021/10/08/analyzing-and-detecting-a-vmtools-persistence-technique/
https://www.hexacorn.com/blog/2017/01/14/beyond-good-ol-run-key-part-53/
本文将要在参考资料的基础上,分析利用思路,给出防御建议。
本文将要介绍以下内容:
VMware Tools的脚本执行功能支持在以下四种状态时运行:
可以选择以下两种方法进行配置脚本执行的功能:
默认安装路径:"C:Program FilesVMwareVMware ToolsVMwareToolboxCmd.exe"
命令示例1:
"C:Program FilesVMwareVMware ToolsVMwareToolboxCmd.exe" script power enable
命令执行后,将在默认安装路径下创建文件C:ProgramDataVMwareVMware Toolstools.conf,内容为:
[powerops]
poweron-script=poweron-vm-default.bat
实现效果:
当系统开机时,将会以System权限执行"C:Program FilesVMwareVMware Toolspoweron-vm-default.bat"
注:
对于power命令,只能是开机操作,重启操作无法触发
命令示例2:
"C:Program FilesVMwareVMware ToolsVMwareToolboxCmd.exe" script suspend set "c:test1.bat"
命令执行后,将在默认安装路径下创建文件C:ProgramDataVMwareVMware Toolstools.conf,内容为:
[powerops]
suspend-script=c:\test\1.bat
实现效果:
当系统进入挂起状态时,将会以System权限执行"c:test1.bat"
直接创建文件C:ProgramDataVMwareVMware Toolstools.conf
文件内容示例:
[powerops]
poweron-script=poweron-vm-default.bat
suspend-script=c:\test\1.bat
实现效果:
当系统开机时,将会以System权限执行"C:Program FilesVMwareVMware Toolspoweron-vm-default.bat",当系统进入挂起状态时,将会以System权限执行"c:test1.bat"
查看VMwareToolboxCmd.exe的帮助说明:
"C:Program FilesVMwareVMware ToolsVMwareToolboxCmd.exe" help
查看开机启动脚本的默认路径:
"C:Program FilesVMwareVMware ToolsVMwareToolboxCmd.exe" script power default
查看开机启动脚本的当前路径:
"C:Program FilesVMwareVMware ToolsVMwareToolboxCmd.exe" script power current
创建文件C:ProgramDataVMwareVMware Toolstools.conf需要管理员权限
通过VMware Tools的脚本执行功能,启动脚本的执行权限为System
为了提高隐蔽性,可以设置默认启动脚本为poweron-vm-default.bat,在poweron-vm-default.bat添加通过rundll32加载dll的命令
默认配置下,VMware Tools不会开启脚本执行功能,也就是说不存在文件C:ProgramDataVMwareVMware Toolstools.conf
查看文件C:ProgramDataVMwareVMware Toolstools.conf的内容
如果文件不存在,代表脚本执行功能未开启
查看文件C:ProgramDataVMwareVMware Toolstools.conf的内容
如果未指明脚本文件的绝对路径,脚本文件默认的绝对路径为"C:Program FilesVMwareVMware Tools"
本文分析了VMware Tools脚本执行功能的利用思路,给出防御建议。