4.5.1. Introducción a la Post-Explotation
Tabla de contenidos:
Qué es la fase de Post-Explotación
En este bloque de Server Exploit, hemos profundizado en los conceptos clave relacionados con las vulnerabilidades del software y cómo se pueden explotar utilizando exploits y payloads para comprometer un sistema. Se ha enfocado principalmente en el uso de la herramienta Metasploit, con el objetivo común de obtener acceso a un shell o una consola de línea de comandos. Esto le permite al atacante tomar el control remoto del sistema de manera efectiva aunque a veces limitada.
En la mayoría de los casos, la obtención de la shell de un sistema comprometido ya puede considerarse por sí un éxito significativo, teniendo en cuenta las medidas de seguridad que suele haber en un target (ver ejemplos en Explotación de hosts y sesiones shell y meterpreter o Msfvenom: Netcat y Handler Metasploit, como dos formas diferentes de obtenerla). No obstante, en el mundo real el objetivo de un atacante suele ir más allá de la obtención de un mínimo control, siendo lo más habitual el robo de información relevante, el bloqueo del sistema para pedir un rescate, la eliminación de datos y servicios, etc., a lo que hay que añadir acciones como podría ser garantizar un segundo acceso de forma fácil o eliminar los registros de actividad del atacante.

Toda esta serie de acciones que permiten la consecución del fin una vez ha sido comprometido el sistema pertenecen al proceso de postexplotación. Las acciones de postexplotación incluyen un rango amplio de procedimientos como podrían ser:
- Utilizar instrucciones propias de la interfaz o termina de consola de comandos del sistema operativo comprometido (CMD o Powershell en Windows, Bash y emuladores de terminal en Linux o Android). El objetivo puede ser explorar el sistema, modificar el registro, acceder al control de un servicio, enumerar información, etc. En todo caso, requerirá de unos conocimientos previos del sistema operativo comprometido (ver reconocimiento SO Windows y Linux).
- Utilizar exploits que se aprovechan de una vulnerabilidad conocida del Sistema Operativo o bien de algún proceso vinculado a un programa. Estos exploits están vinculados a un objetivo específico como hacerse con la cuenta de administrador, hacerse con la información de un determinado programa, etc. Existen una amplia variedad y Metasploit es una muestra de ello como se verá más adelante con los módulos de postexplotación, que pueden emplearse de forma interactiva contra el sistema comprometido después de haber obtenido la shell.
- Hacerse con el control de los periféricos como el monitor, el teclado, cámaras u otros, permitiendo obtener capturas de pantalla o registrar las teclas pulsadas por la víctima.
En todo caso, conviene destacar que el éxito de estas acciones normalmente irá asociado al grado de autorización en el que se está ejecutando el proceso de la interfaz de consola, o lo que es lo mismo, con que usuario se está utilizando la shell (y que permisos tiene este). Junto a la obtención de permisos (o escalar privilegios), también es habitual efectuar una serie de pasos en el proceso de postexplotación que a grandes rasgos son los que se explicarán a continuación y pueden describirse del siguiente modo:
- Recopilación de información del sistema (Gathering): Consiste en obtener datos relevantes sobre el sistema comprometido. Esto incluye a grandes rasgos información general (Sistema Operativo y versión, arquitectura, etc.); datos de los usuarios, grupos y su nivel de privilegio; procesos y servicios activos; información de interfaces de red. Normalmente, esta recopilación de información también se hace con la perspectiva de encontrar otras vulnerabilidades que podrían aprovecharse (explotar de nuevo).
- Escalar privilegios (Privilege Escalation): En resumen consiste en elevar los permisos de usuario vinculado al proceso activo de la shell, o hacer que el proceso de la shell sea ejecutado por un usuario de tipo administrador o sistema. Para ello el atacante suele aprovechar servicios y características vulnerables del sistema que son conocidos de antemano por la comunidad. El obtener privilegios de administrador resulta crítico, pues el atacante dispondrá de total libertad para operar en el sistema.
- Movimiento lateral y pivotaje (Lateral Movement and Pivoting): Es habitual que en los entornos corporativos los recursos y servicios importantes estén debidamente fortificados y se proporcionan desde diferentes hosts y máquinas, conformando un entramado de red de entorno local. En estos casos, el atacante examinará los dispositivos y host de red locales con el objetivo de hallar nuevas vulnerabilidades, propagar su ataque y obtener el control de otros hosts además del inicial que le ha servido de vector (movimiento lateral). En otras ocasiones, un servicio o recurso concreto solo es accesible bajo unas determinadas condiciones o empleando para ello un recurso que hace de puente. En este caso, el atacante podría emplear un host específico para acceder al recurso, como si fuera un pivote.
- Persistencia o puerta trasera (Persistence or Backdoor): Como el nombre indica, estas técnicas permiten que el atacante pueda establecer un canal constante entre su centro de control de sesiones (shell) y los sistemas comprometidos. Los ataques realizados contra sistema complejos, muchas veces requieren un desarrollo lento y con cautela en el que se va recopilando información, y para ello es necesario que el atacante pueda garantizar sucesivos accesos.
- Limpiar evidencias (Evidence Clean-Up): El sigilo y efectuar una incursión sin dejar huellas completaría el circulo aunque no siempre es así, dependiendo del objetivo (por ejemplo, en una acción de sabotaje manifiesto). Aun así, siempre es preferible para el atacante no mostrar huellas de su actividad o bien que no pueda ser identificado y rastrado fácilmente. La manifestación de estas actividades suele quedar anotada en ficheros de logs de los servicios, en sistemas de registro de eventos y monitorización, en archivos descargados entre sistema de control y sistema comprometido, en ficheros eliminados, etc.

