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
Herramientas personales