Qué son los Exploits Ejemplos y Seguridad
Qué son los Exploits Ejemplos y Seguridad

¿Qué son los Exploits?: Tipos, Ejemplos y Búsqueda

Este artículo describe la naturaleza, la aplicación y el papel de un exploit en el hacking de sistemas. Considera dónde conseguir un exploit, si tiene sentido descargarlo o comprarlo, y por qué puede fallar un exploit validado. Aún más importante, cómo mantenernos a salvo de los hackers.

¿Qué es un Exploit?

La palabra es de origen inglés (en español sería algo como explotación) y, precisamente, significa explotar o aprovecharse de; estamos hablando de software que aprovecha la inseguridad para un comportamiento no deseado en un sistema de información.

La definición “oficial” puede leerse en las enciclopedias informáticas. Me gusta esta: “Dependiendo de su propósito, es un programa, un trozo de código o un script que permite aprovechar una vulnerabilidad existente en el software para cualquier cosa que se maneje por software“.

Ilustración de la definición de Exploit
Ilustración de la definición de Exploit

Analogía

Si se presenta en un contexto diferente, podríamos imaginar en un sistema como un modelo de cerradura, y si tiene una falla en su diseño, se podrían crear claves (exploits) para abrirlo y, por lo tanto, acceder al sistema.

¿De dónde proviene el exploit? Vamos por partes. Cuando se conoce una vulnerabilidad, es probable que aparezca un exploit. La vulnerabilidad también puede interpretarse de diferentes maneras. La Wikipedia me parece que da una definición ligeramente errónea. La vulnerabilidad no siempre es un error o un defecto. Todo mecanismo tiene un talón de Aquiles. Bueno, no se puede llamar defecto al hecho de que un motor funcione con combustible. Después de todo, si funciona con aire, eso también se convertiría inmediatamente en un defecto. También lo es el metal del que está hecho; el hombre que lo dirige… Todo tiene defectos, y los profesionales pueden verlos en todo.

La explicación más sencilla para este término es la “relación” entre el ser humano y el virus biológico. Todo en nuestro cuerpo está ciertamente protegido al detalle, pero cuando se enfrenta a un “microcódigo” del exterior, falla temporal o permanentemente. La vulnerabilidad es simplemente la incapacidad de un mecanismo (incluido el software) para reaccionar adecuadamente ante alguna acción externa, conservando las características y la funcionalidad incorporadas en él (el mecanismo). Y un exploit sólo se llama exploit si permite aprovechar la vulnerabilidad.

Un Poco sobre las Vulnerabilidades

Concepto de Vulnerabilidades
Concepto de Vulnerabilidades

Es habitual que los pentesters formalicen los métodos por los que se agrupan estas vulnerabilidades que contienen exploits. Esto creó el vocabulario de Vulnerabilidades y Exposiciones Comunes (Common Vulnerabilities and Exposures o CVE), en constante expansión. Así que recuerda: te encontrarás con el acrónimo CVE más de una vez. Su objetivo: los hackers alemanes y chinos deben estar seguros de que hablan del mismo agujero de seguridad. Y todos ellos ven esas vulnerabilidades en el formato:

CVE - AÑO_DE_EMISIÓN - IDENTIFICADOR_ASIGNADO

Por ejemplo:

CVE-2021-44832

CVE-2021-44832 se trata de la vulnerabilidad de Apache Log4j2 a un ataque de ejecución remota de código (RCE). Si deseas consultar la lista completa de vulnerabilidades ahora mismo, hazlo aquí.

De hecho, hay muchas más vulnerabilidades que pueden revelar los secretos de un host que la lista oficial de CVE Mitre. Sí, las vulnerabilidades necesitan un requisito para “ganarse” su lugar en este diccionario. Y no hay ninguna organización específica que lo haga oficialmente, por supuesto. Todo depende de a qué se dirija el futuro exploit: no hay vulnerabilidad sin exploit. Pero en cualquier caso, casi todos los caminos conducen a la base de datos de exploits y al recurso mencionado anteriormente.

¿Qué Tipos de Exploits Existen?

Se pueden clasificar en tres grupos:

  1. Exploit de servicios
  2. Exploit de clientes
  3. Exploit de privilegios

