top of page
hackrocks.png
cookies

🍪 ¿QUIERES ALGUNA COOKIE?
 

🌐 https://hackrocks.com/challenges/start/wanna-some-cookies

Las cookies son fragmentos de datos que las web que visitamos pueden almacenar en nuestro navegador, de forma que puedan “recordarnos” la próxima vez que los visitemos.  

Por ejemplo, Amazon almacena en las cookies los artículos en los que mostramos interés, de forma que pueda adaptar los que nos ofrece, incluso si no hacemos login en la plataforma. 

Otras cookies importantes son las conocidas como “cookies de autentificación”, que guardan las credenciales de una cuenta (habitualmente cuando hacemos ‘Recuérdame’), y no tener que volver a hacer login cuando cerramos el navegador.

Basta de cháchara de momento. ¿Podrás conseguir acceder al área de administración de la siguiente web?

Para acceder al reto, haz click en el siguiente enlace: https://challenges.hackrocks.com/wanna-some-cookies



▶️ COMENZAMOS:

Accediendo a la URL que nos propone el ejercicio, nos encontramos con un mensaje que dice que "las credenciales han expirado".

Por el enunciado del ejercicio se deduce que hay algún problema con las "cookies de autentificación". Aparentemente, al acceder la URL, ésta nos reconoce dentro de una sesión abierta, caducada, como si nos hubiéramos identificado exitosamente en el pasado.


Se entiende que para completar el ejercicio, debemos "reiniciar" la sesión para "logearnos " correctamente. El problema, que no nos dan las credenciales de login, pero antes de nada, vayamos al "Web Developer Tools" de Google Chrome a inspeccionar las cookies:
 

cookieweb1.png


Abriendo la pestaña "Application", en "Storage", "Cookies", desplegamos el contenido de la cookie del sitio web y vemos algunas cosas interesantes. Por un lado, podemos ir apuntando las credenciales:

Usuario:
cookieChef
Contraseña: doYouLikeRaisins

Vemos también que el usuario "cookieChef" tiene permisos de Administrador, que la sesión está en estado "Loged" (identificado), y que aparentemente la sesión data del 10 de febrero de 2019. No obstante, parece haber un problema con la expiración del sesión, que por algún motivo, cada vez que recargamos la página se actualiza, figurando la fecha de hoy pero siempre una hora antes de la hora actual (expira a las 19:13 y son las 20:13).

 

cookieweb4.png


Tras hacer alguna comprobación más, y alguna prueba fallida intentando modificar el valor del "session_id", decido probar a eliminar la cookie de sesión y ver el resultado:
 

cookieweb5.png


Refrescamos el navegador y obtenemos por fin el cajón de de Login. Nos identificamos con el usuario y contraseña que obtuvimos de las "cookies" y VIOLÁ:
 

cookieweb6.png
cookieweb7.png

🟣 OBLIVION

🌐 https://hackrocks.com/challenges/start/oblivion

Comencemos por este pequeño Ejecutable.
Como verás, parece ser que el grupo de atacantes se hace llamar Oblivion, pero sobre el ejecutable no sabemos nada sobre qué hace, ni para qué sirve...
Comienza tu investigación y averigua lo que puedas. Lo que nos interesa es a dónde se conecta, si es que lo hace.
El token será la dirección IP de destino...

▶️ COMENZAMOS:

Descargamos del enlace un archivo que se llama "malware".

Antes de nada cabe mencionar que, tratándose de un reto de aprendizaje, sabemos que el archivo descargado no supone un riesgo para nuestro equipo. No obstante, por el bien del ejercicio y poniéndonos en un escenario real, trataremos el archivo como "potencialmente malicioso". Por ello trabajaré con el archivo desde mi máquina virtual Kali Linux.

Lo primero que hago es pasarle un "file" para ver qué información nos da sobre el archivo en cuestión:

Se trata de un archivo ELF de 64 bits ejecutable.

Probablemente primero debería abrirlo con un "cat" (mostrar texto contenido en el archivo) o con un "strings" (mostrar únicamente texto plano de un archivo), pero dado que nos encontramos en un entorno seguro (máquina virtual) y según el enunciado del ejercicio, el token es una "dirección IP destino", vamos a ejecutarlo para ver que ocurre (otorgando antes permisos de ejecución):

