martes, 26 de julio de 2011

WriteUp Guessit wgsbd2

Criptografía. Métodos de sustitución

En critptografía se conoce como cifrado por sustitución el método que cifran el mensaje sustituyendo unos caracteres por otros siguiendo un sistema "regular". El método más sencillo es el conocido como cifrado de César que consiste en sustituir cada letra del abcedario desplazandonos tres posiciones adelante en la secuencia del alfabeto.
Es decir:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

^ ^ ^ A B C D E F G H I J K L M N O P Q R S T U V W
| | |
| | |
X Y Z


Con un alfabeto de 26 letras puede definirse con aritmética modular como E(x) = x+3 mod 26, donde x es la posicion numérica de la letra en el abecedario (A=1... Z=26).

En la pasada Campus Party de Valencia de 2011, se nos presentó un "challenge" de criptoanálisis.
Empleamos el método análisis de frecuencia donde conociendo las letras que más se repiten de un idioma, con un poco de intuición y perseverancia, se puede llegar a conseguir el texto en claro.
El texto a descifrar era el siguiente:

Af.p Oáxaer o. j.n.xpó na .byp.ia e. lp.mcro Xcyájrpao 2010 .b .n .k.byr cby.p"g. an 'g. O.jgpcyf Xf E.uagny .oyaxa brmcbaer .b na jay.irpía e. -M.hrp xnri e. o.igpceae cburpmáycja- hgbyr jrb -Gb cburpmáycjr .b .n Naer E.n Man- f Tpclyólrncov

Ucbanm.by. ¡¡ d.mro iabaer !!w e.ojrbrj.mro nro lrpj.byah.o e. kryro l.pr .oyamro o.igpro 'g. na kryajcób da y.bcer 'g. o.p mgf mgf p.ñcea f 'g.w agb'g. og.b. a yólcjrw nro yp.o xnrio ucbancoyao (f xaoyaby.o mao 'g. br nn.iaprb a na ucban) dab d.jdr mépcyro mao 'g. ogucjc.by.o jrmr lapa iabap jrb hgoycjca .n lp.mcrv


Bro da d.jdr mgjdíocma cngocób iabap .oy. lp.mcrw lpcm.pr lrp'g. nn.iap a na ucban oglrb. 'g. kroryprow nro 'g. bro n.écow daxéco y.bcer .n e.yann. e. cbk.pycp kg.oypr yc.mlr .b kryapbro nr 'g. cmlncja gb p.jrbrjcmc.byr a bg.oypa dgmcne. naxrp (IPAJCAO !!!)w f o.igber lrp'g. gb hgpaer mgnycecojclncbap da hg;iaer jrmr kancror bg.oypr ypaxahrv

Ipajcao a yrero nro 'g. dajéco e. OxE nr 'g. .ow ipajcao a yc 'g. y. yrmao na mrn.oyca e. n..pbrow -P.ygcy.apbro-w p.jrm.beapbrow 'g. a k.j.o alrpyao e.haber gb jrm.byapcrw 'g. jgaber jrcbjcecmro .b aniúb ocycr y. yrmao na mrn.oyca .b oangeap f jrm.byap aniúb lroy vvv IPAJCAO !

Ipajcao a yrea na i.by. alrpyó og oaxcegpía .bkcáberbro jrbypcxgjcrb.o 'g. ec.prb (mgjdr) mao kanrp a .oy. xnriv

Ipajcao a na i.by. 'g. bro jrbj.ecó lapy. e. og kancror yc.mlr f o. e.hó .byp.kcoyap lrp broryprov


Ipajcao a yrero nro jrmlañ.pro 'g. yamxcéb .ojpcxío xnrio e. nro 'g. alp.be.mro eía a eíav

F lrp oglg.oyrw ipajcao a Xcyajrpaovjrm lrp o.igcp añr a añrw lp.mcaber na naxrp e. na jrmgbceae xnri dcolabav

Lrp únycmrw 'g.p.mro e.jcpy. anirS

Ogx. .n krngm.b e. ygo anyakrj.o f lgnoa lnafv Jrb japcñr e. lapy. e.n .'gclr e. OxE lapa yc S

Para ello utilizamos una modificación de un script escrito por xgusix.


En un primer momento intentamos el reto con el inglés, ya que todos los tokens que se habían conseguido hasta ese momento eran frases inglesas escritas en h4x0r. Para ello nos centramos en las palabras de tres letras que más se repetían, éstas aparentemente eran: "'g." y "nro". Siendo palabras aisladas que tanto se repiten en inglés una debería ser "and" y la otra "the". Pero tras la sustitución de estas, se podía ver que algunas palabras dejaban de tener sentido, es decir tanto sustituyendo "'g." por "the" como por "and" algunas palabras descifradas dejaban de tener sentido. Aun así, estuvimos dándole con el inglés durante un tiempo porque en la criptografía clásica, una práctica habitual era meter ruido en el mensaje para despistar a los criptoanalistas.

Entonces fue cuando xgusix (yo xD) se fijo que en la primera linea del mensaje estaba escrito lo siguiente: ".b .n". Tras darle vueltas a qué podía ser en inglés, todo le sonó raro (at an?), así que decidimos tirar por el español, ya que problamente correspondiera a "en el" tirando desde ahí se saco el siguiente texto claro:

AYER SABADO SE CELEBRÓ LA ENTREGA DE PREMIOS BITÁCORAS 2010 EN EL EVENTO INTERQUE AL QUE SECURITY BY DEFAULT ESTARA NOMINADO EN LA CATEGORÍA DE -MEJOR BLOG DE SEGURIDAD INFORMÁTICA- JUNTO CON -UN INFORMÁTICO EN EL LADO DEL MAL- Y KRIPTÓPOLIS.

FINALMENTE ¡¡ HEMOS GANADO !!, DESCONOCEMOS LOS PORCENTAJES DE VOTOS PERO ESTAMOS SEGUROS QUE LA VOTACIÓN HA TENIDO QUE SER MUY MUY REÑIDA Y QUE, AUNQUE SUENE A TÍPICO, LOS TRES BLOGS FINALISTAS (Y RESTANTES MAS QUE NO LLEGARON A LA FINAL) HAN HECHO MERITOS MAS QUE SUFICIENTES COMO PARA GANAR CON JUSTICIA EL PREMIO.

NOS HA HECHO MUCHÍSIMA ILUSION GANAR ESTE PREMIO, PRIMERO PORQUE LLEGAR A LA FINAL SUPONE QUE VOSOTROS, LOS QUE NOS LEEIS, HABEIS TENIDO EL DETALLE DE INVERTIR VUESTRO TIEMPO EN VOTARNOS LO QUE IMPLICA UN RECONOCIMIENTO A NUESTRA HUMILDE LABOR (GRACIAS !!!), Y SEGUNDO PORQUE UN JURADO MULTIDISCIPLINAR HA JUZGADO COMO VALIOSO NUESTRO TRABAJO.

GRACIAS A TODOS LOS QUE HACEIS DE SBD LO QUE ES, GRACIAS A TI QUE TE TOMAS LA MOLESTIA DE LEERNOS, -RETUITEARNOS-, RECOMENDARNOS, QUE A VECES APORTAS DEJANDO UN COMENTARIO, QUE CUANDO COINCIDIMOS EN ALGUN SITIO TE TOMAS LA MOLESTIA EN SALUDAR Y COMENTAR ALGUN POST ... GRACIAS !
GRACIAS A TODA LA GENTE APORTO SU SARIDURI­A ENVIANDONOS CONTRIBUCIONES QUE DIERON (MUCHO) MAS VALOR A ESTE BLOG.

GRACIAS A LA GENTE QUE NOS CONCEDIO PARTE DE SU VALIOSO TIEMPO Y SE DEJO ENTREVISTAR POR NOSOTROS.

GRACIAS A TODOS LOS COMPAÑEROS QUE TAMBIEN ESCRIBE­N BLOGS DE LOS QUE APRENDEMOS DIA A DI­A.

Y POR SUPUESTO, GRACIAS A BITACORAS.COM POR SEGUIR AÑO A AÑO, PREMIANDO LA LABOR DE LA COMUNIDAD BLOG HISPANA.

POR ULTIMO, QUEREMOS DECIRTE ALGO:

SUBE EL VOLUMEN DE TUS ALTAVOCES Y PULSA PLAY. CON CARIÑO DE PARTE DEL EQUIPO DE SBD PARA TI:

Descifrando el texto y metiéndolo en google nos llevaba a esta página:

En la página estaba el texto detras de este un video y por último la frase "Sois los mejores, el premio es vuestro", que tenía una pinta de token que no podía con ella... Esto lo conseguimos a medio día del segundo día del war game.

Durante el resto de días probamos todo lo que se podía probar, "Sois los mejores, el premio es vuestro", cifrándolo con las correspondencias que sacamos, título de post, título cifrado, url, la cifrada no porque no estaban todos los caracteres...

Teclado Dvorak, clave del challenge

El penúltimo día por la noche decidimos que debía existir una regla que permitiese al participante lograr la traducción completa y obtener los caracteres que faltaban y que no se pudieron sacar por analisis del texto ya que no aparecían en el. En nuestro caso, la z, la w, y signos de puntuación. Finalmente y Googleando en búsqueda de métodos de sustitución nos percatamos del teclado "Dvorak". En realidad no es un cifrado, sino una configuración del teclado alternativa al conocido "qwerty". Esta secuencia dio nombre al teclado que desarrolló y patentó Christopher Sholes en 1868 y que vendió a la Remington, una de las primeras marcas de máquinas de escribir, que lo adoptó en sus modelos.

En 1936, August Dvorak presentó un teclado simplificado que permitía escribir, según él, con más rapidez y comodidad. El teclado Dvorak colocaba las letras más utilizadas en la fila central, y las menos en la inferior.

Una vez identificamos que el texto se habia cifrado escribiendo en dvorak consultamos una tabla de equivalencias aqui:


Y, cifrando la url con el código dvorak conseguimos el token del reto.

dyylSzz,,,vo.jgpcyfxfe.uagnyvjrmz2010z10zlp.mcro[xcyajrpao[2010[ipajcaovdymn

P.D: Adjuntamos un pequeño .py del que nos ayudamos para traducir, aunque si lo quereis mas sencillo usad este traductor online:


dvorak.py

No hay comentarios:

Publicar un comentario