17
Os dejo otro nuevo tutorial sobre la solución al reto que plantean desde VulnHub. Lo primero que nos cuenta su creador es que es muy fan del grupo Pink Floid (the ahí el nombre de la máquina). Así que podemos esperar que alguna de las flags esté relacionada con el grupo, o no. Como de costumbre, empiezo lanzando un nmap a la red para ver cual es la IP de la máquina y después ver que tiene. Pues no tiene nada, al menos a los 1000 puertos más comunes. Vamos a tirarle contra todos. Empezamos bien, nmap no nos dice nada de nada. Rápidamente se me ocurre abrir wireshark a ver si al menos nos saca algo. Pues parece que sí, hay comunicación desde la máquina del reto a la kali por el puerto 1337. Tiro un netcat a ver que nos cuenta.

Solución reto the wall

Embed Size (px)

Citation preview

Page 1: Solución reto the wall

Os dejo otro nuevo tutorial sobre la solución al reto que plantean desde VulnHub. Lo primero que nos cuenta su creador es que es muy fan del grupo Pink Floid (the ahí el                                     nombre de la máquina). Así que podemos esperar que alguna de las flags esté relacionada                             con el grupo, o no.  Como de costumbre, empiezo lanzando un nmap a la red para ver cual es la IP de la                                   máquina y después ver que tiene.  

 Pues no tiene nada, al menos a los 1000 puertos más comunes. Vamos a tirarle contra                               todos. 

  Empezamos bien, nmap no nos dice nada de nada. Rápidamente se me ocurre abrir                           wireshark a ver si al menos nos saca algo.  

  Pues parece que sí, hay comunicación desde la máquina del reto a la kali por el puerto                                 1337. Tiro un netcat a ver que nos cuenta.  

 

Page 2: Solución reto the wall

Pues muy bien, ya empiezo a quedarme atascado, mal apaño. Me pongo a buscar                           información en google sin saber muy bien sobre que buscar y tras 20 minutos perdidos me                               decido a revisar a fondo el wireskhark.  

  Mira por donde me encuentro con una respuesta de la máquina, que raro ¿no?  Le doy a “follow TCP stream” y me encuentro con lo siguiente.  

 Obviamente parece que ha levantado en la máquina un servicio corriendo en el puerto 80.                             Además, aparece un chorizo de números que pasado de hexadecimal a texto devuelve                         steg=33115730dbbb370fcbe9720fe632ec05  Como la respuesta es HTTP entiendo que el puerto será el 80. Verifiquemos con nmap                             primero y después tratemos de acceder via web.  

  Ahora si, nmap nos descubre efectivamente el puerto 80. veamos… 

Page 3: Solución reto the wall

 

  Pues estaba en el buen camino, por un lado accedemos a una web con la foto de…                                 taraaaaaan Pink Floyd!, no me lo esperaba xD. Y por otro lado mirando el código,                             obviamente vemos lo mismo que nos decía Wireshark.  ¿Habrá con suerte un robots.txt que nos de alguna pista?  

 Pues parece que no… veamos, ¿qué más podemos ir haciendo? Vale, vamos a lanzar                           nmap a todos los puertos por si las moscas.  

  Tenemos el puerto 1965 pero no sabemos qué servicio tiene corriendo, así que usemos un                             poco de “banner grabbing” a ver que conseguimos sacar.  

