viernes, 31 de agosto de 2012

ParameterFuzz v0.5 By 4n0nym0us


Me puedo describir, aunque seguro no tan bien ni tan claro como lo haría mi madre, pero si en una palabra se recordasen aquellos años mozos que marcarían mi infancia, esa sería sin lugar a dudas la de “despistado”. Parece que aprendí la lección, o simplemente fueron los años, ya casi 24 palos en Noviembre, se notan, o sino ¡díganselo a mi calva!

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:



PD:Espero descarguen y avisen de posibles fallos e ideas.
PD2:¡Compartan sus Diccionarios!

Saludos 4n4les! ;)

11 comentarios:

  1. Muy bueno Germán, hacía tiempo que no te leía.
    Un saludo!

    ResponderEliminar
  2. Excelente Germán, que Bueno!!!!
    Un saludo y que pases buen fin de semana XD

    ResponderEliminar
  3. Muchas gracias Villaveiran! me alegro de que te gustase!

    Saludos y buen finde! =D

    ResponderEliminar
  4. De lujo hombre, tenia mucho visitando la web pero estuvo por asi decirlo un tiempo sin buenas nuevas, espero que se vaya actualizando un poco mas constante.

    Gracias por la herramienta German, otra cosa, solo funciona el boton Get, supongo que cuando actualices agregaras lineas de codigo en post, verdad?, cuales metodos u ataques tienes en mente agregarle a esta nueva herramienta?.

    Otra cosa, no la he usado aun pero esta herramienta hace todo eso que vos detalla de forma anonima?, es decir, quedas ligado al ataque que hacemos o quedamos sin rastro alguno una vez que ejecutamos el mismo?

    Saludos!

    ResponderEliminar
    Respuestas
    1. Hola Elynx!

      En la última versión que actualmente estoy trabajando en ella, se arreglaron, eliminaron y agregaron nuevos cambios, además del método POST. Supongo que para el fin de semana que viene, aparecerá la nueva actualización si no desaparezco el fin de semana!

      La herramienta está diseñada de cara a un auditor de seguridad, en caso de que no tenga que utilizar ningún proxy, ya que las peticiones no se envían de forma anónima. Si estás interesado puedes probar con Proxys online o alguna VPN. Por otro lado, cuando termine la última actualización es posible que incorporase un panel de configuración para Proxys.

      Un Saludo!

      Eliminar
    2. Ufff!.. pues de lujo hombre, al dudar de la interfaz grafica de tu aplicacion, supongo que esta hecha en .net verdad?, es decir, tenemos que tener alguna version de .net framework instalada en nuestro sistema?.

      De lujo hombre, si que vos sos todo un "Hacker".

      Gracias y ansioso por la nueva y actualizada version.

      Eliminar
  5. Hola Germán, hace tiempo que sigo tus entradas en el blog, algunas MUY interesantes.

    Ya me gustaría tener las ideas que salen de tu cabeza y poder desarrollaras (he programado algunas aplicaciones bastante simplonas. Me falta mucho camino por recorrer).

    La he probado un poco por encima y veo que no se le puede pasar una URL con varios parámetros (eg. ?from=1&to=) ya que elimina los 'ampresand' [&]. Estoy haciendo algo mal? O_o

    De nuevo te felicito y agradezco por los conocimientos/herramientas que nos brindas en esta web. Tan sólo te pido una cosa... no dejes de escribir, o al menos no hasta dentro de muuucho tiempo :)

    PD: con que lenguaje/IDE está desarrollado? :P

    ResponderEliminar
    Respuestas
    1. Hola s7evin!!

      Muchas gracias! no te preocupes por los ampersand, realmente las peticiones se envían con ellos. Es cierto que en las cajas de texto donde aparecen se eliminan, pero gracias a tu aviso ya está corregido para la nueva versión!

      Está desarrollado con Visual Basic 6 :)

      Eliminar
    2. jejeje, disculpa German, obvia el mensaje de mas arriba que comente si estaba desarrollado en .net. Lei este mensaje donde citas claramente que lo programaste en VB 6 y pues de lujo, la pregunta en cuestion y que me tiene con algo de curiosidad es, porque visual basic 6 especificamente, habiendo tantos lenguajes de programacion actualizados, en especial el mismo basic pero en .net?

      Y como dice s7evin, no te ausentes por tanto tiempo hombre, manten siempre el blog con contenido jugoso y con calidad de manera frecuente :D

      Saludos!

      Eliminar
    3. Hola Elynx!

      La verdad es que me gusta VB6, llevo tiempo jugando con él y bueno, es posible que de un salto al .NET, aunque sea con C#.

      Saludos! :)

      Eliminar