malw0.png


Se ejecuta un programa que aparentemente intenta realizar una conexión con el exterior, fallando en el intento y reintentándolo en bucle.

Una opción es realizar una escucha con "
NetCat" mediante:
nc -l -k -v

Pero como no hay conexión entrante, solo un intento hacia el exterior, no obtenemos nada.

La siguiente opción es monitorizar el tráfico por "
eth0"(primera interfaz de red Ethernet, es decir, el área de conexión entre el router y los equipos conectados a su red) con "tcpdump" aplicando privilegios de "root":
sudo tcpdump -i eth0

Antes, saqué por consola mi IP privada (192.168.1.137) para identificarla e ignorarla en el output de "tcpdump":
hostname -I | awk '{print $1}'

 

malw2.png


A las "23:06:30.306942" observamos nuestra IP emparejada con una IP desconocida 45.33.32.156 sin un indicador "PTR?" (registros de puntero en DNS, que apuntan desde un dominio inverso hacia un dominio normal) en lo que podría ser un intento de conexión.

Introducimos la IP 
mencionada como token de Hackrocks y VOILÁ:

 

malw3.png
oblivion

🤖 CARLITOS EL GPTRAMPOSO

🌐 https://hackrocks.com/challenges/start/charles-the-gpt-cheater

Carlitos se presentó a un puesto de desarrollador de software.
La buena noticia es que acaba de recibir un correo electrónico en el que se le comunica que ha sido seleccionado para una entrevista rápida en la que tendrá que demostrar sus capacidades.
La noticia no tan buena... es que no tiene ni idea de desarrollo de software. 
Carlitos ha pasado unas horas leyendo sobre ChatGPT y cómo, con el contenido adecuado, puede ayudar en las tareas de desarrollo de software. 
Ponte en su lugar y encuentra rápidamente el token del reto.
El token será el nombre del creador del misterioso trozo de código.

▶️ COMENZAMOS:

Descargamos del enlace un archivo que se llama "code.txt".

Al tratarse de un archivo "txt", podemos probar directamente a abrir el archivo con "Bloc de notas" de Windows:

gptramposo.png


Entre el texto, rápidamente llama la atención una cadena de caracteres:
Y3JlYXRlZCBieSBKVCBzbWVldGg=

A juzgar por el signo "=" al final, podemos identificarlo como texto codificado en BASE64. Si no tenemos experiencia con textos codificados, podemos preguntar a una Inteligencia Artificial gratuita como "Phind" para que nos eche una mano:

 

gptramposo2.png


No obstante, como las IA no son del todo fiables encriptando y desencriptando textos, sabiendo que se trata de BASE64, vamos directamente a una web especializada en esta codificación:
 

gptramposo3.png


Y en segundos obtenemos el nombre que nos pide Hackrocks para solucionar el reto:
 

malw3.png
GPTramposo

🔑 GUARDAR LA CONTRASEÑA

🌐 https://hackrocks.com/challenges/start/save-password

Tenemos tantas contraseñas que recordar, que muchas veces aceptamos que el navegador la guarde por nosotros. Esto es de mucha utilidad cuando no nos acordamos de ella, pero también puede provocar que cualquier recupere la contraseña y acceda a nuestro ordenador...
¿Sabrías encontrar la contraseña?
Para acceder al reto, haz click en el siguiente enlace:
https://challenges.hackrocks.com/dont-save-me

▶️ COMENZAMOS:

Accedemos al enlace, obteniendo un cajón de Login, con una contraseña introducida, no visible, y sin nombre de usuario.
Hacemos una primera prueba introduciendo un nombre de usuario "
prueba" y haciendo "Login" para observar como reacciona el servidor. Siendo un poco observadores, podemos darnos cuenta de que arriba en la URL queda reflejado el nombre de usuario introducido y la contraseña visible:

dontsaveme2.png


Con lo que, introduciéndola como token de Hackrocks:
 

malw3.png
save pass