Page 4: Solución reto the wall

  Pues ya sabemos que hay un openSSH corriendo. Obviamente ahora necesitamos un juego                         de usuario/contraseña para poder acceder. Me viene a la cabeza el chorizo que                         encontramos en el código de la web. steg=33115730dbbb370fcbe9720fe632ec05 La palabra steg que se lee claramente me pega que pueda tener que ver con                             esteganografía, pero los caracteres alfanuméricos tienen pinta de hash.  

 Por una vez parece que tengo razón y encuentro la palabra divisionbell . Pues ya tenemos                             algo. Vamos a ver tambien la parte de la imagen, a ver si saca algo más. Tras probar con exiftool como hice en el reto anterior y no sacar nada, decido probar otras                                 herramientas de extracción de datos y me encuentro con steghide. Veamos que tal se porta.  Tiro con steghide embed ­cf pink_floyd.jpg ­ef culo.txt como viene en el ejemplo pero                           nada. Después de un rato mirando la ayuda y el man llego a la conclusión de que lo que                                     estoy haciendo está mal. Dándole vueltas veo que siempre me pide un “salvoconducto” que                           mal traducido (no mal, pero no todo lo bien que debiera xD) quiere decir pass (ole mis                                 clases de inglés jajaja). Vamos, que nos pide una contraseña de toda la vida. Así que…  

  Vale, ya tengo la key U3lkQmFycmV0dA==|f831605ae34c2399d1e5bb3a4ab245d0 y de               paso me anoto el texto por si me vale como pista. Como veo que claramente está delimitado                                 por un |  (pipe) la primera parte parece Base64 y la segunda otro hash. Veamos el resultado.  SydBarrett  y pinkfloydrocks  respectivamente es el resultado. Entiendo que user/pass.  

   Vamos a probar ese SSH con el juego de usuario/contraseña que hemos obtenido.  

Page 5: Solución reto the wall

  Pues va a ser que no, pero al menos nos dice que solo admite sftp. Probemos a ver que                                     pasa.  

  A pesar de mi problema de dislexia xD estamos dentro. Es la primera vez que conecto por                                 sftp así que hago un help para que me muestre los comandos válidos. Como no se como                                 funciona y no encuentro un cat o equivalente, uso get para descargar los archivos que voy                               encontrando.   

  Pues el fichero bio.txt parece la biografía del grupo, el fichero send­items devuelve un texto                             en el que dice que ha escondido el “stash” y la imagen con exiftool no parece que tenga                                   nada.      

Page 6: Solución reto the wall

 

  Se que “stash” en inglés es alijo o escondite, pero realmente no se a que se refiere. Al abrir                                     el explorador de archivos, veo que la carpeta tiene el icono de estar comprimida pero no                               aparece la extensión, así que después de probar con tres distintas, a la cuarta di con ello.   

 

  Ahora mismo me quedo muy pillado porque no se que son los archivos .lsd, así que tiro de                                   mi amigo el LPIC Rodri... Pues a él tampoco le suena así que mal vamos.  Vale, solo tardo unos segundos en revisar las últimas “evidencias” y en el correo veo que                               dice algo así como “cuando lo encuentres, simplemente usa scalpel”. Y es que no aprendo,                             lo de leer los texto completos no va conmigo xD.  Pues nada, a usar scalpel, como ya hice en esta entrada viejuna en el blog.        

Page 7: Solución reto the wall

Como decía en esa entrada, modificamos el fichero de configuración de scalpel y le damos                             chicha.  

  No tarda ni 5 segundos en terminar el proceso, buena herramienta! No aparece que la                             password es hello_is_there_anybody_in_there . Perfecto, pero la password para que, y                   mejor aún, con que usuario? ¿será el nombre del señor de la foto? Por si acaso una                                 búsqueda rápida…  

 

  Por la napia y los pelos parece el bajista Roger Waters xD.  Recapitulando, solo hay dos servicios en los que podemos hacer login, el SSH y el Sft, en                                 realidad (en principio) solo el Sftp porque si recordamos, el SSH nos decía que nanai. Después de probar todas las combinaciones posible con el Sftp y no conseguir nada, me                             paso al SSH por si acaso, aunque no le veo mucho sentido a no ser que una combinación                                   “mágica” de user/pass si esté permitida.  

Page 8: Solución reto the wall

    Pues era eso jeje. Ya estamos dentro.  

  Listamos ficheros y vemos que hay en passwd. Hay varios usuarios además de root y de los                                 miembros de Pink Floyd.  

  Después de mirar los archivos de Roger intento ver que tienen los otros.  

Page 9: Solución reto the wall

  Y a la tercera…  

  Brick? como another brick in the wall? mucha casualidad no? xD  

  Parece que es un fichero ejecutable, veamos que nos aporta.  

 

Page 10: Solución reto the wall

 Creo que la respuesta a esa pregunta era obvia no? Pero no devuelve nada, o sí?  

  Una forma chula de cambiar de usuario jeje. Veamos que tiene este señor en su home.  

  Una vez más un bio.txt y una imagen. La bio para variar la leo por encima xD. Hoy he aprendido que con el comando file puedes ver que tipo de fichero es. Seguro que                                 cualquiera que lea esto me pondrá de tonto, pero es que soy de Windows jeje.  

  Pues resulta que de chorra he sacado una información que parece valiosa, el fichero .jpg en                               realidad es un fichero Ogg (de audio).  

  Nos copiamos el fichero por SCP para abrirlo con algún programa de audio. En mi caso uso                                 clementine que es el que más me gusta en linux.  

   En cuanto oyes los 3 primeros segundos de canción te das cuenta de que hay un sonido                                 raro que no cuadra. Creo que puede ser código morse, eso o el batería es malo de cojones                                   y no sabe llevar el ritmo jajaja. A ver como me las arreglo para sacar solo la parte del código                                       morse.   

Page 11: Solución reto the wall

Justo ayer hablaba con mi compañero Javi del gran Dani Kachakil que es toda una                             eminencia en esto de la esteganografía.  Después de revisar sus papers, charlas y demás y de no haber encontrado lo que quería                               me iba a instalar audacity que ya usaba para retocar algunas cosillas de mis grabaciones                             con la guitarra, pero buscando algún programa más (por aquello de aprender a manejar                           más herramientas) me encuentro con Sonic Visualizer, vamos a probarla.  Me toca pegarme durante una hora con el programa. Seguro que debe haber algún filtro                             que limpie la melodía principal y deje escuchar mejor el morse… Pero no doy con ello, así                                 que toca afinar el oído.  

  Siguiendo la forma de convertir el morse a texto humano y tras otra hora probando y                               apuntando cosas, por fin cobran sentido.  Tras varias modificaciones de la “salida” creo que lo tengo.  .­. .. ­.­. .... .­ .­. ­.. .­­ .­. .. ­­. .... ­ .­­­­ ­­­­. ....­ ...­­ ..­. .­ .­. ..­. .. ... .­   Ahora solo hay que buscar un “decoder” de morse. Podríamos hacerlo con la imagen que puse arriba, pero estoy aburrido ya del morse y esta es la solución a mis problemas.  

  Me devuelve RICHARDWRIGHT1943FARFISA . Se me ocurre intentar hacer login con la                     cuenta pero no va.  

  Quizá tenga algo que ver que he puesto la contraseña tal cual en mayúsculas y sea en                                 minúsculas.  

 

Page 12: Solución reto the wall

Efectivamente era eso, no se porqué había pensado que sería tal cual lo sacas del morse.  De nuevo al mirar el home del usuario veo que están los ficheros de siempre. la imagen, el                                   fichero bio.txt y el mbox.  

  Primero le hago un cat al mbox que tardo menos que con la foto…  

  Me quedo bastante colgado porque ni la foto ni el mail me parece que den ninguna pista.                                 Después de releer el correo tranquilamente, me da la sensación de que me quieren recordar                             el comando que usamos al encontrar aquel binario.   For now, just use that command I gave you with the menu.  Después de darle varias vueltas encuentro y ejecuto /usr/local/bin/shineon lo que me                       devuelve  

  Tras pulsar en las cuatro opciones, me da que de aquí no saco nada en claro. Le doy una                                     vuelta y se me ocurre mirar el código. Con un cat sale todo malamente, como era de                                 esperar, pero me deja ver que es un programa escrito en C. Veámoslo con strings . 

