Stealing Windows Credentials
Last updated
Last updated
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Encuentra otras cosas que Mimikatz puede hacer en esta página.
Aprende sobre algunas posibles protecciones de credenciales aquí. Estas protecciones podrían evitar que Mimikatz extraiga algunas credenciales.
Utiliza el Complemento de Credenciales que he creado para buscar contraseñas y hashes dentro de la víctima.
Como Procdump de SysInternals es una herramienta legítima de Microsoft, no es detectada por Defender. Puedes usar esta herramienta para volcar el proceso lsass, descargar el volcado y extraer las credenciales localmente del volcado.
Este proceso se realiza automáticamente con SprayKatz: ./spraykatz.py -u H4x0r -p L0c4L4dm1n -t 192.168.1.0/24
Nota: Algunos AV pueden detectar como malicioso el uso de procdump.exe para volcar lsass.exe, esto se debe a que están detectando la cadena "procdump.exe" y "lsass.exe". Por lo tanto, es más sigiloso pasar como un argumento el PID de lsass.exe a procdump en lugar de el nombre lsass.exe.
Una DLL llamada comsvcs.dll que se encuentra en C:\Windows\System32
es responsable de volcar la memoria del proceso en caso de un fallo. Esta DLL incluye una función llamada MiniDumpW
, diseñada para ser invocada usando rundll32.exe
.
No es relevante usar los dos primeros argumentos, pero el tercero se divide en tres componentes. El ID del proceso a volcar constituye el primer componente, la ubicación del archivo de volcado representa el segundo, y el tercer componente es estrictamente la palabra full. No existen opciones alternativas.
Al analizar estos tres componentes, la DLL se encarga de crear el archivo de volcado y transferir la memoria del proceso especificado a este archivo.
La utilización de comsvcs.dll es factible para volcar el proceso lsass, eliminando así la necesidad de subir y ejecutar procdump. Este método se describe en detalle en https://en.hackndo.com/remote-lsass-dump-passwords/.
El siguiente comando se emplea para la ejecución:
Puedes automatizar este proceso con lssasy.
Haz clic derecho en la barra de tareas y selecciona Administrador de tareas
Haz clic en Más detalles
Busca el proceso "Local Security Authority Process" en la pestaña Procesos
Haz clic derecho en el proceso "Local Security Authority Process" y selecciona "Crear archivo de volcado".
Procdump es un binario firmado por Microsoft que es parte de la suite sysinternals.
PPLBlade es una herramienta de volcado de procesos protegidos que admite la ofuscación de volcado de memoria y su transferencia en estaciones de trabajo remotas sin dejarlo en el disco.
Funcionalidades clave:
Eludir la protección PPL
Ofuscar archivos de volcado de memoria para evadir los mecanismos de detección basados en firmas de Defender
Subir el volcado de memoria con métodos de carga RAW y SMB sin dejarlo en el disco (volcado sin archivos)
Estos archivos deben estar ubicados en C:\windows\system32\config\SAM y C:\windows\system32\config\SYSTEM. Pero no puedes simplemente copiarlos de manera regular porque están protegidos.
La forma más fácil de robar esos archivos es obtener una copia del registro:
Descarga esos archivos a tu máquina Kali y extrae los hashes usando:
Puedes realizar copias de archivos protegidos utilizando este servicio. Necesitas ser Administrador.
El binario vssadmin solo está disponible en versiones de Windows Server.
Pero puedes hacer lo mismo desde Powershell. Este es un ejemplo de cómo copiar el archivo SAM (el disco duro utilizado es "C:" y se guarda en C:\users\Public) pero puedes usar esto para copiar cualquier archivo protegido:
Finalmente, también podrías usar el script de PS Invoke-NinjaCopy para hacer una copia de SAM, SYSTEM y ntds.dit.
El archivo NTDS.dit es conocido como el corazón de Active Directory, conteniendo datos cruciales sobre objetos de usuario, grupos y sus membresías. Es donde se almacenan los hashes de contraseñas para los usuarios del dominio. Este archivo es una base de datos de Extensible Storage Engine (ESE) y reside en %SystemRoom%/NTDS/ntds.dit.
Dentro de esta base de datos, se mantienen tres tablas principales:
Tabla de Datos: Esta tabla se encarga de almacenar detalles sobre objetos como usuarios y grupos.
Tabla de Enlaces: Lleva un registro de las relaciones, como las membresías de grupos.
Tabla SD: Aquí se mantienen los descriptores de seguridad para cada objeto, asegurando la seguridad y el control de acceso para los objetos almacenados.
Más información sobre esto: http://blogs.chrisse.se/2012/02/11/how-the-active-directory-data-store-really-works-inside-ntds-dit-part-1/
Windows utiliza Ntdsa.dll para interactuar con ese archivo y es utilizado por lsass.exe. Luego, parte del archivo NTDS.dit podría estar ubicada dentro de la memoria de lsass
(puedes encontrar los datos más recientemente accedidos probablemente debido a la mejora de rendimiento al usar una cache).
El hash está cifrado 3 veces:
Desencriptar la Clave de Cifrado de Contraseña (PEK) usando el BOOTKEY y RC4.
Desencriptar el hash usando PEK y RC4.
Desencriptar el hash usando DES.
PEK tiene el mismo valor en cada controlador de dominio, pero está cifrado dentro del archivo NTDS.dit usando el BOOTKEY del archivo SYSTEM del controlador de dominio (es diferente entre controladores de dominio). Por esto, para obtener las credenciales del archivo NTDS.dit necesitas los archivos NTDS.dit y SYSTEM (C:\Windows\System32\config\SYSTEM).
Disponible desde Windows Server 2008.
Podrías también usar el truco de copia de sombra de volumen para copiar el archivo ntds.dit. Recuerda que también necesitarás una copia del archivo SYSTEM (nuevamente, dumps desde el registro o usa el truco de copia de sombra de volumen).
Una vez que hayas obtenido los archivos NTDS.dit y SYSTEM, puedes usar herramientas como secretsdump.py para extraer los hashes:
También puedes extraerlos automáticamente utilizando un usuario administrador de dominio válido:
Para grandes archivos NTDS.dit se recomienda extraerlo usando gosecretsdump.
Finalmente, también puedes usar el módulo de metasploit: post/windows/gather/credentials/domain_hashdump o mimikatz lsadump::lsa /inject
Los objetos NTDS se pueden extraer a una base de datos SQLite con ntdsdotsqlite. No solo se extraen secretos, sino también todos los objetos y sus atributos para una extracción de información adicional cuando el archivo NTDS.dit en bruto ya ha sido recuperado.
El SYSTEM
hive es opcional pero permite la decryption de secretos (NT y LM hashes, credenciales suplementarias como contraseñas en texto claro, claves kerberos o de confianza, historiales de contraseñas NT y LM). Junto con otra información, se extraen los siguientes datos: cuentas de usuario y máquina con sus hashes, flags de UAC, marca de tiempo para el último inicio de sesión y cambio de contraseña, descripción de cuentas, nombres, UPN, SPN, grupos y membresías recursivas, árbol de unidades organizativas y membresía, dominios de confianza con tipo de confianza, dirección y atributos...
Descarga el binario desde aquí. Puedes usar este binario para extraer credenciales de varios software.
Esta herramienta se puede utilizar para extraer credenciales de la memoria. Descárgala de: http://www.ampliasecurity.com/research/windows-credentials-editor/
Extrae credenciales del archivo SAM
Extraer credenciales del archivo SAM
Descárgalo de: http://www.tarasco.org/security/pwdump_7 y simplemente ejecuta y las contraseñas serán extraídas.
Aprende sobre algunas protecciones de credenciales aquí.
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)