Auditoría y CTF

Estrenamos Web | Solución Reto y Análisis de Ataques

 

Internet Theft - a hooded man looking at computer screen using magnifying glass

Buenas a todos Hackers!!

Hace un par de días, anunciamos en nuestras redes sociales un gran cambio en Fwhibbit…

Por ello, y dado que últimamente muchos de los colaboradores del blog nos hemos aficionado a esto de los CTF, no se nos ocurrió mejor manera de adelantar la noticia que realizando un reto en el cual pudiera participar todo el mundo.

La noticia, se encontraba al final del reto. Todo el que quisiera enterarse antes de lo previsto, debía capturar la FLAG y descifrarla. Pero bueno, esto ya no es un secreto, y como habréis notado todos, podemos confirmar que ESTAMOS DE ESTRENO!!!

Y sí, tras un par de meses pensándolo, finalmente hemos decidido realizar la migración a WordPress por lo que ya disponemos de nuestro propio dominio y a partir de ahora, esta es nuestra página web.  Desde aquí, aprovecho para felicitar a Naivenom y Alejandro (@_metalex), ya que esto no habría sido posible sin su esfuerzo y dedicación.

 

SOLUCIÓN AL RETO:

El reto ha sido creado por Álvaro (@alvarodh5) y por mí (@djurado9) incluyendo partes de esteganografía y un poco de crypto. A continuación voy a explicaros en que consistía, y cual es la manera más sencilla y directa para resolverlo.

En primer lugar, disponemos únicamente de la siguiente URL: http://137.74.44.236:8080/

Según accedemos a la URL del reto, observamos la siguiente página:

1

 

A priori, no se ve nada extraño, es una simple página web. Para encontrar la primera pista, simplemente bastaba con inspeccionar el código fuente, con lo que sacaríamos la siguiente información:

2

Como podemos ver, tenemos varios comentarios en el código fuente. El más llamativo nos indica que descarguemos los datos interceptados, que se encuentran en el fichero agh.zip, por lo que bastaba con poner la siguiente ruta http://137.74.44.236:8080/agh.zip para descargar un archivo comprimido.

A partir de aquí, ya no era necesaria la interacción con la página web, la única pista que se daba era el mensaje: «Sent by RobOT 13/13/13», que utilizaremos más adelante.

Revisamos también, el archivo robots.txt

xd

Obtenemos una pista que nos ayudará bastante en el siguiente paso del reto.

Muchos de vosotros habéis intentado atacar al servidor, realizando todo tipo de escaneos, denegaciones de servicio, inyecciones de código pero esta no era la finalidad del reto.

Tras descomprimir el fichero, obtenemos un documento de agh.docx (Microsoft Word), y su contenido es el siguiente:

 

12

Lo único llamativo a simple vista es una cadena alfanumérica. El comienzo de la cadena «==» nos daba una pista de lo que era este texto: texto codificado en base64 e invertido.

Invertimos la cadena y decodificamos, ya sea a través de páginas online como: https://www.base64decode.org/ o a través de terminal.

5

Este texto no era más que una distracción. Lo que realmente había que hacer, era extraer la información oculta en el documento. Como ponía en robots.txt, debíamos tratar al fichero .docx como si fuese un .zip.

Para ello, lanzamos la herramienta binwalk (herramienta muy utilizada en esteganografía para la identificación y extracción de archivos) de la siguiente forma:

  • binwalk -Me agh.zip  (el parámetro -Me se utiliza para extraer recursivamente).

6

 

Tras ejecutar este comando, extraemos del documento un archivo llamado intercept.jpg que será nuestro nuevo objetivo.

Esta es la imagen tras extraerla:

logo_ctf

Para continuar con el reto, podríamos haber escondido información en determinados xeles de la imagen, o haber jugado con el código RGB de la misma, pero nos parecía demasiado, por lo que el siguiente paso es mucho más simple.

En este caso, habíamos escondido un archivo comprimido (.zip) dentro de la imagen y para extraerlo, bastaba con repetir el proceso anterior utilizando binwalk.

 

7

Tras este proceso, podemos ver como aparece un fichero .zip dentro de la imagen, que a su vez contiene un fichero flag.txt…nos vamos acercando!

En este punto, intentamos abrir el fichero comprimido, pero lógicamente se encuentra protegido con contraseña:

8

Utilizamos fcrackzip para realizar un bruteforce al archivo (.zip), utilizando el famoso diccionario rockyou.txt y en cuestión de 2 segundos lo tenemos! La contraseña es: qwerty

9

Ya tenemos acceso al fichero flag.txt. Lo abrimos y nos encontramos lo siguiente:

10

Para finalizar el reto, había que descifrar el mensaje. Aquí es donde volvemos a una de las pistas iniciales del código fuente de la web: «Sent by RobOT 13/13/13»  –> ROT-13

ROT-13:  es una variante del cifrado César en el cual se sustituye cada letra por la letra que se encuentra 13 posiciones por delante en el alfabeto.

11

FLAG: We decided to change our domain, now you can find us in: fwhibbit_flag{https://fwhibbit.es}

 

ANÁLISIS DE ATAQUES:

Pasamos a la parte de análisis de todos los ataques recibidos en el servidor:

Ante todo, dejar claro que no era necesaria utilizar ninguna tool automatizada en la web, de hecho, alguno se pasó de la raya.

Recibimos 8 ataques de denegación de servicio, por los cuales, el proveedor tuvo que activar la mitigación:

1

Mencionar también a estas personas, que no conseguisteis vuestro objetivo, pues nuestra CPU no subió más del 10% en los dos días del reto.

Como muchos habrán visto, el reto estaba alojado en un apache instalado en el puerto 8080, mucha gente, centró su atención en el puerto 80 (no se porqué), pero obviamente, sin éxito, ya que era un honeypot, aunque nos dejan cosas tan graciosas como estas:

 

1

2

Claro que si “Rumpelstiltsquin”, sigue soñando 😀

3

No, así tampoco, ¿no te planteas que quizás no sea vulnerable?

4

5

Tampoco faltaron los que lanzaron sqlmap por probar suerte:

6

 

Los que lo odian:

7

 

Y los que se lo toman con humor:

8

 

En total recibimos 185.813 ataques en el puerto 80, mira que sois malos…

9

Este es el TOP de atacantes: (Tranquilos, vuestra identidad se queda con nosotros)

10

 

Dejando de lado el tema del puerto 80, vayamos al 22, en el cual, había otro honeypot, dejando registrado gran cantidad de ataques:

1

 

2

3

 

Creemos que Rubén debería practicar más con Linux, ¿estás seguro de que querías poner eso?

4

Siendo la contraseña root:admin/admin:root, no creo que os haya costado mucho entrar, ¿no?

5

También hemos podido comprobar que os gusta atacar con proxys. Privacidad ante todo, ¡claro que si!

6

Mencionar el comando más útil que vi, buena idea, pero servidor equivocado.

7

Enhorabuena a los que atacaron el SSH de verdad:

464 ataques registrados y aunque no consiguieron entrar, al menos se percataron de que no corría bajo el 22, bien por lanzar NMAP!

8

 

Ahora, analizaremos el número de banneos de IPs por ataques con tools automáticas:

9

Y «solo» son 7875 IPs banneadas automáticamente por fail2ban.

Para concluir, analizaremos los logs de apache y nos sorprende con nada más que con un millón y medio de peticiones recibidas en nuestro puerto 8080, como ya habéis podido comprobar, no hacía falta lanzar tools.

10

 

Esperamos que os haya gustado tanto el reto, como el secreto que guardaba en su interior. Pronto más y mejor ^^

Un saludo,

Álvaro y Diego.

9 comentarios en “Estrenamos Web | Solución Reto y Análisis de Ataques

  1. Enhorabuena por el reto y el blog, espero q dejéis más retos
    Os sigo desde hace poco por Twitter
    PD. Soy Ruben ?

  2. jajaja menuda investigacion muchachos! felicidades, muy bueno el reto lástima que llegué tarde pero viendo la solucion me deja a la espera de más 😉

    Saludos a todos

    1. me alegro que te haya gustado! No te preocupes por el reto, próximamente anunciaremos otra novedad, que os va a gustar mucho!!
      Gracias por el feedback 😉

  3. No puedo ser imparcial, pero madre mia como os lo habeis currado! Mi enhorabuena chicos. Puede decirse que casi que ni lo intente porque soy muy novata pero espero poder participar en los proximos.
    Pd: me ha encantado la parte de los ataques.
    Sois unos cracks

  4. Yo puse el FuckSQLmap. Todos los logs q genera, peticiones inservibles, etc, etc. Queda bastante en evidencia en los comentarios del server en el puerto 80.
    Para aprender? mmm no creo que sirva para eso tampoco. Tal es asi que al final hice mi propia herramienta. En fin… odio eterno a SQLmap.
    Muy bueno el reto! Me trabe un poco con la contrasenia, pensando que era algo derivado de las pistas hasta que tome el camino del diccionario.
    Un saludo desde Argentina!
    Juan

  5. Yo saqué la foto y pensaba que ya lo tenía done (mi primer ctf, cosas de noob)
    Menos mal que un compi me dijo que había más que sacar de ahí, pero aun así me quedé en el último paso sin poder descifrarlo. Estoy verdísimo en criptografía lol.

    Gran reto!

    PD: Si no tenéis la tool a mano los .docx también se pueden tratar como un zip normal. Basta con cambiarles la extensión.

  6. Increíble trabajo, gente, ojalá organizáramos más actividades de este tipo, de forma educativa y ordenada.
    MUCHAS gracias por vuestro trabajo desinteresado, valéis MUCHO!
    Personalmente, ha sido una pena que se solapara con el MOOC de MU, le he dado más prioridad y por eso no os he podido dedicar el tiempo que me hubiera gustado.

Los comentarios están cerrados.