Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Revoke-Obfuscation — Marco de detección de ofuscación de PowerShell | Kitploit
Herramientas/GitHubGitHub/danielbohannon/revoke-obfuscation
Herramientas DefensivasAnálisis EstáticoAnálisis de CódigoAnálisis de MalwareInteligencia de AmenazasPapers e InvestigaciónAprendizaje y Educación
GitHubdanielbohannon/revoke-obfuscation

Revoke-Obfuscation

Marco de detección de ofuscación de PowerShell

Ver Repositorio
75212266hace 6 añosRevisado por Kitploit

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

Revoke-Obfuscation v1.0

Demostración de Revoke-Obfuscation

Captura de pantalla de Revoke-Obfuscation

Introducción

Revoke-Obfuscation es un framework de detección de ofuscación de PowerShell compatible con PowerShell v3.0+.

Autores

Daniel Bohannon (@danielhbohannon) Lee Holmes (@Lee_Homes)

Investigación

Artículo: https://www.fireeye.com/blog/threat-research/2017/07/revoke-obfuscation-powershell.html

Documento técnico: https://www.fireeye.com/content/dam/fireeye-www/blog/pdfs/revoke-obfuscation-report.pdf

Antecedentes

En el otoño de 2016 y la primavera de 2017, Daniel Bohannon (@danielhbohannon) publicó Invoke-Obfuscation e Invoke-CradleCrafter, dos frameworks de ofuscación de PowerShell de código abierto. El objetivo de esta investigación y de estos frameworks era resaltar las limitaciones de un enfoque puramente basado en firmas para detectar el uso de PowerShell por parte de atacantes. El mensaje central para los defensores ha sido centrarse en detectar Indicadores de Ofuscación además de la sintaxis sospechosa conocida.

Sin embargo, los niveles extremos de aleatorización en Invoke-Obfuscation e Invoke-CradleCrafter, junto con las opciones de ofuscación a nivel de token que no se desofuscan en el registro de bloques de script de PowerShell, han llevado a los defensores a buscar una nueva forma escalable de detectar de manera genérica tanto técnicas de ofuscación conocidas como desconocidas.

Pocas semanas después del lanzamiento de Invoke-Obfuscation, Lee Holmes (@Lee_Homes) publicó un artículo titulado More Detecting Obfuscated PowerShell en el que destacaba técnicas de análisis estadístico para detectar características anómalas presentes en scripts muy ofuscados, en particular los producidos por Invoke-Obfuscation.

Desde ese intercambio, Daniel y Lee se hicieron buenos amigos y compartieron muchos intereses/obsesiones comunes: el amor por el café de especialidad y la búsqueda de nuevas formas de detectar a fondo PowerShell ofuscado.

La cantidad de tiempo que ambos miembros del equipo azul dedicaron a investigar y al código de prueba podría equivaler a varios miles de tazas de café preparado en Chemex, asumiendo el tiempo de preparación objetivo de 4 minutos (y asumiendo que al menos otro entusiasta del café captara este juego de palabras con "pour over").

Revoke-Obfuscation es el producto final artesanal de estos esfuerzos.

Propósito

