Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Invoke-DOSfuscation — Generador de Ofuscación de Comandos de Cmd.exe y Entorno de Pruebas de Detección | Kitploit
Herramientas/GitHubGitHub/danielbohannon/invoke-dosfuscation
Herramientas DefensivasFuzzingPruebas de PenetraciónComando y ControlRed TeamingRespuesta a Incidentes
GitHubdanielbohannon/invoke-dosfuscation

Invoke-DOSfuscation

Generador de Ofuscación de Comandos de Cmd.exe y Entorno de Pruebas de Detección

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
948140hace 8 añosRevisado por Kitploit

Invoke-DOSfuscation v1.0

Captura de pantalla de Invoke-DOSfuscation

Introducción

Invoke-DOSfuscation es un framework de ofuscación de comandos de cmd.exe compatible con PowerShell v2.0+. (Documento técnico: https://www.fireeye.com/blog/threat-research/2018/03/dosfuscation-exploring-obfuscation-and-detection-techniques.html)

Antecedentes

Durante los últimos años como consultor de respuesta a incidentes, he sido testigo de una miríada de técnicas de ofuscación y evasión empleadas por varios actores de amenazas. Algunas de estas técnicas son increíblemente complejas, mientras que otras son elegantemente simples, pero ambas categorías se emplean para evadir la detección. En mi experiencia, he encontrado que APT32 y FIN7 despliegan las técnicas de ofuscación más atractivas y su creatividad es digna de mención.

En junio de 2017, después de una serie de técnicas incrementales de ofuscación de línea de comandos, FIN7 utilizó una capacidad de sustitución de cadenas de variables de entorno nativa de cmd.exe que en ese momento ni siquiera sabía que existía. Impulsado por este descubrimiento, coescribí una publicación de blog con Nick Carr (@ItsReallyNick) titulada Obfuscation in the Wild: Targeted Attackers Lead the Way in Evasion Techniques donde destacamos las técnicas de ofuscación de numerosos grupos que identificamos en la naturaleza.

El siguiente fin de semana exploré esta funcionalidad de sustitución nativa de cmd.exe y creé y publiqué una herramienta simple de prueba de concepto llamada Out-FINcodedCommand. Tan pronto como publiqué esta POC, di un paso atrás y pensé: 'Quizás hay más capacidades de ofuscación dentro de cmd.exe que debería explorar y para las que debería construir detecciones antes de que descubramos que se están usando en la naturaleza.'

Ese fue el inicio de mi investigación que eventualmente me llevó a desarrollar este framework Invoke-DOSfuscation.

Propósito

Los atacantes utilizan cada vez más técnicas de ofuscación para evadir detecciones basadas en gran medida en los valores de los argumentos de la línea de comandos. Para contrarrestar esto, dediqué cinco meses investigando y desarrollando técnicas de ofuscación y codificación nativas de cmd.exe para poder crear detecciones robustas para estas técnicas principales que aún no he visto en la naturaleza.

El único propósito de este framework es permitir a los defensores generar aleatoriamente miles de comandos de muestra únicamente ofuscados para probar y ajustar sus capacidades de detección contra estas técnicas. Incluyo mi conjunto completo de pruebas en esta versión para automatizar este proceso de prueba de detección.

En muchos aspectos, este framework permite a los defensores hacer fuzzing de las técnicas de ofuscación de cmd.exe, y al construir esta herramienta descubrí numerosas oportunidades adicionales de ofuscación que no descubrí en mi investigación inicial.

También compartí esta información con Microsoft en noviembre de 2017 y pregunté sobre oportunidades para exponer visibilidad adicional sobre el funcionamiento interno del uso de cmd.exe de las técnicas centrales que son los componentes básicos de todas las funciones de ofuscación integradas en este framework.

Como defensor, el objetivo final de esta investigación y desarrollo es crear conciencia e impulsar cambios que ayuden a los usuarios finales a protegerse mejor contra las TTP (Herramientas, Técnicas y Procedimientos) siempre cambiantes de los atacantes.

Uso

Si bien todos los componentes de ofuscación están construidos como funciones formales independientes, la mayoría de los usuarios encontrarán que la función Invoke-DOSfuscation es la forma más fácil de explorar y visualizar las técnicas de ofuscación que este framework soporta. Sin embargo, para fuzzing y exploración profunda de las numerosas opciones de ajuste para cada categoría de ofuscación, se recomienda que las funciones individuales se usen directamente fuera del envoltorio de la función Invoke-DOSfuscation.

Para permitir que los defensores comiencen fácilmente a hacer fuzzing y probar ideas de detección, este framework también incluye un módulo adicional, Invoke-DOSfuscationTestHarness.psm1 que se importa automáticamente con el resto del proyecto. Las dos funciones clave en este módulo para los defensores son:

  1. Invoke-DosTestHarness - Genera (con configuraciones de argumentos predeterminadas) más de 1000 comandos ofuscados aleatoriamente a partir de una lista de comandos de prueba tanto para la integridad del payload como para fines de detección. Cada iteración del test harness aleatoriza todos los argumentos de función disponibles y llama directamente a las cuatro funciones de ofuscación en lugar de usar los valores más estandarizados de -ObfuscationLevel (1-3) que la función basada en menú de Invoke-DOSfuscation usa por defecto. Esto produce un rango significativamente más amplio de salida ofuscada contra la cual se pueden construir detecciones más exhaustivas. Cada comando ofuscado se verifica luego contra la segunda función:
  2. Get-DosDetectionMatch - Verifica un comando de entrada (cadena) contra todos los valores de detección de regex ingresados en el array $regexDetectionTerms de la función. Esto es llamado automáticamente por Invoke-DosTestHarness pero también se puede llamar de forma independiente.

Al final de cada invocación del test harness, se mostrarán estadísticas sobre la ejecución correcta del comando y la detección, para que los defensores puedan identificar rápidamente qué comandos tienen 0 o solo 1-2 coincidencias de detección y cuáles podrían necesitar mejor cobertura.

Finalmente, para evitar que los defensores tengan que ejecutar el test harness para comenzar, he proporcionado 1000 comandos de muestra en el directorio Samples distribuidos en cada una de las cuatro funciones de ofuscación. Los formatos incluyen archivos .txt y archivos .evtx de Security y Sysmon. Incluí un par de reglas de detección de muestra en el array $regexDetectionTerms en Invoke-DOSfuscationTestHarness.psm1, pero querrá agregar y probar muchas más reglas a medida que pruebe los comandos ofuscados de muestra). Además de los archivos .txt con los comandos sin procesar, hay archivos .evtx que contienen los registros de ejecución de procesos (eventos Sysmon EID 1) para cada uno de los 1000 comandos de muestra. Estos registros de eventos son increíblemente útiles para construir indicadores basados en ejecuciones matizadas de procesos hijos que son subproductos de varias técnicas de bloques de construcción sobre las que se construye Invoke-DOSfuscation.

Para comenzar, muestre los comandos ofuscados de muestra que no coinciden con ninguna de sus reglas de detección actuales ejecutando simplemente:

(Get-Content .\Samples\STATIC_1-of-4_Out-DosConcatenatedCommand.txt) | where-object { -not (Get-DosDetectionMatch -Command $_).Detected }

Para probar tanto los comandos ofuscados como los procesos hijos de los registros de eventos de ejecución registrados en Security EID 4688, simplemente ejecute:

(Get-WinEvent -Path .\Samples\DYNAMIC_SECURITY_EID4688_1-of-4_Out-DosConcatenatedCommand.evtx) | where-object { $_.Message } | foreach-object { ($_.Message.Split("`n") | select-string '^\tProcess Command Line:\t') -replace '^\tProcess Command Line:\t','' } | where-object { -not (Get-DosDetectionMatch -Command $_).Detected }

Instalación

El código fuente de Invoke-DOSfuscation está alojado en Github, y puede descargarlo, bifurcarlo y revisarlo desde este repositorio (https://github.com/danielbohannon/Invoke-DOSfuscation). Por favor, reporte problemas o solicitudes de características a través del rastreador de errores de Github asociado con este proyecto.

Para instalar:

root@kitploit:~
Import-Module .\Invoke-DOSfuscation.psd1
Invoke-DOSfuscation

Licencia

Invoke-DOSfuscation se publica bajo la licencia Apache 2.0.

Notas de la versión

v1.0 - 2018-03-23 Black Hat Asia (Singapur): Lanzamiento PÚBLICO de Invoke-DOSfuscation.

Descargar herramienta