24/09/2015
Cuando un experto en seguridad logra explotar una vulnerabilidad en un sistema, se abre una puerta de entrada. Esta puerta se manifiesta como una sesión, un canal de comunicación directo con la máquina comprometida. En el universo de Metasploit, el framework de pentesting por excelencia, esta sesión puede tomar principalmente dos formas: una shell estándar o una sesión de Meterpreter. Por defecto, Metasploit siempre intentará establecer esta última, y por muy buenas razones. Entender la naturaleza y el poder de un payload Meterpreter es fundamental para cualquier persona que se dedique a la seguridad ofensiva, ya que transforma una simple brecha en un control casi total sobre el sistema objetivo.

Pero, ¿qué es exactamente un payload Meterpreter? En esencia, es una carga útil avanzada y sigilosa que se inyecta en la memoria del proceso víctima. A diferencia de una shell, que simplemente nos da acceso a la línea de comandos del sistema operativo remoto (como CMD en Windows o bash en Linux), Meterpreter es un entorno de post-explotación completo y extensible. Permite ejecutar módulos de Metasploit directamente en la memoria del objetivo, pivotar hacia otras redes, robar credenciales, manipular el sistema de archivos y mucho más, todo ello de una forma que intenta minimizar las huellas y la detección. En este artículo, desglosaremos a fondo qué es Meterpreter, cómo se gestiona y por qué es la herramienta preferida tras un exploit exitoso.
Meterpreter vs. Shell: La Batalla por el Control
La elección entre una sesión de Meterpreter y una shell no siempre es nuestra. A veces, la naturaleza de la vulnerabilidad explotada es tan limitada que solo permite la ejecución de un comando simple, lo cual es suficiente para lanzar una shell básica pero no para inyectar el payload más complejo de Meterpreter. Las shells son más sencillas y, por lo tanto, más fáciles de "lanzar" en exploits con restricciones de espacio o funcionalidad. Sin embargo, cuando tenemos la opción, las ventajas de Meterpreter son abrumadoras.
Una sesión de shell nos da acceso a una terminal estándar en el host objetivo. Esto es útil, sin duda, y nos permite interactuar con el sistema como un usuario local a través de la línea de comandos. Pero ahí terminan sus capacidades. Por otro lado, una sesión de Meterpreter es una bestia completamente diferente, diseñada específicamente para las tareas de post-explotación. Ofrece una API rica y comandos especializados que simplifican tareas que serían increíblemente complejas o ruidosas de realizar en una shell convencional.
Tabla Comparativa: Meterpreter vs. Shell
| Característica | Meterpreter | Shell Estándar |
|---|---|---|
| Tipo de Ejecución | Se ejecuta completamente en la memoria del proceso víctima. | Lanza un proceso de shell nativo del sistema (ej. cmd.exe, /bin/sh). |
| Sigilo (Stealth) | Alto. No escribe archivos en el disco, lo que dificulta su detección por antivirus. | Bajo. La creación de nuevos procesos es fácilmente registrable y detectable. |
| Funcionalidad | Extremadamente rica. Permite cargar extensiones y módulos sobre la marcha. | Limitada a los comandos disponibles en la shell del sistema operativo. |
| Post-Explotación | Optimizado con comandos para enumeración, escalada de privilegios, pivotaje, etc. | Requiere el uso de herramientas y binarios nativos, lo que genera más ruido. |
| Comunicación | Comunicación encriptada y encapsulada (TLV protocol). | Texto plano, a menos que se túnelice por otros medios. |
Gestionando tus Sesiones Activas
Una vez que has lanzado uno o varios exploits, Metasploit organiza las conexiones exitosas en la sección "Sesiones". Esta interfaz es tu centro de mando para interactuar con los sistemas comprometidos. La página de "Sesiones Activas" te proporciona información crucial de un solo vistazo:
- Session: Un número de identificación único para cada sesión, asignado en orden secuencial.
- OS: El sistema operativo del host comprometido.
- Host: La dirección IP y el nombre del host.
- Type: El tipo de sesión, que indicará si es "Meterpreter" o "Shell".
- Age: El tiempo que la sesión ha estado activa.
- Description: Información adicional sobre cómo se abrió la sesión. Por ejemplo, si fue a través de un ataque de fuerza bruta, podría mostrar el usuario y la contraseña utilizados.
- Attack Module: El exploit específico que se utilizó para crear la sesión.
Esta vista te permite evaluar rápidamente tu posición y decidir con qué sistema interactuar a continuación.
Inmersión Profunda: Dentro de una Sesión de Meterpreter
Al seleccionar una sesión de tipo Meterpreter, accedes a un panel de control detallado con un abanico de posibilidades. Aquí encontrarás información específica de la sesión, el historial de acciones realizadas y, lo más importante, las acciones disponibles y los módulos de post-explotación compatibles.
Las secciones clave son:
- Available Actions: Aquí es donde puedes lanzar la terminal de Meterpreter (Command Shell), tomar capturas de pantalla, explorar archivos, etc.
- Session History: Un registro detallado de cada comando que has ejecutado en esa sesión.
- Post-Exploitation Modules: Una lista curada de módulos de Metasploit que son compatibles con el sistema operativo y el tipo de payload de la sesión actual, listos para ser ejecutados.
Al hacer clic en "Command Shell" dentro de una sesión de Meterpreter, se abre la poderosa línea de comandos de Meterpreter. No la confundas con una shell del sistema; esta es una interfaz propia con un conjunto de comandos diseñados para la dominación del sistema. Escribiendo ? o help, se desplegará una lista completa de lo que puedes hacer.

