
DFIR4vSphere PowerShell 模块用于在 ESXi 主机和 vCenter 控制台上收集日志与取证工件。
该模块主要有两个功能:
DFIR4vSphere 首次在 CoRI&IN 2022(数字事件响应与调查会议)上进行了展示。演示文稿(法语)可在此处获取。它还在 SANS DFIR Summit 2022 上进行了展示,演示录像可在此处观看。
DFIR4vSphere 使用 VMware PowerCLI 模块,请在使用本模块之前进行安装:
Install-Module VMware.PowerCLI -Scope CurrentUser
安装完成后,使用以下命令找到您的 PowerShell 模块路径:
PS> $env:PSModulePath
将 DFIR4vSphere 文件夹复制到其中一个模块路径中,例如:
%USERPROFILE%\Documents\WindowsPowerShell\Modules
%ProgramFiles%\WindowsPowerShell\Modules
%SYSTEMROOT%\system32\WindowsPowerShell\v1.0\Modules
DFIR4vSphere 模块已安装,请重启 PowerShell 控制台并加载模块:
PS> Import-module DFIR4vSphere
然后,您应在启动数据收集之前连接到正在调查的 vCenter:
PS> Connect-VIServer %VC_Name%
使用 docker-compose 构建镜像、运行容器并挂载卷以获取日志:
sudo docker-compose run dfir4vsphere
模块现已可以使用。
收集最近 30 天的 vCenter VI 事件:
$enddate = get-date
$startdate = $enddate.adddays(-30)
Start-VC_Investigation -StartDate $startdate -Enddate $enddate
执行相同的收集并附带 vCenter 支持包。如果怀疑 vCenter 设备本身遭到入侵,请执行此操作;在这种情况下,您还应对 vCenter 主机进行常规的 Linux 取证调查:
$enddate = get-date
$startdate = $enddate.adddays(-30)
Start-VC_Investigation -StartDate $startdate -Enddate $enddate -VCBundle
LightVIEvents 参数将仅收集被认为感兴趣的事件类型。如果被调查的基础设施规模较大且常规收集速度过慢,请使用此选项。
$enddate = get-date
$startdate = $enddate.adddays(-30)
Start-VC_Investigation -StartDate $startdate -Enddate $enddate -LightVIEvents
通过 LightVIEventTypesId,您可以筛选出想要收集的特定事件类型。完整的事件类型 ID 列表可在此处获取。例如,要仅检索 vCenter 上的身份验证事件,可以运行以下命令:
$enddate = get-date
$startdate = $enddate.adddays(-30)
Start-VC_Investigation -StartDate $startdate -Enddate $enddate -LightVIEvents -LightVIEventTypesId "com.vmware.sso.LoginSuccess","com.vmware.sso.LoginFailure"
VI 事件的默认日志保留期为 30 天,但您可以尝试检索更早的事件。有时可以检索到超出配置保留策略的日志。
此命令接受 ESXi 主机的名称,或通过 Get-VMHost PowerCLI cmdlet 获取的主机作为输入。例如,要对 vCenter 上附加的所有 ESXi 主机执行基本收集:
Get-VMHost | Start-ESXi_Investigation
上述命令将生成多个 CSV 文件,描述正在运行的进程、打开的连接、本地账户,并检索各种配置设置……
如果您还需要检索 ESXi 的本地日志(如 shell.log 或 auth.log),则需要生成支持包。
以下命令会检索指定集群中的每台 ESXi,并为每个虚拟机管理程序生成一个支持包。
Get-VMHost -Location %ClusterName% | Start-ESXi_Investigation -ESXBundle
您也可以通过指定名称来针对特定的 ESXi 主机并生成其支持包。
Start-ESXi_Investigation -Name %ESXi% -ESXBundle
在大型环境中,为 vCenter 上附加的每台 ESXi 生成支持包可能会耗费一些时间。
每个功能生成的文件如下:
运行各个功能将生成类似的目录结构:
DFIR4vSphere_Collection
│ Start-ESXi_Investigation.log
│ Start-VC_Investigation.log
│ VC_ConnectionInfo_%VC_Name%.csv
| VC_ESXiInventory_%VC_Name%.csv
│ VC_Permissions_%VC_Name%.csv
│ VC_Users_%VC_Name%.csv
└───%ESX_Name1%
│ │ ESXi_%ESX_Name1%_DomJoin.csv
│ │ ESXi_%ESX_Name1%_General.csv
│ │ ESXi_%ESX_Name1%_Hostd.log
│ │ ESXi_%ESX_Name1%_Network_ARPCache.csv
│ │ ESXi_%ESX_Name1%_Network_DNS.csv
│ │ ESXi_%ESX_Name1%_Network_IPv4.csv
│ │ ESXi_%ESX_Name1%_Network_IPv4routes.csv
│ │ ESXi_%ESX_Name1%_Network_Netstat.csv
│ │ ESXi_%ESX_Name1%_Network_VMs.csv
│ │ ESXi_%ESX_Name1%_Network_vSwitchs.csv
│ │ ESXi_%ESX_Name1%_Services.csv
│ │ ESXi_%ESX_Name1%_Software_BaseImage.csv
│ │ ESXi_%ESX_Name1%_Software_Profile.csv
│ │ ESXi_%ESX_Name1%_Software_VIB.csv
│ │ ESXi_%ESX_Name1%_Software_VIBSigCheck.csv
│ │ ESXi_%ESX_Name1%_Storage_FileSystem.csv
│ │ ESXi_%ESX_Name1%_Storage_IOFilter.csv
│ │ ESXi_%ESX_Name1%_System_Accounts.csv
│ │ ESXi_%ESX_Name1%_System_Advanced-delta.csv
│ │ ESXi_%ESX_Name1%_System_Certstore.csv
│ │ ESXi_%ESX_Name1%_System_ExecPolicy.csv
│ │ ESXi_%ESX_Name1%_System_GuestRepo.csv
│ │ ESXi_%ESX_Name1%_System_modules.csv
│ │ ESXi_%ESX_Name1%_System_Kernel-Delta.csv
│ │ ESXi_%ESX_Name1%_System_permissions.csv
│ │ ESXi_%ESX_Name1%_System_process.csv
│ │ ESXi_%ESX_Name1%_System_version.csv
└───%ESX_Name2%
│ │ ESXi_%ESX_Name2%_DomJoin.csv
│ │ ESXi_%ESX_Name2%_General.csv
│ │ ...
└───Support_Bundles
│ │ esx-%ESX_Name1%-YYY-MM-DD.tgz
│ │ esx-%ESX_Name2%-YYY-MM-DD.tgz
│ │ vcsupport-%GUID%.tgz
└───VI_Events_%VC_Name%
│ │ VIEvents_%EventTypeId1%.json
│ │ VIEvents_%EventTypeId2%.json
│ │ ...
│ └───YYYY-MM-DD
│ | │ VIEvents_YYYY-MM-DD_HH-00-00.json
│ | │ ...
│ └───YYYY-MM-DD
│ │ │ VIEvents_YYYY-MM-DD_HH-00-00.json
│ │ │ ...
│ └───...
使用两个功能完成收集后,您将获得来自以下方面的日志:
在某些勒索软件事件中,威胁行为者会终止 VC,并且还可能重置 ESXi 的本地 root 账户。在这种情况下,您唯一的办法是从备份中恢复 vCenter,被入侵的 ESXi 随后会自动重新连接到 vCenter,然后您就可以启动 DFIR4vSphere。要使用本地账户重新访问被入侵的 ESXi,您可以通过 vCenter API 调用执行密码重置(以下是执行此操作的脚本 https://www.hypervisor.fr/?p=5655)