Write-Up Hackmeeting 2021

WriteUp 12 de ene. de 2022

Este CTF se llevó a cabo para el hackmeeting de 2021 en el mes de noviembre, participamos como el equipo ositoscariñositos con Drayko, Israel, Gary aunque este último no pudo participar a último momento por cuestiones de la universidad, y finalmente mi persona, logramos resolver casi todos los retos (nos faltó uno porque era necesario estar presentes en el evento de Yacuiba) y sin recurrir a las pistas, de esta forma ganamos el primer lugar en la competencia.

Huevo revuelto a lo ferroviario

Puntos: 295
Chs4nc1T{03sbdy043r0Fy40hf}

Para este primer reto podemos observar que la flag se encuentra desordenada, y el título del reto nos da una pista del tipo de cifrado, luego de investigar un poco encontramos el cifrado rail fence, así que podemos buscar un decoder y obtener la primera flag  CTF{h0y3ss4b4d0yn0h4c3fr10}.

Horrocruxes

Puntos: 917
Usé un sistema empresarial conocido para tomar mis preciados archivos y dividirlos en varias piezas para protegerlos. Me sabotearon los servidores y quizás puedas ayudarme a recuperarlo.

Para este reto nos proporcionan el siguiente archivo, comencemos extrayendo los tres archivos.bin. Podemos unir los 3 archivos en uno solo con el comando cat.

Con binwalk usaremos el parámetro --extract --dd=".*" de esta forma nos aseguramos que se extraigan todos los archivos de la imagen.

Luego de realizar la extracción si revisamos la carpeta con los archivos extraídos encontramos una imagen con la flag del reto CTF{quierodormir}.

Super Mario 64

Puntos: 55

Adrián Nario es un importante empresario latinoamericano. Un fin de semana especialmente aburrido, estuvo limpiando el depósito de la casa y encontró una caja que tenía una copia de Super Mario 64, otrora su juego favorito. Debajo de la caja, encontró pegado este mensaje:

Q1RGe0dyYW5kZUNoYXlhbm5lfQ==

¿Puedes ayudarlo a descifrarlo? Quizás contiene algo que le interese...

Para este reto tenemos la flag cifrada, por el título del reto tenemos como pista que se trata de Base64, así que podemos usar algún decoder online o también usar nuestra consola linux para descifrar el mensaje.

Basista 1 << 5

Puntos: 65

Todos hablan del Basista 64, famoso asesino aterrorizante de la otrora ciudad tranquila de Wonder Will, pero nadie habla del Basista 1 << 5.

Descifra este código para identificarlo:

JJDEQRKXKNBVQS2SI5DE2VCLJ5FVMRCUJVHEEU2LKJDVKTKVKNEEUTK2KZDVCMSOJFNE4RSPKMZE6S2KJNKVOUKTKRGEEQ2UI5GVGUSKLEZFMRKWLJLUOUK2IVDVIS2HJRFEYVKXKRFTES2OJFDEWUCKGVEFKNSUGJIESPI=

Para este reto tenemos como pista el título Basista, y por la descripción descartamos Base64 así que podemos probar Base32, usemos cyberchef aplicando tres veces la opción From Base32 y conseguimos la flag CT{MuchosSabenBase64PeroPocosBase32}.

Cesar estaría orgulloso 2: La Secuela

Puntos: 85

En la Guerra Hirviente, el almirante César Torres ha desarrollado un sistema mágico de cifrado que permitía intercambiar mensajes secretos entre el emperador Belos y los ejércitos en batalla. Dicho sistema al parecer logró ser vulnerado, y nuestro amigo le dio varias vueltas de tuerca (47, de hecho) a su invención para volver a estar en la vanguardia.

Le conseguimos robar un mensaje y necesitamos tu ayuda para ver qué dice.

r%uLr6D2C$:tDE2~C8F==@D@N

Para este reto es importante leer la descripción ya que nos dan una pista, primero es importante el titulo ya que existe un cifrado cesar y segundo nos dicen que para el cifrado nuestro amigo le dio varias vueltas de tuerca "47" para ser exactos, entonces podemos usar ROT47 y obtener la flag CTF{CesarSiEstaOrgulloso}.