Un exploit de servicio ataca algún tipo de servicio que, por ejemplo, escucha conexiones de red. El servicio recoge los paquetes de red y espera a que el usuario inicie una conexión de red (iniciar un navegador). Un hacker también podría hacer esto creando sus propios paquetes para este servicio y haciendo que se inicie un servicio completo que (sin el conocimiento del usuario) accederá a la red.

El exploit de cliente se centra en atacar una aplicación cliente que recibe algún contenido de un ordenador servidor. Se basa en el hecho de que la víctima realizará alguna acción y el programa cliente debe manejar activamente este contenido. En pocas palabras, el trabajo del supuesto hacker es conseguir que hagas clic en un enlace, abrir algún documento, llegar a un sitio web malicioso, etc.

Un exploit de privilegio. Su propósito es hacer cumplir los privilegios ya presentes en el sistema. Por ejemplo, obtener privilegios de administrador de INVITADO. Y eso no estaría lejos del SISTEMA… Por ejemplo, Windows XP tiene una vulnerabilidad que permite obtener fácilmente los más altos privilegios del sistema.

Existe otra clasificación que incluye dos clases principales de exploits. Se conocen como debilidades conocidas y debilidades de día cero.

  1. Debilidades conocidas: Estos aprovechan la seguridad que los profesionales conocen y han archivado. Utiliza las debilidades conocidas del objetivo y se corrige regularmente, pero sigue siendo un peligro adecuado debido a la lentitud de la corrección.
  2. Explotaciones de día cero (Zero-day Exploits): Un exploit de día cero (0day) es un ciberataque dirigido a una vulnerabilidad de software que es desconocida para el proveedor de software o para los proveedores de antivirus. El atacante detecta la vulnerabilidad del software antes de que cualquier parte interesada en mitigarla, crea rápidamente un exploit y lo utiliza para un ataque.

¿Qué es un Exploit Kit (EK)?

Un Exploit kit (kit de exploits) o exploit pack es un programa automatizado utilizado por los atacantes para explotar vulnerabilidades conocidas en sistemas o aplicaciones. Pueden utilizarse para lanzar ataques en secreto mientras las víctimas navegan por la web, con el objetivo de descargar y ejecutar algún tipo de malware.

Los atacantes utilizan los kits de explotación con el objetivo final de establecer el control de un dispositivo de forma automatizada y simplificada. Dentro de un kit de explotación, deben ocurrir una serie de eventos para que la infección tenga éxito. Empezando por una página de aterrizaje, hasta la ejecución de un exploit y la entrega de una carga útil, cada etapa debe completarse con éxito para que el atacante obtenga el control del host.

¿Qué es un Exploit de Día Cero?

Un exploit de “día cero” o “0Day” en el ámbito de la ciberseguridad es una vulnerabilidad en un dispositivo conectado a Internet, un componente de red o una pieza de software que se acaba de descubrir o exponer. La idea es que esta vulnerabilidad tiene cero días de historia.

El Proceso de Explotación

Etapas del proceso de exploit
Etapas del proceso de exploit

Poco a poco llegamos al principio de cómo funciona la explotación del sistema. Cada uno de estos pasos es un proceso muy complejo, que requiere un manual de varios volúmenes. Pero esquemáticamente se puede trazar como sigue:

  • Un sistema potencialmente vulnerable es escaneado en busca de puertos abiertos y servicios en ejecución;
  • Se establecen puntos que podrían ser atacados;
  • Se envía un exploit de una vulnerabilidad conocida al ordenador remoto en ese punto;
  • El exploit va acompañado de una payload (permitirá controlar el sistema de la víctima);
  • Si el exploit funciona (es el primero que se ejecuta) y el sistema de la víctima responde, se ejecuta la payload; al ejecutarse la payload, el hacker obtiene acceso al ordenador de la víctima;
  • El resto se limita a la imaginación del hacker (descarga de virus, borrado o copia de información, etc.)

Ejemplos de Exploit

Angler es uno de los kits más sofisticados del mercado negro. Este kit de exploits ha cambiado el juego desde que comenzó a detectar los antivirus y las máquinas virtuales (a menudo utilizadas por los expertos en seguridad como señuelos) y a aprovechar los archivos cifrados para impedir la investigación. Es uno de los kits de explotación que más rápido incorpora a su arsenal las vulnerabilidades de día cero recién descubiertas, y su malware funciona en memoria, sin escribir en los discos duros de las víctimas.

