Download Utilizar Fuzzing para Encontrar Desbordamientos de Buffer

Document related concepts
no text concepts found
Transcript
SEGURIDAD INFORMATICA – Laboratorio Práctico
Utilizar Fuzzing para Encontrar Desbordamientos de Buffer
El Fuzzing implica enviar datos deformados hacia las entradas de una aplicación, para luego
vigilar por comportamientos anómalos como una caída o mal funcionamiento. Esto indicaría el
incorrecto filtrado de las entradas hacia la aplicación, lo cual podría conducir a descubrir
vulnerabilidades explotables.
Para la siguiente demostración se utilizará la aplicación vulnerable de nombre "vulnserver" en
un sistema Windows 7.
Ejecutar vulnserver desde una consola en un Sistema Windows. En caso se requiera definir otro
puerto diferente al 9999 por defecto, escribirlo a continuación del comando.
C:\> vulnserver.exe
Desde Kali linux se establece una conexión hacia la dirección IP y Puerto TCP donde vulnserver
está en funcionamiento, utilizando la herramienta netcat.
# nc -nvv 192.168.0.X 9999
Sugiero revisar la sección “Fuentes” al final del presente escrito para obtener más información
sobre vulnserver.
El objetivo es tratar de identificar desbordamientos de buffer en algunos de los comandos
incluidos en vulnserver, y para esto se utiliza un script hecho en Python.
El script en Python crea buffers de diferentes tamaños y para cada comando de vulnserver se
utiliza una letra diferente para la creación de los diferentes buffers. De esta manera es factible
www.seguridadinformatica.pcecuador.com
http://bit.ly/cursoseguridadinformaticapcecuador
Pág. # 1
SEGURIDAD INFORMATICA – Laboratorio Práctico
identificar cuál de los comandos ha originado un desbordamiento de
buffer en la aplicación vulnerable.
Se procede a ejecutar el script en python.
En el Sistema Windows se muestra una ventana con el mensaje “vulnserver.exe dejó de
funcionar”.
www.seguridadinformatica.pcecuador.com
http://bit.ly/cursoseguridadinformaticapcecuador
Pág. # 2
SEGURIDAD INFORMATICA – Laboratorio Práctico
Para identificar cual de los comandos generó este comportamiento anómalo en vulnserver se
utiliza Immunity Debugger.
www.seguridadinformatica.pcecuador.com
http://bit.ly/cursoseguridadinformaticapcecuador
Pág. # 3
SEGURIDAD INFORMATICA – Laboratorio Práctico
Con vulnserver en funcionamiento, nuevamente se ejecuta el script en python.
En la ventana superior derecha se puede visualizar el contenido de los Registros ESP y EIP
definidos a 4A4A4A4A. Es decir estos registros han sido sobrescritos con el buffer enviado por
el script.
www.seguridadinformatica.pcecuador.com
http://bit.ly/cursoseguridadinformaticapcecuador
Pág. # 4
SEGURIDAD INFORMATICA – Laboratorio Práctico
El valor 4A en hexadecimal corresponde a la letra “J”, lo cual nos indica la existencia de un
desbordamiento de buffer utilizando el comando “GTER” de vulnserver. Ello no implica sea el
único comando vulnerable, sino ser el primero el cual generó un desbordamiento de buffer.
Lo siguiente sería identificar el tamaño exacto del buffer a sobrescribir, y de esta manera definir
una dirección válida en la cual se encuentre un payload o carga útil para aprovechar o explotar
esta vulnerabilidad.
Fuentes Recortadas:
http://bit.ly/Vulnserver
http://bit.ly/Immunity_Debugger
http://bit.ly/introducing-vulnserver
http://bit.ly/debugger/
www.seguridadinformatica.pcecuador.com
www.seguridadinformatica.pcecuador.com
http://bit.ly/cursoseguridadinformaticapcecuador
Pág. # 5