Ir al contenido

Cheatsheet de WMI

Por

Madurezreviewed
Última revisión
Publicado
Última actualización

Consulta el workflow y las diferencias de transporte.

RPC inicial
nmap -sV -p 135 TARGET_IP
impacket-rpcdump 'DOMAIN/USERNAME@TARGET_IP'
CIM por WS-Man
$credential = Get-Credential -Credential 'DOMAIN\USERNAME'
$session = New-CimSession -ComputerName FQDN -Credential $credential
Get-CimInstance -CimSession $session -ClassName Win32_OperatingSystem
Remove-CimSession $session
Consulta con timeout y cleanup
$credential = Get-Credential -Credential 'DOMAIN\USERNAME'
$session = $null
try {
$session = New-CimSession -ComputerName FQDN `
-Credential $credential -OperationTimeoutSec 60 `
-ErrorAction Stop
Get-CimInstance -CimSession $session `
-ClassName Win32_OperatingSystem -ErrorAction Stop
}
finally {
if ($null -ne $session) {
Remove-CimSession $session
}
}

El timeout limita la espera de la operación y puede impedir la recuperación automática tras una interrupción más larga. El bloque finally retira la sesión creada. Consulta la automatización WMI para comparar WS-Man y DCOM.

CIM por DCOM
$option = New-CimSessionOption -Protocol Dcom
$session = New-CimSession -ComputerName FQDN `
-Credential $credential -SessionOption $option
Get-CimInstance -CimSession $session -Namespace root/cimv2 `
-ClassName Win32_Service -Filter "State='Running'"
Remove-CimSession $session

impacket-wmiexec 'DOMAIN/USERNAME@TARGET_IP' crea procesos y usa SMB para recuperar output. No pertenece a una consulta de lectura.