Neutrino es un kit de desarrolladores de habla rusa que contiene varios exploits de Java. Neutrino se hizo famoso porque su propietario lo puso a la venta por el módico precio de 34.000 dólares.

Blackhole Kit fue la amenaza web más común en 2012, dirigida a las vulnerabilidades de las versiones más antiguas de los navegadores Firefox, Chrome, Internet Explorer y Safari, así como a muchos plug-ins populares como Adobe Flash, Adobe Acrobat y Java. Una vez que la víctima ha sido atraída o redirigida a una página de destino (landing page), el sofisticado JavaScript detecta el contenido de la máquina de la víctima y descarga aquellos exploits para los que ese ordenador es vulnerable.

GrandSoft EK, aunque se ha reconocido que es un kit más antiguo, apareció en 2018. GrandSoft es conocido por distribuir ransomware (especialmente GrandCrab), troyanos (especialmente AZORult y QuantLoader) y mineros…

🤞 ¡No te pierdas ningún truco de seguridad!

¡No enviamos spam! Lee nuestra Política de Privacidad para más información.

Nuclear Exploit Kit. Un informe de la empresa de seguridad Checkpoint afirma que el kit fue desarrollado por alguien en Rusia, y que el equipo que estaba detrás de él ganaba unos 100.000 dólares al mes con el kit en ese momento. Nuclear era más bien un “exploit as a service” en el que los ciberdelincuentes alquilaban el kit. Utilizarían un panel de control en el que podrían descargar el malware y hacer un seguimiento de los resultados.

Un ejemplo de exploit de día cero es Stuxnet (2010). Un gusano informático autorreplicante que perturbó las centrales nucleares iraníes.

Stuxnet no sólo es uno de los primeros exploits de día cero utilizados, sino también uno de los más famosos. El ataque de día cero se convirtió incluso en un documental, apropiadamente titulado “Zero Days“.

El exploit de día cero más reciente e impactante fue descubierto en la popular biblioteca de registro de Java, log4j.

Seguridad

Actualmente existen muchos programas especiales que te ayudarán a proteger tu ordenador contra los exploits. También se recomienda no abrir archivos o correos electrónicos desconocidos ni visitar sitios web desconocidos.

¿Cómo Funciona el Exploit?

Por ejemplo, usamos Kali Linux (puedes usar cualquiera de las Distribuciones Linux para Pentesting) como SO host y Windows XP (el exploit es antiguo, desde ya con Windows XP SP2 ya lo hace con menos entusiasmo) como invitado en VirtualBox. Por supuesto, sabemos qué características tiene la máquina invitada en la red (en nuestro caso virtual), pero dejemos que el escáner Nmap haga su trabajo. Hagamos una “referencia oficial” a la víctima:

nmap -v -n 192.168.0.162

donde 192.168.0.162 es la dirección IP de la víctima. Si estás familiarizado con los comandos básicos de Nmap sabrás que los flags:

  • -v permite obtener un informe detallado de la dirección
  • -n desactiva las búsquedas inversas de DNS

Podemos ver qué puertos están abiertos y qué servicios se ejecutan a través de ellos. Vamos a escanear el sistema para obtener información más detallada sobre el sistema operativo y la versión del servicio. El comando tendrá el siguiente aspecto (la posición de las flags en el comando es arbitraria):

nmap -T4 -A -v 192.168.0.162

Hay mucha información. Elegimos el lugar del ataque. Hay un montón de puertos abiertos que son posibles lagunas en el sistema enemigo. Deja que sea el puerto abierto 135 con el Servicio mcrpc en ejecución (también conocido como Microsoft Windows RPC). Nos queda elegir un exploit adecuado para un proceso específico.

Base de Datos para Exploits

Si estás sentado en Kali ahora mismo, la base de datos está al alcance de tu mano. Todo lo que necesitas es una conexión de red y una consola msf en funcionamiento (también conocida como el kit de herramientas de Metasploit). Una base de exploits en constante expansión, que puedes ver ahora mismo lanzando la msfconsole y escribiendo show exploits, mostrará una lista de exploits.

