BeEF es un framework que viene por defecto en Kali Linux y está orientado en la explotación de vulnerabilidades en los navegadores web. Podemos usar como vector de ataque un XSS (una vulnerabilidad XSS reflejado o persistente) y mediante un iframe oculto o fichero JavaSript (JS) se pueden robar credenciales, o bien usar simples ataques de ingeniería social preguntando por la instalación de falsos certficados de seguridad, falsas actualizaciones de Flash Player o simplemente simular una sesión caducada de Facebook
La BeEF es la abreviatura de The Browser Exploitation Framework. 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, BeEF permite la prueba de intrusión profesional para evaluar la situación de seguridad actual de un entorno de destino mediante el uso de vectores de ataque del lado del cliente. A diferencia de otros entornos de seguridad, BeEF mira más allá del perímetro de la red endurecido y sistema cliente, y examina explotabilidad en el marco de la puerta abierta: el navegador web.
BeEF enganchará (hook) uno o más de los navegadores web y los utilizan como cabezas para el lanzamiento de los módulos de comando dirigidas y nuevos ataques contra el sistema desde dentro del contexto del explorador.
Introducción
The Browser Exploitation Framework (BeEF ) es una poderosa herramienta de seguridad profesional. La BeEF usa técnicas pioneras que proporcionan la prueba de intrusión con experiencia a los vectores de ataque del lado del cliente prácticos. A diferencia de otros marcos de seguridad , BeEF se centra en el aprovechamiento de las vulnerabilidades del navegador para evaluar la postura de seguridad de un objetivo. Este proyecto es desarrollado exclusivamente para la investigación legal y pruebas de penetración .
BeEF engancha (Hook ) uno o más navegadores web como cabezas de playa para la puesta en marcha de los módulos de mando dirigidos . Cada navegador es probable que sea en un contexto de seguridad diferente , y cada contexto puede proporcionar un conjunto de vectores de ataque únicos. El marco permite que el probador de la penetración pueda seleccionar los módulos específicos ( en tiempo real ) para apuntar a cada navegador , y por lo tanto a cada contexto.
El marco contiene numerosos módulos de comando que emplean API sencilla y potente de la BeEF. Esta API está en el corazón de la eficacia y eficiencia de la estructura. Se abstrae la complejidad y facilita el desarrollo rápido de los módulos personalizados.
Requerimientos
- OSX 10.5.0 o superior, Linux moderno, o bien Windows XP o superior
- Ruby 1.9.2 o superior
- SQLite 3.x
- The gems listed in the Gemfile: https://github.com/beefproject/beef/blob/master/Gemfile
Instalación
En Kali linux ya tenemos instalado por defecto a BeEF su localizacion es en:
/usr/share/beef-xss o tambien en “Kali Linux>herramiental de explotacion>plataforma XSS BeEF”
cd /usr/share/beef-xss
./beef
Para los impacientes:
$ curl -L https://raw.githubusercontent.com/beefproject/beef/a6a7536e/install-beef | bash -s stable
Dependencias
- curl
- git
- gems
- Ruby
git clone git://github.com/beefproject/beef.git
cd beef
bundle install
ruby beef
- https://github.com/beefproject/beef/wiki/Installation
Configuración
El fichero de configuración general se llama:
- config.yaml
Aquí podemos establecer o restringir el acceso vía red al panel de control:
restrictions: permitted_hooking_subnet: "10.1.0.0/16" permitted_ui_subnet: "127.0.0.1/32"
Configurar el Servidor web:
https: debug: false # Will print verbose message in BeEF console host: "0.0.0.0" # IP address of the web server port: "3000" #Port of the web server # If BeEF is running behind a reverse proxy or NAT # set the public hostname and port here public: "8.7.6.5" public_port: "3000" dns: "localhost" # Address of DNS server web_ui_basepath: "/ui" # Path for admin UI hook_file: "/hook.js" # Path for hooking script hook_session_name: "BEEFHOOK" #Name of session session_cookie_name: "BEEFSESSION" # Name of BeEF cookie
Las extensiones:
extension: requester: enable: true proxy: enable: true metasploit: enable: false social_engineering: enable: true evasion: enable: false console: shell: enable: false
La integración con Metasploit:
name: 'Metasploit' enable: true host: "127.0.0.1" port: 55552 user: "msf" pass: "abc123" uri: '/api' ssl: true ssl_version: 'TLS1' ssl_verify: true callback_host: "127.0.0.1" autopwn_url: "autopwn"
Módulos de Metasploit
Podemos usar Browser Autopwn creando un iframe invisble:
msf > use auxiliary/server/browser_autopwn2 msf auxiliary(browser_autopwn2) > show options Module options (auxiliary/server/browser_autopwn2): Name Current Setting Required Description ---- --------------- -------- ----------- EXCLUDE_PATTERN no Pattern search to exclude specific modules INCLUDE_PATTERN no Pattern search to include specific modules Retries true no Allow the browser to retry the module SRVHOST 0.0.0.0 yes The local host to listen on. This must be an address on the local machine or 0.0.0.0 SRVPORT 8080 yes The local port to listen on. SSL false no Negotiate SSL for incoming connections SSLCert no Path to a custom SSL certificate (default is randomly generated) URIPATH no The URI to use for this exploit (default is random) Auxiliary action: Name Description ---- ----------- WebServer Start a bunch of modules and direct clients to appropriate exploits
Y esperamos para obtener una shell:
Iniciando BeFF
Accedemos al panel de control vía:
- https://localhost:3000/ui/panel
- Usuario –> beef
- Contraseña –> beef
- https://localhost:3000/demos/basic.html
Módulos
El significado del color 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.
Ejemplos de Ingeniería Social
Preguntar por credenciales:
- The Pretty Theft imprime un sencillo mensaje al usuario que requiere de un usuario y contraseña explicando que la sesión ha terminado o caducado
- The Simple Hijacker propone varias plantillas de ingeniería social y los impulsan al usuario cuando se haga clic en un enlace en la página.
- Clippy crea un pequeño asistente navegador que proponen las actualizaciones del navegador.
Ejemplo de session timeout en Facebook:
Extensiones de Chrome/Firefox
Una vez enganchado al navegador (hooked) podemos obtener:
- Listado de dominios visitados
- Listado de URLS
- Acceso a la Webcam
- Todas las Cookies
- Capturas de Pantalla (Screenshots)
BeEF usa un fichero JavaScript llamado “hook.js”
Ejemplo Falsa Actualización de Adobe Flash Player:
- https://github.com/beefproject/beef/wiki/Module%3A-Fake-Flash-Update
Ejemplo instalación de certficado Falso:
- https://github.com/beefproject/beef/wiki/Module%3A-Simple-Hijacker
Entusiasta de la seguridad cibernética. Especialista en seguridad de la información, actualmente trabajando como especialista en infraestructura de riesgos e investigador.
Experiencia en procesos de riesgo y control, soporte de auditoría de seguridad, diseño y soporte de COB (continuidad del negocio), gestión de grupos de trabajo y estándares de seguridad de la información.
Envía tips de noticias a info@noticiasseguridad.com o www.instagram.com/iicsorg/.
También puedes encontrarnos en Telegram www.t.me/noticiasciberseguridad