Parte: 7 — Red Team y operaciones ofensivas · Fuente: RTFM v2 (Clark) / Microsoft AMSI documentation ⏱️ Duración estimada: 110 min · Nivel: Experto
Comprender AMSI (Antimalware Scan Interface) y las técnicas de ofuscación de payloads que lo evaden, entendiendo el mecanismo en profundidad. El alumno verá cómo AMSI inspecciona scripts en memoria (PowerShell, VBA, JScript), por qué la ofuscación simple ya no basta, y las estrategias de bypass responsables, con foco en cómo se detectan.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Qué es AMSI | Inspección de contenido en runtime |
| 2 | Integraciones (PowerShell, VBA, .NET) | AMSI cubre múltiples motores |
| 3 | Ofuscación de scripts | Rompe firmas estáticas |
| 4 | AMSI memory patch | Neutraliza el scan en el proceso |
| 5 | Downgrade y forzar errores | Alternativas al patch |
| 6 | Detección de bypass | Cómo lo ve el Blue Team |
| 7 | Ofuscación de binarios | Más allá de scripts |
AMSI permite que una aplicación entregue contenido a un proveedor antimalware y reciba un resultado. Microsoft documenta integraciones en PowerShell, Windows Script Host, JavaScript/VBScript, macros de Office y determinados flujos de UAC. El proveedor y su política deciden la clasificación; por eso no existe una respuesta universal para todas las combinaciones de host, versión y producto.
Su ventaja pedagógica aparece en el momento del análisis. Un script puede llegar codificado o dividido y, aun así, el host puede enviar al proveedor una representación más cercana al contenido que pretende ejecutar. AMSI también admite sesiones para relacionar fragmentos. Esto explica por qué cambiar cadenas visibles en el archivo puede derrotar una firma simple sin evitar el análisis posterior.
La codificación cambia una representación para transportarla o interpretarla; Base64 no aporta secreto. El cifrado protege confidencialidad mientras exista una clave adecuada. La ofuscación busca dificultar el análisis conservando la función. En una cadena real pueden aparecer las tres, pero cada una resuelve un problema diferente y deja una etapa de reconstrucción observable.
Evaluar ofuscación solo por si «pasa» una muestra confunde el resultado. Hay que comprobar legibilidad, contenido entregado a AMSI, Script Block Logging, proceso resultante y comportamiento. La transformación puede reducir una firma textual y, al mismo tiempo, aumentar la anomalía mediante capas de decodificación, reflexión o llamadas poco habituales.
Las categorías conocidas de evasión intentan cambiar el contenido, el host, la disponibilidad de la interfaz o el resultado que recibe el proceso. Un parche en memoria afecta a ese proceso y versión concretos; no elimina necesariamente otros sensores ni la telemetría previa o posterior. Un downgrade depende de que un componente antiguo esté instalado y permitido, algo que un sistema endurecido debe evitar. Manipular proveedores cambia la relación de confianza del sistema y puede requerir privilegios, además de generar indicios propios.
Por seguridad, el ejercicio debe usar una cadena inocua de prueba y centrarse en observar el flujo. No se necesita ejecutar malware real para demostrar que una transformación cambia el punto donde aparece una detección. El entregable profesional es una matriz que muestre qué capa observó cada variante y qué control compensatorio permaneció activo.
AMSI no sustituye el registro de bloques de script, el control de aplicaciones, la reducción de superficie de ataque ni la telemetría del endpoint. Si una prueba demuestra que una interfaz puede degradarse en un proceso, la recomendación no es buscar una firma eterna del bypass, sino combinar protección contra manipulación, versiones modernas, registro centralizado y detecciones de comportamiento. La conclusión debe sobrevivir al snippet usado en la demostración.
⚠️ Solo laboratorio. Estas técnicas se practican en máquinas propias para entender AMSI y escribir mejores detecciones. Muchos bypass son públicos y por eso mismo ya están firmados. Nunca uses esto fuera de un engagement autorizado.
powershell -version 2 en un sistema que lo permita y comprueba la ausencia de AMSI (documenta que en sistemas endurecidos v2 no está).[Ref].Assembly, strings característicos).En tu laboratorio, toma un script que Defender bloquea y consigue ejecutarlo aplicando una técnica de bypass de AMSI, documentando cómo el Blue Team lo detectaría. Criterio de aceptación: demuestras la ejecución del script tras el bypass (antes bloqueado) y entregas una regla o lista de indicadores (Script Block Logging, cadenas, comportamiento) con la que un defensor detectaría tu técnica. Todo en tu VM.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| El bypass público no funciona | Ya está firmado; entiende el mecanismo y adáptalo |
| Ofusco pero AMSI sigue detectando | AMSI ve el runtime; la ofuscación estática no basta |
| Downgrade falla | PS v2 deshabilitado (buen hardening); no hay atajo |
| El patch bloquea PowerShell | Offset/versión incorrectos; verifica la firma de la función |
| Script Block Logging te delata | Es telemetría rica; asume que el bypass es visible |
❓ ¿Ofuscar es suficiente para evadir AMSI? No. AMSI inspecciona el contenido en memoria tras la desofuscación superficial, así que la ofuscación estática por sí sola raramente basta contra motores actualizados.
❓ ¿Por qué los bypass de GitHub dejan de funcionar? Porque los proveedores pueden añadir firmas, heurísticas o detecciones de comportamiento, y las versiones del host cambian. La comprensión del mecanismo es duradera; el snippet concreto no.
❓ ¿Deshabilitar AMSI es lo mismo que evadirlo? No exactamente: evadir es lograr que no bloquee tu contenido concreto; los memory patches efectivamente lo neutralizan en el proceso, lo cual es muy detectable.
T1562). https://attack.mitre.org/techniques/T1562/ — clasificación de la degradación de controles y sus posibilidades de detección.Clase 168 — Evasión de defensas: antivirus y EDR