Molestemos a tu cerebro

Puntos: 350
Decodifica el mensaje adjunto.

Para el reto tenemos el siguiente archivo, su contenido es el siguiente:

Vm0xNGIyUXhSbkpOVm1SVVlrZFNWVmx0ZEhkWFJteHlXa1pPVjFac1NsaFdNalZyVmtVeFYyTkZhRmRXTTJoUVZsUkdZV050U2tWVmJHUlhUVEZLV1ZadGRGWmxSazVJVm10YWFGSnRVbTlVVm1oRFYwWmFSMVp0UmxkTmF6VjZWbGMxUzJFeFNuTlhiazVhWVRGd00xVXdXbUZrUjFaSFdrVTFVMkpHY0VsV2ExcHZZVEZTYzFkc2JGSmlSbkJoV1ZSS1UxWkdWWGhYYlVaVVZqQTFTRmRyV2s5Vk1rcEhZMFJXVjAxdVVsaFVWVnBXWlVaT2MyRkdXbWxTYkhCWlYxWmtNRmxXVmtkWFdHaFlZWHBzY1ZSWGN6RlRSbXhXVjJzNVZXSkZiRE5VYTFKTFZqRmtTVkZyVWxwV1JWcFlWbXBHVTJSV1RuUlNiRTVYVFZWd1YxWXllR3RsYXpGWFUyNU9XR0pzU25GVVZFcHZWakZTVjFkdVRrOVNiR3cxV1ROd1IxWlZNVmRqUm5CYVZsWmFjbFp0YzNoV01VNXpZVVphYVZKdVFreFhiRlpoWkRGSmVWSnJaRlpoZWxaWVZGUktiMVJzV25STlZGSldUVlpHTkZVeU5VOVdNV1JJWVVaV1dsWkZXa3hXYTFwelZsWlNjbFJzV2xOaVJsa3dWbXBLTkZReFZYbFRhMlJUWVdzMWFGWnNXbmRqYkZwelYyMUdhbUpWTlVkV01uaHJZVlprUms1SWNGZFNiSEJvVmxSR1MyTXhaSFZUYlhCVFlrWndXVmRYZUc5aU1XUlhWMnhzYWxKWFVuSlVWbHBMVTBaa2NsZHRSbWhXYTNCYVZsZDRiMVpXV2xkalJtUmhWbXh3VkZZd1pGTlNWa1p6Vkd4T2FFMXVaRFpXYkZKTFpXczFWMVpZYkZSaE1YQllXVmQ0WVZZeFduRlViVGxVVW14Wk1sVnRlR3RXTURGeVRsVm9WMDF1YUZCV2FrWkxZMnhrVlZKc1pHaGhNamt6VjJ4a2VtVkdXWGhhUm14aFVqSm9WRll3Wkc5WFJscDBaRVphVGxac1NucFdiWEJoVlRKS2MyTklUbGRpV0dneldsZDRZVk5IVGpaU2JHUnBWbGhDUzFaV1pEUlJNVmw0VTFod2FGSlhhRmhaVjNSaFZURndSVkZVUmxkaGVrWllWbTF6TVZVeVZuUmFla0pYWWxSRk1GZFdXbHBsUms1MVUyczFXRkpZUW5sV1YzQkRXVlphYzFadVRsZGliVkpWV1d0YVlXVkdWblJPVlRsWFRWWndlbGt3Vm10WlZrcFhWMVJDVjFaRmNFZGFWV1JQVWpKR1IxZHNaRk5XVm10M1ZtMTRVMUl5UlhsVWJrcFFWbTFTVmxsclduZGpSbFowWlVoa1YxSnNjSHBXVjNSclZtc3hWMU51Y0ZkV00yaG9Wa2Q0V21ReFpITmhSbVJvVFZoQ1NGZHJVa2RXTWs1elYyNUtVRlpzU2xSWldIQlhWakZhVlZOcVFsZE5WbkJZVmpJMVMxUXhXbFZTYkdSYVlrZG9VMXBFUmxkT2JFcHpZMGQwVGxZeFNqWldha3A2VFZaU2MxUnJhR2hTTW1oWVdWUktVbVF4VmpaU2JVWlRUVlUxZWxZeWVFTldNa3BYVTJ4YVYxSnNXblpaYWtaT1pVWmtjbUZIZUZOTk1VcFpWa1phWVdReFpFZFhXR2hvVTBVMVdGbFljRWRUYkZwWVpVYzVWMkpWY0ZwV1YzaHZWbXN4ZFdGSVNsZGhhM0JRVldwR1UyTXhWbk5hUjJ4WVVqSm9NbFp0TUhkbFJURkhWVmhvVm1Kck5WVlpWRVozWTBaV2MxcEhPVlpOVjNoV1ZrZDRUMWRHU25OWFZFcFdWbTFvZGxac1drdGpNazVIV2tad2FXSnJTa2xXYkZKSFV6Sk5lRlJ1VGxkaVJscFlWV3hXY21ReFdsaGtSMFpWWWxaYVNWWkhkR0ZoTVVweVRsVTVWMkpZYUROV2FrWmhWMGRTUjFSc1VrNVdhM0EyVm14a05GWXhXa2hTV0d4b1VteGFWbFp0ZUdGTk1WcEhWMnhPV0ZJeFNrWldWM2hMVkd4YWMxZFVRbGRoYTI5M1ZHdGFZVmRHU2xsalIwWlRVbXh3V1ZaWGVHRlpWMVp6V2taa1dHSlZXbkZaV0hCSFVteFZlV1ZIZEZaTlZuQjVXVEJXZDFZeFdrWmlla0phWld0YVMxcFZXbUZqTVhCSFdrWm9WRkpWY0ZoV01WcFRVekZWZUZSclpGaGlhelZZV1d0YWQxUXhWbk5WYTJSc1VteFdOVnBWV2s5V01VcFZVbXRhVjJKWVVqTldiVEZMVjFaU1ZWSnNaR2xYUjJodlZsY3dlRk14U25SVmExcFFWbTFTV0ZsVVRrTlhWbHB5V2tSQ1ZrMVdSalJWTW5SclYwZEtjbU5HUWxkaVIyaFVWbXRhVjJNeGNFZFViR1JYWWtoQ05sWnRNWGRSTVZsM1RWWmFhVkpHU2xkWmEyUnZaV3hhVlZGWWFGTk5WMUo2VmxkNFlWUnRTblJoUnpsWFlURmFWMVJXV21Ga1JsSnlWMjFHVTJKR2NGbFdWM2hUVmpGS2MxZHNhR3BTVlRWUVZXMXplRTVHV1hsT1ZUbFhUV3R3U0Zrd1dtdFdWbHBYWTBWNFZrMUdjRmRhVnpGUFVqRndSMkZIYkZOV1JscEpWbXRhWVZsWFJYaFdXR2hVWWtkNGIxVnNVa2RXTVd4ellVVk9WbEpzV25oVmJYUmhZa1pLZFZGclpGZFdNMmhVVmtkNFNtVkdUbkpXYkdSb1RWaENiMWRXWTNoV01WcHlUVlpzVkdKR1dtOWFWM1JoVm14a1dHUkhPVkpOVlhCWVZtMDFVMkZyTUhsVmJrNVhZbGhTTTFWcVJtRlhSMDE2WVVaYWFWWllRa2xYVkVKaFdWWmFjazFXWkdwU01taFlXVlJHZDFNeGNFVlJXR2hYVFZaS2VsWlhlR3RoVmxweVkwVmtWMkpZVW1oWFZscFdaVVpTYzFwR1VsaFNNVXA0VmxkNGIxVXhaRWRqUm1oclUwVndjbFJXV2t0WGJHdDNWbXBDVjFZd2NFaFpNR2h6VmxaYWMxZHRhRmRTUlZwTVdUSjRZV05XWkhOWGJXaE9WMFZLUmxac2FIZFNNVnAwVlZoc1UyRXhjRmRaYTJSVFYwWnNXV05HWkZSTlZuQjVWbGQwVDFaRk1WWmpSbWhYVFZkb2NsWXljM2RsVjFaR1QxWldWMVl5YURKV2JHUTBWakpTU0ZSWWNHaFNiVkpZV1ZSR2QxZEdXa2hsUm1SUFVteFdNMVJXVm5OV2JVcElZVVprV2xaRldtaFpNbmhoVjBkTmVtRkhjRmRoZWxZMlZtMHhORlV4VW5OWGJsWlNZa1phV0Zsc2FGTlhSbHB4VW0xR1YwMVZOWGxYYTJSM1ZURlplbUZHVmxoV2JXZ3pWV3BHVDFZeFdsbGhSbHBvWlcxNFYxWlhlRk5TTWxaWFdraEtXR0Y2YkZoV2JYUjNWMVphUjJGSGRGZE5hMVkwV1RCYVExWXhXbk5qUmtKYVRWWndhRmt5YzNoV01WSnpXa2RzVTJKclNsbFdiWGh2WkRGSmVGSllhRlZpYTNCUVZteGFZVlpXYkhKYVJ6bFlVbXh3TUZSV1drOVdNVnB6WTBSQ1lWSlhUVEZXVkVGNFYwWldkV05HYUdoTlZtOTZWbTB3ZUZKdFVYZE9WbVJYWWtkU1ZGUlVTbTVsYkZwWlkwVmtXbFl3TlhsVU1WWlhWVzFLU0dGSVFsWmlSMmhFVmxWYVlXTXhjRVZSYXpsVFlsWktXVlpYTVRSV01WcElVbGh3YUZKdGFGaFphMlJTVFVaYWNWSnNUbGhTTVZwSVYydGFWMkZXU25WUmEyeFhWa1Z2TUZWNlJtRlNNVTV6V2tab2FWWXlhRmxYVm1Rd1V6QTFjMk5HWkZoaVZWcFVXV3hXZDFJeFVsZFhiRTVvVm10d1dsVlhkRzlXTVZwR1YyeFNWMUpGV2t4V2FrWkxaRlpPZEdKSGVHaE5XRUpWVm10YVlXRXhWWGhpUm1SWVlrZDRjVlZzYUZOV01WWjBaVVYwYkdKR2JEVmFWV1JIVm1zeGNsWnFXbGRXTTJoMlZtMTRXbVZ0UmtaaFJscE9ZbTFvZVZkWWNFdFRNVWw0V2toS1VGWnJOWEJWTUZaTFYwWmFjMVZyVGxkaGVsWllWa1pvYjFZeFpFaFZiR1JhVmtWS00xWkVSbk5qYlVaR1ZHMW9VMkpHV1RCV2JYaFRVakZaZUZkdVRtcFNWbkJYVkZjMWIxTkdXbkpYYlVaVFZtdGFWbGxZYjNkUVVUMDk=

A simple vista parece ser Base64, podemos descifrarlo con cyberchef, al parecer está cifrado más de una vez en Base64 y es necesario combinarla con Base32, en total para encontrar el mensaje que nos interesa desciframos el texto siete veces en Base64, una vez en Base32 y finalmente una vez más en Base64.

HTTP/7.0 420 OK
X-Cabeceras-Inventadas: 1
Content-Type: text/plain
Encoding: base64
Compression: Deflate

fVEBCsQwCHtQMS8ofmTc/78xFWyNsgussjWJma6DR5da8ceR1bAN8lNVEYEfBGyjoND/ArtbhJ45aqy8TWPkh6Jk3ysBs7jDjFrI2cNEPXdIG6//WvfxVsN9RL8nceOlt4gIk5ujbLNE7Owz8Yl9Z8IJ6hTOAj5X+wI=

El reto no acaba aquí, tenemos como resultado lo que parece ser la información de una petición HTTP, un mensaje cifrado y lo más importante para continuar es la pista Compression: Deflate, buscamos un decoder deflate to text.

Lo que obtenemos es el siguiente mensaje cifrado, al parecer es el lenguaje esotérico brainfuck.

++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>---.>----------------.<+++.>+++++++++++++++++++++++++++++++++++++++.<-.>-------------.<++++++++++++++++.>.<--------.>+++++++.-------.----------.+++++++++++.<---------.>.-.----------.+.<++++++++++++.>++++++++++++++++.----------------.-.+.++++++++++++++.<+++.>--------------.+++++++++++++.<----------------.>+++.--------------------.+++++++++++.+++++.++++.------------.----.+++++++++++++.<.>---.++++.------------------.<<++++++++++++++.>>--------------.++++++++++++++++++.<--.>++++++++.------------.+.++++++++++.-------.++++++++++++++++++++++++.

