Una idea de esas, de las que a uno tan solo se le pueden ocurrir cuando está por irse a dormir, de fiesta o mejor dicho.... en el momento más inesperado, es la que se cruzó por mi mente hará un mes y raudo y velóz, saqué mi smartphone para apuntar en “notas”, algo que hoy llamaría ParameterFuzz.
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:
[Enlace externo eliminado para invitados]
[Enlace externo eliminado para invitados]
PD:Espero descarguen y avisen de posibles fallos e ideas.
PD2:¡Compartan sus Diccionarios!
[Enlace externo eliminado para invitados]
Saludos 4n4les!