Solve-It EE26: Nivel 2

Vamos ahora con el nivel 2 de los solve-its.

En este solve-it nos encontramos con el siguiente enunciado, que nos propone imobilis:

photo_2018-08-03_12-07-04

Spin-Up: Que en este nivel el enunciado no es que fuera una pista … de hecho yo diría que más bien fue un troleo …

Si escuchamos el fichero de sonido nos encontramos con que es un disco duro acelerando y rascando (ese sonido que hace cuando hacemos lecturas/escrituras sobre el mismo) y finalmente desconectándose y decelerando.

Lo primero que hacemos directamente es pasarlo por el Audacity para ver a qué nos enfrentamos de forma más visual:

IOPS01

Lo primero que se nos pasa por la cabeza al ver esto es el morse. Haciendo un analisis de espectros y ajustando algún que otro parámetro logramos obtener lo siguiente:

IOPS02

Ahí visualizamos más claramente donde están los pulsos que da el disco duro (lecturas/escrituras).

Podemos ver que cada cierto número de pulsos, y hasta un máximo de 5, hay un espacio de alrededor de 150 ms, por lo que separamos estos datos así en base a esos 150 ms:

4, 4, 2, 3, 2, 4, 4, 3, 2, 4, 4, 3, 3, 3, 3, 4, 4, 4, 1, 1, 3, 2, 3, 4, 4, 2, 4, 3, 1, 5, 1, 3, 3, 4, 1, 4, 1, 5, 1, 1

Esta lista de números es lo primero que obtuvimos pero no teníamos muy claro qué podíamos hacer con ella…

Teníamos esperanza de que pudiera ser morse, pero no tenía sentido, los pulsos eran iguales, no parecía haber diferencias notables entre lo que podrían ser los puntos y las rayas del código morse…

Pensamos bastante tiempo en letras asociadas a esos números pero también carecía de sentido, ya que estabamos hablando de 5 letras únicamente. Estuvimos dando vueltas a esto bastante tiempo a pesar de que habíamos visto que no parecía llegar a buen puerto en ningún caso…

Cambiamos un poco de tercio y basándonos en el nombre del fichero de audio hicimos algunas búsquedas por internet donde localizamos que habían logrado extraer datos de un disco duro por los ruidos que este emitía. Estuvimos echando un ojo también a un paper que encontramos sobre el tema pero… nos pareció que era excesivamente complejo… sobre todo para estar hablando de un solve-it de nivel 2…

Otra de nuestras opciones fue la de pasar a binario los elementos para ver si podíamos distinguir alguna forma o patrón:

IOPS03.PNG

No parecía tener buena pinta … pero confiabamos que tendrían que ir por ahí los tiros por ahí así que hicimos lo mismo pero cogiendo cada pareja de valores:

IOPS04.PNG

Agua…

O algo estabamos pasando por alto, o nos faltaba algún detalle más…

Seguimos por el camino de utilizar el título del level como “guía” y el propio nombre del fichero de audio, pero eso no nos llevaría mas que otros callejones sin salida. Analizamos el espectro de la señal en la zona “limpia” de la misma y sacamos algunas conclusiones (que no llevarían a ningun sitio… ):

IOPS05.PNG

Como vemos en la captura anterior, en el espectro frecuencia , la frecuencia dominante en este tramo correspondiente a 90Hz: eso nos dijo simplemente que el HDD estaba girando a 5400rpm … a modo de curiosidad es muy bonito, pero en lo que es avanzar para resolver el level, no nos serviría para nada…

Teniendo esto, hicimos por otro lado el análisis en frecuencia de cada uno de los bloques de conjunto de pulsos:

IOPS06.PNG

La frecuencia de 90Hz va a estar siempre ahí, pero al hacer ruido el disco duro se añaden más frecuencias, como se puede ver en el gráfico, y como estaban en torno a 90Hz también, pensamos que las frecuencias podrían corresponder a código ascii… pero era otro callejón sin salida:

IOPS07.PNG

