Tiempo de lectura: 7 minutos

En este artículo solucionaremos tres retos CTF de Atenea CCN-CERT publicados en el año 2018.

Criptografía y Esteganografía: Vigenere

En este reto nos pasan un texto con cifrado vigenere. La solución más simple es hacerlo con un ataque de diccionario.

qv ah pfsix xi wm ughgsm, lk wyja vugfcq vu kytqzu ugzdlglqp, zw nu qfopu nmpyxu kyp hqbíu yy tqjupra lk fsd pm rurkm mt uweutryvz, mlglkl mvzckfm, zuwír qxiii c rmtmi gzdzkxsc. gvg ipwm lk upra uáy penm yay gldvkls, dmtvcgóy xiy gáw yaknyw, ogmriw j cckvvlzbum pze aáhuhze, tkhxpviy fsd hqklrpe, iraúr amtugmya lk uñeoulale waa jiqtzoum, gzzaagíey xiy nvpe xglxpe lk my smkoyrom. tg wsyfzgmiñl bixu wfbmxuv px zkns pe zuwmymvzy. iw dmyns oqtru gzzkroíey eiei hp hmruveq, kgfdle lk piwxcji tldi ruw qumyned owt myd bitnyqxwy xi wa uomqz, xwy xíed pm khxcq akgeym ak bsydihu gzz aa piwxwxc hp xw sám jtzw. zyríl qv yo glei ahe lyi woi amagve oq tum gfmzkhxl, k ctu wznzohe bgm ti pwqogve l xwy pitzbk, s yy ywfi hp oisjs j btgte, bgm gmí iyeqrfemm mr lsníz kugs eaugve wm xuxeoqzg. zvteihu pl qlgx hp zckmxca poxewsw iir waa icrngmtne lñaa, kle oq kugtwqfoóh vpoqg, mina lk weczmy, yrugbu xi caazls; rdit geodcmuhzd g ggmra lk fe nmhg. kytqzkh hpoqx kyp fmtíu iw ewhliyauhli oq yacnlpi u kypeiju (ufq mt ywea pgs ewsctu htrmxyrnui kh pze ianscqa woi oqazy glew kmgcujkh), efzyay tzd kuhnpfcxuw gqzumíqtxmy mi oqrg yreqvjyv bgm yy pwmug kytvitu; tpdw kmxz uuvivem xuws l zckmxca kayrea; jgmxl cck yr wm vglvloqót xép ya ak mewsi ah tfzbu xi wm dklhlp.

Tras descubrir que la clave es miguel, podemos utilizar una herramienta como ciberchef para leer el texto. Descubriremos en la linea seis que la flag es rocinante.

Análisis de tráfico: Wireless Jon Snow

Partimos de un pcap capturado “por el aire” (tramas 802.11) con el objetivo de comprobar si Jon Snow se conectaba por FTP y si su contraseña viajaba en claro.

Para poder ver tráfico IP/TCP fue necesario descifrar la Wi-Fi; el pcap traía el handshake EAPOL, por lo que se obtuvo la clave del SSID Earthrealm usando hcxtools (formato 22000) y Hashcat, que reveló la contraseña sysadmin1.

Con esa clave se descifró la captura en Wireshark y apareció la sesión FTP USER jon.snow y PASS Subzer0_2017. La flag final fue Subzer0_2017. Lecciones: no usar contraseñas débiles en la Wi-Fi corporativa, evitar FTP en claro y migrar a SFTP/FTPS con políticas de seguridad robustas.

Forense: Hurgando en el router

Durante el análisis se partió del firmware de un router TP-LINK WA801ND con el objetivo de obtener la contraseña de root. Mediante binwalk se identificaron las distintas secciones del binario, entre ellas un sistema de ficheros SquashFS comprimido.

Con dd y unsquashfs se extrajo y montó dicho rootfs, accediendo a la carpeta /etc donde se localizó el archivo shadow con el hash de la cuenta root, protegido mediante sha512crypt. Posteriormente, se empleo Hashcat en modo 1800 (sha512crypt), utilizando el diccionario rockyou.

El ataque reveló en pocos segundos la contraseña en claro: prometheus. Este procedimiento mostró cómo, a través de técnicas forenses sobre firmware embebido, es posible recuperar credenciales críticas y evidenció la debilidad de emplear contraseñas presentes en diccionarios públicos.

Análisis de tráfico: Laaaagggg 

