<– Entrada incluida por DefCon.org en su colección oficial de Resolucionarios para este CTF =) –>

Ahora es el turno de Binary100 para la resolucion del CTF Quals DefCon 19. Este reto en especial es el primero de este tipo que hago en toda mi vida y aunque llegue a la ultima parte, no lo valide por que con tanta confusion no vi que la respuesta estaba enfrente de mi :/ Seguro ya sera para la proxima =) Pero por ahora lo importante esque con mis metodos arcaicos lo pude resolver y ahora aqui les muestro mi manera LARGA y DIFICIL de Resolverlo.

Nos proveen del archivo b100_6817e51fa3b60f176b56 Primeramente Lo identificamos y vemos que es un ELF 32-bit (osea tenemos un ejecutable de linux) Al ejecutarlo vemos que nos devuelve algo extraño ( ./b100_6817e51fa3b60f176b56 [1-11|all] )

Obviamente como todos se dieron cuenta el programa nos esta sugiriendo que le pasemos argumentos [1-11] del 1 al 11. Al pasarle un argumento nos imprimia unas caras en arte ascii

Dos cosas a notar aqui son: 1) Los caracteres que se usan aqui son los que curiosamente comprende BASE64 (excepto los “@” y ” ” que eran los caracteres basura que pusieron en el reto) y  2)Para cada argumento cambian

Asi que ya sabemos que hacer no? Hay que obtener esas cadenas de Base64 de los 11 argumentos y decodificarlos. Asi que yo lo hice de esta manera:

1
2
3
./b100_6817e51fa3b60f176b56

for((i=1;i<=11;i++));do !!  $i | sed 's/@//g;s/ //g' > $i.hex; done

Primeramente ejecuto el programa, luego recursivamente hago 11 veces la ejecucion del ultimo comando y de una vez elimino los caracteres “@” y “\x20” (espacios)

Y como veremos tenemos de una, los 11 archivos y vean que si son diferentes ;)

Pero se me paso eliminar los saltos de linea, asi que los eliminare con “tr” y de una vez decodifico  y doy salida a los archivos nuevos y vemos que son :)

1
2
for i in $(ls *.hex);do cat $i | tr -d "\n" | base64 -d > $i.b64 ;done
file *.b64

Vemos que son 11 .gz con un bin2-[a-k] primero renombramos todo a extension .gz y despues descomprimimos todo y vemos que son ;)

1
2
3
4
5
for ((i=1;i<=11;i++));do mv $i.hex.b64 $i.gz;done
ls
gunzip *.gz
ls
file {1,2,3,4,5,6,7,8,9,10,11}

Bonito!!! Tenemos un 7zip y 10 archivos de pura “data”, yo al intentar descomprimir el 7zip me dio error. Entonces recorde que cuando vi los gzip decia algo como bin2[a-k] Asi que era claro no?? Habia que juntarlos para formar el 7zip y descomprimir =) y tendriamos un binario2 de seguro…

1
2
3
cat 1 2 3 4 5 6 7 8 9 10 11 > bin2.7z
7z e bin2.7z
file bin2

PERFECTO!!! ya tenemos bin2….y Adivinen que?? APENAS COMIENZA LA PESADILLA

Si ejecutabamos ./bin2 nos da nada mas arte ascii con base64, asi que limpiabamos y todo: 

1
./bin2 | sed 's/ //g;s/@//g'|tr -d "\n"|base64 -d

Solo nos lleva a un callejon sin salida que dice “S0 S0RRY 41NT NUTH1N BUT 4 P34NUT” multiples veces

 

En esta parte entra mi querido parce @Phicardo que me ayudo, aconsejo, guio y enseño pacientemente a iniciarme al “debugging” (recuerden que es la primera vez que hago esto :/ )

Asi que despues de que me explicara, y me quedara pensando mucho, esto fue lo que hice..

Hice uso de “objdump -s” y encontre una cadena curiosa “h3rr0m3y3n4m31zbr0br0gan

Y como me enseño Phicar, estuve viendo el dump en asm y despues de mucho tiempo y explicaciones vi que esa cadena se debia pasar como argumento por los cmp que habian y que comparaban con el argumento 2, y veia comparaban una cadena (strcmp) y un condicional (jne) si pasaba algo imprimia “3 Face”

