Ejecutar módulos de forma automática.
Si el panel de control central consigue que muchos usuarios ejecuten
el hook en sus navegadores, será una labor bastante tediosa e
ineficiente tener que ejecutar los módulos contra cada uno de los
objetivos de forma manual. Afortunadamente, los módulos que se
encuentran creados en BeEF y los que se pueden crear de forma
independiente, deben incluir un fichero de configuración para controlar
el comportamiento de dicho módulo, de esta forma, es posible marcar
aquellos módulos que resulten interesantes para que se ejecuten de forma
automática contra cada nueva víctima, ahorrando mucho tiempo y evitando
la necesidad de estar permanentemente pendiente de que se conecten
nuevas víctimas y lanzar manualmente los módulos necesarios.
Habilitar esta característica es muy sencillo, solamente hace falta
editar el fichero de configuración maestro que se encuentra ubicado en
“<BEEF_INSTALL>/config.yaml” y modificar la sección
correspondiente a “autorun”
# Autorun modules as soon the browser is hooked.
# NOTE: only modules with target type ‘working’ or ‘user_notify’ can be run automatically.
autorun:
enable: true
allow_user_notify: true |
El “autorun” se encuentra habilitado por defecto en el fichero de
configuración maestro de la herramienta, sin embargo es necesario
activar aquellos módulos que se desea ejecutar cuando se reciba un nuevo
zombie, para ello es necesario editar el fichero de configuración
“config.yaml” de cada uno de los módulos que se desee activar e incluir
la flag “autorun: true”. Todos los módulos de la herramienta se
encuentran disponibles en el directorio “<BEEF_INSTALL>/modules” y
allí se podrán ver cada uno de los módulos disponibles desde el panel
de control de la herramienta. Dentro de cada módulo existe un fichero de
configuración llamado “config.yaml”, el cual típicamente contiene una
única sección que es “beef” y con una única subsección llamada “module”,
en ella se definen todos los detalles de configuración del módulo,
incluyendo su nombre, categoría, si se encuentra habilitado o no, entre
otros detalles. Este fichero sigue una sintaxis muy similar a los
módulos que se encuentran disponibles en Metasploit Framework, ya que es
completamente configurable e incluye detalles informativos sobre el
funcionamiento del módulo. En este caso, para que un módulo cuyo
atributo “target” sea “working” o “user_notify” se pueda lanzar de
manera automática ante la conexión de un nuevo zombie, basta con
establecer el atributo “autorun” con el valor “true”. El siguiente es un
ejemplo del módulo “play_sound” que se encarga de lanzar un zumbido (un
poco molesto) en la víctima conectada.
beef:
module:
Play_sound:
enable: true
category: “Browser”
name: “Play Sound”
description: “Play a sound on the hooked browser.”
authors: [“Saafan”]
autorun: true
target:
working: [“All”] |
En este caso hay que tener en cuenta que esta característica lo que
hace es lanzar todos los módulos que se han marcado con la flag
“autorun” contra todas las víctimas que se van conectando,
algo que no es deseado en todos los casos, ya que algunos módulos son
específicos para un navegador concreto y a veces es mucho mejor poder
crear una rutina que permita lanzar un módulo u otro dependiendo de las
características del navegador de la víctima. Esto es justo lo que se
podría hacer con la API Rest de BeEF y Python, como se verá más
adelante.
Extensiones en BeEF
Además de los módulos que permiten ejecutar rutinas en el entorno de
la víctima, otra característica muy interesante de BeEF es la
posibilidad de ejecutar extensiones que permitirán activar ciertas
características en el lado servidor de BeEF. Actualmente existen algunas
muy interesantes que permiten integrar otras herramientas de pentesting
habituales con BeEF, como es el caso de Metasploit Framework o SET.
Para habilitar cualquier extensión disponible en la herramienta o una
creada por terceros, se debe editar el fichero de configuración maestro
(config.yaml) y habilitar todas las extensiones deseadas en la sección
“extension” por ejemplo:
extension:
metasploit:
enable: false
console:
shell:
enable: true |
En este caso solamente se habilitan las extensiones de metasploit y
la shell de BeEF para trabajar con la herramienta desde línea de
comandos en lugar de hacerlo desde la interfaz web.
Para utilizar la extensión de Metasploit, es necesario cargar el
modulo “msgrpc” desde “msfconsole” o ejecutar la utilidad “msfrpcd” de
Metasploit Framework. En cualquiera de los dos casos, se conseguirá
levantar un servicio que permitirá la interacción de forma programática
con Metasploit Framework con aplicaciones externas, como es el caso de
BeEF.
La siguiente imagen enseña cómo se puede cargar el módulo “msgrpc” desde “msfconsole”
Cargando el módulo msgrpc
Ahora que el fichero de configuración maestro ya se encuentra
preparado para soportar al extensión de metasploit framework y el
servicio MSGRPC se encuentra levantado, es el momento de configurar la
extensión e indicar los detalles de conexión con el servidor. Para ello
se debe editar el fichero de configuración de la extensión de
metasploit, el cual se encuentra ubicado en la siguiente ruta
“<BEFF_INSTALL>/extensions/metasploit”. Allí se deben incluir como
mínimo, las propiedades que permiten establecer una conexión con el
servicio MSGRPC.
Ahora, es el momento de arrancar BeEF y para ello, se puede utilizar
la opción “-v” y ver el detalle de las operaciones realiza la
herramienta. Como se puede ver en la siguiente imagen.
Conexión entre Beef y Metasploit
Después de esto, los módulos de metasploit framework
quedarán registrados en el panel de control de BeEF como si se tratara
de cualquier otro módulo de la herramienta. Evidentemente, algunos de
dichos módulos requieren una preparación previa y establecer ciertos
valores de configuración, pero desde BeEF se puede hacer utilizando un
asistente muy simple.
Módulos de metasploit framework en BeEF
Otra extensión muy interesante es la extensión
“console”, la cual permite sustituir el panel de control web por una
interfaz por línea de comandos para controlar todos los zombies y
realizar otras actividades, del mismo modo que se puede hacer con la
utilidad msfconsole de metasploit framework. Para activar esta
extensión, la cual viene desactivada por defecto, se debe editar el
fichero de configuración principal (config.yaml) y en la sección de
extensiones incluir lo siguiente:
console:
shell:
enable: false
|
Ahora, cuando se arranque la herramienta, en lugar de
ver un mensaje indicando que se ha iniciado un servidor web para la
gestión de los zombies, se podrá ver un interprete desde el cual se
podrán ejecutar comandos.
Consola de BeEF
Desde esta consola se pueden ejecutar varios comandos,
los cuales se pueden consultar con el comando “help”, dichos comandos
permiten cumplir con exactamente las mismas funciones que se pueden
llevar a cabo desde la interfaz web
Comandos disponibles en la consola de BeEF.
Existen otros módulos y extensiones que actualmente se
encuentran en desarrollo y que probablemente estarán disponibles en los
próximos meses, con lo cual se espera que poco a poco, su uso sea mucho
más difundido y alcance los niveles de popularidad de otras herramientas
de pentesting y hacking similares.
Saludos y Happy Hack!
Adastra.