En medio de una auditoría, cualquiera
diría que pasar un scanner de
vulnerabilidades, hacer un crawling o simplemente tirar
de fuzzing de directorios y ficheros, para conseguir un árbol
de directorios y rutas a las que atacar, es lo más típico que
podemos realizar. Pero si centrásemos nuestros objetivos en atacar
lo que verdaderamente hace explotar en añicos una página web, ya
sean ataques de SQL injection, Cross Site Scripting, modificación de
parámetros en Cookies, Local File Include y demás técnicas, nos
daremos cuenta que todas tienen algo en común... ¡Los
parámetros!
La herramienta
esencialmente se basa en descubrir aquellos parámetros de
aplicaciones web, que puedan estar escritos en el código de la
página, sin utilizarse o encontrarse previamente con otras técnicas
de recolección de información que se hayan utilizado. Para
conseguir la obtención de estos parámetros, utilizaremos ataques de
fuzzing mediante un diccionario con los más comunes vistos en
internet, a merced del auditor que podrá incorporar las palabras que
él desee en cada auditoría. Este proceso tiende a ser tedioso, ya
que a diferencia del típico ataque de fuzzing a ficheros o
directorios, los mensajes de error o válidos devueltos por los
servidores atacados, no son controlables de manera automatizada. A
primera vista puede ser algo parecido al Repeater de Burp
Suite, aunque incorporando el Intruder a modo Sniper
para ataques por diccionario.
Ejecutando
ParameterFuzz.exe, se abrirá un formulario de tan solo dos botones.
Estos botones serán de gran importancia, ya que decidiremos el tipo
de peticiones a enviar, ya sean mediante el método GET o POST.
Actualmente tan solo se encuentra desarrollado el método GET, así
que más adelante veremos actualizaciones para completar la
herramienta y mientras probaremos su funcionamiento.
Presionando en GET,
se abrirá la parte jugosa para el auditor, donde se colocarán en
cada caja de texto correspondiente la construcción de una petición.
En el campo Host se
incluirá la página a auditar, junto al campo puerto dependiendo de
en cual se encuentre dicha página, por defecto 80 para peticiones
HTTP. En el siguiente campo, se incluirá tal y como aparece en la
imagen anterior, la ruta donde se encuentra el archivo web, en caso
de contener varios parámetros, estos se pueden concatenar
agregándolos a continuación.
En la segunda fila
de ParameterFuzz, encontraremos en primera instancia el campo
Parámetro, donde podrán incluirse de forma manual otros parámetros
que no aparezcan en el diccionario sobre la caja de texto,
destildando el CheckBox marcado por defecto que la bloquea. En esta
opción tenemos un diccionario automático, que saltará a la
siguiente palabra conforme presionemos el botón de “Enviar
petición” o haciendo clic sobre los botones “+” y “-”, que
nos permitirán navegar por el diccionario.
Los botones
Reiniciar, dará la opción de volver a la primera palabra del
diccionario de forma cómoda.El campo Valor, es muy similar al
anterior, aunque con opciones para incluir valores numéricos
incrementales o inyecciones que nos permitirán explotar
vulnerabilidades web. Una caja de texto nos avisará del tipo de
ataque lanzado en cada petición y de la finalización de los
diccionarios. El campo Cookie, podremos utilizarlo como complemento a
la parte baja de ParameterFuz, donde se encontrará un botón
de descarga, para los HTML visualizados.
Para empezar la
auditoría, el campo Parámetro, viene habilitado de forma
automática, ya que lo primero será encontrar cambios entre petición
y petición sobre la página, provocados por respuestas de parámetros
que no se esperan. Después se dará paso al envío de valores,
intentando vulnerar la web como aparece en la siguiente imagen con el
parámetro “q=”, pasando a la aplicación web un valor que
provoca una Inyeccion HTML, incluyendo una imagen en la página.
Una vez finalizado
el diccionario, aparecerá un aviso como muestra la siguiente imagen.
Para un correcto
funcionamiento de la aplicación, ambos diccionarios deberán de
contener al final la cadena “###...###”.
En el caso del
diccionario de inyecciones, deberá cumplir un último requisito para
un funcionamiento óptimo, este será utilizado para diferenciar
entre los diferentes tipos de ataques. En la siguiente imagen se
muestran las delimitaciones.
Tendremos la
posibilidad de mandar peticiones con Cookies en auditorias
dentro de paneles privados o similares. En caso de querer utilizar la
forma más rápida, deberemos presionar sobre el botón “>”
que aparece en un círculo rojo en la siguiente imagen, así limpiar
los campos e introducir la página con mayor comodidad.
También podremos
agregar la Cookie de forma manual, utilizando la caja de texto del
campo Cookie, presionando los botones que aparecen marcados de forma
ordenada en la siguiente imagen. En esta opción, se utilizará el
componente de winsck.ocx, perteneciente a las librerías de
Microsoft Visual Studio, con lo que deberán tenerlo debidamente
instalado en su sistema.
Las respuestas de
parte del servidor, en esta opción, se descargarán en la raíz del
ejecutable utilizando un archivo llamado “Respuesta.html” desde
el cual se podrán visualizar las vulnerabilidades encontradas. Se
recomienda su eliminación para seguir utilizando la función de
“Volcado HTML Local” sin machacar archivos.
Nos servirá de
gran ayuda, para por ejemplo auditar archivos PHP sin respuestas
aparentes, encontrados en servidores que muestran sus archivos
alegremente, permitiéndonos navegar por sus árboles de directorios.
Y en caso de contar
con buena suerte...
Descarga:
Hola citizen! Ya está publicada la versión 1.1! y dentro de poquito va ha salir la 1.2 con nuevas mejoras y correciones! :)
ResponderEliminarSaludos!
Muchas gracias por la info, ya he visto algo pero no me he puesto con ello todavía.
ResponderEliminarUn saludo.