Se analizó guest-VLAN.pcapng habilitando columnas de MAC y filtrando tráfico ARP para detectar suplantación del gateway. Se observaron numerosas respuestas ARP Reply del tipo 192.168.1.1 is at 08:00:27:EC:26:E5, indicativas de ARP poisoning.

Al filtrar por eth.src == 08:00:27:ec:26:e5, se comprobó que esta MAC cursaba tráfico de clientes internos hacia múltiples destinos externos (DNS/HTTP/S), comportándose de facto como MITM/gateway; esto explica la latencia, las retransmisiones y los errores de certificados reportados. Por tanto, la MAC del atacante a localizar y aislar es 08:00:27:EC:26:E5.

Criptografía y Esteganografía: Podrías descifrar el mensaje sin la clave?

El reto nos entrega este texto cifrado:

Primero hay que reconocer el tipo de cifrado y preparar el terreno. En este caso, el mensaje estaba protegido con una sustitución monoalfabética, es decir, cada símbolo del texto cifrado representaba siempre la misma letra. Para empezar, se analizó la frecuencia de cada carácter y se comparó con la frecuencia típica de las letras en español. Con esa información se creó una primera tabla de equivalencias, asignando los símbolos más comunes a las letras más usadas del idioma, como “e”, “a” o “o”. Al aplicar esa tabla al texto, se obtuvo una versión preliminar que permitió medir qué tan natural sonaban las palabras, analizando la presencia de términos frecuentes y combinaciones de letras propias del español.

Luego, el algoritmo de búsqueda, este caso simulated annealing, fue probando miles de permutaciones de la tabla de sustitución. En cada intento, el sistema descifraba el texto, evaluaba su puntuación lingüística y decidía si conservar o descartar el cambio, favoreciendo las mejoras pero aceptando a veces pequeños retrocesos para evitar quedarse atrapado en falsos resultados. Tras muchas iteraciones y reinicios, el programa fue ajustando las sustituciones hasta que el texto se volvió completamente legible.

El resultado final reveló el mensaje original y la flag oculta flag{e53f00b7124266f8ce045e27a873220e}, demostrando que incluso sin conocer la clave, el análisis estadístico y la optimización pueden romper con éxito un cifrado clásico.

Criptografía y Esteganografía: Juegos de guerra  

Se trata de un reto muy sencillo. Tras hacer un exiftool a la imagen que nos dan veremos que la imagen tiene una miniatura y que se puede extraer con -b. Tras ejecutar d2FyZ2FtZXMK-d2414dd3b174b6503d59a113c6f02537.jpg -b -ThumbnailImage > Imagen1 nos daremos cuenta de que la nueva imagen tiene unas coordenadas «37 deg 29′ 6.00″ N» y nuevamente tenemos la opción de extraer otra miniatura. Ejecutamos exiftool Imagen1.jpg -b -ThumbnailImage > Imagen2.jpg y al mirar los metadatos de la tercera imagen nos encontraremos las coordenadas 122 deg 8′ 53.40″ W.

Una vez reunidas las coordenadas, nos llevará a los actuales cuarteles de Meta en Menlo Park. La flag es HACK o flag{0a8459aa738b0a4faa05b8ef091810f4}.

Criptografía y Esteganografía: Really???

Nos dicen que se ha encontrado un fichero cifrado con PGP mediante clave simétrica y que todas las contraseñas obtenidas de varias cuentas del sospechoso (a partir de la investigación de su equipo) tienen varias características: Son de longitud 6 o 7; Sólo contienen letras minúsculas; Sólo se utilizan estas letras: qwertyiopnmjk; No se repite ninguna de las letras de la contraseña; Algunas de ellas contiene únicamente un número entre estos: 013

Primero estudiaremos el fichero que nos dan. con file nos dice que se trata de un archivo PGP message Symmetric-Key Encrypted Session Key (old). Luego el comando gpg –list-packets m.asc nos muestra la estructura interna del archivo PGP e informa que está cifrado con AES utilizando una única contraseña (cifrado simétrico), indica que contiene datos comprimidos y revela que dentro del mensaje hay un archivo llamado textoMensajeOculto.txt de 22 KB.

Lo primero que haremos será conseguir la contraseña. Se puede solucionar de varias formas. La primera es crear un diccionario personalizado con un script sencillo que nos dará 38610000 posibles contraseñas. Con un par de días con el ordenador encendido se llegaría a descifrar el hash, pero por si acaso, primero probaremos diccionarios comunes más pequeños por si estuviese ahí la contraseña, en este caso rockyou.txt. Para ello, primero conseguiremos el hash del fichero encriptado con gpg2john message.asc > hash.txt y luego lo atacaremos con rockyou.txt con la instrucción john –wordlist=diccionario.txt hash.txt.

