Esta web utiliza cookies, puedes ver nuestra política de cookies aquí. Si continuas navegando estás aceptándola

Metasploit module


Metasploit es un framework de pentesting, engloba desde la fase de reconocimiento de objetivos/servicios al desarrollo de exploits completos. En este artículo explicaré como programar un módulo básico, este se conectará a un puerto, leerá un string y escribirá otro en ese mismo socket.

 

Creamos la estructura de directorios necesarios:

mkdir -p $HOME/.msf4/modules/auxiliary/scanner

NOTA: Los módulos que no tienen payload(scanners), son auxiliares

Esribimos un escaneador de puertos básicos que enviará un string y leerá otro al realizar la conexión:

vi $HOME/.msf4/modules/auxiliary/scanner/simple_tcp.rb
require 'msf/core'

class MetasploitModule < Msf::Auxiliary

      include Msf::Exploit::Remote::Tcp
      include Msf::Auxiliary::Scanner

      def initialize(info = {})
                super(update_info(info,
                        'Name'           => 'TCP Scanner',
                        'Description'    => %q{
                                        Simple TCP Scanner coded by kr0m
                                             },
                        'Author'         => [ 'Kr0m' ],
                        'Version'        => '$Revision: 0.1 $',
                        ))

                        register_options(
                        [
                                Opt::RPORT(12345)
                        ], self.class)
       end

        def run_host(ip)
                connect()
                greeting = "HELLO SERVER"
                sock.puts(greeting)
                data = sock.recv(1024)
                print_status("Received: #{data} from #{ip}")
                disconnect()
        end
end

Metemos la string en un fichero y ponemos a la escucha un netcat con dicho fichero:

echo "123" > response.txt
nc -lnvp 12345 < response.txt

Lanzamos nuestro escaner desde metasploit:

msfconsole
msf > search simple_tcp

Matching Modules
================

   Name                          Disclosure Date  Rank    Description
   ----                          ---------------  ----    -----------
   auxiliary/dos/tcp/synflood                     normal  TCP SYN Flooder
   auxiliary/scanner/simple_tcp                   normal  TCP Scanner

msf > use auxiliary/scanner/simple_tcp
msf auxiliary(simple_tcp) > set RHOSTS 192.168.20.27
RHOSTS => 192.168.20.27
msf auxiliary(simple_tcp) > run
[*] 192.168.20.27:12345   - Received: 123
 from 192.168.20.27
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Podemos ver que se ha recibido 123 en metasploit y netcat ha recibido HELLO SERVER:

nc -lnvp 12345 < response.txt
listening on [any] 12345 ...
connect to [192.168.20.27] from (UNKNOWN) [192.168.20.27] 34155
HELLO SERVER

Se trata de un ejemplo muy básico pero a modo de introducción es muy útil tener un módulo base desde el que partir para módulos mas complejos.


Autor: Kr0m -- 06/01/2018 05:07:57