💰 COMITÉ CORRUPTO

🌐 https://hackrocks.com/challenges/start/corrupt-committee

Nuestro equipo interino de investigación ha descubierto que algunos altos mandos de cierto Comité Olímpico recibieron importantes sobornos en el pasado, concretamente en el año 2012. Desgraciadamente, no sabemos mucho más; solo disponemos de la siguiente imagen para que comiences tu investigación, que de alguna forma está relacionada con el receptor del pago.
Respecto a la cuantía del pago, sólo sabemos que debe ser significativamente mayor que el resto de las recibidas ese año.
¿Puedes ayudarnos a llevar a los culpables ante la justicia?
El token de este reto será el identificador de los pagadores.

▶️ COMENZAMOS:

Nos dan un archivo de imagen en formato .png de un código QR.

Paso el archivo con el código QR por la web scanqr.org, obteniendo una cadena de caracteres:

1BWaryNxvEdkzRMZ6L4y2bgvBwhRyFTHQ2

scan1.png


Intento desencriptar los datos mediante decodificadores web de BASE64 y MD5, sin éxito. Después de dar varios palos de ciego, lo paso por ChatGPT en busca de alguna pista, obteniendo lo siguiente:
 

scan2.png


En efecto, se trata de un identificador de cuenta de criptomonedas. Paso la cadena por el buscador de blockchain.com obteniendo
que dicho identificador está asociado a 2 "
blockchains", una de BTC (Bitcoin) y otra de BCH (Bitcoin Cash), dos tipos diferentes de criptomonedas.

Como en el ejercicio se nos pide buscar una transacción del año
2012, y la criptomoneda BCH surgió en 2017, podemos descartar esa "wallet" o monedero, directamente.

 

scan3.png


Filtrando los resultados de las transacciones recibidas por fecha del año 2012, encontramos una con un monto bastante superior al resto, equivalente a $617.340 el 30 de septiembre de 2012.
 

scan4.png


Solo queda copiar el identificador de la cuenta que realiza la transferencia de Bitcoins (1Ce1DeJf6HHHKPBKH63qC7kzP6m2a3rDrr) y VOILÁ:

malw3.png
comite corrupto

🟣 OBLIVION II

🌐 https://hackrocks.com/challenges/start/oblivion2

De nuevo, más abajo encontrarás el ejecutable que hemos podido recuperar. Creemos que está exfiltrando algún tipo de información, pero no sabemos cuál, ni cómo...
¿Podrás resolver el reto?

▶️ COMENZAMOS:

Pocas pistas en este reto. Descargamos el archivo "exfiltrator", que renombro "exfil" para trabajar más rápido con él por consola.

 

Primero le hacemos un "file" para saber un poco sobre el archivo. Vemos que es un ELF de 64 bits LSB ejecutable. Pues le damos permisos de ejecución con "chmod" y lo ejecutamos:

exfil1.png


Aparentemente hace algo, mientras muestra un output en cirílico, que repite periódicamente la última línea hasta terminar con un "Адиос":

Инструмент эксфильтрации
Работающий...
отправленная информация (1 байт)...[OK]
отправленная информация (1 байт)...[OK]
...
Адиос


Pedimos una traducción a Phind a ver si da alguna pista:

 

exfil2.png


No es concluyente, pero podemos pensar que intenta o llega a realizar una conexión (OK) enviando algún tipo de información al exterior. Vuelvo a ejecutarlo a la vez que pongo "TCPDump" en escucha. De entrada aparecen mucho tráfico de ida y vuelta a unas direcciones IP de "amazon.com". A primera vista tres, 54.239.28.85, 52.94.236.248, 205.251.242.103:
 

exfil4.png


Como hay mucha información, se antoja preferible utilizar "WireShark" en lugar de "TCPDump" para listar las las entradas de tráfico, ordenarlas y revisarlas mejor:
 

exfil7.png


Se revisan las 3 IPs involucradas relacionadas con "amazon.com" sin encontrar nada relevante. Analizándolo mejor, se ve que hay repetidas parejas de petición/respuesta, desde la IP privada del equipo a una IP de Google (8.8.8.8) que redirecciona a las 3 IPs de Amazon, y la respuesta de vuelta.

