Hemos descubierto la plataforma del CCN-CERT
, llamada ATENEA
. CCN-CERT significa o son las siglas de Capacidad de Respuesta a incidentes de Seguridad de la Información del Centro Criptológico Nacional, adscrito al CNI.
Voy a eliminar los flags, para que os toméis el trabajo de leer la forma de solucionarlo, y por orden de la organización.
Nos dan una cadena de texto y nos piden que calculemos su hash md5
, tenemos que tener en cuenta que la solución debe ir en el formato: flag{md5}
Todas las soluciones deben ir en este formato, independiente del resultado obtenido, esto es que siempre daremos la solución con su hash md5.
La contraseña para superar este reto es LearnTheHashFunction
La resolución de este primer reto es muy sencilla, bastará con usar el módulo md5 de la librería hashlib de python, para esto creare un script, voy a escribirlo para que me de el formato de la flag que debo introducir como solución:
Lo ejecutamos y obtenemos la respuesta del primer reto:
He decidido, luego de este reto, crear un script que me permita introducir la cadena de texto que deseo codificar en md5, así me permitirá sacar la flag en el formato que solicita la plataforma.
En este reto nos dan una cadena de texto y nos piden que calculemos su hash sha256
y posteriormente su hash md5
para que como hemos indicado anteriormente podamos introducir la respuesta en el formato que la plataforma exige (flag{md5}
).
La contraseña para superar este reto es ThisIsAMoreSecureHashFunction
Como en el primer reto, esta solución es bastante sencilla. Vamos de nuevo con un script en python, que nos permitirá obtener la respuesta; podríamos utilizar algún codificador online y nos dará el mismo resultado.
He dejado que mi script me muestre como seria la codificación en
SHA256
y la flag enMD5
que debo introducir.
Con este script obtenemos la flag que buscamos:
En este reto nos dan una cadena codificada en md5 y nos solicitan buscar cual seria su texto correspondiente.
La contraseña para superar este reto es: 54f662a095fa3d5fbbdaac72d176701b
Hay múltiples forma de solucionar esto reto:
Por temas prácticos utilizare un decodificador online:
Posteriormente, nos piden que convirtamos la cadena de texto en mayúsculas, y calculemos su hash md5. Así que podemos hacerlo manualmente o utilizar un script en python. En este caso utilizare un script que haga justamente esta operación en un solo paso:
Obtenemos la flag que nos piden:
Nos dan una explicación de los códigos ascii,: Los códigos del 33 al 126 se conocen como caracteres imprimibles, y representan letras, dígitos, signos de puntuación y varios símbolos.
Nos piden encontrar los los caracteres correspondientes a la codificación ASCII que nos entregan:
080 097 115 115 119 111 114 100 032 112 097 114 097 032 115 117 112 101 114 097 114 032 101 108 032 114 101 116 111 058 032 084 104 101 065 083 067 073 073 084 097 098 108 101 033
Para solucionar esto, podemos utilizar algún decodificador online o realizarlo con python. Una de las paginas mas utilizadas para codificar y decodificar es iCyberchef, pero para seguir con el uso de python, lo resolveré asi.
Vamos a ir convirtiendo cada código ascii en letras (char), recorriendo la cadena que nos han dado separando por espacios, para lo cual aprovecharemos la función split.
Lo cual nos da la contraseña o texto que nos piden.
Como he dicho al comienzo, he creado un script para convertir las contraseñas de los retos al formato que solicita el sitio como respuesta, en hash MD5.
En este reto nos dan un fichero txt con una cadena de texto, la cual debemos descodificar y poner la respuesta en el formato que nos solicitan (flag{md5-hash}
)
El contenido del fichero es:
UmVjdWVyZGEgcXVlIGN1YW5kbyBjb2RpZmljYXMgYWxnbyBlbiBiYXNlNjQgTk8gbG8gZXN0w6Fz
IGNpZnJhbmRvLCBzaW5vIHF1ZSBzaW1wbGVtZW50ZSBsbyBlc3TDoXMgY29kaWZpY2FuZG8uDQoN
CkxhIGNvbnRyYXNlw7FhIHBhcmEgc3VwZXJhciBlc3RlIHJldG8gZXM6IHJlY3VlcmRhcXVlYmFz
ZTY0Tk9lc2NpZnJhcg0KCg==
Podemos utilizar cualquier web que nos descodifique, usar bash o utilizar python. Mostrare la forma con bash y el resultado en una web.
Bash:
Web:
Calculamos el hash de la respuesta, para dar la respuesta de la flag:
En esta ocasión nos dan una cadena que debemos convertir de Hex a Char:
50617373776f72643a2044346d7054686548337821
Podemos utilizar una web que nos descodifique la cadena, o realizar un script en python. Os mostrare ambas opciones.
Web:
Python
Obtenemos la flag que nos piden:
Esta seria la primera parte de estas soluciones, en el siguiente post
seguiremos con la segunda parte de estos retos.