Usamos un decoder brainfuck y obtenemos la flag del reto: CTF{EnUnMundoDondePuedesSerCualquierCosa,SeAmable}

Cifrado Yaz: La guerra de los platos

Puntos: 768

En las tierras de Cochalandia se va peleando una batalla silenciosa entre dos bandos que se detestan: el Team Pique Macho y el Team Charque. Los primeros tienen más poder y lograron conseguir a alguien que les cree su propia Enigma: el código yaz, un algoritmo único para ocultar sus mensajes simulando ser risa de teclado. Es un cifrado hecho a mano, asi que no hay herramientas conocidas.

Pero el team Charque tiene a gente talentosa y entre ellos estas tú. Tu tarea es romper el cifrado y descifrar el mensaje.

1JDJ1JSK1KPJ9J1KLJJN1KMJJN9J1J5JJN8KJN9J5J6KRJ1KGK8J7J9J2JMJJN9JJNSJ2KJNBKJN8JJN5JJN9JJNSKJN1KLJJN9JJNYK9K2KJNSJPKJN3KLKCJ2J9KLJ2K9KRK2KVKJN9J2KJNSK3JJN8JJNQKJNJN

Formato: si el texto que conseguiste dice hola mundo, tu bandera es TOC{hola mundo}. Hay una pista paga disponible.

