CC-1337

Cybersecurity Week 2023 - Writeup

Writeup Cybersecurity week 2023 ~ Pumahat

Nota: Este artículo podría no contener todos los retos del CTF, debido a que no pude documentarlos y de algunos no tengo capturas de pantalla, sin embargo, espero que sea de utilidad para el lector

Cultura general

whoami

Who Am I

¿Quién es? Respuesta: Kevin Mitnick

En caso de no saber quién es, se puede buscar la imagen y se obtiene la respuesta.

Silbato de Captain Crunch

Silbato

Esta imagen hace referencia al hackeo de sistemas telefónicos con el sonido que hacía este silbato, inventado por John Draper, en caso de no saber también se puede buscar con las palabras clave: “captain crunch whistle hack” y se encuentra el contexto.

Iphone break

iphone

La imagen anterior es sobre la historia del jailbreak del Iphone, realizada por George Hotz a los 17 años.


Análisis de red

Autenticación insegura

Este reto nos pedía encontrar una bandera en un archivo pcap, para ello se utilizó la herramienta wireshark para analizar el archivo, al analizarlo podemos ver que hay paquetes de tipo http con método GET así que revisando con cuidado la información de estos, se encontró la flag en texto plano.

wireshark

Recuperando imágenes

Para este reto teníamos una pista sobre un archivo imagen en el segmento de paquetes pcap, así que igualmente usando wireshark, observando los paquetes, notamos que hubo un ingreso por ftp` y obtención de un archivo imagen, así que, filtrando los objetos de tipo data-ftp, pudimos obtener la imagen, y sólo bastaba con descargarla y obtener la flag.

wireshark

y simplemente era visualizar la imagen y obtener la flag.

get image


Criptografía

Crypto Challenge

Esta imagen del emperador romano Cesar, hace alusión al cifrado cesar, que mueve n posiciones el alfabeto, en este caso se mueve 20 posiciones, así que usando herramientas online como CyberChef se puede obtener la respuesta.

Cyberchef


Network

Crackeando ssh

Este desafío nos pedía crackear una contraseña de ssh para obtener la contraseña, sin embargo nos pedía explícitamente no utilizar fuerza bruta, así que, la segunda opción que no involucra activamente a la máquina objetivo, eran herramientas online como crackstation que es un diccionario de contraseñas, así que se utilizó esta herramienta para obtener la contraseña.

ssh

una vez crackeada, simplemente era cuestión de entrar a la máquina con la contraseña obtenida y obtener la flag.


Pentesting web

SSRF (Server Side Request Forgery)

SSRF

La página que se nos da para atacar, tiene un enlace para la página llamada “flag.php” sin embargo al acceder nos dice que no tenemos permiso para leer, así que lo primero que se hizo después de ver el código fuente es ver el formato de URL, y notamos que tiene un Server Side Request Forgery, por el formato de la URL:

https://pumahat.unam.mx:23350/index.php?content=index.php

por lo que en lugar de visitar directamente flag.php, se intentó hacerlo mediante el parámetro content, al hacerlo tampoco mostraba nada, pero viendo nuevamente el código fuente podemos leer el contenido de la página, y ahí se encuentra la flag.

SSRF

Webshell

No tengo suficientes capturas de pantalla sobre este reto, pero consistía en revisar la página robots.txt, que normalmente es un archivo que incluye direcciones que no se deben visitar, entre ellas alguna que contenga la flag.

robots

La dirección contenía una api que comunicaba con la máquina, pero no tenía los suficientes filtros para evitar inputs no deseados, lo que fácilmente lo convirtió en un RCE la máquina ejecutaba un comando específico, pero podía fácilmente tener un bypass haciendo una injección de comandos como:

<comando>; cat /home/user/flag.txt

(Normalmente se haría una búsqueda del archivo, pero el comando anterior era el más cercano al final del comando que se ejecutaba para leer la flag)


Miscelaneo

Git

En un reto nos pedían encontrar la flag en un git, por lo que este es un problema clásico de commits inseguros, así que lo que se hizo fué verificar los logs del git, y se encontró la flag en un commit.

git log

Al revisar el historal de commits, generalmente en los primeros, encontramos malas prácticas como subir contraseñas, o en este caso la flag.

Paso a paso:

require: tener el git ya clonado
1. git log -> Muestra el historial de versiones de un git
2. git checkout <commit> -> Cambia el estado del git al commit que se le indique
3. realizar una revisión de los documentos del git, en este caso se encontró la flag en el archivo **index.html**

al haber realizado estos sencillos comandos, pudimos obtener el código fuente de la página y encontrar la flag.

flag

¿fe0?

este reto nos da una pista del reto, ya que hace alusión a la firma de los archivos de tipo imagen jpeg, sin embargo era una cadena muy larga sin aparente sentido, utilizando herramientas como cyberchef me di cuenta que era texto en formato base64 así que una vez decodificado, notamos que es un archivo jpeg y abriendo el archivo con un visor de imágenes, en mi caso fué con feh se puede ver la flag.

fe0

Red Flag

Este problema también es trivial, nos dan una imagen con una bandera roja, aparentemente normal, pero podemos inferir que tiene información dentro (Esteganografía), así que se utilizó la herramienta steghide para extraer la información de la imagen, y se obtuvo la flag.

steghide extract -sf redflag.jpg

stego

Crackzip

Para esta prueba nos dan un archivo zip, que al descomprimirlo nos pide una contraseña, lo primero que vino a mi mente y es de las herramientas más populares, fue el buen john para crackear la contraseña del archivo, esto consiste en convertir el archivo zip a un formato que pueda ser leído por john usando zip2john, y posteriormente crackearlo.

para ello basta con ejecutar los siguientes comandos:

zip2john challenge.zip > secret.hash

para escribir el hash en un archivo llamado secret.hash, y posteriormente crackearlo con john, usando algún diccionario de contraseñas, en este caso se utilizó el clásico diccionario rockyou.txt

john --wordlist=/usr/share/wordlists/rockyou.txt secret.hash

crackzip

al obtener la contraseña sólo era cuestión de descomprimir el zip y obtener la flag.


OSINT

Metadata

Este reto es muy similar al anterior, nos dan una imagen, sin embargo no contiene nada dentro, pero al revisar los metadatos de la imagen, se encuentra la flag, para esto se utilizó la herramienta exiftool.

exiftool metadata.jpg

meta

Finalmente quiero agradecer al equipo de PumaHat por la excelente organización del evento, así como a las personas que dedicaron tiempo a realizar los retos (incluyendo los de hacking físico) me gustó bastante, también gracias a todos los participantes que hicieron de esto un reto divertido. Espero que este writeup les sea útil, y si tienen alguna pregunta o encuentran alguna imprecisión, no duden en ponerse en contacto conmigo a través de mis redes sociales. ¡Gracias!1

-Lorne