La lista que aparece en la pantalla no te dirá nada todavía. Se presentan por orden alfabético con la fecha de publicación, se les asigna un rango por su uso y fiabilidad de funcionamiento, y una breve explicación de su objetivo.

Exploit Database una base de datos de exploits
Exploit Database una base de datos de exploits

Una especie de espejo de la base de datos es el famoso recurso Exploit Database. Está enteramente dedicado a los exploits, entre otras cosas. Sin embargo, no es el único. Ya hemos hablado sobre HoundSploit, Goploit Finder, Findsploit, Mailpl0it o SearchSploit. Pero hay más.

0day.today es un recurso multilingüe que ofrece no sólo exploits bien conocidas, sino también las propias variantes de los participantes. De pago. Visítalo y compruébalo: allí también se admite el idioma español.

Interfaz de 0day today en español
Interfaz de 0day today en español

Cómo Usar un Exploit

Metasploit está directamente vinculado a la base de datos de exploits, por lo que los pasos que verás no necesitan ser memorizados: lo bueno de Metasploit es que sus pasos están automatizados (aunque no siempre es algo bueno). El artículo es sobre el exploit, y sólo lo usaremos, es decir, manualmente. Lo encontramos, lo descargamos y lo subimos.

¿Cómo puedo encontrar un exploit que me interese? Si estás interesado en un exploit que pueda ser utilizado contra una plataforma o un programa específico, no es necesario que recorras manualmente la lista de más de un millar y medio de exploits, que se muestran con:

show exploits
Comando show exploits en el msfconsole
Resultado del comando show exploits en el msfconsole

En su lugar, puedes realizar un pequeño filtro:

search name:smb type:exploit platform:windows
Filtrar comando exploit desde el metasploit
Filtrar comando exploit desde el metasploit

Entonces, Metasploit sólo mostrará los exploits que funcionan en Windows. Además, si estás interesado en los exploits del navegador en Windows, puedes buscar por name:

msf > search name:browser type:exploit platform:windows

Además, en Kali Linux o Parrot OS, una búsqueda directa de exploits está disponible desde la terminal sin una sesión de Metasploit en ejecución. Escribe el siguiente formato de búsqueda:

searchsploit nombre_busqueda

El terminal te devolverá todos los exploits existentes en la base de datos, que se actualiza semanalmente.

Desde la base de datos Exploit-DB podemos introducir la siguiente consulta (ya que conocemos el servicio y sistema operativo), y descargar el exploit:

windows rpc
Búsqueda de exploit en Exploit-DB
Búsqueda de exploit en Exploit-DB

Lo anterior se puede hacer más rápidamente. En la ejecución de Metasploit, escribe el comando de búsqueda de explotaciones desde tu Kali Linux o Parrot OS.

search dcom

Sin embargo, no es raro que falte un exploit adecuado en la base de datos de Metasploit. Así que una vez que estés más familiarizado con el funcionamiento de los exploits, podrás permitirte dedicar más tiempo a encontrar y compilar el exploit correcto. Y en nuestro caso vamos a preparar el exploit descargado para la inyección manual. En la terminal lo convertiremos en un archivo binario (previamente he arrastrado el 66.s desde Descargas al Escritorio):

gcc 66.c -o 66

Y embebiendo el binario del exploit directamente en la víctima de XP:

./66 6 192.168.0.162
Ejemplo de exploit con Metasploit
Ejemplo de exploit con Metasploit

El sistema ha respondido. Científicamente, esto se llama un resultado de comprometer un sistema exitosamente. De hecho, este ordenador ya está en manos del hacker. El hacker lo ve como si estuviera sentado frente al ordenador: puede controlar el sistema con comandos de consola. Veamos ahora cómo se utiliza el exploit en Metasploit (todo esto como prueba de concepto). Los puertos de la víctima ya los hemos sondeado con Nmap. Y como verás, el 445 también está abierto bajo el servicio Microsoft-ds. En la ventana de Metasploit selecciona el exploit apropiado:

exploit/windows/smb/ms08_067_netapi

Vamos a partir de aquí:

use exploit/windows/smb/ms08_067_netapi

Verifica lo que se necesita para la implementación exitosa por parte del equipo:

show options

La línea con la dirección del host remoto RHOST está vacía. Rellénalo con la dirección IP de la víctima:

set RHOST 192.168.0.162
exploit

