19 ago. 2020

SNIcat: bypassear la inspección TLS para exfiltrar información

Los investigadores Morten Marstrander y Matteo Malvica de Mnemonic han descubierto un método para exfiltrar información bypasseando dispositivos que interceptan e inspeccionan TLS como proxies web, firewalls de última generación (NGFW) y otras soluciones, entre ellos, dispositivos de F5 Networks, Palo Alto Networks y Fortinet.

Normalmente estos appliances verifican el SNI (Server Name Indication) para bloquearlo si la URL o el hostname están categorizados como maliciosos. EL procedimiento sería así:

Lo más fácil parece cambiar el SNI y luego mandar el tráfico a un dominio malicioso, pero como veis en la imagen muchas plataformas de seguridad si no matchea el SNI con el cn del certificado del sitio bloquean el tráfico directamente. Sin embargo, el bloqueo se realiza una vez que se ha completado el handshake TLS por lo que se puede aprovechar ese stream unidireccional para exfiltrar información (el paquete TLS Client Hello siempre llega a su destino). Además, muchos dispositivos que hacen un mirror del tráfico para descifrarlo e inspeccionarlo con un IDS no reciben el handshake TLS... }:-)

Además, siempre que el servidor presente un certificado válido y confiable durante el handshake TLS, la solución de seguridad siempre presentará una versión emulada de ese certificado al cliente, firmada por la CA integrada de la solución. Este comportamiento ocurre incluso si el dominio utilizado está en la lista negra de una base de datos de reputación (categorización de URL/dominio). Sin embargo, si el certificado que presenta el servidor es auto-firmado no confiable normalmente devuelven un reset a la sesión TCP.

Esa lógica "certificado válido YES y certificado no-confiable self-signed NO" ha sido aprovechada por la gente de Mnemonic para implementar la comunicación con el C2 en su herramienta SNIcat que se divide en dos componentes:

  • Un agente pasivo que debe ponerse en el host ya comprometido. Su único objetivo es volver a conectarse al C2 y ejecutar los comandos proporcionados.
  • Un servidor C2 que controla al agente desde cualquier lugar de Internet.

El agente pasivo está equipado con varios comandos, incluida la capacidad de exfiltrar (es decir, subir) archivos al servidor. Constantemente recorre todos los comandos disponibles y espera a que el servidor C2 seleccione el deseado aprovechando la capacidad binaria YES/NO mencionada anteriormente.

Con SNIcat conseguimos una interfaz de línea de comandos (CLI) independiente mínima pero efectiva. La CLI puede ofrecer comandos básicos de navegación del sistema de archivos, como saltar entre carpetas, listar archivos y, obviamente, exfiltrar, como se muestra en el siguiente vídeo que suben un archivo del agente al servidor C2:

Productos bypasseados por SNICat

SNIcat pudo bypasseatr con éxito los siguientes productos y sus respectivas versiones de software:
  • F5 BIG-IP con TMOS 14.1.2, con SSL Orchestrator 5.5.8
  • Palo Alto NGFW con PAN-OS 9.1.1
  • Fortigate NGFW ejecutando FortiOS 6.2.3

Referencias

 Fuente: HackPlayers

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!