Windows Management Instrumentation(WMI)是一项Microsoft技术,旨在允许管理员跨网络执行本地和远程管理操作。由于WMI是自Windows 98以来存在的Windows生态系统的一部分,因此无论是运行Windows 10还是Windows XP,它几乎可以在每个网络中使用。可以通过WMI执行的一些操作是:
命令执行文件传输读取文件和注册表项文件系统考试计划任务红队可以利用WMI的功能以及它可以用于各种Windows系统的事实,以便执行主机侦察,执行命令,执行横向移动和持久性。WMI服务使用DCOM(TCP端口135)或WinRM协议(SOAP - 端口5985)。
它作为SYSTEM运行,需要管理员凭据。自2014年以来,公开存在各种工具,可通过WMI用作命令和控制。
WmiShell是一个PowerShell脚本,它是WmiSploit的一部分,它基于由Andrei Dumitrescu在python中开发的WMIShell。此脚本使用WMI命名空间来执行命令。
Enter-WmiShell -ComputerName desktop-1st179m -UserName netbiosX
WmiSploit还包含一个脚本,该脚本可以使用WMI作为通信通道在远程目标上执行PowerShell命令和脚本。
Invoke-WmiCommand -ComputerName desktop-1st179m -ScriptBlock {tasklist}
Chris Truncer开发了WMImplant,这是一个利用WMI进行攻击性操作的PowerShell工具。它可以用作命令和控制工具,其好处是它不需要将代理程序放在目标上。但是需要管理员凭据。
Import-Module .\WMImplant.ps1 Invoke-WMImplant
WMimplant的功能一旦执行就可以在主菜单中找到。它可以执行文件传输操作,横向移动和主机侦察。
该CHANGE_USER是为了进行远程连接提供正确的凭证的任何其它命令的执行之前需要。
也可以在目标上执行小型PowerShell脚本。
此外,与WmiShell工具一样,它具有shell功能,可以使用command_exec触发,如下所示:
文件操作也可以远程执行。
在WMImplant之前,Chris Truncer开发了WMIOps,可用于在红队评估期间针对目标执行各种操作。其中一些行动包括:
传输文件启动过程查杀过程文件夹共享即使功能仅限于与WMImplant相比,它仍然实现了通过WMI执行命令和接收输出的想法。该调用-ExecCommandWMI可以远程启动一个进程的能力。
计算器将在目标主机上启动。
通过WMI传输文件可以通过以下功能实现。但是,它需要远程和本地计算机的本地管理员凭据。
Invoke-FileTransferOverWMI -RemoteUser victimusername -RemotePass victimpassword -TARGETS 192.168.1.124 -File C:\Users\netbiosX\Desktop\WMImplant.ps1 -Download C:\Users\User\Downloads\WMI\WMImplant.ps1 -LocalUser Administrator -LocalPass pentestlab
检索系统驱动器信息:
利用WMI进行侦察主机和横向移动可以让红队保持隐藏和泄露信息。事实上,WMI不需要丢弃二进制文件以便检索信息,而且大多数蓝色团队不监视WMI活动可以消除被发现的风险。因此,如果需要,则无需完全禁用WMI并过滤到端口135和5985的流量。