Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 051

Bypass de AMSI

Revisado porCybersecurity entrepreneur & security researcher

¿Qué es Bypass de AMSI?

Bypass de AMSITecnicas que desactivan, parchean o evaden la Antimalware Scan Interface de Windows para que scripts y payloads en memoria no sean analizados por los antivirus.


La Antimalware Scan Interface (AMSI), introducida con Windows 10 en 2015, permite a PowerShell, JScript, VBScript, .NET y VBA de Office enviar buffers al antivirus registrado (mediante AmsiScanBuffer/AmsiScanString) para que los analice despues de la desofuscacion pero antes de la ejecucion. Como AMSI se ejecuta dentro del mismo proceso y comparte el espacio de direcciones del atacante, un atacante que ya tiene ejecucion de codigo puede simplemente manipularla.

Las tecnicas habituales se agrupan en tres familias. El parcheo de memoria sobrescribe los primeros bytes de amsi.dll!AmsiScanBuffer (o AmsiOpenSession) para que devuelva AMSI_RESULT_CLEAN o un error como E_INVALIDARG sin analizar nada. La reflexion cambia a true el campo privado AmsiUtils.amsiInitFailed de PowerShell —el clasico one-liner de Matt Graeber de 2016— de modo que la sesion nunca vuelve a inicializar AMSI. La ofuscacion/downgrade divide las cadenas marcadas, las codifica en Base64 o fuerza powershell -version 2, donde AMSI no existe. El objetivo es ejecutar herramientas como Mimikatz, Invoke-Mimikatz o beacons de Cobalt Strike dentro de un proceso anfitrion de confianza sin ser detectado.

MITRE ATT&CK lo clasifica como T1562.001 (Impair Defenses: Disable or Modify Tools). Microsoft Defender tiene firma de la cadena literal amsiInitFailed desde 2017, por lo que los atacantes la ofuscan en tiempo de ejecucion. Defensas: proveedores AMSI conectados a un EDR moderno, reglas de Attack Surface Reduction, Constrained Language Mode de PowerShell, AppLocker/WDAC, registro de ScriptBlock y alertas sobre parches con permiso de escritura+ejecucion en amsi.dll en procesos recien creados.

flowchart TD
  S[Malicious script / macro] --> H[Host process: PowerShell, WScript, Office]
  H --> Q{AMSI tampered?}
  Q -->|"Patch AmsiScanBuffer"| C[Force AMSI_RESULT_CLEAN]
  Q -->|"Set amsiInitFailed = true"| C
  Q -->|"No"| AV[AV/EDR scans deobfuscated buffer]
  AV -->|Malicious| B[Blocked + alert]
  AV -->|Clean| X[Execute]
  C --> X[Payload executes unscanned]

Ejemplos

  1. 01

    Parchear los primeros bytes de AmsiScanBuffer en memoria para que siempre devuelva AMSI_RESULT_CLEAN.

  2. 02

    [Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true).

Preguntas frecuentes

¿Qué es Bypass de AMSI?

Tecnicas que desactivan, parchean o evaden la Antimalware Scan Interface de Windows para que scripts y payloads en memoria no sean analizados por los antivirus. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.

¿Qué significa Bypass de AMSI?

Tecnicas que desactivan, parchean o evaden la Antimalware Scan Interface de Windows para que scripts y payloads en memoria no sean analizados por los antivirus.

¿Cómo defenderse de Bypass de AMSI?

Las defensas contra Bypass de AMSI combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.

¿Cuáles son otros nombres para Bypass de AMSI?

Nombres alternativos comunes: Evasion de AMSI.

Términos relacionados