
WdToggle es un archivo de objeto Cobalt Strike Beacon de prueba de concepto que utiliza llamadas directas al sistema para habilitar WDigest almacenamiento en elegancia de credenciales y eludir Urbano de credenciales (si está preparado).
¿Para qué es este repositorio?
- Demuestre el uso de llamadas directas a sistemas utilizando ensamblado en raya para proporcionar una forma más segura de interactuar con el proceso LSASS.
- Habilitar WDigest almacenamiento en elegancia de credenciales alternando el
g_fParameter_UseLogonCredential
parámetro entero a 1 interiormente del proceso LSASS (módulo wdigest.dll). - Eludir Urbano de credenciales (si está preparado) alternando el
g_IsCredGuardEnabled
variable a 0 interiormente del proceso LSASS (módulo wdigest.dll). - Ejecute este código interiormente del proceso Beacon utilizando un archivo de objeto Beacon.
¿Cómo configuro esto?
No proporcionaremos binarios compilados. Tendrás que hacer esto tú mismo:
- Clona este repositorio.
- Asegúrese de tener instalado el compilador Mingw-w64. En Mac OSX, por ejemplo, podemos usar la colección de puertos para instalar Mingw-w64 (
sudo port install mingw-w64
). - Ejecutar el
make
comando para inventariar el archivo de objeto Beacon. - Interiormente de un contexto de baliza Cobaltstrike ejecute el
inline-execute
comando y proporcionar la ruta al objetoWdToggle.o
expediente. - Ejecuta el Cobaltstrike
logonpasswords
comando (Mimikatz) y observe que las contraseñas de texto sin acelerar están habilitadas nuevamente para nuevos inicios de sesión de desbloquear su sesión de escritorio.
Limitaciones
- Este parche de memoria no es persistente al reiniciar, por lo que luego de reiniciar debe retornar a ejecutar el código.
- El desplazamiento de la memoria al
wdigest!g_fParameter_UseLogonCredential
ywdigest!g_IsCredGuardEnabled
La variable entero podría cambiar entre las versiones y revisiones de Windows. Proporcionamos algunas compensaciones para diferentes versiones, pero estas pueden cambiar en versiones futuras. Puede pegar sus propias compensaciones de traducción que se pueden encontrar utilizando las herramientas de depuración de Windows.
C:Program Files (x86)Windows Kits10Debuggersx64>cdb.exe -z C:WindowsSystem32wdigest.dll
0:000>x wdigest!g_fParameter_UseLogonCredential
00000001`800361b4 wdigest!g_fParameter_UseLogonCredential = <no type information>
0:000> x wdigest!g_IsCredGuardEnabled
00000001`80035c08 wdigest!g_IsCredGuardEnabled = <no type information>
0:000>
Detección
Para detectar el robo de credenciales a través del acercamiento a la memoria LSASS, podríamos usar una útil como Sysmon. Sysmon se puede configurar para registrar procesos que abren un identificador para el proceso lsass.exe. Con esta configuración aplicada, podemos compilar telemetría para procesos sospechosos que acceden al proceso LSASS y ayudar a detectar una posible actividad de volcado de credenciales. Por supuesto, hay más opciones para detectar el robo de credenciales, por ejemplo, utilizando una plataforma de detección avanzadilla como Windows Defender ATP. Pero si no tiene el presupuesto y el opulencia de usar estas plataformas, entonces Sysmon es esa útil gratuita que puede ayudar a guatar el vano.
Créditos