Obtendremos que la clave es monkey3. Por si tienes curiosidad, en mi diccionario personalizado, monkey3 se encontraba en la linea 33921729.

$gpg$*0*9722*134864e030f13e132b3191bd689bd76001fab4d3d4613b4d908089c15fd27abbfdc0709928eb020df649cbe00440fdbe5257f082e3a7db6813324b4c9fb669eb63f986dfb0cb3e6bcf6a4693d561be9ba95f2eb6ffd2d5aed3d7de6ed9212db722bf6db226946472a339a6c0f18904ee99c22c034e6012b30e99711ae67483b11d0e1cf5671f18a77222e35ce6714491e77c060218dde2bdad2318773317e56184e33dcc9c4489e51064bc7328fa362cb2ce2b86e256e6aba08602da4f6c8a0f00378ba9eda5eb5f3db9c2ddb32a1e017cae3541115a1d86fccbd542fddc60023cb6f89fb6ef7197056d626abed5bb2999e8bb52be74216f6feca5e97704b1f62bfea3cdbe46b7c778a194d8125614639ee1f071c32082a80eba93a655076b9991d93692b8525fe4c749ed066cb9af4cda2d3c53f6a95b039155e47675c20d59efe96537eb8c760fcbbcbf39daf4d68844c35d4a8637afdbc1c72efb020c78e9236946d8d863a993dc56c431d5edfb0f779ed36e873160667e6f0d5e1b666a3b1faea4c13ca63d943ef548097271e3a168a45ef3edf30af5d361205a53df5c04ea5a6b$SOURCE_HASH$9aa1199af3bf5321bb4f9bb4d980f0a1:monkey3

Una vez descifrado el archivo vimos que contenía un pasaje de La isla del tesoro, sin nada destacable. Revisamos metadatos y estructura y, al no encontrar nada evidente, comprobamos que existen caracteres invisibles como espacios o tabuladores añadidos al final de las líneas. Con el comando sed -n $’s/\t$/**TAB**/p’ textoMensajeOculto.txt detectaremos tabuladores ocultos sin motivo aparente, un patrón típico de esteganografía basada en whitespace. Tras investigar, encontraremos que la posible herramienta utilizada es SNOW o Steganographic Nature Of Whitespace.

hacía estremecer los cuatro ángulos de nuestra casa y cuando la marea**TAB**
tempestades en el mar y en el Paso de Tortugas--y salvajes hazañas y**TAB**
ralea son precisamente los que hacen que el nombre de Inglaterra sea**TAB**
aprovechando el paso casual de un buhonero. Habiéndosele caído una de**TAB**
se había levantado mucho más temprano que de costumbre y se había**TAB**
ánimo el recuerdo desagradable de la escena con el Doctor Livesey.**TAB**

En mi caso, tuve que añadir el include <string.h>.

Tras compilar el programa, utilicé el comando snow y el texto y me devolvió esta receta. Tras buscar en internet, encontré que la bebida se llamaba grog por lo que la flag era groggrog o flag{58dfa0d5ab71d72f03cef779e9c7537b}.


MÁS CONTENIDO


  • Inscripciones abiertas para participar en Locked Shields 2026, el wargame de la OTAN


  • Araintel cubre RootedCON 2026


  • RootedCON 2026 desvela los secretos de ‘Enigma’


  • RootedCON 2026 reúne en Madrid a todo el sector de la ciberseguridad y ‘hackea’ récords de participación


  • Nueva convocatoria unificada para la Policía Local en Aragón


  • Por qué apostar por la ciberseguridad en el sector público


  • El cibercrimen en Aragón creció en todas sus provincias en 2025, pero no en todas sus capitales


  • El cibercrimen en Aragón creció un 12,9% en 2025 y ya representa 1 de cada 4 ciberdelitos en la comunidad


  • INNOidea 2026: Abierto el plazo de participación


  • ¿Quieren LaLiga y el Gobierno espiarnos? #CryptograFREE


  • SICUR 2026 mostrará la oferta en seguridad de más de 670 empresas en su 25 edición


  • Semana de seminarios de ciberseguridad en UNIZAR: De evasión de malware hasta «matemáticas para la democracia»


  • Daniel Arp expondrá lecciones aprendidas sobre IA en investigación en ciberseguridad


Media Partners

ORO

PLATA

BRONCE

HEMOS COLABORADO CON