TL;DR. Ferramentas de lateral movement (PsExec, wmic, at / schtasks, PowerShell remoto) deixam entradas na ShimCache no host de destino (o binário de serviço largado) e frequentemente no de origem. Fazer diff da AppCompatCache em muitos hosts faz emergir o caminho que o atacante percorreu.
A ShimCache é geralmente enquadrada como artefacto de um único host. O seu verdadeiro poder em resposta a incidentes é cross-host. As mesmas ferramentas, examinadas para compatibilidade em cada máquina onde tocam, deixam um rasto correlacionável. Eis como a uso efetivamente para reconstruir lateral movement.
Como o lateral movement se manifesta na cache
Técnicas de execução remota largam ou invocam um executável no destino. Cada uma deixa um caminho característico.
| Técnica | Indício na ShimCache do destino |
|---|---|
| PsExec / execução de serviço por SMB | C:\Windows\PSEXESVC.exe ou um binário de serviço com 8 caracteres aleatórios em C:\Windows\ |
sc \\host create | Binário de serviço com nome do atacante, frequentemente em C:\Windows\ ou \PerfLogs\ |
WMI (wmic process call create) | Caminho do payload em C:\Windows\Temp\ ou diretório com escrita do utilizador |
Tarefa agendada (schtasks /s) | Binário de ação da tarefa, frequentemente C:\Users\Public\ |
| PowerShell remoto / WinRM | powershell.exe mais qualquer .exe que tenha staged |
Impacket smbexec / wmiexec | .bat e .exe com nomes aleatórios sob \Windows\Temp\ |
Um binário de serviço com nome aleatório em C:\Windows\ é um dos achados de ShimCache mais sinal-rico que existe. Coberto como regra de triagem em caçar malware com a ShimCache.
O lado do host de origem
O host originário mostra frequentemente entradas na ShimCache para as próprias ferramentas de ataque: PsExec.exe, wmic.exe usado interativamente, um mover personalizado, um loader de framework de pós-exploração. Emparelhar "ferramenta no host A" com "binário de serviço no host B" dentro de uma janela plausível é o núcleo da inferência de lateral movement.
Cruze com Sysmon Event ID 3 ligações de rede e Security 4624 logon type 3 para fechar o ciclo. O EVTX parser cobre os event IDs relevantes.
O workflow de diff cross-host
- Recolha hives SYSTEM de todos os hosts no âmbito. Veja adquirir uma hive SYSTEM. Ou use o Velociraptor para recolha em parque.
- Analise cada um e exporte para CSV. O AppCompatCacheParser de Eric Zimmerman é a resposta certa para trabalho em batch.
- Normalize caminhos e faça diff por binários partilhados e invulgares. O mesmo nome aleatório de serviço ou caminho de staging a aparecer em vários hosts é o caminho de movimento.
- Ordene os hosts por ordem de inserção, não por timestamp. O timestamp é o mtime do ficheiro, não uma hora de evento, portanto não sequencia hops por si só.
- Corrobore cada hop com Security 4624 (logon type 3), 4648 (credenciais explícitas), 7045 (instalação de serviço) e AmCache para atribuição por SHA-1.
Isto funde-se naturalmente numa timeline completa de execução de programas. Para reportar, mapeie as técnicas para ATT&CK T1021 (Remote Services) e T1570 (Lateral Tool Transfer).
Ressalvas
A ShimCache só descarrega em clean shutdown, portanto um host ainda em execução pode ainda não ter escrito a entrada decisiva. Verifique a memória (extração de um dump de memória) antes de concluir que um host não foi tocado. O timestamp nunca sequencia hops por si só; conte com a ordem de inserção mais EVTX e o USN journal para horas de eventos. Atacantes que limpam o valor deixam o seu próprio indício. Veja anti-forense de ShimCache.
Para fazer diff rápido de hives, analise cada uma com o Shimcache Parser e compare do lado do cliente. A exportação CSV da ferramenta do EZ alimenta diretamente o pandas ou o csvdiff para conjuntos maiores.
Leitura adicional
- MITRE ATT&CK Remote Services (T1021), referência de técnica para indícios do lado do destino.
- Caching Out the Val da Mandiant, ofício fundacional da ShimCache.
- Detecting Lateral Movement through Tracking Event Logs do JPCERT/CC, emparelha naturalmente com o lado EVTX da análise.