En el reto "Grab Bag" 200 encontramos un servidor corriendo en el puerto 6000 y para el cual nos dan la clave: "Never\$olv3d!". Cuando nos conectabamos al puerto y enviamos cualquier carácter obteníamos la siguiente salida:
000111222333444555000111222333444555000111222333444555
Después de esto el sistema esperaba una entrada y respondía con otra fila de números similar o con un mensaje de mensaje incorrecto. En el análisis encontramos:
1. Los números solo eran desde el 0 al 5.
2. El mensaje de error se generaba cada 4 números, por lo tanto lo que el sistema esperaba era de 4 números. Por lo que teníamos posibles combinaciones de 0000 a 5555.
3. Si no respondiamos una supuesta secuencia correcta entonces se generaba un error.
La solución:
Después de probar diferentes cosas intenté con cada combinación de números así: 0000, 1111, 2222, 3333, 4444, 5555, el único que generó una respuesta diferente fue: 2222, con este número obteníamos un "0" y luego el programa abortaba (close socket).
Intenté entonces enviarle la información de otra manera:
$perl -e 'print "Never\$olv3d!\n"' | nc pwn522.ddtek.biz 6000
y al ver que lo podía hacer, entonces envié el caso especifico del 2.
$perl -e 'print "Never\$olv3d!\n2222"' | nc pwn522.ddtek.biz 6000
000111222333444555000111222333444555000111222333444555
000111222333444555000111222333444555000111222333444555
Let's not be too rough on our own ignorance; it's what makes America great!
000111222333444555000111222333444555000111222333444555
000111222333444555000111222333444555000111222333444555
Let's not be too rough on our own ignorance; it's what makes America great!
Busqué esta frase en Internet y encontré que el autor era: Frank Zappa
Intenté varias combinaciones en el scoreboard, pero finalmente use la clave:
KEY= "Let's not be too rough on our own ignorance; it's what makes America great!"
Resultando ser la KEY correcta => + 200.
Fácil no? :P
Pd:
Este reto fue resuelto durante una clase de seguridad con los aprendices del SENA, gracias a ellos!.
5 comentarios:
Osea que al final tampoco supiste que era la vaina? porque yo intente exactamente lo mismo, hice un java, me conecte blabla, y le empece a mandar randomed strings...y me boto el pass....pero sinceramente no creo que haya sido asi de tonto, sin ninguna idea extra, no crees?
Phicar, con el binario en mano se podría saber que es exactamente, la deducción de como se da la coversación es lo que importa, son 4 bytes antes de responder, es posible que otra combinación de 4 bytes funcione. Hay que esperar otros writeups.
era un cubo de rubik: con la primera entrada lo desordenadas, con las sucesivas tenías que ordenarlo, y al hacerlo te daba la key
I started brute-force from 000 to 999, and it send me the key at "010".
I didn't even realize, what is happened. xD
// alex@lobotomy
Seems like we should send something to get the simular answer.
There are server responses:
http://pastebin.com/raw.php?i=KvbKR9Pm
As I said earlier, 010 can be the answer.
I noticed that 20'th char is always 0, 23'rd is always 1... so there is constant "1...2...3...4...5" in the middle.
But I still dont understand the algorithm. :)
Publicar un comentario