4.5.1.1. APT (Advanced Persistent Thread) / C2 – C&C: Command And Control
Esta secuencia descrita suele enmarcarse en los que se denomina una APT o Amenaza Persistente Avanzada (Advanced Persistent Threat). Una APT es un ataque informático orquestado normalmente por una organización experta con un objetivo claro y que tienen recursos suficientes para desarrollar los procesos anteriormente descritos, y en los que prima el sigilo y una incursión prolongada en el tiempo. No existe una única fórmula de APT, pues estas suelen tener un target específico y los responsables suelen tener capacidad técnica para adaptarse y desarrollar nuevos procesos (crear nuevos exploits, métodos de infiltración, etc.) durante la incursión. Se recomienda la siguiente lectura para ver casos concretos y reales (se puede obtener por Amazon o versión PDF por Internet de forma fácil con una simple búsqueda por Google):
Will Allsopp. Advanced Penetration Testing: Hacking the World’s Most Secure Networks. Editorial WILEY (2017).

Otro concepto relacionado estrechamente con la postexplotación son los ataques de infraestructura Command and Control Attack (C2 / C&C). A diferencia de una APT, que suele tener un único target específico, en los ataques C2/C&C el atacante dispone de una interfaz de control (gráfico o mediante shell) y establece un canal de comunicación con varios sistemas que han sido comprometidos (bots) mediante algún tipo de malware o vulnerabilidad. A través de este canal, el atacante puede controlar estos sistemas para obtener información, generar instrucciones contra los sistemas comprometidos o propagar el malware a otros targets (movimiento lateral), como si estuviera efectuando en realidad técnicas de postexplotación.

En los siguientes puntos se va a examinar algunas técnicas de postexplotación que pertenecen a alguno de los pasos o procesos explicados a modo de muestras o ejemplos (Information Gathering, Privilege Escalation…). Se hará especial atención al payload Meterpreter (shell), ya mostrado anteriormente, permitiendo obtener sesiones que a su vez pueden usar los módulos de postexplotación de Metasploit Framework. Debido a la multitud de técnicas y procesos de postexplotación para los diferentes sistemas operativos (Windows y Linux principalmente en sus diferentes versiones) se ha optado por hacer una muestra genérica que incluye tanto el uso de Meterpreter como el uso de instrucciones en las consolas de línea de comandos CMD, SH, Powershell… También se va a incluir una sección de anexos con información de otras herramientas.