Mostrando entradas con la etiqueta CTF. Mostrar todas las entradas
Mostrando entradas con la etiqueta CTF. Mostrar todas las entradas

jueves, 15 de agosto de 2019

Writeup - From Saakar - Reto 22 H4F




Los chic@s de Hackers4Fun nos traen el reto nº 22. En el que tendremos que ayudar a Thor a activar la nave para su regreso a Asgard.


Manos a la obra

Nos descargamos el archivo comprimido desde el enlace de Google Drive, si seguimos el hilo vemos que nos dicen la password del fichero (que no es poco xD).


Examinando el fichero.....


Intentamos hacer un buffer overflow y que nos escupa la flag, pero no tenemos éxito.


Abrimos el archivo con gdb y revisaremos el código para saber como funciona el programa.

Si vemos la siguiente línea, hace una llamada comparando un string.


Hacemos un breakpoint y ejecutamos el programa, este nos mostrará en el arg[0] nuestra password y en el arg[1] la password correcta.


Ah funcionado! La clave del programa es "PointBreak", vamos a probarla.


Efectivamente era la clave, pero el reto aún continua.

Es importante la palabra "d3c0d3", por lo que se trata de una codificación y no un cifrado.



Tras una hora probando todo tipo de codificaciones y algún que otro paracetamol (que no falten!) vemos que el string está codificado en Base85 y nos proporciona una URL.


Y continuamos con cifrados! Tenemos un nuevo string con una key, por el mensaje "Think that it's not just a fan aquarium fish...." y el dibujo del pez "globo" nos indica de que está en Blowfish.


Obtenemos un nuevo string, este parece ser que está en Base64.


Habemus flag! H4F{B4nN3r_1s_Th3_StR0nG3sT_Av3nG3r}

Enhorabuena a @Hackers4F por el reto y hasta la próxima!

miércoles, 24 de julio de 2019

Writeup - UAM - DRAGON BALL


Para los fans como yo de Dragon Ball, tendremos la oportunidad de buscar las siete bolas del dragón por todo el planeta, conseguir el nombre del personaje y con este, la flag.

Accediendo al radar de Bulma podemos ver lo siguiente:


Si observamos el código del sitio, la aplicación hace una petición con las coordenadas a un archivo llamado “server.php” donde comprueba las coordenadas y nos devuelve una información en json.



Aunque podríamos ir cambiando las coordenadas desde el navegador, nos volveríamos locos ir introduciendo coordenadas por coordenadas de cada ciudad del mundo. 

Por este caso, me monté un sencillo script en Bash Scripting que básicamente lo que hace es ir haciendo petición POST con las variables “lat” y “lng” y sustituyendo su valor por el de las coordenadas… Ahora nos falta lo importante, conseguir un listado de la geolocalización de todas las ciudades del mundo. xD

Pues tras un buen rato buscando por la red, encontré esto https://dev.maxmind.com/geoip/geoip2/geolite2/ una base de datos (también en Excel) con un listado de 1.048.576 de coordenadas (casi nada). De este listado, sólo me he quedado con las columnas longitud y latitud, las he pasado a un archivo de texto para después utilizarlo con el script.


Este es código del script: (Aviso! Es bastante cutre el código, lo sé, pero funciona!)


Con el script ya en marcha solo tendremos que esperar a que vaya probando todas las coordenadas y empezará a mostrarnos las bolas del dragón que va encontrando:


Con estas 4 bolas fueron suficiente para poder resolver el reto…. Ya que contaba con la bola 2, 3, 4 y 7 (bolas del medio y la última).

Visto que el reto consiste en descubrir el personaje de la serie, ponemos las primeras iniciales en el orden del número de estrellas de las bolas, quedando de esta manera:

_ R G U _ _ O

Con las 4 bolas en mi poder, paso a contrastar con la lista de todos los personajes de Dragon Ball en una web. Utilizando el buscador, nos encontramos con esto:


Si contamos el número de caracteres solo tiene 6, cuando las bolas son 7, pero recordé la pista que lanzó @devploit:


Por lo que el nombre del personaje podría ser: D R G U E R O

¡Por probar que no quede! Lanzamos el nombre al comprobador 34.253.120.147:9999 utilizando Netcat:


¡Y reto superado!

jueves, 28 de marzo de 2019

Writeup - Hall Of Fame - Reto 20 H4F


Los chic@s de Hackers4Fun nos traen el reto nº 20. En él, nos enfrentamos a una amenaza "infernal".

Manos a la obra

Descargamos el archivo .7z del enlace que nos proporcionan desde Twitter. Una vez descomprimida tendremos la siguiente imagen:


