Escribir una Herramienta de Fuzzer para TFTP en Metasploit Framework

  • Posted on: 12 April 2016
  • By: ReYDeS

Uno de los aspectos más poderosos de Metasploit Framework es cuan fácil es hacer cambios y crear nuevas funcionalidades reutilizazndo código existente. Por ejemplo, como un simple código Fuzzer demuestra, se pueden hacer mínimas modificaciones a un módulo existente para crear un módulo Fuzzer. Estos cambios pasarán longitudes cada vez mayores al valor transportado del modo hacia el servicio 3Com TFTP para Windows, resultando en la acción de sobrescribir EIP.

El EIP (Extended Instruction Pointer) es el registro el cual apunta a la siguiente instrucción. Simplemente apunta hacia la dirección en la cual se ubica la instrucción. De tal manera si fuese factible sobrescribirla, se podría cambiar la dirección del flujo del programa, y ejecutar otras instrucciones. Es decir podemos tomar control del programa.

Se crea un archivo de nombre “3ComTFTPFuzzer.rb” en el directorio “/usr/share/metasploit-framework/modules/auxiliary/fuzzers/”.

Iniciar Metasploit Framework. Indicar la utilización del módulo, para luego solicitar su información.

> use auxiliary/fuzzers/3ComTFTPFuzzer
> info

Definir la dirección IP del objetivo a evaluar. Luego iniciar su ejecución.

> set RHOSTS 192.168 .0.X
> run

En el sistema Windows se ejecuta la herramienta Immunity Debugger, para enganchar el servicio 3Com TFTP.

El servicio atacado cae, pues mientras el módulo fuzzer en Metasploit Framework continúa su ejecución, llega un momento en el cual Inmunity Debugger hace una pausa en la ejecución del proceso, esto a razón de haberse sobrescrito el valor EIP con “41414141”.

En este escenario, si se le indica a Inmunity Debugger continuar la ejecución del programa enganchado, se presentará una ventana cuyo texto expone la imposibilidad de continuar debido al hecho de no ser factible leer la dirección de memoria 41414141. Se indica cambiar el EIP o pasar una excepción hacia el programa.

Si el proceso ha sido enganchado, debe ser desenganchado de Inmmunity Debugger, luego de lo cual el proceso terminará inadecuadamente. Con lo cual se cumple el objetivo de este módulo.

Fuentes:

https://www.offensive-security.com/metasploit-unleashed/simple-tftp-fuzzer/
http://www.immunityinc.com/products/debugger/
http://www.go4expert.com/articles/stack-overflow-eip-overwrite-basics-t2...

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Curso de Informática Forense