Detectar movimiento lateral con el ShimCache

4 min de lectura

TL;DR. Las herramientas de movimiento lateral (PsExec, wmic, at / schtasks, PowerShell remoto) dejan entradas en el ShimCache del host destino (la binaria de servicio soltada) y a menudo en el origen. Hacer diff del AppCompatCache entre muchos hosts saca a la luz la ruta que tomó el atacante.

El ShimCache se suele enmarcar como un artefacto de un único host. Su verdadera potencia en respuesta a incidentes es entre hosts. Las mismas herramientas, examinadas para compatibilidad en cada máquina que tocan, dejan un rastro correlacionable. Así lo uso de verdad para reconstruir el movimiento lateral.

Cómo se ve el movimiento lateral en el cache

Las técnicas de ejecución remota sueltan o invocan un ejecutable en el destino. Cada una deja una ruta característica.

TécnicaPista en el ShimCache del destino
PsExec / SMB service execC:\Windows\PSEXESVC.exe o una binaria de servicio aleatoria de 8 caracteres en C:\Windows\
sc \\host createBinaria de servicio nombrada por el atacante, a menudo en C:\Windows\ o \PerfLogs\
WMI (wmic process call create)Ruta de payload bajo C:\Windows\Temp\ o un directorio escribible por usuario
Tarea programada (schtasks /s)Binaria de acción de tarea, frecuentemente C:\Users\Public\
PowerShell remoto / WinRMpowershell.exe más cualquier .exe soltado que stageó
Impacket smbexec / wmiexec.bat y .exe con nombre aleatorio bajo \Windows\Temp\

Una binaria de servicio con nombre aleatorio en C:\Windows\ es uno de los hallazgos de ShimCache con mayor señal que existen. Tratado como regla de triage en cazar malware con el ShimCache.

El lado del host origen

El host originador suele mostrar entradas de ShimCache para el propio tooling de ataque: PsExec.exe, wmic.exe usado interactivamente, un mover a medida, un cargador de framework post-explotación. Emparejar "herramienta en host A" con "binaria de servicio en host B" dentro de una ventana plausible es el núcleo de la inferencia de movimiento lateral.

Cruza con conexiones de red Sysmon Event ID 3 y Security 4624 logon tipo 3 para cerrar el círculo. El parser de EVTX cubre los IDs de evento relevantes.

El workflow de diff entre hosts

  1. Recolecta hives SYSTEM de cada host en alcance. Mira adquirir un hive SYSTEM. O usa Velociraptor para recolección en flota.
  2. Parsea cada uno y exporta a CSV. El AppCompatCacheParser de Eric Zimmerman es la respuesta correcta para trabajo por lotes.
  3. Normaliza rutas y haz diff por binarias compartidas y poco comunes. El mismo nombre de servicio aleatorio o ruta de staging apareciendo en varios hosts es la ruta del movimiento.
  4. Ordena hosts por orden de inserción, no por timestamp. El timestamp es la mtime del archivo, no un tiempo de evento, así que no secuencia saltos por sí solo.
  5. Corrobora cada salto con Security 4624 (logon tipo 3), 4648 (credenciales explícitas), 7045 (instalación de servicio), y AmCache para atribución por SHA-1.

Esto se funde de forma natural en una línea de tiempo de ejecución de programas completa. Mapea las técnicas a ATT&CK T1021 (Remote Services) y T1570 (Lateral Tool Transfer) para el informe.

Salvedades

El ShimCache solo se vuelca al apagar limpiamente, así que un host aún corriendo puede no haber escrito todavía la entrada decisiva. Comprueba memoria (extraer de un volcado de memoria) antes de concluir que un host no fue tocado. El timestamp nunca secuencia saltos por sí solo; tira del orden de inserción más EVTX y el USN journal para tiempos de evento. Los atacantes que limpian el valor dejan su propia pista. Mira anti-forense del ShimCache.

Para hacer diff de hives rápido, parsea cada uno con el Shimcache Parser y compara en cliente. El export CSV de la herramienta de EZ alimenta directo a pandas o csvdiff para conjuntos más grandes.

Lectura adicional

Artículos relacionados