Se analiza comparativamente una petición con una respuesta sin encontrar ningún indicador evidente de exfiltración de información, ni directa ni encriptada:
 

exfil10.png


Después de comprobar otros parámetros sin suerte, llama la atención la "Transaction ID" de cada petición/respuesta, en formato ASCII. En el caso de la imagen anterior, 0x0072 es igual a la letra "r", comprobado en una web de ASCII a Texto:
 

exfil13.png


¿Será posible que ordenando los "transaction IDs" formen una palabra? solo hay una forma de saberlo. Se ordenan en "WireShark" por orden de aparición, se transcriben y se pasar por un ASCII a Texto:
 

exfil11.png


Y en efecto ahí esta, aunque falló una letra de la frase, el token es válido:
 

exfil12.png
malw3.png
oblivion II

🔒 EL CIFRADO PERFECTO

🌐 https://hackrocks.com/challenges/start/the-perfect-cipher

Nuestros criptoanalistas tienen una nueva misión para ti: han interceptado un mensaje que ha sido cifrado con el algoritmo de Vernam, conocido como "el cifrado perfecto". Y de hecho, si se utiliza correctamente, lo es.
Sabemos que los rusos enviaron dos mensajes en claro, M1 y M2. Para nuestro criptoanálisis disponemos solo de los criptogramas correspondientes, C1, C2, calculados ambos con una clave secreta K que no conocemos. Además, disponemos también de otro criptograma, C3, obtenido gracias a que el espía ruso cometió un error y cifró, primero, M1 con M2 como clave antes de hacerlo correctamente, de forma que finalmente C3 = E(E(M1, M2), K), donde E es la función de cifrado de Vernam (E = m1 + m2 mod 26).
Sabemos, finalmente, que los mensajes están escritos en inglés y que, por tanto, el alfabeto utilizado tiene sólo 26 letras (A=0, Z=25).


¿Podrás ser el primer criptoanalista de la historia en romper el cifrado perfecto?
C1 = OFCDFRQITDYLLWZR
C2 = OYPACCDMQEHHDLRV
C3 = CSGPNCBQHQBZWHZI


El token será la cadena M1|M2|K, donde | significa concatenación.

▶️ COMENZAMOS:

 

CTF EN CURSO:

cifrado perfecto

🥇 ALTERANDO RESULTADOS

🌐 https://hackrocks.com/challenges/start/altering-results

Tenemos fundadas sospechas de que en la última edición del CTF de Hacker Village, un usuario (cuyo nick es Prophecy) ha conseguido alterar los resultados de la clasificación final. El verdadero ganador (Trinity) ha sido relegado a la cuarta posición, y el atacante (Prophecy), se ha autoproclamado injustamente como ganador.

Creemos que los atacantes han conseguido robar la clave con la que se firman los datos antes de ser enviados al sistema de clasificaciones, al que puedes acceder en en enlace mostrado abajo.

Pero no todo está perdido: gracias a nuestro mejor agente, hemos conseguido el fichero que manipularon los atacantes (
manipulated_list.pdf). También sabemos que el sistema utiliza una primitiva HMAC para comprobar la validez del fichero que se envía, y que el valor correspondiente para el fichero manipulated_list.pdf es el siguiente:
e429cd6050a055e41e39f0407933630f26ab17288bb0ade7e2b2fced54d3ae4f


Además, nuestro espía acertó a ver parte de la clave simétrica del HMAC, que sabe que contiene el siguiente valor:
4db29249ac44fe6ac69a7b1deecf18e85605bd021a2f4951c23b1ce6df


Creemos que faltan algunos bytes a esta clave, pero no sus valores ni cuántos exactamente.

Tú objetivo en este reto será conseguir que el sistema acepte como válido el fichero
original_list.pdf, en el que nuestro país ocupa el lugar que realmente merece.

Para acceder al reto, haz click en el siguiente enlace:
https://challenges.hackrocks.com/rvs

▶️ COMENZAMOS:

 

CTF EN CURSO:

alterando resultados
bottom of page