El Formato de Exploit de Metasploit

De www.metasploit-es.com.ar

Contenido

El Formato de Exploit de Metasploit

El formato de un Exploit en Metasploit es similar al de un Auxiliar pero tiene mas campos.

  • Siempre hay un bloque de informacion Payload. Un exploit sin un Payload es simplemente un modulo Auxiliar.
  • El esquema incluye un listado de objetivos disponibles.
  • En lugar de definir run(), se utilizan exploit() y check().

Esqueleto de un Exploit

  class Metasploit3 < Msf::Exploit::Remote
     include Msf::Exploit::Remote::TCP
     def initialize
          super(
              'Name'          => 'Modulo Exploit Simplificado',
              'Description'   => 'Este modulo envia un payload',
              'Author'        => 'Mi nombre aqui',
              'Payload'       => {'Space' => 1024, 'BadChars' => “\x00”},
              'Targets'       => [ ['Automatic', {} ] ],
              'Platform'      => 'win',
          )
          register_options( [
              Opt::RPORT(12345)
          ], self.class)
     end
     # Conecta al puerto, envia el payload, manejalo, desconecta
     def exploit
          connect()
          sock.put(payload.encoded)
          handler()
          disconnect()
     end
  end

Definiendo Pruebas de Vulnerabilidad

Aunque se ejecute raramente, se deberia definir un metodo llamado check() en tus modulos exploit siempre que sea posible.

  • El metodo check() verifica todas las opciones excepto los payloads.
  • El proposito de realizar el chequeo es determinar si el objetivo es vulnerable o no.
  • Devuelve un valor Check definido.

Los valores de retorno para check() son:

       CheckCode::Safe - no explotable
       CheckCode::Detected - servicio detectado
       CheckCode::Appears - version vulnerable 
       CheckCode::Vulnerable - confirmado
       CheckCode::Unsupported - este modulo no soporta check

Metodo check() de ejemplo

  def check
    # conecta para obtener el banner FTP
    connect
    # desconecta ya que ha sido cacheado como self.banner
    disconnect
        case banner
         when /Serv-U FTP Server v4\.1/
              print_status('Encontrada version 4.1.0.3, explotable')
              return Exploit::CheckCode::Vulnerable
         when /Serv-U FTP Server/
              print_status('Encontrada una version desconocida, pruebala!');
              return Exploit::CheckCode::Detected
         else
              print_status('No hemos podido reconocer el banner del servidor')
              return Exploit::CheckCode::Safe
    end
    return Exploit::CheckCode::Safe
  end



© Offensive Security 2009

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

resume writing service

Herramientas personales

PHP Error Message

Fatal error: Call to undefined method Html::closeElement() in /home/a9477322/public_html/wiki/skins/MonoBook.php on line 228

Free Web Hosting