lunes, 23 de septiembre de 2013

Writeup Crypto 100. CTF Mugar2 2013



Crypto100

Se nos presenta un texto cifrado con esta apariencia

Ol miol mit ktqs soyt?
Ol miol pnlm yqfmqlx?
Eqnuim of q sqfrlsort,nlock code
Fg tleqht ykgd ktqsomx.
Ghtf xgnk txtl,
Sgga nh mg mit laotl qfr ltt,
O'd pnlm q hggk qsotf,
O fttr fg lxdhqmix,
Wteqnlt O'd tqlx egdt, tqlx ug,
Sommst ioui, sommst sgv,
Qfx vqx mit vofr wsgvl rgtlf'm ktqssx dqmmtk mg dt, mg dt.
Dqdq, pnlm aosstr q dqf,
Hnm q sqltk quqoflm iol itqr,
hnsstr dx mkouutk, fgv it'l rtqr.
Dqdq, ofbqlogf iqr pnlm wtunf,
Wnm fgv O'bt ugft qfr mikgvf om qss qvqx.
Dqdq, ggi,
Rorf'm dtqf mg dqat xgn ekx,
Oy O'd fgm wqea quqof miol modt mgdgkkgv,
Eqkkx gf, eqkkx gf ql oy fgmiofu ktqjnt jnotktl nf kssx dqmmtkl.
Mgg sqmt, dx modt iql egdt,
Ltfrl liobtkl rgvf dx lhoft,
wgrx'l qeiofu qss mit modt.
Uggrwxt, tbtkxwgrx, O'bt ugm mg ug,
Ugmmq stqbt xgn qss wtiofr qfr yqet mit mknmi.
Dqdq, ggi,
O rgf'm vqfm mg rot,
O lgdtmodtl voli O'r ftbtk wttf wgkf qm qss.
O ltt q sommst losigntmmg gy q dqf,
Leqkqdgneit, Leqkqdgneit, voss xgn rg mit Yqfrqfug.
Minfrtkwgsm qfr souimfofu, btkx, btkx ykouim'fofu dt.
(Uqsostg.) Uqsostg.
(Uqsostg.) Uqsostg,
Uqsostg youqkg Dqufoyoeg.
O'd pnlm q hggk qsotf qfr fgwgrx sgbtl dt.
It'l pnlm q hggk qsotf ykgd q hggk yqdosx,
Lhqkt iod iol soyt ykgd miol dgflmkglomx.
Tqlx egdt, tqlx ug, voss xgn stm dt ug.
Woldossqi!
Fg, vt voss fgm stm xgn ug. (Stm iod ug!)
Woldossqi!
Vt voss fgm stm xgn ug. (Stm iod ug!)
Woldossqi!
Vt voss fgm stm xgn ug. (Stm dt ug.)
Voss fgm stm xgn ug. (Stm dt ug.)
Voss fgm stm xgn ug. (Stm dt ug.)
Qi. Fg, fg, fg, fg, fg, fg, fg.
(Gi dqdq doq, dqdq doq.) Dqdq doq, stm dt ug.
Wttsztwnw iql q rtbos hnm qlort ygk dt, ygk dt, ygk dt.
Lg xgn miofa xgn eqf lmgft dt qfr lhom of dx txt.
Lg xgn miofa xgn eqf sgbt dt qfr stqbt dt mg rot.
Gi, wqwx, eqf'm rg miol mg dt, wqwx,
Pnlm ugmmq utm gnm, pnlm ugmmq utm kouim gnmmq itkt.
Fgmiofu ktqssx dqmmtkl,
Qfxgft eqf ltt,
Fgmiofu ktqssx dqmmtkl,
Fgmiofu ktqssx dqmmtkl mg dt.
Qfx vqx mit vofr wsgvl.

Mit atx ol xgneqfmlmghdtfgv

Cuando nos encontramos con un texto cifrado uno de los principales problemas es que no sabemos con qué está cifrado, porque por definición un sistema de cifrado (seguro) no debería darnos ningún dato acerca del texto original, es decir, la información cifrada debe ser, o tener apariencia de información aleatoria. 

Este evidentemente no es el caso, porque con una ojeada podemos sacar aparentemente bastante información del texto original, signos de puntuación, espacios, lineas.. así que seguramente se trate de un cifrado clásico, y en este caso nuestro principal candidato es el de sustitución.

