
Generador y Ofuscador de Cradle de Descarga Remota de PowerShell

Invoke-CradleCrafter es un generador y ofuscador de cunas de descarga remota de PowerShell compatible con PowerShell v2.0+.
En el otoño de 2016, tras publicar Invoke-Obfuscation, continué actualizando mi hoja de cálculo de cunas de descarga remota de PowerShell, pensando que algún día añadiría un menú de "selector de cunas" en Invoke-Obfuscation. Esta lista incluía cunas que me resultaban oscuras, y muchas de las cuales no se observaban ampliamente (o en absoluto) en entornos reales.
Sin embargo, dado que Invoke-Obfuscation fue diseñado para ofuscar cualquier comando o script arbitrario de PowerShell, había ciertas técnicas de ofuscación que sabía que necesitaba incluir en relación con la creación de cunas personalizadas que no era factible incorporar en Invoke-Obfuscation.
Este fue el punto que me llevó a trasladar esta investigación de cunas a un proyecto independiente, aunque siempre se puede tomar la salida de Invoke-CradleCrafter e introducirla en Invoke-Obfuscation y continuar la diversión. Dado que Invoke-CradleCrafter está mucho más controlado, me ha permitido incluir técnicas de ofuscación completamente diferentes a cualquier técnica presente en Invoke-Obfuscation.
Algunas de las nuevas técnicas de ofuscación en esta herramienta incluyen ofuscación de tokens mediante enumeración de tipos de datos y coincidencias con comodines, y la reordenación de la estructura de comandos mediante la introducción de variables adicionales y sintaxis de variables.
Por último, la herramienta admite más de 10 sintaxis de invocación que van más allá de las más prevalentes Invoke-Expression e IEX.
Invoke-CradleCrafter existe para ayudar a los Equipos Azules y Equipos Rojos a explorar, generar y ofuscar fácilmente cunas de descarga remota de PowerShell. Además, ayuda a los Equipos Azules a probar la efectividad de las detecciones que pueden funcionar para la salida producida por Invoke-Obfuscation, pero que pueden fallar al tratar con Invoke-CradleCrafter, ya que no contiene concatenaciones de cadenas, codificaciones, tildes, conversiones de tipos, etc.
Otro componente importante de esta investigación y desarrollo de la herramienta fue resaltar eficazmente el comportamiento de alto nivel y los artefactos dejados atrás cuando se ejecuta cada cuna. He intentado resaltar esta información cuando ingresas a un nuevo tipo de cuna en los menús interactivos de la herramienta.
En última instancia, conocer más sobre el comportamiento y los artefactos de cada cuna ayudará al Equipo Azul a detectar mejor estas cunas. Este conocimiento también debería beneficiar al miembro del Equipo Rojo para tomar decisiones más informadas sobre qué cuna utilizar en un escenario determinado.
Si bien todas las cunas se pueden producir llamando directamente a la función Out-Cradle, la complejidad de las piezas móviles de todos los componentes ofuscados apilados hace que usar la función Invoke-CradleCrafter sea la forma más sencilla de explorar y visualizar las sintaxis de cunas y las técnicas de ofuscación que este framework soporta actualmente.
El código fuente de Invoke-CradleCrafter está alojado en Github, y puedes descargarlo, bifurcarlo y revisarlo desde este repositorio (https://github.com/danielbohannon/Invoke-CradleCrafter). Por favor, reporta problemas o solicitudes de funciones a través del rastreador de errores de Github asociado con este proyecto.
Para instalar:
Import-Module ./Invoke-CradleCrafter.psd1
Invoke-CradleCrafter
Invoke-CradleCrafter se publica bajo la licencia Apache 2.0.
v1.0 – 2017-04-28 x33fcon (Gdynia, Polonia): Lanzamiento público de Invoke-CradleCrafter.
v1.1 – 2017-05-11 NOPcon (Estambul, Turquía): Se añadieron 3 nuevas cunas basadas en memoria:
v1.1.1 – 2018-01-08: Se añadió 1 nueva cuna basada en memoria:
v1.1.2 – 2018-02-05: Se añadieron cadenas User-Agent a la información de la cuna