Cómo detectan los antivirus y EDR en Windows: AMSI, ETW, hooks, AppLocker y CLM explicados

Qué mira Defender o un EDR al ejecutar una herramienta (firmas, AMSI, ETW, hooks, callbacks del kernel), cómo saber qué protege una máquina y qué son AppLocker y CLM.

· 5 min de lectura

Subes winPEAS y desaparece. Lanzas un IEX y PowerShell responde "This script contains malicious content". Tu reverse shell muere a los diez segundos. Son señales de que hay un antivirus o un EDR, y en el catálogo aparecen en máquinas como Acute, Sizzle o Giddy (evasión de antivirus y EDR). Esta guía no es un kit de evasión: explica cómo funciona la detección, porque entenderla es lo que te deja elegir bien qué hacer, tanto si atacas como si defiendes. La chuleta de evasión amplía cada capa.

Las capas de la detección

Un producto moderno no tiene un solo control, sino varios que se solapan. Lo que "te pilla" depende de la capa:

Capa Cuándo actúa Qué mira Cómo se nota
Firmas estáticas Al escribir el fichero en disco Secuencias de bytes, cadenas, hashes conocidos El fichero desaparece nada más subirlo
AMSI Antes de ejecutar un script (PowerShell, VBScript, JScript, macros de Office, .NET en memoria) El contenido del script ya decodificado Error "malicious content" aunque no toque el disco
ETW Mientras se ejecuta Eventos: carga de ensamblados .NET, creación de procesos, llamadas de red Te detectan más tarde, no al momento
Hooks en modo usuario En cada llamada a la API (en ntdll.dll) Llamadas sospechosas: abrir LSASS, escribir en la memoria de otro proceso El proceso se cierra al hacer algo concreto
Callbacks y minifiltros del kernel Al crear procesos, hilos, cargar imágenes o tocar ficheros y registro Todo, desde el kernel No se puede "parchear" desde modo usuario
Comportamiento y nube Combinando lo anterior Cadenas de acciones: Word lanza PowerShell que se conecta a internet Alertas aunque cada paso parezca normal

Microsoft Defender cubre las cuatro primeras capas y parte del comportamiento. Un EDR (Defender for Endpoint, CrowdStrike, SentinelOne, Elastic) añade la telemetría completa y, sobre todo, a personas mirando las alertas.

Qué protege esta máquina

Antes de cambiar nada, averígualo:

Get-MpComputerStatus | Select AMServiceEnabled,RealTimeProtectionEnabled,IsTamperProtected,AntivirusSignatureLastUpdated
sc query windefend
Get-Process | Where-Object { $_.ProcessName -match 'MsMpEng|MsSense|CSFalcon|SentinelAgent|elastic|cb|cylance|sophos' }
# Exclusiones (necesitas ser administrador para leerlas)
Get-MpPreference | Select ExclusionPath,ExclusionProcess,ExclusionExtension
# Protección de LSASS
reg query HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v RunAsPPL

Nota

Una exclusión de carpeta o de proceso es, en la práctica, una zona que el antivirus no mira. Los administradores las ponen para que su software funcione. Es lo primero que se busca en una auditoría y lo primero que un defensor debería revisar.

AppLocker, WDAC y Constrained Language Mode

No son antivirus: son listas de permitidos. Deciden qué ejecutables, scripts y DLL pueden correr, normalmente por ruta, editor o hash (AppLocker y CLM).

Get-AppLockerPolicy -Effective | Select -ExpandProperty RuleCollections
$ExecutionContext.SessionState.LanguageMode        # FullLanguage o ConstrainedLanguage

Cuando AppLocker o WDAC aplican reglas a los scripts, PowerShell entra en Constrained Language Mode (CLM): no puedes usar tipos de .NET arbitrarios, Add-Type ni la mayoría de herramientas de PowerShell ofensivo (PowerView, PowerUp). Por eso fallan cosas que en otra máquina funcionaban.

Qué implica en un CTF:

  • Mira qué rutas permite la política. Las reglas por defecto dejan ejecutar desde C:\Windows\ y C:\Program Files\, y dentro de esas carpetas hay subcarpetas en las que los usuarios pueden escribir (como C:\Windows\Tasks o C:\Windows\Temp en algunas versiones).
  • Usa herramientas desde tu equipo (Impacket, NetExec, bloodhound-python) en vez de dentro de la máquina: AppLocker no las ve.
  • Los binarios firmados de Microsoft que ejecutan código (los llamados LOLBAS, como MSBuild.exe o InstallUtil.exe) son la vía clásica que las políticas mal hechas olvidan bloquear. Las políticas bien hechas los bloquean explícitamente.

En Sizzle, por ejemplo, hay AppLocker y CLM, y parte del reto es trabajar con esas restricciones.

Qué opciones tienes en un CTF

El objetivo en una máquina de práctica es aprender la técnica, no ganarle una carrera al antivirus. Por orden, lo que suele funcionar:

  1. Hacer menos cosas en la máquina. Casi todo lo de AD se puede hacer desde tu equipo con credenciales: enumeración, Kerberoasting, ADCS, volcados remotos.
  2. Usar lo que ya hay. Comandos del sistema (net, reg, sc, schtasks, wmic) en vez de binarios subidos.
  3. Compilar tú las herramientas. Un binario compilado por ti a partir del código fuente no coincide con las firmas del binario público. Es también más seguro: sabes qué ejecutas.
  4. Elegir variantes menos conocidas de la misma técnica (la guía de Potatoes o la de movimiento lateral tienen varias por cada caso).

Cuidado

Desactivar Defender (Set-MpPreference -DisableRealtimeMonitoring $true) funciona si eres administrador y no hay Tamper Protection, pero en un ejercicio real es lo más ruidoso que puedes hacer: genera una alerta inmediata. En un trabajo autorizado, pregunta antes y apúntalo en el informe.

Para los que defienden

Lo que más ayuda contra todo lo anterior, y lo que suele faltar en las máquinas del catálogo:

  • Registro de PowerShell (Script Block Logging, evento 4104) y Sysmon: ves el script decodificado aunque llegue ofuscado.
  • LSASS como PPL y Credential Guard: el volcado de LSASS deja de funcionar.
  • WDAC en modo de aplicación, con las reglas de bloqueo de LOLBAS recomendadas por Microsoft.
  • Reglas ASR de Defender: impiden que Office cree procesos hijos o que se lean credenciales de LSASS.
  • Revisar periódicamente las exclusiones y quién puede cambiarlas.

Y después

Si lo que te bloquea es la escalada en sí, vuelve a servicios y DLL o a Potatoes con una variante distinta. Para la parte de mando y control (C2) y su detección, mira la chuleta de C2 y post-explotación, y la ruta de red team en AD para practicar todo en orden.

Practícalo en máquinas reales

Máquinas de Hack The Box donde se usa la técnica. Cada ▶ salta al minuto del vídeo de IppSec donde aparece.

Evasión de antivirus y EDR 17 máquinas

Ver las 17 máquinas →

AppLocker y Constrained Language Mode 11 máquinas

Ver las 11 máquinas →

¿Ves un error o echas algo en falta? Cuéntanoslo