Dejamos un poco a parte este nivel y nos centramos en el level 3…

Al día siguiente (ya viernes) lo retomamos un poco y optamos por la idea original del morse… que sabíamos de sobra que no era morse, pero también sabíamos que seguro que tenía algo relacionado o semejante con ello aunque no tuviéramos ni idea de qué podría ser…

Se nos ocurrió buscar por internet algo como “morse code variant” y fue cuando encontramos de casualidad, en imágenes de google, algo que nos llamó la atencion a los dos que estabamos mirando en la misma pantalla del ordenador esperando encontrar algo:

IOPS08.PNG

Una tabla de 5×5 (casualmente el máximo valor de pulsos que teníamos era 5!!) que asociaba por parejas de números una letra del abecedario… tenía muy buena pinta!

Empezamos a coger los datos numéricos de los pulsos de 2 en 2 y qué sorpresa cuando empezaron a salir cosas legibles:

4,4, t
2,3, h
2,4, i
4,3, s
2,4, i
4,3, s
3,3, n
3,4, o
4,4, t
1,1, a
3,2, m
3,4, o
4,2, r
4,3, s
1,5, e
1,3, c
3,4, o
1,4, d
1,5, e
1,1, a

Como veis, teníamos un código legible que tenía toda la pinta de ser la solución pero … no nos cuadraba bien la última letra …

thisisnotamorsecodea

… nos habíamos dejado algo o habíamos cogido ese dato de más?

En cualquier caso, primero optamos por introducir el código tal cual (incluida la ‘a’ del final). Pero no era la contraseña… así que … optamos por introducir el dato sin la última ‘a’ (al final ésta era la respuesta más sencilla; ¿qué datos iba a haber después de esa ‘a’?) y es AQUI cuando hicimos nuestra primera gran cagada: introdujimos la contraseña CON ESPACIOS:

this is not a morse code

A continuación, nuestra segunda gran cagada que fue la que hizo que se nos fuera de las manos este level, escribiendo auténticas idas de olla después. Fue al introducir a mano lo siguiente (entre otras cosas):

thisnotamorsecode

Sin el ‘is’ …

Luego este…

thisisnotamorescode

SI, 2 letras cambiadas por introducir a mano la password… y os preguntaréis que por qué sé que introdujimos las claves exactamente así (de mal) … luego lo contaré…

Total, que ya está liada: después de esto vino el despiporre y las estiradas de pelos y las juradas en griego incluyendo a imo en ellas (eh, pero siempre con cariño, que no se lo tome a mal nadie 😉

¿Qué posibilidades había de que hubiésemos encontrado ese código y NO fuera la contraseña? Era prácticamente imposible! encontrar un código y que sea una troleada? Pues la cosa es que lo pensamos… y como el nivel se llamaba Spin-Up nos obsesionamos por encontrar la clave en la arrancada del HDD.

Empezamos a pasarle filtros de mil tipos, espectros, calculamos aceleraciones, velocidades, luego empezamos a pasar a morse la clave, a binario, hexadecimal … y un sin fin de mierdas más sin sentido …

Fue el sabado a eso de las 11 de la mañana (a 1 hora para el deadline de la prueba) cuando un compi escribió la password con serenidad, tranquilidad y algo de cabeza y…  voilá, funcionó por fin !!! unas 12 horas liándola con la contraseña cuando ya la teníamos !

thisisnotamorsecode

Tras finalizar la prueba y después del deadline del apartado de Software Libre (sabado a las 23.59), fuimos a hablar con imobilis para ver si podríamos ver el log de las passwords que habíamos estado introduciendo desde que averiguamos la contraseña correcta.

He de decir, que cuando nos las mostró fue de los momentos mas desternillantes que he pasado durante esta Euskal. Había auténticas barbaridades, de las que algunas no sabíamos ni de dónde habían salido: vimos desde cosas como “No” o “El Equipo A” hasta “for the love of motherfucking god, what the hell’s missing here!”. Fue épico; llorando de la risa (gracias imobilis por ese momento !! xDDD).

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s