La analizamos con Exiftool pero nada raro, tras probar con varias herramientas de Stego, vemos que una de ellas nos saca una nueva imagen.


Obtenemos un archivo llamado "Inferno_stego.7z", en el título tenemos una pista y es que volvemos a tener "stego" para rato...


No podemos ver la imagen, por lo que seguramente no se trate de un .jpg....

Efectivamente, el archivo es un PNG, renombramos el archivo y lo abrimos.


Perfecto! Otra foto! Pequeña...Pero foto! Si utilizamos Google Images, nos indica que se trata del Infierno de Dante con sus nueve círculos.

Tras probar con varias tools LSB, no se obtiene nada, tampoco funciona Steghide...Nos llega una pista desde Twitter:



Probamos con esta herramienta:


Y nos desvela la nueva imagen:


Aunque no es muy legible, vemos que en la columna de la derecha pone "MALBOLGE", es el 8º circulo del Infierno de Dante.

Utilizaremos la misma técnica, pero esta vez llamaremos el archivo "resultado.txt" en vez de "resultado.png".



También escondía un .txt, si hacemos un "cat".... Nos suelta el siguiente string:

D'`N^#"=~}:F27wfAQtrN`.nmI7jGhE%1d@y~`<;)]xqpo5srqSi/glkdcb(`_^]#a`YX|\UTSXQVOsS54PIHMLEiI+G@ED=<`#?8=<54X87w/43,P*).'&+*#G!g%|#"yx>v^tsr8votmrk1oQgfkjib(`e^cb[Z~^]?UZSRvP8NSRKPONGkE-CHA@dDCB$@?>=<5Y9y1U543,r*N.-,+k)"F&fe#"y?w|{zyxqpo5sUTpong-kjihaf_%]Ea`_^]Vz=YXQVUNrRQJnHMLKDhBGFE>=<`@9!=<;4X87wv4-Qr0/.'K+*j(!Ef|#"yx>|u]srwvo5mrqj0nmlkMLhg`&dcE[!_A@\UyYX:POTMq4JIHlY


Si buscamos "Malbolge" en Google vemos que también hay un lenguaje de programación esotérico llamado "Malbolge" relacionado

Por lo que se aprecia en el ejemplo, observamos que el código es muy parecido y que no vamos mal encaminados.

Buscamos algún decoder de este lenguaje y encontramos este:

Obtenemos el siguiente string en base64, lo decodeamos:


Y por fin obtenemos la flag! H4F{H3llB0y_W4s_Gr4Nt3D}


Agradecer al equipo de Hackers4Fun por los retos tan entretenidos que se curran y por lo que aprendemos con ellos. Gracias y hasta la próxima!

jueves, 27 de diciembre de 2018

Writeup - UAM - UNIVERSO MARVEL - EPISODIO 1 - 1ª PARTE

Los de UAM (Una al mes) nos traen un nuevo reto, esta vez nos adentramos en el Universo Marvel, donde tendremos que analizar una comunicación (una captura de red) para descubrir la ubicación exacta de la base secreta de Hydra.


Manos a la obra

Pulsamos el enlace y nos descargamos el archivo "capture-01.cap" y lo ejecutamos con Wireshark.



Como podemos ver, los datos están cifrados por el protocolo "IEEE 802.11" y la comunicación ha sido a través de una red inalámbrica (WiFi).

Por lo tanto, nos haría falta conocer la contraseña para poder desencriptar los paquetes y hacerlos legibles.

Para ello utilizaremos wpaclean, para dejar sólo las tramas del WPA y sacar la password posteriormente con fuerza bruta.



Procedemos a sacar la password por fuerza bruta con aircrack-ng y el diccionario "rockyou.txt".



Tras algo mas de una hora (en mi modesto portátil) obtendremos la password "hydra54321".

La colocamos en Wireshark y ahora estarán los paquetes legibles y encontramos esto:



Abrimos la URL y nos encontraremos en un sitio web, con las credenciales de "Grant Ward" y por lo que podemos ver, existe un apartado en el sitio llamado "Ubicación de la base".

Hacemos clic en el apartado y......Plaffff, en toda la frente! 




El juego continua, por lo que si visitamos el apartado "Misiones" nos muestra:



Aquí hay tomate! Bueno en este punto, revisé el código y encontré el enlace que abría el apartado de cual no tenía los permisos necesarios para poder entrar.




Tras unas pruebas y beberme una lata de "Monster", comprobé que el servidor no estaba bien protegido y me permitía descargar archivos. Por lo que hice "magia" con "Wget":



