Experiencia-jcun23-solucion-retos-ctf-behackerpro

Experiencia en JCUN23 y solucionario de varios retos del CTF

La semana del 23 al 27 de octubre tuvo lugar el evento de UQBAR llamado JCUN – Jornada de Ciberseguridad de la Universidad Nacional de Colombia, en esta edición del 2023 tuvimos la oportunidad de participar allí de 3 maneras diferentes: Una charla, un taller y el CTF.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img1

  1. La charla fue dictada por unos amigos, el tema fue sobre el fallo de PrintNightmare, su existencia, formas de explotar e impacto.
  2. El taller, llamado 101 Exploit/pwn en Linux, fue dictado por Luis Hernandez de Behackerpro 
  3.  El CTF de jcun23 tuvo diferentes retos y después de mucho café y trabajo, logramos ocupar el primer lugar. 
Experiencia-jcun23-solucion-retos-ctf-behackerpro-img2-
 

El evento nos gustó mucho, cada vez es más motivante ver que la pasión por la ciberseguridad crece en diferentes regiones. En este post queremos compartirles nuestra experiencia en la participación de estos 3 espacios.

El taller fue todo un éxito y la verdad nos emociona ver la cara de las personas cuando entienden el detalle técnico de un ataque de desbordamiento de memoria (bufferoverflow).

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img4

Del lado de la charla, tuvimos la oportunidad de abrir el segundo día de la jornada con nuestra charla a cargo de Moises y Luisa titulada “The Nightmare in Microsoft Street”, si se la perdieron, está en youtube y la presentación en nuestro canal de discord.(pregunta por ella ^^)

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img5

EL CTF

Ahora vamos a enfocarnos en explicarles cómo logramos resolver muchos de los retos del CTF y los ejercicios que consideramos más interesantes y que nos llevaron al primer lugar.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img7

Tal como lo mencionamos en un post anterior, los CTF son muy importantes en ciberseguridad. Comencemos con la desafiante forma de iniciar el CTF, no nos dieron el formato de la flag, este debía averiguarse, para esto nos dieron dos imágenes y lo resolvimos de la siguiente manera:

¿cómo resolvimos los retos?

Nombre Reto, basics:

Usamos la herramienta diffimg, en el resultado obtuvimos una imagen, la cual nos permitió leer bien la flag y conocer el formato.

comando: diffimg key.png mesaje.png resultado.png

Resultado:

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img8

Nombre Reto, Sello:

En esta parte debimos revisar la cabecera hexadecimal y cambiarla a formato .png, básicamente fue entender las cabeceras y saber qué formato pertenece a una imagen PNG.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img9

Nombre Reto, hacker maestro

Nos daban una lista de dominios en un archivo, tuvimos que ver el listado de dominios y acceder al dominio único que resolvía a nivel de DNS. 

https://hackermaster.jcunal.com/

Nombre Reto, Fuzz Fuzz Fuzz

Usamos dirbuster, y obtuvimos un directorio valido en el servidor

ruta : /test/flag.txt

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img10

Así mismo notamos que estos retos estaban conectados y empezamos a observar información relevante para otros retos.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img11 Nombre Reto, Hexitante

Al revisar el hexadecimal estaba oculta la flag.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img12

Algo muy interesante fue ver muchos retos de OSINT, notamos que este tipo de retos tenían muchos puntos y conexiones, tales como los del reto Desarrolla tu SER, que consistía en identificar en qué otra red social estaba Frank. La respuesta era github y para lograr descubrirlo nos apoyamos del sitio https://whatsmyname.app/?#

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img13

Conseguir esta reto nos ayudaría para resolver el siguiente reto.

Nombre Reto, un error inesperado.

Revisamos el commit en el repositorio de frank https://github.com/FrankenShell/Hangman/commit/1d14ed931b996ad6cf835651af010bc1f88abc1e#diff-31b8bcdf8b4220043db268f494d58d1bed507a63f4fff1be7ff73b425fb2c981

En Be Hacker Pro hemos tenido algunos post, videos y participación en eventos relacionados a OSINT. Te dejamos una lista con enlaces que podrían interesarte si te apasiona este tema:

Continuamos…

Nombre Reto, una mano amiga.

El siguiente era encontrar el correo de frank, para esto hay un truco, al igual que muchos otros que mostramos en nuestro taller de OSINT en el pasado Bsides Colombia, consultamos en https://emailaddress.github.io/?user= por el usuario de frank, el cual era Frankenshell, https://emailaddress.github.io/?user=FrankenShell

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img14

Para los retos llamados duo de monstruos uno y dos, logramos resolverlos analizando los metadatos de la imagen, en la descripción y comentario se pueden ver los nombres de las cuentas.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img15

Nombre Reto, fotógrafo de cabecera, el objetivo de este reto era identificar en qué otras redes estaba Drácula, alias biteyournet, nuevamente nos apoyamos del portal ****https://whatsmyname.app/?# allí logramos identificar que Drácula estaba también en Pinterest

En este punto del CTF era importante mantener un orden, al igual que en cualquier proceso de investigación usando OSINT, entonces empezamos a ordenar los datos recolectados para tener más claro el panorama, dado que el tiempo era corto lo consolidamos en un archivo txt.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img16

Sigamos con otros retos que también nos parecieron interesantes, antes de seguir con los de OSINT

Nombre Reto, confidential:

Se usó https://www.ilovepdf.com/ el cual nos dio una cadena en base64, permitiéndonos conocer la flag ⁠jcun2023{C0nstruy3nd0un4_c0munid4d_d1g1t4lm3nt3_s3gur4}

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img17

Nombre Reto, Papapapassword:

Vampire, es la password del wordpress se logra usando wpscan.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img18

Nombre Reto,Fuera de serie

Se analiza el apk con mobsf y se identifica la flag en el campo de hardcode secrets.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img19

El siguiente reto lo resolvimos a altas horas de la noche y fue muy emocionante, este se llamaba Cazador 1 – Monstruos y daba 100 puntos (si mal no recuerdo).

El objetivo de este reto era ingresar al correo de frank y buscar/ver la flag.

Una vez nos autenticamos con una contraseña vista en github pudimos ver el correo de frank , así mismo logramos ver la posible flag en los borradores.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img20

Sin embargo, se veía que la codificación era rara, usamos https://www.dcode.fr/cipher-identifier ahí salió que es braifucking y al resolverlo logramos ver la flag.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img21

En este punto, nos pareció riesgoso el control que se daba a los participantes al tener el correo, pues un jugador mal intencionado hubiera podido eliminar la flag, loguearse al github y borrar datos e incluso al twitter y afectar el proceso del CTF para los retos de OSINT.

Correo al cual se tenía acceso.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img22

Archivos de los retos a los cuales se tenía acceso.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img23

Acceso al Twitter de una de las cuentas de los retos de OSINT.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img24

Sin embargo, nuestra misión era ganar y no dañar el proceso de resolución del reto a otros jugadores, entonces continuamos el juego.

Nombre Reto,Not so secret

Para este reto tenemos un ejecutable de linux denominado “a.exe”

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img25

Para hacer el proceso de ingeniería inversa utilizamos la herramienta “Radare” y la función aaaa para el análisis de todas las funciones del binario:

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img26

Seguido vamos a imprimir el código en assembler de la función “entry0” con el comando “pdf”

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img27

Podemos ver una referencia a main, por lo cual nos dirigimos a main con el comando “s main” y volvemos a imprimir el código:

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img28

En la instrucción 0x000022d6 vemos una asignación de un string al registro rcx, por fortuna el valor del string “Sp00kyStr1ng” es nuestra bandera para este reto!!!

Nombre Reto,Selector

En esta ocasión tenemos otro ejecutable de linux denominado “selector”

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img29

Como todo buen proceso de reversing, empezamos ejecutando el comando “strings”

Para nuestra sorpresa la bandera estaba en las primera lineas del binario!!

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img30

Nombre Reto,Krypton

Para este reto nos entregan 4 archivos:

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img31

