Ciberataques en la red
Contexto y etapas de un ataque
El crecimiento exponencial de la ciberdelincuencia, en particular los ataques basados en cryptolocker y ransomware, ha ampliado el abanico de competencias esenciales que deben dominar un administrador de redes. Aunque no es posible dominar todos los elementos que conducen al éxito o al fracaso de un ataque, a su nivel, el administrador de red debe ser capaz de comprender las técnicas utilizadas por los hackers para irrumpir en una red, sin por supuesto ser un experto en este campo.
El objetivo de esta sección es presentar las distintas etapas de un ataque informático, centrándose en particular en las interacciones entre el hacker y la red.
Pueden resumirse en cinco fases principales:
Cinco fases principales de un ataque informático
Recopilación de información: el objetivo es reunir la mayor cantidad posible de información técnica y no técnica sobre un objetivo. El pirata trata de obtener un mapa de las máquinas de una red determinada como por ejemplo los servicios disponibles o las aplicaciones que se ejecutan en la red. Es lo que se conoce como superficie de ataque.
Identificación de vulnerabilidades: una vez establecida la superficie de ataque, el hacker busca vulnerabilidades en los servicios, protocolos, máquinas e incluso usuarios de la red atacada. El humano se considera una vulnerabilidad potencial que puede explotarse mediante "ingeniería...
Recogida activa de información en la red
1. Preámbulo
Por lo tanto, la primera fase de un ataque consiste en recopilar información. Esta recopilación puede hacerse de forma pasiva, es decir, sin ninguna interacción con el sistema objetivo, o de forma activa. Se trata de hacer una lista de las máquinas de una red, los servicios disponibles, en particular mediante un escáner de puertos, y las versiones de estos servicios. En una recolección "activa", el atacante lanza una serie de herramientas o scripts que actúan sobre el sistema objetivo y son, por tanto, potencialmente detectables y visibles. La máquina del pirata informático es entonces potencialmente identificable.
2. Enumeración de máquinas en una red
Ya sea en Internet, en una red MAN o en una LAN, el primer paso del atacante consiste en establecer una lista de máquinas de la red que podrían estar ejecutando servicios vulnerables. Teóricamente hay varios métodos posibles, cuya idea principal es utilizar un protocolo a una potencial dirección IP en la red y recoger cualquier respuesta que demuestre la presencia de esta máquina.
El protocolo ICMP a través de peticiones ICMP Echo Request/Echo Reply (es decir, el comando ping) puede hacer este trabajo. La ventaja es que es posible consultar cualquier máquina, sea cual sea su posición en la red: misma vlan, otra red IP, red pública o Internet. Sin embargo, si la máquina está detrás de un cortafuegos perimetral o directamente configurada en la máquina de destino, es posible que la petición no tenga éxito, aunque la máquina exista. La utilidad gratuita fping le permite utilizar ICMP con fines de descubrimiento:
Si la búsqueda de la máquina se limita a la vlan en la que se encuentra el hacker, conviene optar directamente por el protocolo ARP (o ND en una red IPv6). No se puede bloquear porque es esencial para que la máquina funcione en la red. Si la máquina está presente, por fuerza responderá (véase el capítulo Diseñar una red local - ¿Por qué segmentar...
Recogida pasiva de información
1. Información sobre un nombre de dominio
El nombre de dominio de un objetivo es generalmente el primer punto de entrada utilizado por los hackers y pentesters para comenzar a identificar la superficie de ataque y los primeros sistemas potencialmente vulnerables.
Las bases de datos de nombres de dominio, como WHOIS, pueden utilizarse para recopilar información sobre el propietario del nombre de dominio, así como los contactos técnicos y administrativos. También podemos identificar al registrador, es decir, la empresa que registró el nombre de dominio. A partir de los datos de contacto identificados, podríamos imaginar el envío de correos electrónicos a los contactos de la empresa suplantando al registrador, con el fin de conseguir que el usuario haga clic en un enlace malicioso con el pretexto de renovar el nombre de dominio.
A un nombre de dominio también le corresponden varias "entradas DNS" que designan, entre otras cosas, los servidores de nombres que gestionan el dominio, el registro "MX" y potencialmente una serie de nombres de máquinas como el servidor web: entradas de tipo A, AAAA (ipv6) o CNAME. Por tanto, el pirata informático intentará enumerar las entradas de la zona DNS por varios medios:
-
Comandos de resolución (NSLOOKUP o DIG): se trata de consultar un servidor de nombres especificando que se buscan tipos concretos de entradas, como entradas NS y SOA (servidores de nombres que gestionan la zona DNS) y entradas MX (servidores de correo para el buzón en cuestión).
-
Intento de transferir toda la zona: generalmente imposible si el servidor está protegido contra transferencias, pero recuperación de todas las entradas si el servidor está mal configurado.
-
Intento de fuerza bruta en la zona: para encontrar las entradas de la zona, se prueban distintas posibilidades utilizando un diccionario de palabras. Si la entrada existe, se obtiene una respuesta, en caso contrario un error. La exhaustividad depende por tanto del contenido del diccionario utilizado, existen diccionarios específicos para esta operación de enumeración de nombres de dominio.
Existen varias utilidades para realizar estas operaciones, como dnsenum y dnsrecon, que están demostrando su eficacia:
Fase operativa
1. Vulnerabilidades y exploits
a. Tipos de vulnerabilidades
A este punto, el hacker ha identificado la superficie de ataque identificando los servicios potencialmente vulnerables en los sistemas descubiertos. En función de los servicios detectados, puede consultar las bases de datos de vulnerabilidades conocidas sobre estos servicios y explotarlas (véase el capítulo Principios de seguridad en una red local - Análisis hasta la capa de aplicación).
Existen varios tipos de vulnerabilidad, siendo los principales:
-
Vulnerabilidades web: actualmente son las más comunes porque afectan a las aplicaciones web, que de hecho son las más utilizadas. El principio de estas vulnerabilidades es inyectar código que puede ser interpretado por el navegador o por el servidor web. Estas inyecciones pueden realizarse principalmente a través de formularios web, pero también jugando con los campos del protocolo HTTP o manipulando variables de una API proporcionada por la aplicación. La responsabilidad de proteger estas aplicaciones web debe recaer en el equipo de desarrollo, ya que es a nivel del código fuente de la aplicación donde mejor se puede actuar, aunque solo sea comprobando el contenido de los campos de los formularios enviados por el usuario.
-
Vulnerabilidades de las aplicaciones: estas vulnerabilidades afectarán a las aplicaciones de forma más general, sin limitarse necesariamente a la WEB. El principio sigue siendo inyectar código que será ejecutado por el servidor que ejecuta la aplicación. La inyección de código también puede dirigirse al sistema operativo subyacente. Las vulnerabilidades más críticas son las denominadas RCE (Remote Code Execution), que permiten ejecutar código en un servidor remoto vulnerable. Para descubrir nuevas vulnerabilidades, los investigadores y hackers utilizan una técnica llamada "fuzzing", que consiste en inyectar cadenas de caracteres al azar en cualquier tipo de aplicación y observar su comportamiento para empezar a deducir posibles formas de inyectar código en la memoria.
-
Directory traversal: estas vulnerabilidades afectan generalmente a las aplicaciones web. El atacante pretende acceder a todos los directorios y archivos del sistema operativo de un servidor manipulando variables de la aplicación. El objetivo es mostrar...
Caso práctico: intrusión en una red corporativa aprovechando una vulnerabilidad en una pasarela VPN SSL
1. Preámbulo
Esta sección final pretende ilustrar el capítulo con una presentación concreta de un ataque informático destinado a entrar en una red corporativa explotando una pasarela VPN vulnerable. La idea es acceder a las credenciales de una cuenta VPN existente utilizando un exploit que analizaremos, y luego conectarse a la red corporativa a través de esta cuenta comprometida. El ataque es técnicamente bastante sencillo de entender y, por tanto, accesible para los novatos, ya que se trata de una vulnerabilidad web del tipo "directory traversal". Es también una ocasión para presentar la plataforma Metasploit.
2. Contexto
A finales de 2019, los expertos en seguridad de ClearSky describieron, bajo el nombre de Fox Kitten, una campaña de ciberespionaje llevada a cabo durante tres años por el grupo iraní APT34. Su principal vector de ataque, para penetrar en las redes de grandes empresas de todo el mundo, aprovecha vulnerabilidades no parcheadas en servicios VPN y RDP. Muchas plataformas VPN móviles soportadas por fabricantes como PALO ALTO y FORTINET, entre otros, fueron blanco de los ataques. El 08/09/2021, Fortinet anunció la existencia de una base de datos que contenía las cuentas VPN SSL de más de 87.000 cortafuegos Fortigate pertenecientes a sus clientes, publicada en Internet y fácilmente...