Explotación de vulnerabilidades

Page 1

Universidad Tecnológica de León Ingeniería en Redes Inteligentes y Ciberseguridad

Asignatura: Hacking Ético

Título del trabajo: Informe: Explotación de vulnerabilidades

Presenta: Fátima Abigail Porras Noriega

Matrícula: 18002125

Grupo: IRIC 901

León, Guanajuato. A 11 de julio de 2021


INTRODUCCIÓN La explotación de vulnerabilidades se podría definir como “el ataque puro y real”, además de la cuarta fase de auditoría técnica del Hacking Ético y/o PenTesting, y una de las más complejas, ya que el evaluador o intruso informático, debe buscar aprovecharse de alguna de las vulnerabilidades identificadas en fases anteriores, para lograr el ingreso (intrusión) en el sistema objetivo. Esta etapa se caracteriza por el tiempo que puede tomar ya que, en comparación con las otras, es relativamente corto, además, hay un proceso de ataque puro contra el sistema víctima, o el que se ha definido como sistema auditado, también tiene un alto riesgo que el sistema pierda niveles de integridad, disponibilidad y confidencialidad. El éxito de la explotación dependerá de forma representativa de lo recolectado y ejecutado en las anteriores etapas o fases de la auditoría o ataque y cabe resaltar que el proceso de explotación puede causar una denegación de servicios, siendo así una de las fases más emocionantes. La explotación dentro del hacking ético es una etapa que se considera altamente importante, ya que es en donde el auditor de seguridad le demuestra al cliente que las vulnerabilidades identificadas y reportadas en las fases anteriores de la auditoría de seguridad, pueden afectar de forma representativa la integridad, confidencialidad y disponibilidad de los sistemas de información empresariales. Ya que cuando se ejecuta un proceso de explotación, el cliente entenderá que las vulnerabilidades no sólo se reportan en un informe técnico, sino que también se intentan explotar, logrando así un ataque real, pero controlado en el sistema del cliente. Comprendiendo la explotación desde el punto de vista de un auditor de seguridad y no desde la óptica de un atacante, son muchos los beneficios que una empresa que contrate un proceso de auditoría del tipo PenTesting, puede obtener con la fase de explotación. Algunos de los beneficios de esos son que no quedan dudas respecto a las vulnerabilidades reportadas, ya que estas dejan de ser supuestos y registros en informes, para convertirse en un riesgo y amenaza real, otro más es que pone a prueba la eficacia de los actuales sistemas de control y protección, además de registrar un estado real de la seguridad de la información en una empresa u organización, la cual no se soporta en supuestos, sino en evidencias y hallazgos reales. El proceso de explotación puede tener algunos riesgos, los cuales deben ser estimados y analizados por parte del equipo de auditores de seguridad. Entre estos riesgos se incluyen caídas de servicios, caídas del sistema, denegación de servicios, pérdidas de confidencialidad en datos, pérdidas de disponibilidad, exposición de información confidencial e impactos en la estabilidad del sistema evaluado. Y ¿qué se puede explotar o atacar? De forma similar al análisis de vulnerabilidades, se puede realizar la explotación a servidores, estaciones de trabajo, switches, routers, sitios web, servicios de red, una base de datos, entre otros. La ingeniería social es una de las técnicas más recurrentes cuando se habla de la obtención de la información en el hacking, ya que es una de las más efectivas, aunque eso sí, se debe tomar en cuenta que también hay algo de complejidad en ella, pues depende de la habilidad del atacante para hacer sentir a la víctima que está en un entorno seguro y de confianza donde puede dejar su información. Esta técnica puede quedar definida como, el conjunto de herramientas y habilidades personales que se utilizan para obtener información directamente de los usuarios, creándoles un ambiente de confianza donde pueden dejar su


información o simplemente, suplantando algún sistema de información, haciéndole creer que está en el sistema correspondiente. Actualmente, existen diversas técnicas y ataques ingeniería social, y todos podemos ser víctimas de estos. Lamentablemente, para nosotros como seres humanos, la conciencia que se tiene respecto a los sistemas de información es poca, y desconocemos la delicadeza de poner nuestra información personal en algunos sitios de internet, ya que muchas veces quedamos deslumbrados por anuncios y sitios engañosos que te aseguran milagros, grandes premios o ponerse en contacto con personas cercanas a ti. Y más allá de esto, la solución a todos estos engaños está en la habilidad del usuario para saber identificar un entorno de riesgo, muchas veces ignoramos detalles críticos que nos harían saber que nuestra información en peligro, un ejemplo común de ataque de ingeniería social son los correos de Phishing, y aunque la mayoría de los usuarios en internet son capaces de detectar estos fraudes, sigue siendo una técnica bastante efectiva. Pero, por otra parte, hay una técnica que la mayoría desconoce, y es cuando se suplanta un sitio web para robar las credenciales de acceso. ¿Cómo es que los hackers hacen esto? ¿Es un proceso complicado? Realmente no, en este reporte se describen algunas de las herramientas que se utilizan en Kali Linux para realizar y complementar ataques de ingeniería social, donde nosotros aprenderemos a identificar puntos clave para saber si estamos en un entorno seguro o no. Cabe mencionar que esta práctica se hizo en un entorno controlado y con autorización de todos los involucrados, ya que aplicar estas técnicas sin previa autorización se puede considerar como un delito. Conociendo toda esta información relevante sobre la explotación, es importante mencionar que el presente informe tratará herramientas como Social-Engineering Toolkit, Shellphish, DNSTwist, Framework Metasploit, EternalBlue, Keyloggers con un sploit, MSFVENOM y Shellter. Durante las siguientes prácticas realizadas, se introduce a algunas de las poderosas herramientas que se incluyen en Kali Linux para la explotación de vulnerabilidades con exploits e ingeniería social. Cabe mencionar que todas las pruebas y demostraciones realizadas se realizaron en un entorno controlado con previa notificación a los usuarios de los sistemas, ya que la realización de ataques y análisis de vulnerabilidades es con fines educativos.

EXPLOTACIÓN DE VULNERABILIDADES SOCIAL ENGINEERING TOOLKIT En el mundo de la seguridad informática no se puede dejar nunca de lado la ingeniería social. La ingeniería social continúa siendo una de las metodologías de ataque más utilizadas debido al alto nivel de eficacia logrado engañando al usuario. SET es una suite dedicada a la ingeniería social , que nos permite automatizar tareas que van desde el de envío de SMS (mensajes de texto) falsos, con los que podemos suplantar el número telefónico que envía el mensaje, a clonar cualquier página web y poner en marcha un servidor para hacer phishing en cuestión de segundos. El kit de herramientas SET está especialmente diseñado para realizar ataques avanzados contra el elemento humano. Originalmente, este instrumento fue diseñado para ser publicado con el lanzamiento de http://www.social-engineer.org y rápidamente se ha convertido en una herramienta estándar en el arsenal de los pentesters. SET fue escrito por David Kennedy (ReL1K) con un montón de ayuda de la comunidad en la incorporación de los ataques nunca vistos en un juego de herramientas de explotación.


En otras palabras, es un kit de herramientas que ayuda en la tarea de realizar ataques de ingeniería social, permite suplantar fácilmente la identidad de un sitio determinado, o enviar ataques por mail a las cuentas de correo de alguna compañía o persona, infectar memorias USB, etc. Estas herramientas se usan para verificar el nivel de vulnerabilidad de una empresa ante ataques de ingeniería social y para tomar las medidas correspondientes, es multiplataforma y sólo necesitamos tener instalado el intérprete de Python para ejecutarlo e iniciarlo con ./set o Python set en la carpeta donde decidamos guardarlo. Nosotros como seres humanos, somos una de las mayores fuentes de información durante la búsqueda de vulnerabilidades. La Ingeniería Social es un tipo de ataque que se enfoca al comportamiento humano, manipulando y jugando con su credibilidad para obtener acceso a información como cuentas bancarias, redes sociales, correos electrónicos e incluso a una computadora objetivo. Como se puede imaginar el ataque más común de ingeniería social es el phishing. Los ataques de ingeniería social no atacan al sistema directamente, en lugar de eso, aprovecha de la interacción humana para obtener información directamente de la víctima. Para está práctica se hace una pequeña demostración de cómo se puede implementar un ataque de ingeniería social en la vida diaria, tan sencillo como solo contar con un par de aplicaciones en el sistema de Kali. El propósito de esta práctica es obtener las credenciales de un usuario de Gmail. Este escenario es bastante fácil de construir, ya que únicamente se necesita una máquina virtual corriendo Kali Linux y otro dispositivo con acceso a la red local, como un celular u otra computadora. Durante este ataque se puede demostrar que ni siquiera es necesario tomar el dispositivo de la víctima, solo es necesario hacer un poco de estrategia para hacerle que está en un entorno normal y de confianza. La herramienta que está por utilizarse ya está preinstalada en Kali, esta se conoce como SET (Social Engineering Toolkit), y realmente es todo lo que se necesita. Desarrollada en Pyhton por TrustedSec, se puede encontrar más información al respecto en: https://www.trustedsec.com/social-engineer-toolkit-set/. Paso 1. Configurar el sitio web La herramienta de Setoolkit se utiliza a través de la consola de comandos, por lo que se ejecuta la siguiente línea para ejecutar la aplicación.