Según la descripción el cifrado es hecho a mano y no hay herramientas conocidas, veamos si es cierto haciendo búsquedas avanzadas con Google.

Encontramos una página con un decoder de cifrado yaz (al parecer la página es del mismo creador del reto) y de esta forma obtenemos el mensaje cifrado.

Por último, ponemos el mensaje descifrado en el formato correcto y obtenemos la flag TOC{quise ver el eclipse y las nubes me jugaron una mala pasada}.

Cifrado Yaz: ya no hay backdoor

Puntos: 900

Un equipo fue pagado para romper el código, y aunque entregó algunos resultados, no pudo entregar las especificaciones técnicas del cifrado y así demostró ser fraudulento.

Aunque también te contactaron por medio de alguna amistad buena onda xd, quizás tú si sepas romper el código de verdad.

1KJNRKJN3JPKSK2KJNRKJN9KJNSK2JRJJNTJJN9KJNSJ6KJNDK9KJN6JJN5J8KJNJN

Formato: si el texto que conseguiste dice hola mundo, tu bandera es TOC{hola mundo}. Puedes usar la pista del anterior ejercicio.

Otro reto con el cifrado yaz, y cuando se publicó el reto la página usada anteriormente ya no estaba disponible, por suerte la noche anterior intentamos entender el funcionamiento del cifrado yaz, empezamos cifrando las vocales y los espacios en blanco, de esta forma obtuvimos la siguiente información.

  • U = 8
  • O = 6
  • I = 3
  • E = 2
  • A = 1
  • " " = 9
  • "basura" = KJN

Además, que al momento de cifrar el mensaje se gira el orden del texto.

Entonces cambiando los números "9" por espacios en blanco, quitando las partes que contienen las letras "KJN", cambiando los valores que conocemos y finalmente girando el orden del texto obtenemos el siguiente mensaje:

U56 D6S TR2S R2SPJ3R1

Entonces nuestra flag final es TOC{uno dos tres respira}.

Libros y más libros

Puntos: 240

