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