Escribiendo tu propio Scanner
De www.metasploit-es.com.ar
ESCRIBIENDO TU PROPIO SCANNER
Hay veces en que es posible que necesite un escáner específico, o que tenga actividad de escaneo que pueda ser llevada a cabo dentro de Metasploit. Sería más fácil para los propósitos de secuencias de comandos que usar un programa externo. Metasploit tiene un montón de características que pueden ser muy útiles para este propósito, como el acceso a todos los módulos de la explotación de clases y métodos, soporte nativo para servidores proxy, SSL, la información, y construccion. Piense en los casos en que es posible que tenga que encontrar todas las instancias de una contraseña en un sistema, o una búsqueda de un servicio personalizado. Por no hablar, es bastante rápido y fácil de escribir el escáner personalizado.
Vamos a utilizar este escáner TCP muy simple que se conecta a un host en un puerto por defecto de 12345 que se puede cambiar a través de las opciones del módulo en tiempo de ejecución. Al conectar con el servidor, se envía 'HELLO SERVER', recibe la respuesta y lo imprime junto con la dirección IP de la máquina remota.
require 'msf/core'
class Metasploit3 < Msf::Auxiliary
include Msf::Exploit::Remote::Tcp
include Msf::Auxiliary::Scanner
def initialize
super(
'Name' => 'My custom TCP scan',
'Version' => '$Revision: 1 $',
'Description' => 'My quick scanner',
'Author' => 'Your name here',
'License' => MSF_LICENSE
)
register_options( [
Opt::RPORT(12345)
], self.class)
end
def run_host(ip)
connect()
sock.puts('HELLO SERVER')
data = sock.recv(1024)
print_status("Received: #{data} from #{ip}")
disconnect()
end
end
Guardamos el archivo en nuestro ./modules/auxiliary/scanner/ como 'simple_tcp.rb' y cargar hasta msfconsole. Es importante tener en cuenta dos cosas aquí. En primer lugar, los módulos cargados en tiempo de ejecución, por lo que nuestro nuevo módulo no aparecerá a menos que reinicie nuestra interfaz de elección. La segunda es que la estructura de carpetas es muy importante, si nos hubiera guardado nuestro escáner en ./modules/auxiliary/scanner/http/ se mostraría en la lista de los módulos de 'scanner/http/simple_tcp'.
Para probar el escáner, configure en netcat como oyente el puerto 12345 y pipe en un archivo de texto para que actúe como la respuesta del servidor.
root@bt4:~/docs# nc -lnvp 12345 < response.txt listening on [any] 12345 ...
A continuación, seleccione el módulo de escáner nuevo, configure sus parámetros, y ejecútelo para ver los resultados.
msf > use scanner/simple_tcp msf auxiliary(simple_tcp) > set RHOSTS 192.168.1.101 RHOSTS => 192.168.1.101 msf auxiliary(simple_tcp) > run [*] Received: hello metasploit from 192.168.1.101 [*] Auxiliary module execution completed
Como se puede ver de este ejemplo sencillo, este nivel de versatilidad le puede ser de gran ayuda cuando se necesita algo de código personalizado en el medio de una prueba de penetración. El poder del marco y de código reutilizable realmente brilla a través de aquí.
© Offensive Security 2009
Original by www.offensive-security.com Traslated by tundervirld