Encuentra el libro que Danna Suarez Quito afirma públicamente le ha estado gustando más estos días.

Formato: si el nombre del libro que conseguiste se llama Álgebra, de Aurelio Baldor, tu bandera es CTF{Álgebra}.

Buscando perfiles de usuario en diferentes plataformas encontramos un perfil en Instagram pero que no nos dio mucha información, pero si seguimos buscando encontramos una página que parece interesante, ya que tiene el nombre completo de nuestra búsqueda.

En esta página no vemos nada relacionado a libros, pero sí podemos ver el perfil en otra página.

Finalmente encontramos un perfil en blogger donde si podemos ver el libro favorito.

Entonces la bandera del reto será CTF{If Tomorrow Comes}

Paseando al gato

Puntos: 120

Fui a pasear al gato 🐱: estuvo mirando el vecindario y le gustó treparse a los árboles. Naturalmente, les pasé una foto a mis amigos.

Encuentra la bandera.

El reto nos da la siguiente imagen aplicando algunos filtros para buscar la flag por medio de estenografía en la imagen no encontramos nada.

Entonces algo que podemos revisar son los metadatos de la imagen con la herramienta Exiftool.

De esta forma encontramos en la sección modelo de cámara lo que parece ser un mensaje cifrado.
Probando varios tipos de cifrado al final encontramos primero debía usarse HEX y luego ROT47 y obtenemos la flag CTF{YaSePrepararEmpanadas}.

Inteligencia I: Fideos con puré

Puntos: 350

Un día mientras revisaba un basurero un servidor random de Discord, publicaron esta pista de audio. Tu misión es encontrar el artista, pero sobretodo, el álbum.

Formato: Si crees que el álbum es "Fuegos Artificiales", tu bandera es CTF{Fuegos Artificiales}.

Para este reto tenemos el audio de una canción que al parecer es punk argentino, y el título del reto "Fideos con puré" es parte del coro de la canción, así que busquemos más información.

Luego de buscar en Google "fideos con puré canción punk" y revisar los resultados encontramos una pagina en la que podemos ver la letra, el nombre del grupo y lo que más nos interesa para el reto, el nombre del álbum: Neoliberalismo
Por lo tanto la flag del reto es: CTF{Neoliberalismo}

La aguja en el pajar (Remix)

Puntos: 450

El clásico ejercicio, pero con sombrero nuevo.

Comenzamos viendo el contenido del archivo del reto, al parecer son 2000 imágenes que a simple vista son iguales

Lo que podemos hacer es ver los metadatos para ver si encontramos algo interesante.

Vemos que en la sección de Comment hay un mensaje que parece cifrado, luego de hacer algunas pruebas vemos que se usa Base32 para descifrar el mensaje y tenemos lo siguiente.

Parece ser que esta no es la flag correcta, pero podemos intentar ver la sección Comment de todas las imágenes con el uso de pipes para saber si hay alguna distinta del resto.

Y encontramos un mensaje que es distinto al resto, si lo desciframos en Base32 obtenemos la flag CTF{acl4ssich4yst4ck&n33dlepr0blem}.

Y con eso terminamos los retos del CTF. Al final la puntuación estuvo muy reñida y ganamos gracias a no usar nuestros puntos en conseguir pistas, espero les gustara el write-up. Cualquier duda o reclamo lo pueden hacer en la sección de comentarios y estén atentos ya que próximamente se publicará el write-up del CIDSI 2021 con retos igual de interesantes.

Regards and happy hacking!

Etiquetas

¿Te gustó el contenido o lo que hacemos? ¡Cualquier colaboración es agradecida para mantener los servidores o crear proyectos!

Diego Corrales Vega

Junto con Drayko Escobar

Hello I am a systems engineering student, and I am interested in ethical hacking & web security testing.

Comentarios:

¡Genial! Te has suscrito con éxito.
¡Genial! Ahora, completa el checkout para tener acceso completo.
¡Bienvenido de nuevo! Has iniciado sesión con éxito.
Éxito! Su cuenta está totalmente activada, ahora tienes acceso a todo el contenido.