
Herramientas autodesarrolladas para Movimiento Lateral/Ejecución de Código
Este repositorio se ha creado basándose en el ya existente MiscTool, así que un gran agradecimiento a rasta-mouse por publicarlos y darme la motivación adecuada para trabajar en ellos.
Ejecución de comandos / Movimiento lateral mediante funcionalidad similar a PsExec. Debe ejecutarse en el contexto de un usuario privilegiado. La herramienta se basa en CsExec de rasta-mouse, pero está diseñada para permitir un control adicional sobre la creación del servicio, específicamente:
CheeseExec.exe <targetMachine> <serviceName> <binPath> <action>
Véase también TikiService.
Cheese PS es un framework de ejecución de comandos / movimiento lateral. Se basa en System.Management.Automation.PowerShell para cargar y ejecutar código arbitrario a través de PowerShell.
La herramienta es capaz de eludir restricciones comunes de forma nativa creando y utilizando espacios de ejecución de PowerShell en objetivos locales o remotos.
Debe ejecutarse en el contexto de un usuario privilegiado (si se utiliza PowerShell Remoting).
La herramienta fue creada originalmente como una mejora de CsPosh de rasta_mouse, pero creció lo suficiente como para convertirse en un framework propio, y ahora puede usarse como un inyector general de PowerShell.
La idea detrás de esta herramienta se ha resumido en el siguiente artículo:
Las principales funcionalidades implementadas son:
La siguiente captura de pantalla es un esquema bastante preciso para describir el flujo de trabajo de la herramienta:

Usage:
-t, --target=VALUE Target machine
-c, --code=VALUE Code to execute
-e, --encoded Indicates that provided code is base64 encoded
-a, --am-si-bypass=VALUE Uses the given PowerShell script to bypass A-M-S-
I (fs, smb o http[s])
--aX, --encrypted-am-si
Indicates that provided A.M.S.I. bypass is
encrypted
-i, --import=VALUE Imports additional PowerShell modules (fs, smb o
http[s])
--iX, --encrypted-imports
Indicates that provided PowerShell modules are
encrypted
-o, --outstring Append Out-String to code
-r, --redirect Redirect stderr to stdout
-d, --domain=VALUE Domain for alternate credentials
-u, --username=VALUE Username for alternate credentials
-p, --password=VALUE Password for alternate credentials
-X, --encrypt=VALUE Encrypt a script with an hardcoded key
-D, --decrypt=VALUE Test decryption of a script with an hardcoded key
-n, --skip-bypass=VALUE Skip A.M.S.I (A), WLDP (W) or ALL (*) Bypass
techniques
-l, --lockdown-escape Try to enable PowerShell FullLanguage mode using
REGINI
-w, --wldp-bypass=VALUE Uses the given PowerShell script to bypass WLDP
(fs, smb o http[s])
--wX, --encrypted-wldp Indicates that provided WLDP bypass is encrypted
-x, --executable=VALUE [Download and] Execute given executable
--xX, --encrypted-executable
Indicates that provided Exe/DLL is encrypted
--xCS, --executable-csharp
Indicates that the executable provided is C# -
(.NET)
-R, --reflective-injection Uses Invoke-ReflectivePEInjection to load the
assmebly from memory (requires Invoke-
ReflectivePEInjection to be imported!)
-P, --powershell-decrypt Force use of PowerShell-based decryption
-k, --encryption-key=VALUE Uses the provided key for encryption/decryption
--ssl Force use of SSL
-h, -?, --help Show Help
Nota: Si se ejecuta sin un objetivo, el script se ejecutará contra la máquina local
Véase también AmsiBypass.
Ejecución de comandos / Movimiento lateral mediante DCOM. Debe ejecutarse en el contexto de un usuario privilegiado. Esta herramienta se basa en CsDCOM de rasta-mouse, pero se ha mejorado para añadir métodos adicionales, adaptándose a las nuevas investigaciones de Philip Tsukerman. También hay un método experimental para "corregir" posibles intentos de deshabilitar objetos DCOM afectados mediante dcomcfg, pero requiere algunas condiciones previas para funcionar correctamente.
La idea detrás de esta herramienta se ha resumido en el siguiente artículo:
Métodos actuales: MMC20.Application, ShellWindows, ShellBrowserWindow, ExcelDDE, VisioAddonEx,
OutlookShellEx, ExcelXLL, VisioExecLine, OfficeMacro.
Usage:
-t, --target=VALUE Target Machine
-b, --binary=VALUE Binary: powershell.exe
-a, --args=VALUE Arguments: -enc <blah>
-m, --method=VALUE Methods: MMC20Application, ShellWindows,
ShellBrowserWindow, ExcelDDE, VisioAddonEx,
OutlookShellEx, ExcelXLL, VisioExecLine,
OfficeMacro
-r, --reg, --registry Enable registry manipulation
-h, -?, --help Show Help
Nota: Si se ejecuta con -t ., el script se ejecutará contra la máquina local
Véase también Movimiento lateral usando objetos DCOM y C#
Robo de credenciales RDP mediante RDI (inyección reflectiva de DLL). Debe ejecutarse en el contexto de un usuario privilegiado, o un usuario con SeImpersonatePrivilege.
Esta herramienta está construida sobre RdpThief de MDSec, pero se ha envuelto completamente en un solo C# para permitir su ejecución mediante .NET Reflection (Assembly.Load y similares). De esta manera, es posible ejecutarla desde Covenant, sin la molestia de subir una DLL al sistema objetivo.
Usage:
CheeseRDP [actions]
Actions:
wait: escucha continuamente cualquier nuevo proceso mstsc.exe indefinidamente (detener con Ctrl+C)
clean: elimina el archivo de volcado de credenciales si existe
dump: vuelca el contenido del archivo si existe, analizando las credenciales en un formato compacto
Nota: Si se ejecuta sin opciones, el programa intentará inyectarse en un proceso mstsc.exe activo (el tiempo de espera predeterminado es de 10 segundos)
Ejecución de comandos / Movimiento lateral mediante confianza MSSQL. Esta herramienta se ha desarrollado para superar algunas de las limitaciones de herramientas existentes como esc, principalmente en lo que respecta a la suplantación de MSSQL. Además, CheeseSQL se ha modificado específicamente para ejecutarse desde Covenant (mediante carga reflectiva) y para automatizar las fases más importantes del abuso de confianza MSSQL. Especialmente divertida es la implementación del abuso de CLR, que permite a un usuario compilar y cargar una extensión de MSSQL sobre la marcha con Roslyn para lograr la ejecución de comandos. A continuación se muestra una pequeña demostración, el comando ejecutado es un downloader de PowerShell codificado para Covenant):

Siguiendo mi regla de "siempre dar crédito cuando se debe", esta herramienta se ha desarrollado a partir de un proyecto ya existente de Jb05s, llamado SharpSQL, así que un gran agradecimiento a Jeremy por su trabajo.
Además, realmente recomiendo ver todas las herramientas de NetSPI sobre auditoría y explotación de MSSQL, ya que son realmente impresionantes:
[*] List of available commands:
- findspn : Buscar instancias MSSQL usando SPNs de dominio
- listdb : Listar bases de datos disponibles en el servidor
- gethash : Enviar hash Net-NTLM de cuenta de servicio a una IP arbitraria
- getlogin : Recuperar inicios de sesión SQL disponibles para suplantación
- getdbuser : Recuperar información sobre el inicio de sesión SQL, el usuario asignado actualmente y los roles de usuario disponibles
- getlinked : Recuperar información sobre servidores vinculados
- getserverinfo : Recuperar valores actuales de 'xp_cmdshell', 'ole automation procedures' y 'clr enabled'
- xp : Ejecutar comando PowerShell codificado mediante 'xp_cmdshell'
- ole : Ejecutar comando PowerShell codificado mediante 'sp_OACreate' y 'sp_OAMethod'
- clr : Ejecutar comando PowerShell codificado mediante ensamblados .NET personalizados
- rpc : Configurar servidor SQL vinculado para permitir conexiones RPC
- linkedquery : Ejecutar comando PowerShell codificado en servidor SQL vinculado mediante 'OPENQUERY'
- openquery : Ejecutar una consulta arbitraria usando 'OPENQUERY'
[*] Para uso detallado, escriba:
- CheeseSQL <command> /help