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