Encuentros en la Tercera Fase: UFONet 0.3b – Abduction

El sol salió anoche y me cantó. El firmamento azul nocturno se llenó de oscuros agujeros luminosos, quizás la tela oscura que nos cubre esté roída, quizás nos observan desde allá arriba, a lo mejor las monitorizaciones de la NSA no son nada en comparación con los que están ahí fuera, quizás, quizás… Y mientras noctivagamos en esos umbrales entre ondas alfas y betas no tenemos ni idea de nada.

Y mientras tanto… UFONet era lanzado al ciberespacio.

———————————————-Introducción por Lulzcat——————-

ufonet.banner

Acaba de lanzarse UFONet 3.0b una herramienta que permite lanzar ataques DDoS (Distributed Denial of Service) contra un objetivo, a través del uso de vectores «Open Redirect» en sitios web de terceros.

La herramienta se aprovecha de servicios considerados legítimos para reconducir el tráfico y concentrarlo en un único punto.

Los siguientes enlaces describen la vulnerabilidad de la que se aprovecha:

CWE-601:Open Redirect

OWASP:URL Redirector Abuse

Entre sus característica principales, permite buscar «zombies» entre los resultados de Google, así como, utilizar proxies para que el atacante no realice sus peticiones de forma directa.

Visita la página web oficial de la herramienta para ver más detalles:

http://ufonet.sf.net

Por cierto, la versión actual se ha bautizado con el nombre de: Abduction ;-)

Descarga

Paquete: UFONet-v0.3b(.zip)

GitHub: git clone https://github.com/epsylon/ufonet

Instalación

UFONet está hecha en python, por tanto, es multiplataforma. Únicamente utiliza la siguiente librería externa:

   python-pycurl - Python bindings to libcurl

En sistemas Debian, Ubuntu, etc, para instalarla hay que lanzar:

   sudo apt-get install python-pycurl

Ejemplos

Buscar ‘zombies’:

Para buscar posibles páginas web vulnerables a ‘Open Redirect’ es posible utilizar Google (dorking). Los parámetros más comunes suelen ser similares a los siguientes:

    'proxy.php?url='
    'check.cgi?url='
    'checklink?uri='
    'validator?uri='

Para comenzar nuestra búsqueda, podemos utilizar el siguiente comando:

    python ufonet -s "proxy.php?url="

Si además queremos controlar el número máximo de resultados, por ejemplo para mostrar los 20 primeros, podemos añadirle lo siguiente:

    python ufonet -s "proxy.php?url=" --sn 20

Al finalizar el proceso de búsqueda, UFONet nos preguntará si queremos comprobar que los resultados obtenidos son de sitios vulnerables:

     Wanna check if they are valid zombies? (Y/n)

Del mismo modo, al terminar el proceso, y habiendo descartado los falsos positivos, nos preguntará si queremos guardar la lista en nuestro «ejercito» particular:

     Wanna update your list (Y/n)

Si respondemos que sí (Y), los nuevos «zombies» serán añadidos al fichero: zombies.txt

Probar la botnet:

UFONet permite probar las vulnerabilidades ‘Open Redirect’ en las páginas web que tenemos almacenadas en el fichero: zombies.txt

Para hacerlo, lanzamos el siguiente comando:

   python ufonet -t zombies.txt

De igual manera que cuando hacemos una búsqueda, al finalizar las pruebas, nos preguntará si queremos actualizar nuestra lista.

Atacar un objetivo:

Una vez tenemos nuestra lista de zombies, es posible comenzar un ataque DDoS contra un objetivo determinado.

Para hacerlo, podemos decirle el número de veces que queremos que cada zombie ‘muerda’ al objetivo. Por ejemplo, para repetir el ataque durante 10 rondas:

   python ufonet -a http://www.target.com -r 10

Ésto significa que, si tenemos una lista de 1000 ‘zombies’, y cada uno realiza 10 «mordiscos», tendremos un total de 10.000 peticiones contra el objetivo.

Si no ponemos ningún parámetro para definir las rondas, todos realizarán una única petición.

Del mismo modo, es posible hacer más efectivo el ataque, seleccionando un punto concreto del objetivo donde realizar las peticiones. Por ejemplo, una imagen o fichero que ocupe mucho, una película de video, etc.. Para realizarlo usaremos el siguiente parámetro:

   python ufonet -a http://target.com -b "/images/big_size_image.jpg

Otros parámetros destacables son la posibilidad de utilizar proxies para conectarse a los zombies. También es posible falsear las cabeceras HTTP y configurar otras opciones de conexión. Si deseas obtener información detallada de los procesos que va realizando la herramienta es posible utilizar la opción de verbose (-v).

La herramienta es efectiva debido a que evita la caché en los sitios objetivos, así como, tampoco deja rastros en los logs de las víctimas, complicando realmente las tareas de detección del origen.

Ya sabes, úsala con propositos educativos. ;-)

Compartir

14 Comentarios

  1. Llevo un par de semanas probandola y he estado haciendo un script en bash para buscar urls vulnerables. No es tan bonito, pero se pueden meter todos los dorks que quieras y se puede buscar en miles de url x)

  2. Ya está metido :D
    No me juzguéis mucho, no está muy trabajado. Probablemente lo modificaré para modularlo y poder usarlo con otros programas, cómo sqlmap. Pero ya llegará. Cualquier duda o mejora será bienvenida.

    Epsylon, una cosa referente a la opción de dorkear. Aún no he probado la nueva versión, pero me han comentado que sigue pasando lo que me pasó a mi. Cuando coges urls dorkeadas de cualquier buscador, hay veces que las páginas en cuestión ya no existen. Cuando eso pasa, pycurl devuelve un error parecido a este: «pycurl could’nt resolve host blablabla». Intenté arreglarlo, pero no sé mucho de python. Tal vez puedas mirarlo.

    1. Sí, ya me han comentado Drymer. Teóricamente debería de pasar a la siguiente url. Estoy a la espera de un pastebin con la salida para ver exactamente que pasa. A mi de momento no me ha dado ese fallo. De todas maneras, tiene pinta de ser fácil de solventar. Gracias.

      1. Cuando miré el código me di cuenta de que realmente estaba controlado, con un try y except, no me cuadró demasiado. He tradado de reproducir el error pero no he sido capaz, así que no he dicho nada x)

Deja una respuesta a Rlz Cancelar respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax