Hacking con python

Page 30

Capítulo II. Fuzzing y depuración de software

31

que el fuzzer inyectará cadenas malformadas y patrones que en otras aplicaciones similares con vulnerabilidades, suelen disparar violaciones de acceso. En el caso de Ability Server, el siguiente script enseña los casos de prueba que pueden interrumpir el funcionamiento normal del servidor. Script: sulleyAbilityServerRequesLpy from sulley import * s_initialize("user") s_static("USER") s_delim(" ",fuzzable=false) s_static("ftp") s_static("\r\n") s_initialize("pass") s_static("PASS") s_delim(" ",fuzzable=false) s_static("ftp") s_static("\r\n") s_initialize("stor") s_static("STOR") s_delim(" ",fuzzable=false) s_string("AAAñ") s_static("\r\n")

Como se puede apreciar, las principales primitivas utilizadas son sjnitialize, s_static, s_delim y sstrin g . La primitiva sjnitialize se encarga de definir un bloque ejecutable del caso de prueba. En el caso del script anterior, se han definido los bloques correspondientes a la conexión inicial con el servidor FTP, el ingreso de un usuario y contraseña; en donde se asume que el usuario es “ftp ” y la contraseña es “ftp ” y el bloque correspondiente a la ejecución del comando STOR contra el servidor FTP una vez se ha completado el proceso de autenticación. Ability Server en su versión 2.34 es conocido por contener fallos de implementación en el comando STOR, por ese motivo, el fichero de casos de prueba anterior solamente se centra en realizar el proceso de autenticación y ejecutar las pruebas correspondientes utilizando el comando STOR. Por otro lado, los puntos de entrada de un caso de prueba, se definen principalmente con la primitiva s string y el argumento fuzzable es el encargado de indicarle al proceso de fuzzing cuándo una primitiva concreta debe asumir un valor estático y no debe ser tenida en cuenta en la generación de los valores de fuzzing. Después de declarar los casos de prueba utilizando la API de Sulley, el siguiente paso es crear el fuzzer que se encargará de lanzar las pruebas y utilizar Sulley Framework para la generación automática de los valores “fuzzables” sobre las entradas definidas. Script: sulley AbilityServerFuzzer.py from sulley import *


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.