Despues de esto se me ocurrio que la cadena h3rr0m3y3n4m31zbr0br0gan estaba bien involucrada…Asi que le pase a bin2 el argumento h3rr0m3y3n4m31zbr0br0gan. Pero nada, recuerdan la comparacion? Contra que cadena va a comparar…Entonces la solucion fue renombrar bin2 a h3rr0m3y3n4m31zbr0br0gan y pasarle de argumento h3rr0m3y3n4m31zbr0br0gan y VOILA!!! Ya salia algo diferente…MAS base64 en arte ascii…

1
2
3
mv bin2 h3rr0m3y3n4m31zbr0br0gan

./h3rr0m3y3n4m31zbr0br0gan h3rr0m3y3n4m31zbr0br0gan

Limpiamos como anteriormente lo hemos hecho y damos salida para obtener “file” y vemos que es.

1
2
3
./h3rr0m3y3n4m31zbr0br0gan h3rr0m3y3n4m31zbr0br0gan | sed 's/@//g; s/ //g'|tr -d "\n"|base64 -d > file

file file

<—A partir de esta parte todo va en texto porque es Mucho comando como para ir ilustrando—>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
mv file file.gz
gunzip file.gz
file file
>lzop compressed data - version 1.030, LZO1X-999, os: Unix
sudo aptitude install lzop
lzop -x file
>bin3
file bin3
>bin3: compressd data 16 bits
mv bin3 bin3.z
uncompress bin3.z
file bin3
>gzip compressed data
mv bin3 bin3.gz
gunzip bin3.gz
file bin3
>ARC archive data
sudo aptitude install arc
mv bin3 bin3.arc
arc x bin3.arc
file bin3
>xz compressed data
mv bin3 bin3.xz
xz -d bin3.xz
file bin3
>rzip compressed data
mv bin3 bin3.rz
rzip -d bin3.rz
file bin3
>gzip compressed data
mv bin3 bin3.gz
gunzip bin3.gz
file bin3
>POSIX tar archive (GNU)
tar -xf bin3
file bin3
>lzop compressed data
mv bin3 bin3.lzop
lzop -x bin3.lzop
file bin3
>bzip2 compressed data
mv bin3 bin3.bz
bunzip2 bin3.bz
file bin3
>7-zip archive data
mv bin3 bin3.7z
7z e bin3.7z
file bin3
>ARJ archive data
sudo aptitude install arj
mv bin3 bin3.arj
arj x bin3.arj
>Extracting bin3-a                      OK
>Extracting bin3-b                      OK
>Extracting bin3-c                      OK
file bin3-*
>bin3-a: ELF 32-bit
>bin3-b: data
>bin3-b: data
cat bin3-a bin3-b bin3-c > bin3
chmod +x bin3

Ejemplo de esta ODISEA:

Despues de esto, YA TENEMOS bin3…Lo ejecutamos  y….¿TENEMOS LA CLAVE? Nooo, parece que si lo volvemos a ejecutar vemos que tiene un random en strings :’(

Entonces me decido a sacar todas esas cadenas…y por alguna razon me decido hacerlo con “objdump” (la razon esque phicar apenas un dia anterior me enseño este programa, y lo use en vez de hacerle primero lo que yo haria….strings)

1
objdump -s bin3 > out.txt

Todas esas cadenas las pueden ver aqui en pastebin

Ninguna de Estas era la clave y aqui me quede atorado y no pude validar el reto…Sin darme cuenta que ya lo tenia todo…Me faltaba nada mas hacer un string y ver al final.

Y ahi nos salia la clave.

FLAG: Where we’re going we don’t need… roads.

Bueno esto es todo pero antes dos Agradecimentos. Primero para Phicar, muchas gracias por su guia en la parte de debugging que me atore y por su paciencia =) Y Segundo para HaDeS por hacerme notar al final que era tan facil como con un strings =P

 

Perdonen la longitud del post para algo tan sencillo, simplemente soy un mexicano de 18 años emocionado por su primer CTF DefCon y haber resuelto 2 retos =)

Cualquier comentario Bienvenido =)

Saludos ;)

Atte. hecky

hecky@neobits.org

Sigueme en twitter: http://twitter.com/hecky

 
  • juan carlos

    Eres un presumido, por que recalcar tu edad y los retos que hiciste, en todos tus posts, muestra algo de humildad que no le biene mal a nadie ;)

    • http://neobits.org hecky

      Si lo toma como presuncion es su opinion y la respeto, pero lo que hice nadie lo quita y mi edad nadie la cambia.

      Aqui no le hago daño a nadie, y bueno es mi pagina, me cuesta la pago de mi dinero y creo tener derecho a escribir lo que me gusta y “presumir” un poco.

      Como sea la pagina esta para el que quiera aprender que eso es lo que comparto, quedese con las enseñanzas no con el autor ;)

      Saludos

  • hvbe

    Wow!! si a eso le sumas el trabajo de documentar todo, la verdad que es muy elogiable. Y lo que estaría mal es presumir sin fundamento, que no es el caso.
    Felicidades!!

  • anonymouse

    Felicidades por el trabajo amigo ;)

  • will

    Para @juan carlos. Men ,a eso le llamas presumir,,, se nota que hecky es una persona humilde, y como dice el mismo, al fin y al cabo es su blog. Tal vez tu nos puedas mostrar alguna contribucion tuya, don señor” “humildad”. Chao pescao y buen dia.

  • http://neobits.org hecky

    @hvbe si me costo bastantito trabajo la documentacion, cuesta el doble de lo del reto :( pero vale la pena, se ve muy bien el post :P Muchas gracias por su felicitacion mi amigo.

    @anonymouse Muchas gracias =)

    Saludos a ambos ;)

  • Hecky

    test2

  • UrbaN77

    Hecky sos un visajoso xDDDDD que va, ojala todos los muchachos de esa edad se interesaran por hacer y aprender cosas como esas. Nos veremos en el próximo CTF.

    • http://neobits.org hecky

      @1979f383e28ba9be709f995c63a6b106:disqus parce que va!!! Pero concuerdo, creo que hay mucho chavo muy bueno en ciertas cosas, deberian explotar sus habilidades y aprender mas de otras…se “elevaria el nivel del pais”

      Pero vale parcero, este CTF estuve preguntando por usted y usted andaba tin en otras vainas…Ya le daremos a los CTF en el irc

      Salutes!!!

  • DragoN JAR

    Hecky, felicidades por tu participación en este CTF, se nota que has aprendido bastante y me agrada saber que contamos con gente tan talentosa como vos ;-)

    • http://neobits.org hecky

      Muchas Gracias DragoN =) hemos avanzado algo pero nos falta bastante =D esperamos seguir avanzando y sobretodo aprendiendo =D

  • p3ll3

    Excelente hecky como siempre!!!

    Saludos……..8)

    • http://neobits.org hecky

      Muchas gracias @d2d94ebf89ea0360183eb55a94a51f63:disqus seguimos trabajando =)

  • daniel666999

    Buen post
    Ya no te e visto por el msn
    Saludos

    • http://neobits.org hecky

      Hola mi amigo, ya no me conecto mucho, pero en todo caso si me conecto es en hecky@neobits.org ya ni me recuerdo su MSN mail amigo.

      Saludos ;)

  • Pingback: More Speakers Posted! | How To Become The Worlds No. 1 Hacker

  • Pingback: DC19 CTF Quals Update! | How To Become The Worlds No. 1 Hacker

  • Pingback: DC19 CTF Quals Update! | National Cyber Security

  • Pingback: So Many Speakers! | National Cyber Security

  • Pingback: Huge Speaker Update! | How To Become The Worlds No. 1 Hacker

  • Pingback: Huge Speaker Update! | LocatePC | Locate your stolen computer or stolen laptop - Works for both Mac and PC

  • Omega

    Genial ….  Eres lo máximo ahora tengo mucho de lo que estudiar ;) me encanto tu post
    sigue así ….

    • http://neobits.org hecky

      Muchas gracias Omega por tus generosas palabras =) Un gusto te agrade mi trabajo y visites esta web.

      Saludos!!

  • http://kriptusa.tk d555

    Nice!!

  • Cxxcxx

    Una mierda de writeup.

    • Ymmymm

      Una mierda? Yo diria tres mierdas

      • http://neobits.org hecky

        Tiene derecho de no gustarle lo que escribo, pero fácil; Si no le gusta, simplemente no lo lea y no llene de insultos mi blog ;)