El cifrado de sustitución consiste como su nombre indica en sustituír cada uno de los caracteres del texto por otra cosa, y esa otra cosa puede ser otro caracter del mismo sistema de codificación del texto original, caracteres de otro juego de caracteres más amplio, símbolos, dibujos o cualquier cosa que se nos ocurra.

Vamos a asumir el primer caso, porque es el más fácil de resolver.

Existe un patron en los lenguajes naturales que es que ciertas letras, digramas y trigramas se repiten con una cierta frecuencia fija, es decir, que en un texto lo suficientemente largo digamos de 3 o 4 páginas la letra "A", por ejemplo, se repetirá lo mismo que en la biblia o que en este texto. 

A este método de contar cuántas veces aparece le letra en un texto cifrado se le llama análisis de frecuencias y existen herramientas que realizan el análisis de forma automática, además de compararlo con la tabla de frecuencias de un idioma determinado.

No puedo dejar de recomendar en este caso usar Cryptool, que nos permitirá experimentar con distintos tipos de cifrado además de tener algunas herramientas muy interesantes para el cryptoanálisis.


Desafortunadamente el análisis de frecuencias en este caso no saca nada legible, no porque no sea un metodo eficaz, sino porque:

a) No tenemos el suficiente texto para que las frecuencias se ajusten a la media
b) El texto esta en un idioma que no conocemos o usa palabras técnicas o no habituales que desvían la media de frecuencias

Sea como sea y antes de abandonar la idea del cifrado de substitución hay un segundo método para descifrar este tipo de textos, similar al anterior pero probando con las palabras más comunes en un idioma.

Usando de nuevo cryptool para realizar este método nos encontramos con esta salida.


Lo cual ya tiene mucha mejor pinta, pues al menos podemos intuir muchas de las palabras.

Ademas vemos que el interfaz de cryptool nos ha dejado * en donde no ha encontrado una coincidencia para que lo completemos, así que nos ponemos a la labor por ejemplo

"IS THIS THE REAL LIyE"
puede ser
"IS THIS THE REAL LIFE"
ponemos una F en la y, y así al final nos encontraremos con el texto original.

Is this the real life?
Is this just fantasy?
Caught in a landslide,
No escape from reality.
Open your eyes,
Look up to the skies and see,
I'm just a poor alien,
I need no sympathy,
Because I'm easy come, easy go,
Little high, little low,
Any way the wind blows doesn't really matter to me, to me.
Mama, just killed a man,
Put a laser against his head,
pulled my trigger, now he's dead.
Mama, invasion had just begun,
But now I've gone and thrown it all away.
Mama, ooh,
Didn't mean to make you cry,
If I'm not back again this time tomorrow,
Carry on, carry on as if nothing reaque quieres un rlly matters.
Too late, my time has come,
Sends shivers down my spine,
body's aching all the time.
Goodbye, everybody, I've got to go,
Gotta leave you all behind and face the truth.
Mama, ooh,
I don't want to die,
I sometimes wish I'd never been born at all.yo es que antes de esa hora curro y q
I see a little silhouetto of a man,
Scaramouche, Scaramouche, will you do the Fandango.
Thunderbolt and lightning, very, very fright'ning me.
(Galileo.) Galileo.
(Galileo.) Galileo,
Galileo figaro Magnifico.
I'm just a poor alien and nobody loves me.
He's just a poor alien from a poor family,
Spare him his life from this monstrosity.
Easy come, easy go, will you let me go.
Bismillah!
No, we will not let you go. (Let him go!)
Bismillah!
We will not let you go. (Let him go!)
Bismillah!
We will not let you go. (Let me go.)
Will not let you go. (Let me go.)
Will not let you go. (Let me go.)
Ah. No, no, no, no, no, no, no.
(Oh mama mia, mama mia.) Mama mia, let me go.
Beelzebub has a devil put aside for me, for me, for me.
So you think you can stone me and spit in my eye.
So you think you can love me and leave me to die.
Oh, baby, can't do this to me, baby,
Just gotta get out, just gotta get right outta here.
Nothing really matters,
Anyone can see,
Nothing really matters,
Nothing really matters to me.
Any way the wind blows.
The key is youcantstopmenow

¿Ya suena más no? :D

Bohemian Rhapsody by Queen on Grooveshark


Y con esa key, "youcanstopmenow" podemos puntuar 100 puntillos y seguir con otra cosa.




No hay comentarios:

Publicar un comentario