Mixins y Plugins

De www.metasploit-es.com.ar

Una rapida incursion en Ruby.

  • Cada clase solamente tiene un padre
  • Una clase puede incluir muchos Modulos
  • Los Modulos pueden añadir nuevos metodos
  • Los Modulos pueden recargar viejos metodos
  • Los Modulos de Metasploit heredan Msf::Module e incluyen mixins para añadir caracteristicas.

Metasploit Mixins

Los Mixins son bastante simples, la razon por la que Ruby mola.

  • Los Mixins 'incluyen' una clase en otra
  • Esto es tanto diferente como similar a la herencia
  • Los Mixins pueden sobreescribir los metodos de una clase

Los Mixins pueden añadir nuevas caracteristicas y permiten a los modulos tener diferentes 'sabores'.

  • Especificos del protocolo (p.ej. HTTP, SMB)
  • Especificos del comportamiento (p.ej. fuerza bruta)
  • connect() es implementado por el mixin TCP
  • connect() es recargado entonces por FTP, SMB, y otros.

Los Mixins pueden cambiar el comportamiento

  • El mixin Scanner recarga run()
  • Scanner cambia run() por run_host() y run_range()
  • Llama a estos en paralelo basado en el parametro THREADS
  • El mixin BruteForce es similar


    class MiPadre
         def woof
              puts “woof!”
         end
    end
    class MiClase < MiPadre
    end
    object = MiClase.new
    object.woof() => “woof!”
====================================================
    module MiMixin
         def woof
              puts “secuestrado el metodo woof!”
         end
    end
    class MiClaseMejor < MiClase
         include MiMixin
    end


Metasploit Plugins

Los Plugins trabajan directamente con la API.

  • Manipulan el framework como un todo
  • Los Plugins se enganchan en el subsistema de eventos
  • Automatizan tareas especificas que serian aburridas de hacer manualmente

Los Plugins solamente funcionan en la msfconsole.

  • Los Plugins pueden añadir nuevos comandos de consola
  • Extienden totalmente la funcionalidad del Framework.



© Offensive Security 2009

Original de www.offensive-security.com
Traducido por cbk999
Herramientas personales