Hacemos un "cat" para leer el archivo y nos muestra el contenido codificado en "Base64".



Vamos a descodificarlo:



Por lo que se aprecia en el código, vemos que aunque esté cifrado, se entiende las coordenadas "37' 21' A 23" 28' R" y el formato de la flag "HNZ{.........} por lo que estamos muy cerca de terminar el reto.

Por la estructura, diría que es ROT:



Habemus flag! UAM{46863d92858b486c29f759767e53e92f}

Agradecer y dar la enhorabuena a los chicos de UAM (@hispasec) por los retos tan currados, espero impaciente otro reto. GRACIAS!

miércoles, 7 de noviembre de 2018

Writeup - CTF HackMadrid - Termina la investigación - OSINT


Nos encontramos con un reto de OSINT (Open Source Intelligence) en el que tenemos que terminar la investigación de un detective que ha desaparecido.

Para ello contamos con:
- Una máquina virtual con la distro OSINTUX (os recomiendo que le peguéis un vistazo, está muy completa) que contiene la investigación del detective desaparecido. (Enlace de MEGA)
- Y un par de pistas (hints) "M.I.7" y ". > -". (Si, yo también puse esa misma cara cuando las vi jejeje).

Manos a la obra

Descargamos el OVA de OSINTUX y ejecutamos Virtualbox para entrar al sistema. Dentro de OSINTUX buscamos en documentos y encontramos un archivo llamado "investigación.txt".


Investigación
############
- Dirección de su hermano: Alte Hägglingerstrasse
- Su nombre: Derek
- Les gusta el 7

Con dichos datos ya podemos empezar nuestra investigación.

Lo primero que hice, fue buscar un listado de las personas que viven en esa calle y encontré esta página web (muy interesante por cierto) realizando una búsqueda en Google de la calle.


Si revisamos la lista de la gente que vive en la calle, nos llama la atención la primera de las pistas "M.I." que huele a iniciales de una persona.

Seguimos revisando la lista y tropezamos con esta persona:


Al principio no le hice mucho caso, ya que buscamos las iniciales "M.I", pero me dí cuenta que la web listaba a los vecinos por "Apellido Nombre". Fue entonces cuando vi un pequeño "rayito de luz" en este caso.

Tras hacerle clic encima del nombre, la misma plataforma nos ofrece enlaces a redes sociales.


Ahí tenemos los dos resultados en Facebook:


El primero es el hermano de Derek y el segundo es el Padre de Derek. Elegimos la 2ª opción, accedemos a su perfil y hacemos clic en "Amigos" y encontramos a un perfil que encaja con nuestro sospechoso:


La 2ª parte de la pista ("7") y llegado a este punto, veo que no voy mal encaminado en la investigación, detectamos que efectivamente Derek Isler James y Marc Isler James comparten el número 7 en el username de facebook.



El siguiente paso será averiguar el correo electrónico de Derek para posteriormente, buscar la contraseña en algún leak.

Si intentáramos averiguar el correo usando el "recuperar contraseña" de Facebook, este nos mostraría sólo parte del correo, por lo tanto no nos sirve.

Por lo que mi cabeza me decía que la pista del "7" se le debe de poder sacar mas "chicha". Probé usar el username de Derek (recordemos "derek.isler.7") en Google, pero no aparecía ningún resultado que me sirviera. 

Tras ir probando con varios buscadores (Google, Bing, DuckDuckGo....), me paré a pensar que tal vez sería interesante pensar en que sitio podría encontrar un "leak" sobre passwords dumpeadas, y me vino a la cabeza los "Rusos" :P, directamente abrí Yandex y usé este dock "derek.isler.7 email".


Justamente era el primer resultado, donde ya nos dice el email "eckoderek@hotmail.com"

Nuevamente hacemos otra búsqueda pero con este dork "eckoderek@hotmail.com".


Yeah! Tenemos la contraseña "verma123", aparece en un leak de una base de datos de 81 millones de cuentas (casi nada :P).

Ya sólo nos queda pasar "verma123" a MD5. 

La flag HM{b90be2e2e970493b02a4cc2dd59bda2b} y damos por superado este gran reto de OSINT.



Agradecer a @PDParla y los organizadores de @HackMadrid por el evento y por hacernos disfrutar a todos con este #CTF.


Caso cerrado, como diría el gran John "Hannibal" Smith (Team A)...."Me encanta que los planes salgan bien" ("purito" incluido, por supuesto).



Hasta otra hackers!!!

PD: Aún estoy dándole vueltas a la pista ". > -" :P