Atacando el fallo
1. Introducción
Visto desde el punto de vista del hacking ético, es esencial buscar vulnerabilidades y debilidades dentro del sistema de una organización, usando métodos y herramientas que usarían los atacantes (con permiso, por supuesto). Tomar ese camino te lleva a la búsqueda de exploits asociados a las vulnerabilidades previamente detectadas para demostrarlas. Pero antes de saber cómo se hace eso, hay que tener unas nociones básicas de que son los exploits, cómo funcionan, los tipos que existen, los kits y herramientas usados, dónde encontrarlos, etc.
2. ¿Qué son los exploits?
En pocas palabras, los exploits son una forma de demostrar una falla de seguridad. En otras palabras, son pruebas de concepto que demuestran que una vulnerabilidad existe en la organización y además que es posible explotarla, permitiendo a un atacante usarlo para ganar acceso, escalar privilegios, provocar una denegación de servicio, etc, y por tanto comprometer al sistema afectado.
Una definición más técnica podría ser que los exploits son programas informáticos, una parte de un software o una secuencia de comandos que se aprovecha de un error o vulnerabilidad para provocar un comportamiento no intencionado o imprevisto en un software, hardware o en cualquier dispositivo electrónico. A menudo se entregan como parte de un kit (una colección de exploits).
Puede pensar en los exploits como el ariete en una batalla medieval, donde la seguridad de la organización es el muro del castillo. El enemigo usará un ariete (o un exploit) para lanzar su ataque a una debilidad en el muro del castillo, o en este caso, una falla de seguridad.
Así como existen diferentes arietes y métodos para romper los muros del castillo, existen diferentes exploits para diferentes situaciones porque no todos los defectos y debilidades son iguales.
A pesar de que existen muchos exploits diseñados para proporcionar acceso como administrador o superusuario de un sistema, también es posible que se utilicen varios exploits diferentes para este mismo fin: primero para obtener acceso de bajo nivel ( a través de una denegación de servicio, ejecución de código remoto, o que una vulnerabilidad permita eso) para luego escalar privilegios repetidamente hasta llegar al nivel administrativo más alto (también menudo llamado root).
3. ¿Cómo funcionan los exploits?
No todos los exploits funcionan de la misma manera. Para el caso genérico contra usuarios, el método más común para ponerse en contacto con los exploits es visitar sitios web diseñados como trampas explosivas por parte de los atacantes. La peor parte es que no es raro que los atacantes inserten trampas o suplanten sitios web de alto tráfico o número de visitas. ¿Recuerdas esas páginas de películas o series en línea en la que estabas hace unos días? Sí, es seguro decir que tenía una gran probabilidad de navegar en un sitio con una (o más) trampas explosivas.
¿Entonces, cómo funciona todo esto? Existen dos métodos:
1) Hay un fragmento de código malicioso oculto en el sitio web a plena vista.
2) Se muestra un anuncio infectado, o publicidad maliciosa, en el sitio web. Cuando se trata de publicidad maliciosa, ni siquiera tiene que hacer clic en el anuncio para estar expuesto.
En ambos casos, el usuario es redirigido al kit de explotación, que está alojado en una página de destino invisible. Si tiene una vulnerabilidad y el kit de explotación la identifica, el kit lanzará su explotación y eliminará su carga útil maliciosa. Últimamente, la carga útil favorita ha sido el ransomware.
Por otro lado, si se trata de un ataque dirigido a una empresa por ejemplo, intentarán usar los métodos mencionados anteriormente a nivel de usuario en cuentas corporativas, pero su objetivo principal será obtener acceso a la red a través de una mala configuración o gestión de la misma, para después escanearla en busca de vulnerabilidades y lanzar los exploits asociados para comprometer los sistemas.
En ambos casos, el exploit es el medio por el cual los atacantes llegan a su fin.
4. El mayor objetivo
En teoría, cada pieza de software y aplicación es potencialmente vulnerable a la explotación. Los equipos de seguridad gastan una gran cantidad de recursos en desarmar estos recursos para encontrar vulnerabilidades cada año. A pesar de esta observación general, el principal objetivo de los atacantes son las aplicaciones y el software con la mayor cantidad de usuarios. Las aplicaciones comunes a las que apuntar son Microsoft Office, Internet Explorer o Chrome, Java, Adobe Reader, productos Apple, Windows, etc. ¡Imagínese cuántos usuarios hay en estas aplicaciones diariamente!

Además también buscan vulnerabilidades y exploits que aprovechen las mismas en los servicios que se ejecutan en el equipo. Los protocolos como NFS, SMB, RDP, etc, son algunos de los ejemplos más comunes de protocolos que se buscan en los servicios que se ejecutan ya que cuentan con versiones vulnerables.

5. Tipos de exploits
La categorización más amplia de exploits los separa en dos categorías: conocidos y desconocidos.
Los exploits conocidos son exploits que los investigadores ya han descubierto y documentado. Esto significa que los hackers éticos tendrán más posibilidades de combatirlos: normalmente, se abordan en actualizaciones de seguridad posteriores. Por tanto, son aquellos que fueron desarrollados para aprovechar vulnerabilidades conocidas pero que a día de hoy fueron corregidas mediante parches de seguridad o actualizaciones. Algunos son utilizados a lo largo de los años ya que muchos equipos no son actualizados, de ahí la importancia de intentar mantener los dispositivos y programas informáticos en las últimas versiones.
Los exploits desconocidos, también conocidos como zero-days exploits (o de día cero), son exploits capaces de explotar vulnerabilidades de un sistema, pero aún no se han descubierto ni documentado de forma pública. Suelen ser descubiertos e implementados por un grupo reducido de personas a las que por motivos políticos, económicos, sociales, etc, no les interese revelarlos, evitando así que se solventen con algún parche de seguridad y puedan seguir usándolos o vendiéndolos por la Dark Web. Es importante comprender que cuando un atacante utiliza un exploit para una vulnerabilidad zero-day no suele haber medidas que puedan bloquear el malware que intenta aprovechar el fallo, por lo tanto estos ataques son muy difíciles de detectar. Es por eso que son muy cotizados entre los delincuentes que compran y venden estos exploits en foros de la dark web, ya que les permiten lanzar ataques para robar información importante de una empresa o gobierno o, en casos extremos, atacar cierto tipo de infraestructuras críticas.
Otra forma de categorizar los exploits es definiéndolos como del lado del cliente o del lado del servidor.
Con las vulnerabilidades del lado del cliente, se obtiene acceso a un sistema mediante alguna acción del cliente, lo que incluye hacer clic en un sitio web malicioso, en un enlace malicioso o ingeniería social.
Los exploits del lado del servidor obtienen acceso a través de una aplicación de servidor donde con ayuda de un escáner auxiliar se busca de fallas en el sistema con las que obtener acceso.
6. Kits de explotación comunes
Hay una variedad de kits de explotación disponibles hoy en día. Incluyen:
- Rig: es el más popular y utiliza sitios web comprometidos y publicidad maliciosa para entregar ransomware.
- Neutrino: originario de Rusia, utiliza publicidad maliciosa para atacar las vulnerabilidades de Internet Explorer y Flash.
- Magnitude: utiliza publicidad maliciosa. Se dirige principalmente a sistemas en Asia.
7. ¿Dónde puedes encontrar exploits descubiertos?
Como se mencionó anteriormente, las vulnerabilidades conocidas se descubrirán y documentarán (con suerte, de manera exhaustiva). Existen páginas donde se recogen vulnerabilidades de todo tipo como es en CVE o más específicas al sistema o producto como es el caso de Boletín de Microsoft.

Por otro lado, existen páginas para encontrar exploits como ExploitDB, o su versión en herramienta searchsploit (que hace uso de la base de datos de exploitdb) así como se pueden hacer búsquedas manuales en github una vez que se sabe el identificador de la vulnerabilidad (un ejemplo de búsqueda sería: CVE-2022-1011 exploit github)

Por último, existen herramientas (que no son kits, sino que se tiene que tener un cierto conocimiento de lo que se hace y ejecuta) que automatizan el proceso de detección y/o explotación de vulnerabilidades conocidas como es Metasploit.

8 Datos y casos recientes
En este apartado se dejan casos de exploits usados en ataques famosos recientemente. Los cuales son:
1) Uno de los exploits más conocidos es el denominado Eternalblue, el cual aprovechaba una vulnerabilidad en la implementación del protocolo SMB que daba acceso al sistema Windows al atacante. Fue el utilizado en los ataques del ransomware WannaCry en 2017 que paralizó al mundo. Este exploit aparentemente fue robado a la Agencia Nacional de Seguridad de los Estados Unidos en 2016 y se filtró en 2017.

2) En 2020 el grupo de ransomware REvil aprovechó un exploit para una vulnerabilidad zero-day en Kaseya VSA, un software utilizado para gestionar remotamente equipos de TI. Mediante una falsa actualización, cibercriminales lograron explotar la vulnreabilidad e infectar con ransomware a más de 1.000 compañías en al menos 17 países.
3) En 2022 cuatro de los cinco exploits más utilizados en ataques a organizaciones de América Latina corresponden a vulnerabilidades que fueron reportadas entre 2012 y 2017.

4) En 2022 compañías como Apple y Google lanzaron varias actualizaciones para corregir distintas vulnerabilidades zero-day que estaban siendo aprovechadas activamente por cibercriminales en sus ataques. En el caso de Apple, la compañía reparó en 2022 al menos ocho vulnerabilidades zero-day (contando las encontradas en el navegador Safari y en los iOS 15.7, iPadOS 15.7, macOS Monterrey 12.6 y macOS Big Sur 11.7), mientras que Google reparó en 2022 al menos nueve vulnerabilidades zero-day en su navegador Google Chrome.
9. Protección
Para protegerse contra la correcta ejecución de exploits que aprovechen vulnerabilidades se dejan las siguientes recomendaciones.
- Como ya se ha comentado, ante los exploits conocidos la mejor medida es mantener todas nuestras aplicaciones y sistemas actualizados. Sabiendo que los exploits se aprovechan fallos de seguridad, resulta vital corregirlos cuanto antes, por lo que es necesario mantener una política de actualizaciones eficaz para evitar que pueda ser aprovechada por los atacantes.
- Contra exploits tanto conocidos como desconocidos, la recomendación es contar con una solución de seguridad avanzada capaz de detectar y bloquear exploits pensados para aprovechar vulnerabilidades en navegadores web, lectores PDF, entre otros.
- Realizar auditorías periódicas tanto sobre los sistema como sobre el código para detectar de forma temprana fallos y vulnerabilidades conocidas.
- La formación y concienciación del personal para evitar la apertura de URLs desconocidas y adjuntos de emails cuya procedencia sea sospechosa o cuyo asunto no concuerde con la actividad empresarial, personal o simplemente no corresponda; el acceso a páginas que contengan anuncios o contenido maliciosos, etc.
10. Conclusión
Los exploits permiten conocer la forma de hacer que una vulnerabilidad sea real. Los mismos no son ni buenos ni malos, dependen del uso que se les dé.
Por un lado, los exploits son el método real que utilizan los atacantes para obtener acceso, escalar privilegios y comprometer los sistemas de las organizaciones a través de las vulnerabilidades de las mismas.
Por otro lado, tras detectar y analizar las vulnerabilidades, los hackers éticos pueden usar los exploits para verificar las mismas y fortalecer la seguridad de las organizaciones. Es lo que se hacen en las auditorías. Hacer auditorías ayuda a tener una imagen hasta ese momento de la seguridad de la organización. Si bien hacer auditorías no exime que la misma sufra un ataque, ya que como se ha comentado existen exploits que no son públicos o no se han descubierto por los investigadores pero tal vez sí por otras personas que los usen para lograr acceder a la misma, sí que ayudan a reducir la superficie de ataques, solventar las principales vulnerabilidades conocidas y evaluar la salud de la seguridad informática de la organización.