$sudo setoolkit Una vez iniciada, se mostró una página de bienvenida con las opciones de ataque. La opción para seleccionar fue la 1, ya que se iba a realizar un ataque de ingeniería social. En el siguiente menú se seleccionó la opción número 2, o Website Attack Vectors.


Después se seleccionó la opción 3, Credential Harvester Attack Method.

Por defecto, SET ya cuenta con plantillas de varios páginas de inicio de sesión, como Google, Yahoo, Twitter y Facebook, para esta práctica se empezó con la plantilla de Google. El siguiente paso es definir la IP que estará escuchando las solicitudes POST para el inicio se sesión, en este caso es suficiente dejar la IP local (192.168.43.99), aunque si se tuviera un servidor externo, se requeriría escribir la dirección correspondiente.


En este momento se mostraron las plantillas incluidas. Durante esta práctica se buscaba suplantar el sitio de inicio de sesión de Google, por lo que se eligió la opción número 2.

Ahora, la terminal mostró un mensaje de que se estaba clonando el sitio de http://www.google.com y que se abrió el puerto 80 para ejecutar la aplicación web. La información obtenida se mostrará debajo de estas indicaciones.

Hasta ahora, se inició un servidor en Kali escuchando por el puerto 80, con la página de inicio de sesión de Google. El entorno está listo para que se lleve a cabo el ataque de ingeniería social. Paso 2. Cazando a las víctimas Ahora desde un dispositivo externo se accede desde el navegador a la ip 192.168.43.99, la página cargada fue la siguiente:


A simple vista, es bastante convincente, a diferencia del detalle de la URL, el cual se podría solucionar haciendo un envenenamiento de DNS (el cual no se detalla en esta práctica), pero si la víctima ignora un poquito del tema, pensará que es la página original de Google. Una vez que la víctima haya decidido ingresar sus datos, como correo y contraseña, presionará el botón de enviar.

Una vez que haya presionado el botón de iniciar sesión, esta información aparecerá en la consola de Kali y el usuario será redirigido al sitio oficial de Google.

Hasta este momento ya se obtuvieron las credenciales del usuario.


SHELLLPHISH Se trata de una herramienta que provee un conjunto de plantillas para los sitios más populares en Internet, entre los que se encuentran Facebook, Twitter, Netflix, Instagram, entre otros. No obstante, dada su flexibilidad es posible crear plantillas personalizadas para sitios web que no se encuentran incluidos en la herramienta, de tal manera que es posible llevar a cabo campañas de phishing contra un objetivo concreto. El uso de la herramienta es realmente simple, basta con seleccionar una plantilla, establecer el tipo de servidor para que sea accesible desde Internet (puede ser serveo.net o Ngrok) y posteriormente, esperar a que el usuario “pinche” en el enlace que se enviaría por email (o cualquier otro medio). Para instalar la herramienta, basta con clonar el repositorio oficial y ejecutar el script “shellphish” con los siguientes comandos: git clone https://github.com/thelinuxchoice/shellphish.git cd shellphish && chmod 755 shellphish.sh ./shellphish.sh

Al igual que SET, Shellphish es una herramienta gratuita que sirve para realizar ataques de ingeniería inversa a través de la suplantación de sitios de aplicación web. Esta es una aplicación un poco más limitada pero muy sencilla de utilizar, a diferencia de la otra, esta está escrita en bash y utiliza ngrok para poder realizar el ataque de manera remota, o dicho en otras palabras, cualquier usuario con acceso a internet y que abra este link es potencial víctima de este ataque. Otra de las ventajas más llamativas de esta aplicación es que cuenta con 19 plantillas de sitios como Instagram, Facebook, Snapchat, Google, Twitter, Github, Netflix, Spotify, entre otros. Paso 1. Instalación La instalación es un poco más laboriosa a comparación de la herramienta anterior, ya que esta no está preinstalada en KaliLinux, por lo que el primer paso fue crear un directorio para la aplicación.

$ mkdir shellphish Una vez teniendo el directorio creado, se descargó dentro de este el repositorio de Git c correspondiente.

$ cd shellphish $ git clone https://github.com/suljot/shellphish.git Finalmente se ejecutó la herramienta con el siguiente comando.

$ sudo ./shellphish.sh Ahora ya está instalado Shellphish, la pantalla principal muestra todas las opciones de plantillas con las que cuenta la aplicación.


Paso 2. Ejecución del ataque Para realizar y ejecutar el ataque, solo basta con seleccionar una plantilla, en este caso se seleccionó la de Instagram. Una vez seleccionada la opción, iniciará el servidor PHP y ngrok.

La aplicación también provee una dirección recortada con TinyUrl. Esta es bastante útil ya que de esta manera la dirección es un poco menos sospechosa (aunque como fue mencionado anteriormente, el ataque quedaría mejor complementado con un envenenamiento de DNS). Una vez que la víctima abrió el link, la página fue bastante convincente.


Ahora solo fue cuestión de tiempo para esperar a que se ingresaran unas credenciales.

Una vez que el usuario haya ingresado las credenciales y enviado la solicitud POST, la información ingresada, aparecerá en la consola de Kali.


El usuario desconoció todo el proceso por el que ha pasado su información pero finalmente, se le cargó una nueva pantalla de Instagram pero ahora en el sitio oficial. DNSTWIST Dnstwist es un script de Python que resulta muy útil para los usuarios, ya que nos permite detectar phishing, errores de tipografía y dominios de ataque basados en un dominio que introducimos. Si alguien es propietario de una página o está a cargo de la administración de dominios y la seguridad de marca de una compañía, esta herramienta puede ser de gran utilidad para ver posibles sitios que intentan dañar a otros pretendiendo ser esa marca. La premisa detrás de dnstwist es realmente simple. Toma un nombre de dominio como entrada y luego usa varios algoritmos para generar dominios derivados que podrían ser potencialmente utilizados para phishing, errores de tipografía o espionaje corporativo. Usar dnstwist también es muy fácil. Para un uso básico, simplemente tenemos que ingresar un dominio para obtener una lista de posibles dominios de ataque. Aunque es algo útil, al usar varios argumentos en la línea de comandos podemos refinar aún más la búsqueda para llegar a la esencia de lo que estamos buscando. Retomando a Instagram, se ejecuta la herramienta para poder ver los posibles resultados acerca de esta red social.

La siguiente imagen muestra los resultados obtenidos:


En resumen, DNSTwist funciona generando una gran lista de permutaciones basadas en un nombre de dominio

que proporcionas y luego comprobando si alguna de esas permutaciones está en uso. ¿Cómo funciona? La herramienta ejecuta el nombre de dominio proporcionado a través de sus algoritmos de fuzzing y genera una lista de posibles dominios de phishing junto con los registros DNS. Normalmente se generan miles de permutaciones de dominios, especialmente para los dominios de entrada más largos. En tales casos, puede ser práctico mostrar sólo los que están registrados: dnstwist --registered domain.name La comprobación manual de cada nombre de dominio en términos de servir a un sitio de phishing puede llevar mucho tiempo. Para abordar esto, dnstwist hace uso de los llamados fuzzy hashes (hashes de contexto disparados por piezas). El “fuzzy hashing” es un concepto que implica la capacidad de comparar dos entradas (en este caso el código HTML) y determinar un nivel fundamental de similitud. Esta característica única de dnstwist puede ser habilitada con el argumento --ssdeep. Para cada dominio generado, dnstwist obtendrá el contenido del servidor HTTP que responda (siguiendo posibles redireccionamientos) y comparará su fuzzy hash con el del dominio original (inicial). El nivel de similitud se expresará como un porcentaje. MSFRAMEWORK PARA LA EXPLOTACIÓN DE LA VULNERABILIDAD MS17-010 El MSRFRAMEWORK o Metasploit Framework es la herramienta por excelencia de Kali Linux para desarrollar y ejecutar exploits. Para esta práctica se utilizó un el sistema de Kali Linux y una máquina con Windows 7 sin actualizaciones de seguridad. Las direcciones IP se asignaron de la siguiente manera.

Metasploit Framework se puede ejecutar desde la barra de herramientas de Kali Linux, o de otra manera, se puede abrir desde la consola con el comando sudo msframework.


Una vez ejecutada la aplicación y completamente cargada, se mostró una pantalla de bienvenida con la consola lista para ser utilizada.

La vulnerabilidad que se buscaba explotar en esta clase es la ms17_010, la cual corresponde al EternalBlue, esta es fue detectada por un grupo de investigación de ciberseguridad, pero fue robada y distribuida por internet, aunque Microsoft sacó parches de seguridad, este ataque se sigue actualizando a las más nuevas actualizaciones de Windows. Esta vulnerabilidad permite hacer Shell inverso a las máquinas de Windows 7 y Windows 2000. Para conocer los módulos correspondientes a esta vulnerabilidad se ejecutó el comando: > search ms17_010

Se pudieron encontrar dos resultados, el primero corresponde a una herramienta que sirve como un escáner para detectar la vulnerabilidad, y el segundo es el módulo que permite crear el exploit. Para hacer uso de este exploit se ejecutó el comando: > user exploit/windows/smb/ms17_010_eternelblue Una vez seleccionado el módulo, se ejecutó la instrucción show options para conocer los parámetros necesarios para completar el exploit.


Los parámetros para configurar fueron el nombre del proceso, que en este caso es lsass.exe y la dirección del host a atacar.

Se utilizó el comando show payloads para conocer las distintas maneras en que se puede establecer la conexión remota.

La opción seleccionada fue por TCP inverso.

Ahora, se estableció el payload al exploit y se mostraron las opciones para conocer los detalles.


Una vez que el exploit está completo, se ejecuta. La aplicación mostró un mensaje que indica que se inició una sesión de Shell.

Ahora, con la sesión abierta de Meterpreter, se ejecutó el comando sysinfo para conocer los detalles del sistema vulnerado. También se pueden ejecutar otros comandos del CMD en Meterpreter, y algunos otros para obtener capturas de pantalla del escritorio y otros archivos.


CONCLUSIÓN Sin lugar a duda, los ataques de phishing hoy en día sustituyen una de las amenazas más frecuentes cuando se habla de seguridad perimetral y es que el factor humano es siempre, el más problemático y difícil de gestionar en todos los aspectos de una organización. No es de extrañar que en algunas pruebas de seguridad enfocadas al RedTeam se incluyan este tipo de técnicas con el objetivo de medir la seguridad del perímetro desde adentro. Quiénes han picado en un ataque de phishing y han pinchado en el enlace, quiénes no han sabido detectar que ese correo electrónico contiene un enlace a un sitio malicioso. Son cuestiones que se afrontan con la formación a los empleados y a la que difícilmente las soluciones de seguridad perimetral pueden hacer frente de forma eficaz. En este sentido existen múltiples herramientas y frameworks enfocados a la ejecución de campañas de phishing, cuyo objetivo es precisamente probar la seguridad del perímetro de una organización ante este tipo de ataques, aunque como es evidente, también son herramientas que dadas sus funcionalidades y lo bien hechas que están se utilizan directamente por parte de ciberdelincuentes, tales como las que se utilizaron en esta práctica. Para los hackers y ladrones cibernéticos, solo es cuestión de unos instantes para obtener la información de un objetivo utilizando técnicas de ingeniería social. Obviamente requiere algo de tiempo desarrollar las técnicas y herramientas necesarias para llevar a cabo este ataque de manera satisfactoria, pero lo que lo hace realmente efectivo está precisamente en todos nosotros, no somos máquinas que puedan recibir actualizaciones de seguridad al mismo tiempo para ser conscientes de los riesgos y estafas a los que nos enfrentamos día a día. Ya que la ingeniería social no es algo que solo se aplica en la informática, muchas veces lo hemos visto en estafas en la calle de gente que vende productos milagrosos, te invita a unirte esquemas piramidales o a programas de inversión. Lo que se puede observar de estas técnicas es la habilidad de los estafadores para hacer a la víctima sentirse en una zona de confort y tener la confianza de hacer lo que se le indica y proveer la información que se le pide. En la informática pasa de la misma manera, aunque en esta parte depende de la habilidad tecnológica y razonamiento del usuario para identificar puntos de sospecha críticos. Lamentablemente, todavía estamos en tiempos donde la ingeniería social tiene bastante efectividad, y la única forma de evitarlo y/o disminuirlo es educándonos como sociedad a hacer hábitos seguros mientras navegamos en internet. Lo que se vio en esta práctica fue la facilidad con la que los hackers suplantan servicios de internet, es completamente fácil y no requiere conocimientos de expertos (aunque es claro que entre más se conozca del tema se puede desarrollar un ataque más sofisticado). Afortunadamente, en esta práctica, se aprendió a identificar un sitio web falso, además de que las tecnologías de algunos navegadores web ayudan a facilitar a esta tarea, la intención de todo esto es solo concientizar a los usuarios de internet, disciplinándolos para no cometer esta clase de delitos y comunicando esta sabiduría con su comunidad y familia. Con la realización de esta práctica se pudo comprender de una mejor manera qué tan expuesto puede estar el usuario a estos tipos de ataques, los cuales no son para nada difíciles de realizar. Sin duda alguna la etapa de explotación de vulnerabilidades ha sido la más interesante hasta el momento ya que es poner mucho en práctica todo aquello que alguna vez resultó imposible para muchos de nosotros.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.