El código de python para el cifrado y descifrado, un archivo en texto plano, dos archivos cifrados.

El archivo denominado crypt.txt es el contenido cifrado del archivo plain.txt, como conocemos el texto plano y el texto cifrado podemos hacer el proceso inverso para conocer la llave!

Con la llave podemos descifrar el archivo “secrets.txt” para obtener la bandera!!

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img32

Nombre Reto,El candado se sentía bloqueado en su lugar

Con la apk denominada “Android-JCUN23_01.apk” vamos a utilizar las herramientas “d2j-dex2jar” y “jd-gui” para analizar el código de la aplicación móvil.

Recuerda que la apk se debe renombrar a .zip para luego extraer y poder pasar el archivo “classes.dex” a la herramienta “d2j-dex2jar”

Esta herramienta realiza el proceso de extracción y podemos ver en la carpeta “assets” la base de datos en sqlite.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img33

Abrimos la base de datos con el programa “SQLite Data Browser” y en la tabla KEY encontramos el valor de nuestra bandera!

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img34

Nombre Reto,A dios lo que es de Dios

El nombre del reto nos da una pista super importante… Puede tratarse del algoritmo de cifrado “Cesar”

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img35

Este reto tiene un componente particular, no podemos usar Cesar con un alfabeto tradicional, por esta razón se utilizo la herramienta “https://www.dcode.fr/” que nos permite definir alfabetos extendidos.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img36

Escribimos el código en python que nos transforme los valores del vector a su correspondencia en Ascii y listo, tenemos nuestra bandera.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img37

Nombre Reto,Invisibilidad

Partimos de un archivo que nos arroja lo siguiente:

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img38

Sin embargo al mirar en hexadecimal y posteriormente en sublime tenemos una serie de caracteres UNICODE (invisibles efectivamente).

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img39

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img40

Después de dar muchas vueltas sobre este reto, se identifica que los caracteres ocultos podrían tener una representación en binario, la “b” como valor “0” y la “c” como valor “1”, con este patron podemos utilizar la herramienta “https://gchq.github.io/CyberChef/”

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img41

Nombre Reto,Receta secreta

Para este reto tenemos un secreto “NzM3NzZlMjA3YTc3MjA2MjcxNjM=” y una serie de pasos que podemos cocinar en la herramienta https://gchq.github.io/CyberChef/

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img42

Sin embargo, la mayor dificultad de este reto es el segundo paso “lo único especial en el horno es el platillo”

Para el resto, los pasos se pueden concluir como: decodificar en base64, pasar desde hexadecimal, ROT de 170 y por último el algoritmo de cifrado vigener con la llave “pimienta”

Finalmente no basta con https://gchq.github.io/CyberChef dado que en esta herramienta la funcionalidad de ROT no incluye alfabetos extendidos, pero ya sabemos que “https://www.dcode.fr/” si lo permite….Entonces aquí vamos:

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img43

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img44

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img45

“pan de ajo” es nuestra preciada bandera!

Nombre Reto,¿Dónde te perdiste?

Seguimos con las pruebas de OSINT donde tenemos este Trino:

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img46

Del cual podemos concluir que no se perdió en un cerro, pero la palabra clave de este reto es colina….. Sí, así es, colina.

Pero la pista que confirma que es “colina” la palabra clave es la siguiente:

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img47

Como sabemos la decodificación “Hill” utiliza una matriz de NxN por lo cual decodificamos el secreto “siyyclzvzi” con la matriz suministrada en Twitter.

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img48

Experiencia-jcun23-solucion-retos-ctf-behackerpro-img49

Si te gusto este writeup, te invito a que te subscribas en nuestro canal de YouTube al contenido premium donde subiremos soluciones más avanzadas a retos de CTF y contenido que te ayudará a complementar tu conocimiento en ciberseguridad.

Hasta un próximo post!La

 

behackerpro-pentesting-aprende-ciberseguridad

Suscríbete hoy a nuestros cursos Exploratorios

¡Descubre cuál es tu perfil Hacker!

¡Quiero Registrarme Gratis!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *