Nivel 2: Is anybody there?

«Hello 123.123.123.123? Is anybody there?» Así reza la primera línea de texto de la prueba 3 (nivel 2). Parece que el servidor quiere comunicarse con nosotros. Si analizamos las cabeceras HTTP con algún programa (por ejemplo, con el plugin LiveHTTPHeaders), podremos ver lo siguiente:


HTTP/1.x 200 OK
Date: Fri, 08 May 2009 22:16:08 GMT
Server: Apache/2.0.52 (CentOS)
X-Powered-By: PHP/4.3.9
YouWillNeedThis: theplanet
Set-Cookie: toctoctoc=3306
Content-Length: 232
Connection: close
Content-Type: text/html

«YouWillNeedThis: theplanet»… curiosa cabecera 😉 Esa pista la necesitaremos en el futuro.
Y el nombre de la cookie es auto-explicativa: el servidor nos está llamando. ¿A dónde? Al puerto 3306. Ese puerto es conocido, ahí suele estar a la escucha el servidor MySQL. No hay que pensar mucho más… aunque a algunos grupos esta prueba se les hizo cuesta arriba, jejeje…

Con Wireshark es posible capturar la trama que nos confirma ese intento de conexión. ¿Abrimos el puerto 3306 a ver qué pasa?

$ nc -l 3306

Recargamos la página y… nada, no conecta. La conexión se resetea. Parece que tiene que haber un servidor MySQL de verdad escuchando en el 3306 (no vale con netcat). Ponemos en marcha MySQL, recargamos la página y… nada. Mmmh…

Aquí hay que pensar un poco (más). Por seguridad, MySQL sólo se queda a la escucha a las peticiones que lleguen de localhost (127.0.0.1). Esto se define así en /etc/my.cnf :

bind-address = 127.0.0.1

Si queremos que escuche las peticiones de nuestra IP pública, sólo tenemos que ponerlo.

bind-address = nuestra_IP_publica

Ponemos en marcha de nuevo el servidor:
$ sudo /etc/init.d/mysql start

y el Wireshark a la escucha. Bingo.

Sabemos que el login es «hack». ¿Y el password? Bueno, aquí es donde la pista que nos llegó al principio nos ilumina el camino: theplanet. La forma más fácil de proceder ahora sería crear el usuario hack/theplanet y volver a recargar la página. Analizando el tráfico con Wireshark veremos que intenta usar la base de datos hackit. A continuación lanza la query:

insert into pereza
set ID=», hackme=’%5f%61%63%69%64%69%61%5f’

¡Ajá! ¿y para traducir de Hexa a ASCII?

$ echo -e «%5f%61%63%69%64%69%61%5f» | sed -e ‘s/%//g’ | xxd -r -p
_acidia_

14 comentarios en «Nivel 2: Is anybody there?»

  1. Efectivamente, nos atascamos ahí.

    Di que tampoco le pusimos demasiado empeño al tema cuando vimos que empezaba a ser demasiado complicado (no estamos especializados ni en programación ni en temas avanzados, las anteriores fueron a base de google y casualidad), pero yo al final llegué a la conclusión de uqe hacía flata un servidor MySQL, por el 3306.

    En fin, en la euskal o en la gipuzkoa del año que viene volveremos a intentarlo, a ver si nos va un poco mejor 😛

    Un saludo y miuchas gracias por esa currada que te pegaste para que unos cuantos frikis nos divirtiésemos.

  2. Preguntas n00b…

    El torneo ya se acabo? (¿ya paso?)
    Vas a seguir publicando todas las repuestas al torneo asi?

    Pregunto esto, para saber si vale la pena seguir haciendolos… por que al ritmo que vas me estas matando el juego, ya que cada que avanzo tu sueltas las respuestas al publico en general y ya me dejaste en la duda si mejor esperar a que tu todo lo pongas a que yo hacerlo.

    Saludos

  3. @Osito: gracias.

    @ParticipanteAnónimo: el torneo terminó el domingo 3 de Mayo, en la Gipuzkoa Encounter 3 (tal y como dije el primer día en este mismo blog). Respecto a la velocidad de publicación de las pruebas: ok, dejo de publicar soluciones hasta que haya peticiones al respecto. Otra opción era (como dije el primer día) que cada uno se abstuviera de leer la solución y lo intentara por su cuenta, pero parece que eso es demasiado pedir. Creo que publicar las soluciones hace que nuestras mentes no pasen el reto que buscaba:»Lo intentaré, seguiré, no leeré la solución hasta haberlo intentado durante largo tiempo y haberme roto los cuernos en esto». Somos demasiado débiles de mente, y no podemos con esas mini-barreras. Lo sé (de verdad que lo entiendo), así que, no problem, menos trabajo para mí. Suerte.

  4. No dejes de publicarlas, por favor, que a mi me está gustando leerlas a este ritmo. Si alguien no quiere ver la solución, sencillamente que no mire. En el titulo del post pone claramente el nivel que destripas, no es ninguna sorpresa. A falta de tiempo para intentarlo, leerlas puede servir de algo cuando luchemos las de la Euskal compañero.

  5. @Admin:
    No tenias que degradarme y muchos menos decir «mente debil» para contestar mis preguntas…
    Pero bueno… no soy asiduo a este blog y muchos menos conozco estos «Gipuzkoa Encounter’s» que realizas, por lo que no sabia los antecedente (ya que realmente me pasaron el link directo a las pruebas) y me moleste un poco el ver que ayer apenas resolví con lo que pude el nivel 2 y tu las piensas poner todos… entenderás que me decepcione mas que sentirme «debil de mente».
    En fin a lo que quiero llegar es que pongas todo o nada, el formato gota (drip content) de entrega de soluciones se que te atrae mas visitas pero para los que no leemos tu blog y estamos intentando las pruebas es casi una carrera contra el reloj (mas que nada contra ti) ya que realmente el juego pierde chiste una vez que alguien pone la solucion en internet (sea cual fuera el juego), ya que esa micro-felicidad que llega al terminarlo se esfuma por un simple suspiro de consolación… así que a mi forma de ver es mejor que de una vez pongas todas que de poco en poco, ya que asi no existe la presion por ganarte…

  6. Hablaba en general (de hecho en primera persona del plural), lo cual me incluye. No te sientas ofendido. Ademas parece dificil llegar a ofender a un anónimo como es tu caso…

  7. La cosa se pone interesante. Vayamos por partes, como diría Jack el Destripador.

    Respecto a debilidad mental: hablaba en general (de hecho en primera persona del plural – «Somos demasiado débiles de mente»), lo cual me incluye y eso igual ya no me gusta tanto… pero intentaba suavizar el tono para que no te sintieras ofendido. Parece dificil llegar a ofender a un anónimo como es tu caso… pero al parecer hasta los anónimos se ofenden (¡cuando no se les ataca!)

    Cuando dices: «me moleste un poco el ver que ayer apenas resolví con lo que pude el nivel 2 y tu las piensas poner todos… entenderás que me decepcione mas que sentirme “debil de mente”.»

    Sigo pensando que esa actitud es debilidad mental. Me explico: no entiendo cómo lees la solución si te va a molestar. Hacer algo (leer la solución) que sabes que te va a molestar («me decepcione»), no lo considero como un acto de fortaleza mental precisamente. La «micro-felicidad» que consigas por terminarlo, la podrás conseguir igualmente sin mirar la solución. Lo contrario sería engañarte a tí mismo, ¿dónde está la fortaleza mental en eso?

    Cuando dices: «para los que no leemos tu blog y estamos intentando las pruebas es casi una carrera contra el reloj (mas que nada contra ti) »

    Aquí ya me dejas de piedra: dices que no lees mi blog, y al parecer lo único que lees son las soluciones que voy publicando, cosa que es JUSTO lo que no tenías que leer. Una actitud muy inteligente, sí señor.

  8. Y sigues con la misma actitud…

    Creo que esta implícito que el comentario va a degradarme de una manera directa, bajarse al nivel de la persona que quieres ofender es una forma de ofender sin generar una flamewar, pero bueno veo que esta es tu forma de ser y desgraciadamente es horrible (a mi forma de verla), ya que una persona que prácticamente te insulta con la sonrisa en la cara y después de que tiro la piedra dice «fue sin querer» es de lo mas feo.

    Pero bueno llendo al grano… no es cuestión de que estén las soluciones a un reto o bien la debilidad de «leerlas» antes de pasarlas, si no que la competencia se vuelve contra ti, ya que tu formato de «publicación gota» causa que un reto pierda su esencia apenas tu publicas la respuesta por lo que la sensación de victoria que te llena al resolver sin haber ninguna solución en la red se esfuma y en cambio se vuelve una tarea tediosa mas que un gusto por meramente resolver un reto.

    Y solo una ultima cosa…

    dices que no lees mi blog, y al parecer lo único que lees son las soluciones que voy publicando, cosa que es JUSTO lo que no tenías que leer. Una actitud muy inteligente, sí señor.

    Mejor te lo parafraseo… para las personas que no somos asiduas de tu blog, no conocemos que son los «Gipuzkoa Encounter’s», menos quien eres tu y estamos resolviendo los retos desde «nuestras cómodas casas» a través de Internet la competencia se vuelve contra ti en lugar de contra uno mismo… ah y por cierto excelente el ultimo comentario, y así vienes y me dices que no me estas insultado? disculpa man pero que hipócrita eres…

    Saludos para todos menos el admin.
    PD: Ultimo comentario que te dejo, como dicen por ahi… por que quedarse en un lugar donde ni siquiera me quieren y mucho menos me respuetan?

  9. @Participante Anónimo: en fin, creo que se me está yendo de las manos. Si te he ofendido en algo te pido disculpas y retiro lo dicho. No era mi intención ofender a nadie. Estudiaré qué hacer para que las pruebas sigan publicándose y que los participantes no se sientan presionados por la rapidez de esa publicación.

  10. Pedazo de prueba para ser la tercera, muy currada.
    Nosotros tambien nos quedamos ahi, tras una noche de comida de tarro y no sacar nada en claro, jejeje.
    Haber si en la Euskal conseguimos un poco mas…

  11. Querido Participante anónimo dos puntos:

    Ya que dices desconocer la Gipuzkoa Encounter y el blog me gustaría contarte algunas cosas, de buen rollo, si te apetece las lees y si no a otra cosa mariposa.

    La Gipuzkoa Encounter es una party que celebra este año su tercera edición, aunque nace a raíz del éxito de otra mayor que es la Euskal Encounter y que celebrará su 17ª edición este año.

    En ellas se juntan gente con diferentes intereses, como son la demoscene, el software libre, compartir información, cultura, juegos online y sobre todo un interés común a todos los participantes: pasarlo bien.

    En estas partys hace algún tiempo que se celebra entre otros un concurso denominado hackit, que consiste en superar determinadas pruebas como las que estamos comentando. Este año, el organizador del concurso en la Gipuzkoa Encounter ha sido el administrador de este blog, preparando la mayor parte de las pruebas, asistiendo a los participantes con las dudas durante la party y en general velando por el buen funcionamiento del concurso.

    Como hay gente que no puede o no le apetece trasladarse a estos eventos ha querido dar la posibilidad de que la gente participe desde su casa y puesto las pruebas online en su web y ha querido enriquecer el concurso publicando una solución a cada prueba para que cada uno pueda dar su punto de vista, proponer las suyas, mejorarlas o simplemente entenderlas.

    Por todo esto, no veo porque lo ves como una competición con el administrador del blog, dado que él conoce las soluciones de antemano no puede serlo. Tampoco está planteado como un concurso online ya que no hay participantes registrados ni un ranking, unicamente competimos contra uno mismo.

    Por último, entiendo que tal vez el ritmo de publicación de las soluciones es un poco alto si quieres resolverlo antes de que se publiquen, pero ponte por favor en el lugar de aquellos que se atascan en ún nivel por el motivo que sea, mediante las pistas o soluciones tienen una manera de seguir adelante antes de frustrarse del todo y dejar los retos, teniendo quizás más suerte en la siguientes pruebas. Al fín y al cabo todo esto es por diversión!! 🙂

    Por cierto, en la Gipuzkoa Encounter el concurso empezó un viernes a las 21h y acabo el domingo a las 13h, así que no creas que se están publicando tan rápido :))
    Te animo a que vengas a la Euskal Encounter y disfrutes del ambiente y los retos en vivo y directo, te garantizo que nadie te dara pistas ni soluciones antes de que finalice! 😀

  12. Nosotros resolvimos este nivel sin llegar a ver las pistas que devuelve el servidor web el forma de cabeceras al cargar la página del nivel. Para obviar la clave de MySQL y que nuestro servidor de BD permita la entrada bajo cualquier credencial de acceso (tipo tftp) hay que arrancarlo con el parámetro «–skip-grant-tables». En el fondo nos da igual el usuario o clave que utilizase la máquina para entrar, solo queremos que entre y haga lo que tenga que hacer.

    No obstante, nosotros descubrimos ese parámetro un poco tarde. Para resolverlo sin el parámetro nos bajamos el código fuente de MySQL, modificamos el código de login para que aceptase cualquier entrada, compilamos e instalamos este servidor «mejorado» (lo suyo nos costó resolver las dependencias) y a funcionar. Bautizamos a este proceso como «el método de los machotes», jeje.

    Salu2.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.