Revoke-Obfuscation es un framework de código abierto compatible con PowerShell v3.0+ para detectar comandos y scripts de PowerShell ofuscados a escala. Se basa en el AST (Árbol de Sintaxis Abstracta) de PowerShell para extraer rápidamente miles de características de cualquier script de PowerShell de entrada y comparar este vector de características con uno de varios vectores de características ponderados predefinidos, calculados mediante un proceso de aprendizaje automatizado realizado sobre un corpus de más de 408.000 scripts de PowerShell. Este corpus completo se puede descargar desde (https://aka.ms/PowerShellCorpus). Puede encontrar los detalles detrás de los aspectos de ciencia de datos de este trabajo en el subdirectorio 'DataScience' del repositorio.

Dado que Revoke-Obfuscation se basa en la extracción y comparación de características en lugar de IOCs puros o coincidencias RegEx, es más robusto en su capacidad para identificar técnicas de ofuscación desconocidas, incluso cuando los atacantes intentan atenuar su ofuscación rellenándola con contenido de script no ofuscado para anular comprobaciones básicas como el análisis de frecuencia de caracteres.

Revoke-Obfuscation puede medir fácilmente la mayoría de los scripts de PowerShell de entrada en 100-300 milisegundos. Este nivel de rendimiento permite a una organización medir la ofuscación de (como máximo) más de 12.000 scripts de PowerShell por hora sin necesidad de indexar registros detallados de bloques de script de PowerShell en un SIEM.

Por último, Revoke-Obfuscation admite una funcionalidad sencilla de listas blancas, junto con la capacidad de ingerir registros de eventos operativos de PowerShell y reensamblar bloques de script que se registran en numerosos registros de bloques de script EID 4104. Puede convertirse fácilmente en una ventanilla única para ingerir los registros de eventos operativos de PowerShell de un entorno, reensamblar y deduplicar todos los scripts de esos registros, y luego identificar los scripts de PowerShell ofuscados que merecen una inspección manual.

Instalación

El código fuente de Revoke-Obfuscation está alojado en Github, y puede descargarlo, bifurcarlo y revisarlo desde este repositorio (https://github.com/danielbohannon/Revoke-Obfuscation). Informe de problemas o solicitudes de funciones a través del rastreador de errores de Github asociado con este proyecto.

Para instalar (desde Github):

Import-Module .\Revoke-Obfuscation.psd1

El código fuente también se puede instalar directamente desde la Galería de PowerShell mediante los siguientes comandos:

Para instalar (desde la Galería de PowerShell):

Install-Module Revoke-Obfuscation
Import-Module Revoke-Obfuscation

Uso

Revoke-Obfuscation proporcionará un tutorial detallado, así como algunas otras sorpresas divertidas. Pero si no le interesan las bromas, simplemente puede ejecutar Get-Help Measure-RvoObfuscation para ver la sintaxis de uso o continuar leyendo.

Hay dos funciones principales utilizadas en este framework:

  • Get-RvoScriptBlock — reensambla scripts a partir de registros de bloques de script EID 4104
  • Measure-RvoObfuscation — mide el/los script(s) de entrada y devuelve una puntuación de ofuscación

Si necesita reensamblar y extraer registros de bloques de script de los registros operativos de PowerShell, entonces Get-RvoScriptBlock es la función que debe elegir. Automáticamente devuelve solo bloques de script únicos y excluye ciertos valores de bloques de script predeterminados que no se consideran maliciosos. Esto se puede anular con el parámetro -Deep.

  • Get-RvoScriptBlock -Path 'C:\Windows\System32\Winevt\Logs\Microsoft-Windows-PowerShell%4Operational.evtx' -Verbose
  • Get-ChildItem .\Demo\demo.evtx | Get-RvoScriptBlock -Verbose
  • Get-WinEvent -LogName Microsoft-Windows-PowerShell/Operational | Get-RvoScriptBlock -Verbose

Get-RvoScriptBlock también admite resultados de auditoría MIR/HX, así como registros operativos de PowerShell obtenidos a través del proyecto CimSweep de Matt Graeber (@mattifestation) (https://github.com/PowerShellMafia/CimSweep). Para CimSweep se requiere un pequeño ajuste en el registro para engañar a WMI y que consulte un registro de eventos no clásico. Los detalles se pueden encontrar en la sección NOTAS de Get-RvoScriptBlock.

  • Get-ChildItem C:\MirOrHxAuditFiles\*_w32eventlogs.xml | Get-RvoScriptBlock -Verbose
  • Get-CSEventLogEntry -LogName Microsoft-Windows-PowerShell/Operational | Get-RvoScriptBlock

A continuación se muestra un ejemplo completo con datos de prueba registrados en demo.evtx:

$obfResults = Get-WinEvent -Path .\Demo\demo.evtx | Get-RvoScriptBlock | Measure-RvoObfuscation -OutputToDisk -Verbose
Descargar herramienta