Exploté máquinas de prueba usando metasploit y pude obtener los hashes del archivo SAM; He intentado ejecutar comandos SYSTEM
para obtenerlos, pero no puedo hacerlo. ¿Cuál es un método más portátil para extraer los hashes del archivo SAM?
Exploté máquinas de prueba usando metasploit y pude obtener los hashes del archivo SAM; He intentado ejecutar comandos SYSTEM
para obtenerlos, pero no puedo hacerlo. ¿Cuál es un método más portátil para extraer los hashes del archivo SAM?
Respuestas:
No es un problema de permisos: Windows mantiene un bloqueo exclusivo en el archivo SAM (que, hasta donde yo sé, es un comportamiento estándar para las colmenas de registro cargadas), por lo que es imposible que cualquier otro proceso lo abra.
Sin embargo, las versiones recientes de Windows tienen una característica llamada "Volume Shadow Copy", que está diseñada para crear instantáneas de solo lectura de todo el volumen, principalmente para copias de seguridad. Los bloqueos de archivos están ahí para garantizar la coherencia de los datos, por lo que son innecesarios si se realiza una instantánea de todo el sistema de archivos. Esto significa que es posible crear una instantánea de C:
, montarla, copiar su SAM
archivo y luego descartar la instantánea.
Cómo hacerlo exactamente depende de su versión de Windows: XP necesita un programa externo, Vista y 7 tienen vssadmin create shadow
, y Server 2008 tiene el diskshadow
comando. La página Descarga segura de hashes de controladores de dominio en vivo tiene más detalles sobre este proceso, así como instrucciones y scripts.
Alternativamente, existen herramientas como las samdump
que abusan del proceso LSASS desde varias direcciones para extraer todos los hashes de contraseñas directamente de la memoria. Pueden ser mucho más rápidos que las instantáneas VSS, pero tienen un mayor riesgo de bloquear el sistema.
Finalmente, Google saca este fragmento, cuya utilidad no puedo calificar porque nunca he usado metasploit:
meterpreter> use priv
meterpreter> hashdump
HKLM\SYSTEM\CurrentControlSet\Control\HiveList
para ver qué subclaves corresponden a qué archivos.
Existe una solución más simple que no necesita administrar volúmenes paralelos ni utilizar herramientas externas. Simplemente puede copiar SAM y SYSTEM con el reg
comando proporcionado por microsoft (probado en Windows 7 y Windows Server 2008):
reg save hklm\sam c:\sam
reg save hklm\system c:\system
(el último parámetro es la ubicación donde desea copiar el archivo)
Luego puede extraer los hashes en un sistema Linux con el paquete samdump2 (disponible en Debian:) apt-get install samdump2
:
$ samdump2 system sam
Administrator:500:aad3b435b51404eeaad3b435b51404ee:c0e2874fb130015aec4070975e2c6071:::
*disabled* Guest:501:aad3b435b51404eeaad3b435b51404ee:d0c0896b73e0d1316aeccf93159d7ec0:::
Editar: decidí editar después de muchos años de abandono.
El archivo SAM de Windows no puede copiarse / leerse a diferencia /etc/shadow
de los sistemas Linux. En cambio, para evitar esto, las herramientas extraerán hashes de la memoria.
Hay maneras de evitar esto que cubriré a continuación:
Ejecuta mimikatz con sekurlsa::logonpasswords
.
Funcionalidad similar a mimikatz. Ejecútelo y los hashes se volcarán a los archivos locales.
Construido en meterpreter; extrae hashes de la memoria.
También es posible extraer del registro (si tiene SYSTEM
acceso):
reg save hklm\sam %tmp%/sam.reg
y reg save hklm\system %tmp%/system.reg
samdump2 system sam
El archivo SAM también se puede almacenar en una ubicación de respaldo: C:\Windows\Repair\SAM
También debo mencionar que las herramientas requerirán, como mínimo, Administrator
privilegios; y la mayoría no obtendrá todos los hashes a menos que SYSTEM
se obtenga acceso.
Mimikatz
o fgdump
más fáciles de transportar que C & A o diferente a él? Por lo que puedo decir, todas son herramientas de terceros que no vienen con Windows y deben cargarse por separado. Además, para mi propia curiosidad, ¿cuál es el caso de uso de las herramientas de volcado de hash cuando existen herramientas como Ophcrack?
El método Obscuresec supera sus dificultades localmente en cualquier máquina con Windows Powershell 1.0 habilitado. Deja algunos objetivos que conozco, pero bueno, ¡buen trabajo! (gracias Chris)
Nota: Siempre se necesitan privilegios de administrador para realizar dicha operación.
Podrías usar
http://gallery.technet.microsoft.com/scriptcenter/Get-PasswordFile-4bee091d
o de otra fuente (más reciente podría agregar)
https://github.com/obscuresec/PowerShell/blob/master/Get-PasswordFile
Lectura aconsejada:
Para capturar sistemas remotos, las colmenas SAM y SYSTEM utilizan lo mencionado anteriormente junto con
Me gustaría especificar un método adicional que no se describe aquí, ya que mucho tiempo en Red Teaming / Penetration Testing las formas más obvias no son accesibles (denegadas, son monitoreadas por Blue Team, etc.) y es bueno conocer todas las técnicas disponibles.
Una de las soluciones alternativas para acceder a los archivos, cuyo sistema tiene identificadores (no se puede copiar / eliminar como de costumbre), se vssshadow.exe
indica anteriormente.
Segundo - esentutil.exe
.
Comando exacto para tomar una copia del archivo con identificador:
esentutl.exe /y /vss c:\windows\ntds\ntds.dit /d c:\folder\ntds.dit
Esto se aplica a SAM, SYSTEM, SECURITY, NTDS.DIT, etc.
PD esentutl.py
: el paquete de impacket está en:
https://github.com/SecureAuthCorp/impacket/blob/master/examples/esentutl.py