El Arsenal de Comandos de Meterpreter
Los comandos de Meterpreter son la verdadera joya de la corona. Están organizados en extensiones que se pueden cargar según sea necesario, aunque las más comunes (stdapi, priv) suelen estar disponibles por defecto. A continuación, desglosamos algunos de los comandos más importantes por categoría.
Comandos del Núcleo (Core Commands)
Estos comandos gestionan la propia sesión de Meterpreter.
| Comando | Descripción |
|---|---|
background | Pone la sesión actual en segundo plano para volver a la consola de Metasploit. |
exit / quit | Termina y cierra la sesión de Meterpreter. |
migrate | Migra Meterpreter a otro proceso para aumentar la persistencia y el sigilo. |
run | Ejecuta un script de Meterpreter o un módulo de post-explotación. |
sessions | Permite listar y cambiar rápidamente entre sesiones activas. |
Comandos del Sistema de Archivos (File system Commands)
Para interactuar con los archivos y directorios del sistema objetivo.
| Comando | Descripción |
|---|---|
ls / dir | Lista los archivos en el directorio actual. |
download | Descarga un archivo o directorio desde el objetivo a tu máquina. |
upload | Sube un archivo o directorio desde tu máquina al objetivo. |
edit | Edita un archivo directamente en el host remoto. |
search | Busca archivos en el sistema de archivos del objetivo. |
Comandos de Red (Networking Commands)
Para enumerar y manipular la configuración de red del objetivo.
| Comando | Descripción |
|---|---|
ipconfig / ifconfig | Muestra la configuración de las interfaces de red. |
netstat | Muestra las conexiones de red activas. |
portfwd | Redirige un puerto local a un servicio remoto, útil para pivotar. |
route | Visualiza y modifica la tabla de enrutamiento del objetivo. |
Comandos de Sistema (System Commands)
Para interactuar directamente con el sistema operativo.
| Comando | Descripción |
|---|---|
sysinfo | Obtiene información detallada sobre el sistema remoto (OS, arquitectura). |
ps | Lista los procesos en ejecución. |
getuid | Muestra el usuario con el que se está ejecutando la sesión. |
shell | Abre una shell de sistema estándar dentro de la sesión de Meterpreter. |
reboot / shutdown | Reinicia o apaga la máquina remota. |
Comandos de Escalada de Privilegios y Recolección
Estos son algunos de los comandos más poderosos, a menudo el objetivo principal de la post-explotación.

| Comando | Descripción |
|---|---|
getsystem | Intenta escalar privilegios al nivel de SYSTEM/root. |
hashdump | Extrae los hashes de contraseñas del archivo SAM en sistemas Windows. |
keyscan_start / keyscan_dump | Inicia un keylogger y luego muestra las pulsaciones de teclas capturadas. |
screenshot | Toma una captura de pantalla del escritorio del usuario. |
webcam_snap | Toma una foto desde la webcam del objetivo. |
Preguntas Frecuentes (FAQ)
¿Por qué Metasploit usaría una Shell en lugar de Meterpreter?
Principalmente por limitaciones del exploit. Algunos exploits solo pueden inyectar una cantidad muy pequeña de código o solo pueden ejecutar un comando simple. En estos casos, lanzar una shell, que es un proceso nativo del sistema, es mucho más factible que inyectar el payload completo y más complejo de Meterpreter.
¿Puedo actualizar una sesión de Shell a una de Meterpreter?
¡Sí! Esta es una técnica muy común. Si obtienes una sesión de shell, puedes usarla para subir y ejecutar un payload de Meterpreter manualmente. Metasploit incluso tiene módulos de post-explotación (como post/multi/manage/shell_to_meterpreter) que automatizan este proceso de actualización, dándote lo mejor de ambos mundos.
¿Qué significa exactamente que Meterpreter se ejecuta "en memoria"?
Significa que el código del payload de Meterpreter reside únicamente en la memoria RAM del proceso que fue explotado. No se escribe ningún archivo ejecutable (.exe) o script en el disco duro del sistema víctima. Esto es una ventaja enorme en términos de sigilo, ya que muchos productos antivirus y sistemas de detección de intrusiones basan su análisis en la monitorización de archivos nuevos o modificados en el disco.
¿Todos los comandos de Meterpreter funcionan en cualquier sistema operativo?
No. Meterpreter es inteligente y consciente del contexto. Los comandos disponibles dependen del sistema operativo objetivo (Windows, Linux, macOS, etc.). Por ejemplo, el comando hashdump solo tiene sentido en un sistema Windows para extraer hashes del SAM, mientras que comandos para interactuar con el registro (reg) también son específicos de Windows. Meterpreter adapta su funcionalidad al entorno en el que se encuentra.
Conclusión
El payload Meterpreter es mucho más que una simple shell remota; es el corazón de la fase de post-explotación en Metasploit. Su diseño sigiloso, su arquitectura extensible y su vasto conjunto de comandos lo convierten en una herramienta indispensable para cualquier profesional de la seguridad. Mientras que una shell estándar te abre la puerta, Meterpreter te entrega las llaves de todo el edificio, permitiéndote moverte libremente, recolectar información valiosa y establecer un control profundo y persistente sobre el sistema comprometido. Dominar Meterpreter es, en esencia, dominar el arte de lo que sucede después del "exploit".
Si quieres conocer otros artículos parecidos a Guía Completa del Payload Meterpreter puedes visitar la categoría Juegos.