Page 13: Solución reto the wall

  Pues la verdad que no me arroja nada de luz, no tengo ni idea de C, así que toca preguntar                                       a mi compañero Rafa que es un crack (como mola estar rodeado de gente que sabe jeje).                                 Hablando con Rafa me comenta algo sobre las llamadas que debe hacer un programa en C                               que deben ir con las rutas y eso me recuerda que viendo el código ha visto que la llamada a                                       “mail” no las tiene, y ahí precisamente reside la vulnerabilidad. Rápidamente Rafa se crea                           otro programa en C para hacer una prueba de concepto y en cosa de 5 minutos lo tiene                                   resuelto. Se nos une Amine, un compañero que es otro fuera de serie y rápidamente llega a                                 la misma conclusión que Rafa sin que le explique nada salvo la temática del juego. Aún habiéndolo resuelto, hay algo que no nos cuadra (y de hecho tengo que mandar un                               mail al creador del juego para que nos lo aclare) y es ahí donde reside el alma de estos                                     hackers, se cogen el código, lo decompilan y se lían a ver que pasa…  Bueno que me voy del tema jeje. El caso es que lo que hace el programa es mostrar un                                     menú con 5 opciones y cada una de ella realiza una acción. La 4 precisamente es la que                                   está mal implementada y a través de ella es con la que podemos escalar privilegios.  Después de crear la prueba de concepto, me decido por crear un enlace simbólico de                             /bin/sh a /tmp/mail, exporto el path y ejecuto el binario. De esta manera consigo hacerme                             David Gilmour.  

Page 14: Solución reto the wall

  Acto seguido y como siempre, miro a ver que hay. Y para no perder la costumbre me                                 encuentro con la imagen del usuario, la bio el mbox y en este caso me encuentro un .txt                                   nuevo.  

  Vamos a ver lo primero el fichero anotherbrick.txt a ver si nos da alguna pista  

  En el encontramos pinkfloyd1965newblogsite50yearscelebration­temp/index.php y al           procesar la imagen nos devuelve who_are_you_and_who_am_i que tiene pinta de                   contraseña. Parece ser que es la contraseña del usuario David Gilmore...  

  Así se ve la página de acceso de la nueva web. 

Page 15: Solución reto the wall

Después de un rato revisando todos los links y de procesar las imágenes y no encontrar                               nada, recuerdo que alguna prueba de esteganografía con imágenes hay que variar la luz,                           espectro, contraste etc para poder ver algo que hay oculto como hice hace tiempo en el blog                                 en esta entrada y en esta otra. Vamos allá.  Como no tengo a mano el pc con photoshop me toca instalar gimp en la kali. Abrimos el                                   programa con la imagen y le modificamos los siguientes valores. Vamos a Herramientas →                           Herramientas de color → Curvas o Colores → Curvas y desde ahí arrastramos con el ratón                               hacia arriba y a la izquierda de manera que veamos la imagen como la siguiente. De esta                                 manera obtenemos /welcometothemachine y 50696e6b466c6f796435305965617273 .         Además el chorizo de números pasado de hexadecimal a texto plano es:                       PinkFloyd50Years   

  Si accedemos a /var/www/htdocs/welcometothemachine vemos que hay un fichero, de                   nuevo un binario.  

  Ejecutamos el binario, ponemos la contraseña que hemos sacado de la imagen y…  

     

Page 16: Solución reto the wall

Me da la sensación que esta vez no se ha modificado nada en la shell como las otras veces                                     al lanzar el binario, así que hago una búsqueda de los ficheros que se hayan modificado en                                 los últimos 4 minutos para comprobar si ha cambiado algo y veo que se ha modificado                               etc/sudoers.  

  Que cosa más rara… pruebo a hacer un sudo ­l introduciendo la pass de David Gilmour                               who_are_you_and_who_am_i   

  No puede ser tan fácil… pruebo con un sudo su y taraaaaannnn!!  

  No se porque me da que después de pegarte con todo hasta volverte loco, las últimas                               partes parecen demasiado fáciles.   Llegados a este punto, solo hago un   cd cat flag.txt  

Page 17: Solución reto the wall

  

Y ahí lo tenemos!!  Esta máquina tiene cosas chulas de esteganografía, aunque lo del código morse es una                           fumada muy grande xD.  Agradecimientos:  A mis compañeros Rafa y Amine, no solo por su tiempo si no por explicarme todos los                                 pasos que iban haciendo con el binario, sois unos máquinas!  Al creador de la máquina @xerubus por el currazo del juego.  Recursos utilizados:  Sonicvisualiser ASCI to HEX GIMP            

Realizado por Roberto García Amoriz (@1GbDeInfo)