¿Cómo Detectar un Exploit?

Concepto de filtración de exploit
Concepto de filtración de exploit

Dado que utiliza brechas de seguridad en la programación, no hay señales ordinarias que se puedan percibir – un usuario no tiene prácticamente ninguna posibilidad de darse cuenta de que ha sido impactado hasta que ha pasado el punto de no retorno. Por eso es esencial actualizar constantemente los software e introducir parches de seguridad entregados por el desarrollador.

Y teniendo en cuenta que probablemente no percibirás ninguna debilidad, una vez que el malware se cuele, seguro que sentirás los impactos. Busca los indicios normales de contaminación por malware, por ejemplo:

  • Ejecución lenta
  • Caídas o congelaciones continuas
  • Cambios inexplicables en la configuración
  • Enormes cargas de ventanas emergentes o promociones (ads) donde no deberían estar
  • Pérdida de almacenamiento adicional

Si ve alguna de estas advertencias, debes realizar un filtro de infección con un instrumento antivirus o antimalware de confianza inmediatamente.

Consejos para Defenderse de los Exploits

Una vez explicado qué significa el exploit, cuáles son sus tipos y cómo funcionan, puedes aplicar algunos trucos y consejos para evitar que afecte a tu sistema operativo.

Hay que tener en cuenta que instalar una actualización del software que utilices cuando hay un tipo de amenaza es muy importante, porque ayudará a que tu ordenador se mantenga en perfecto estado.

Consejos para protección contra exploits
Consejos para protección contra exploits

Presta atención a estos consejos que te ofrecemos:

  • Mantener actualizadas todas nuestras aplicaciones y sistemas: Las actualizaciones no sólo incluyen mejoras en las funciones, sino también parches que sirven para cerrar posibles agujeros.
  • Reducir cualquier efecto de un exploit que pueda ser ejecutado sin nuestro permiso. Puedes controlar los registros guardados en el sistema o, por ejemplo, restringir los comandos Windows utilizados por los hackers.
  • Monitorización continua. Esto significa que sabrás cuando algo sospechoso está ocurriendo en tus sistemas y tomarás medidas inmediatas para ponerle fin.
  • Instalar antivirus: Hoy en día, es importante instalar un buen antivirus que se actualice de forma constante y automática para que tu ordenador tenga la seguridad que necesita. Anteriormente, hemos revisado los 10 Mejores Antivirus Gratuitos para Windows.
  • Cuidado con los archivos adjuntos: Siempre que escribas tu dirección de correo electrónico y quieras abrir un archivo adjunto, es importante que te asegures de que no procede de ninguna fuente de riesgo. Esto se debe a que, sin saberlo, puedes instalar cualquier tipo de archivo malicioso que podría dañar tu ordenador.

¿Qué le Espera a un Pentester en el camino de usar un Exploit?

El primer problema es que la vulnerabilidad se vuelve obsoleta, que es parcheada casi inmediatamente por los desarrolladores. Sí, la gran mayoría de los exploits, tal y como existen, no merecen tu atención. No sirven para nada, las actualizaciones de seguridad lo resuelven.

Por lo tanto, hay pocas salidas: usar los exploits de 0day – si puedes encontrarlos y usarlos; o usar tu cabeza y trabajar por tu cuenta; este es el problema número 1 – tenemos que aprender de los SOs y programas de la generación anterior: la razón es simple – los desarrolladores “abandonaron” el soporte (Windows XP es un ejemplo típico) y no reaccionan ante las vulnerabilidades, incluso en el aviso oficial (recuerda sin embargo comprobar si la vulnerabilidad aparecerá en las versiones de trabajo de los programas o SOs).

El segundo problema (derivado del primero) es que si se publica una vulnerabilidad y hay un exploit para ella, decenas de especialistas ya están trabajando para que la vulnerabilidad sea cosa del pasado. Se les paga. ¿Has leído nuestro artículo sobre Cómo se Gana el Pan Gratis un Hacker Ético Y las personas que buscan la vulnerabilidad también quieren que se les pague. Así que no busques una vulnerabilidad que se ha encontrado a lo largo y ancho: la belleza está allí donde el camino no se recorre.

Eso es todo por ahora. Esta fue una larga introducción a los exploits. Buena suerte a todos.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda