domingo, 13 de octubre de 2013

Desarrollo de módulos en BeEF 0.4.4.x - Parte IV

Y bien, en esta ocasión no haremos recapitulación de lo que hasta ahora se ha visto, para no repetir contenido ;), solo diremos que si les interesa profundizar en la teoría que acompaña esta serie de artículos les recomiendo que le dediquen 10 minutos a las entradas anteriores ;), así que vamos directo al tema: Que archivos mínimos necesita BeEF  para reconocer un plugin?
en temas anteriores mencionamos que BeEF categoriza los plugins en


Preth00nkers-M:modules preth00nker$ pwd 
/Users/preth00nker/beef-pret/modules 
Preth00nkers-M:modules preth00nker$ ls -ls 
total 0
0 drwxr-xr-x  31 softwareallies  staff  1054 Oct 10 20:51 browser
0 drwxr-xr-x   8 softwareallies  staff   272 Sep  9 13:50 chrome_extensions
0 drwxr-xr-x  10 softwareallies  staff   340 Sep  9 13:50 debug
0 drwxr-xr-x  30 softwareallies  staff  1020 Sep  9 13:50 exploits
0 drwxr-xr-x  20 softwareallies  staff   680 Sep  9 13:50 host
0 drwxr-xr-x   8 softwareallies  staff   272 Sep  9 13:50 ipec
0 drwxr-xr-x   3 softwareallies  staff   102 Sep  9 13:50 metasploit
0 drwxr-xr-x   9 softwareallies  staff   306 Sep  9 13:50 misc
0 drwxr-xr-x  11 softwareallies  staff   374 Sep  9 13:50 network
0 drwxr-xr-x   6 softwareallies  staff   204 Sep  9 13:50 persistence
0 drwxr-xr-x  17 softwareallies  staff   578 Sep  9 13:50 phonegap
0 drwxr-xr-x  16 softwareallies  staff   544 Sep  9 13:50 social_engineering
 Así que por clarificar el ejemplo agreguemos un plugin en la categoría browser.
Preth00nkers-M:modules preth00nker $ cd browser/ 
Preth00nkers-M:browser preth00nker $ mkdir my_first_plugin 
Preth00nkers-M:browser preth00nker $ cd my_first_plugin/Preth00nkers-M:my_first_plugin 
Y agregaremos 3 archivos para comenzar.
Preth00nkers-M:my_first_plugin preth00nker $ ls -ls 
total 32
16 -rw-r--r--  1 softwareallies  staff  4993 Sep  9 13:50 command.js
 8 -rw-r--r--  1 softwareallies  staff   823 Sep  9 13:50 config.yaml
 8 -rw-r--r--  1 softwareallies  staff  2506 Sep  9 13:50 module.rb
Hasta ahora nuestro plugin no aparecerá en los modulos disponibles para lanzar en la interface de de usuario de BeEF, asi que pongamos el código necesario para ello.

//command.js
beef.execute(function() {
    alert("hi there..");
});
//config.yaml (Los espacios son importantes para los archivos yaml)
beef:
    module:
        my_first_plugin:
            enable: true
            category: "Browser"
            name: "My First Plugin"
            description: "this is just a test"
            authors: ["YourName"]
            target:
                 working: ["All"]
//module.rb
class My_first_plugin < BeEF::Core::Command
  def pre_send
    print "This is before.."
  end
  def self.options
  end

  def post_execute
    print "All is done.."
  end
end
con lo anterior deberíamos estar viendo nuestro modulo agregado en la interface gráfica de BeEF disponible para ser lanzado contra un blanco:


de modo que la víctima ejecutara el código localizado en el archivo command.js:


Bien, ahora tenemos nuestro modulo corriendo, el siguiente paso es extender la funcionalidad. aunque seguramente esto dependerá de lo que ustedes quieran lograr con su módulo, yo les puedo ayudar explicando las opciones que BeEF ofrece para cada archivo, estos temas son bastante largos y serán explicados en siguientes entradas, sin embargo, como material de apoyo, nuevamente les recomiendo leer los anteriores artículos.
espero hayan disfrutado el artículo y nos leemos la próxima ;).
saludos!

No hay comentarios:

Publicar un comentario