Q4 CTF 2020 / WaloCoin & Writeups

CTF

El deseo de ser recompensado por la creatividad de uno no justifica privar al mundo en general de toda o parte de esa creatividad.»

Richard Stallman

Ayer finalizó Q4 CTF 2020 pero hoy sigo con la emoción en el cuerpo, evento que recién cumple su segunda versión pero ya convertido en parada obligada del circuito nacional de CTF’s, 34 horas ininterrumpidas de emociones, 46 equipos, más de 250 competidores exprimiendo, vía VPN, hasta la última gota de conocimiento y creatividad en cada desafío.

Evento realizado por la comunidad Q4, para la comunidad de hacking y ciberseguridad que crece y se fortalece cada día más!!. La versión 2019, se realizó en formato presencial en Santiago de Chile, la actual en contexto de pandemia, fue 100% online, lo que además permitió la participación de competidores y equipos de otros países como los recientes ganadores del CTF de Ekoparty.


WaloCoin

Como dice su descripción en github: Es una criptomoneda creada para el uso educacional para las comunidades: L4t1nHTB, Arquitecto TI, HackSpace, OpenHack, Level[0]Sec. Orientada inicialmente para Q4 H4ck1ng S3ss10ns.

Concebida para que los miembros de las comunidades ingresen en el mundo de las criptomonedas sin miedo a perder dinero. Fue creada para la comunidad y la idea es que se expanda a todo Latinoamerica con ese fin.

Actualmente mantenida 100% por la comunidad, nosotros aportamos con un par de nodos y por supuesto con minado, que por la dificultad actual permite utilizar CPU’s de viejos computadores. Al día de hoy ya tengo casi 6k WLC, para participar en subastas de cervezas, stickers u objetos 3D de la Impresora de @N3v1l, en el grupo de telegram WaloCoin Market. Donde además siempre podrán ayudarte si quieres obtener una billetera, instalar un nodo, realizar minería o simplemente aprender de blockchain y criptomonedas.


WriteUp Q4 CTF 2020 – Blockchain

Aquí algunos writeups de desafíos relacionados a blockhain del CTF.

CROP CIRCLES – Billetera

Este desafío nos entregaba el hash de una dirección de Bitcoin, entonces lo primero que hago es revisar la información que podemos obtener de ella, visitando el explorador de bitcoin en la opción de visualización de dirección https://www.blockchain.com/btc/address/1ZgAMfAxaUHseCYUzTfCg3qCVsAuEtN3hv2

En este caso particular, podemos ver que no existe información relacionada a fondos o transacciones. Es posible escribir un mensaje, convertirlo a hexadecimal y luego crear una billetera con este valor, así que realice el ejercicio inverso. Una dirección de Bitcoin utiliza Base58 como formato, por eso esta es la primera conversión a realizar, luego el resultado fue una linda flag!!!


CROP CIRCLES – Transferencia Misteriosa

En este caso tenemos como información una billetera de WaloCoin, entonces nos dirigimos al explorador de Walocoin para ver el detalle relacionado: https://blockexplorer.walocoin.xyz/address/wlc1qlw9h3sr0mheur4mntqvgazl6djpp2zny0vh85f y la información recuperada es:

Al ver que existen múltiples transacciones todas el mismo día me hizo pensar en un posible patrón y de pronto.. veo los binarios!!, en los decimales de cada transacción los valores era evidentemente binarios entonces me voy de cabeza a copiarlos y traducirlos, el orden utilizado fue el mismo de la blockchain, es decir, por orden de llegada pero el resultado fue una flag claramente desordenada… entonces mire de nuevo y vi que los montos era únicos así que ordene las transacciones según el valor del entero y Avemus Flag!


CROP CIRCLES – Creación

Esta prueba nos dice que el bloque génesis tiene un mensaje, entonces, debemos saber como llegar al bloque, para eso nos dirigimos a un nodo de wallocoin (también sirve la consola que se encuentra en la billetera de walocoin) y ejecutamos getblockhash 0, este comando nos permite obtener el hash correspondiente a la altura de un bloque, en este caso nos interesa el bloque 0 es decir el primero nodo creado en walocoin. Verificamos nuestro hash obtenido en el explorador de Walocoin y efectivamente nos confirma que es el bloque génesis.

Ahora que ya tenemos el hash podremos obtener información del él utilizando el comando getblock 6e296fdd3a49bf0beab52bf38ce2cb9bfdc56d5bb35d58787a7cbe9144f373e3

Al revisar el contenido no encontré nada, entonces recordé el mensaje de Satochi Nakamoto en su bloque inicial de bitcoin («The Times 03/Jan/2009 Chancellor on brink of second bailout for banks«), este se encontraba en el detalle de la transacción, para obtener esta información se debe incluir un parámetros adicional en la instrucción getblock, este debe ir seguido del bloque buscado, sólo se debe agregar un 2 y ya podemos obtenemos un json con el detalle de la transacción del bloque.

Ahora somos capaces de leer el mensaje que Don Walo heredó (a través de n3v1l) a las futuras generaciones!


Finalmente sólo me queda felicitar a los ganadores, agradecer a la organización por todo, el tremendo trabajo realizado, por el genial evento logrado que sin el tiempo y esfuerzo personal de cada uno de los organizadores no hubiera sido posible y por último, pero no menos importante, al equipo de máquinas que compitieron virtualmente codo a codo conmigo este fin de semana:

Hacking4Food: Dres1, Bord3d, Llopis, rz7, B3ta & Halx0n, Gracias Totales!!! =^.^=

#HappyHacking !