Friday 23 September 2016

Ataques al navegador del usuario usando BeEF

SOURCE: Noticias de seguridad informática http://noticiasseguridad.com/hacking-incidentes/ataques-al-navegador-del-usuario-usando-beef/
TAGS: BeEF, navegador web
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

logo_beef

¿Qué es  BeEF?

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:

 http:
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:
  • http://localhost:3000/ui/panel


 
  • Usuario –> beef

  • Contraseña –> beef


Página inicial:


Página de Demos:

  • http://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

Fuente:http://www.enhacke.com

 
Noticias de seguridad informática

No comments:

Post a Comment