Tutoriales

Llamadas directas al sistema para habilitar el almacenamiento en elegancia de credenciales WDigest

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 objeto WdToggle.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 y wdigest!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

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba