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! ;)
Muy bueno Germán, hacía tiempo que no te leía.
ResponderEliminarUn saludo!
Gracias Pr0ph3t! espero traer cosas más a menudo!
EliminarUn Saludo! :)
Excelente Germán, que Bueno!!!!
ResponderEliminarUn saludo y que pases buen fin de semana XD
Muchas gracias Villaveiran! me alegro de que te gustase!
ResponderEliminarSaludos y buen finde! =D
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.
ResponderEliminarGracias 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!
Hola Elynx!
EliminarEn 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!
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?.
EliminarDe lujo hombre, si que vos sos todo un "Hacker".
Gracias y ansioso por la nueva y actualizada version.
Hola Germán, hace tiempo que sigo tus entradas en el blog, algunas MUY interesantes.
ResponderEliminarYa 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
Hola s7evin!!
EliminarMuchas 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 :)
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?
EliminarY 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!
Hola Elynx!
EliminarLa 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! :)