XUT_ / MACHINES / THM

0003

Lookup

THMMACHINENONEEASY

Introduction

lookup

Lookup ofrece un tesoro de oportunidades de aprendizaje para aspirantes a hackers. Esta fascinante máquina muestra diversas vulnerabilidades reales, desde debilidades en aplicaciones web hasta técnicas de escalada de privilegios. Al explorar y explotar estas vulnerabilidades, los hackers pueden perfeccionar sus habilidades y adquirir una valiosa experiencia en hacking ético. Gracias a "Lookup", los hackers pueden dominar el arte del reconocimiento, el escaneo y la enumeración para descubrir servicios y subdominios ocultos. Aprenderán a explotar vulnerabilidades en aplicaciones web, como la inyección de comandos, y comprenderán la importancia de las prácticas de codificación segura. La máquina también desafía a los hackers a automatizar tareas, demostrando el poder del scripting en las pruebas de penetración.

Finding the flags

  1. Analizamos la dirección que nos dan. lookup
  2. Hacemos un poco más de enumeración. lookup
  3. Y un poco más de reconocimiento. lookup lookup
  4. Vamos a ver la página web, /login.php está vacía y /index.php es la misma que sin poner nada. lookup
  5. Vamos a abrir Burp Suite y a ver como se ve una petición fallida. lookup
  6. Probamos a hacer fuerza bruta. lookup Nada.
  7. Vamos a enumerar más. lookup Seguimos sin nada.
  8. Si probamos con el usuario admin, vemos que la respuesta es diferente. lookup
  9. Vamos a lanzar el ataque para el usuario admin filtrando aquellas respuestas en las que aparezca Wrong password. lookup
  10. Si intentamos loguearnos con estas credenciales nos dice que Wrong username or password. lookup
  11. Volvemos a Burp Suite. Vamos a recapitular lo que tenemos.
    1. Si metemos un usuario y una contraseña equivocada: Wrong username or password.
    2. Si metemos un usuario existente y una contraseña equivocada: Wrong password.
    3. Si metemos un usuario existente y una contraseña que en principio pensábamos acertada, nos sale: Wrong username or password. Basándonos en esto podemos deducir que la contraseña es correcta, pero no para el usuario admin.
  12. Vamos a hacer fuerza bruta contra el usuario. lookup Grande jose.
  13. Nos logueamos con jose:password123. Esto nos lleva a files.lookup.thm lo tenemos que meter en /etc/hosts. lookup Parece que hay un botón de subida de archivos así que vamos a intentar subir una reverse shell.
  14. Intentamos subir la shell. lookup Salta error, vamos a cambiar la extensión a .txt.
  15. Subimos reverseshell.txt. lookup Tampoco va.
  16. Vamos a probar con Burp Suite a ver qué vemos. lookup Intentando subir un archivo JS me lo deniega también.
  17. Vamos a realizar más investigación en la página (sí, más enumeración). lookup Encontramos un botón que nos deja ver el software de gestión junto a la versión: elFinder 2.1.47.
  18. Buscamos en una base de datos de exploits. lookup
  19. El método encontrado no soporta autentificación por lo que vamos a ver si podemos acceder al endpoint de subida sin autentificarnos. lookup Efectivamente sí se puede.
  20. El código de Exploit-DB no ha funcionado por lo que buscamos en GitHub. lookup
  21. Nos ponemos en escucha. lookup
  22. Lo ejecutamos como dice. lookup
  23. Obtenemos la shell. lookup
  24. Después de estabilizar la shell y buscar un poco nos encontramos con el archivo que contiene la flag de user. lookup Pero no podemos leerla con nuestros permisos actuales, ni el archivo .passwords tampoco.
  25. Después de hacer sudo -l y ver que no podemos hacer nada, probamos a buscar archivos SUID. lookup
  26. Tanto pkexec como pwm llaman mi atención. Comprobaremos la versión de pkexec. lookup Es la 0.105, buscaremos un exploit.
  27. Hemos encontrado un exploit. lookup
  28. Seguimos las instrucciones y no funciona de ninguna manera. lookup
  29. Vamos a investigar el otro SUID sospechoso: /usr/sbin/pwm. lookup Parece que ejecuta id y luego lo usa para meterlo en una ruta. Si consiguiéramos que extrajese think podríamos leer el archivo .passwords.
  30. Comprobamos el $PATH. lookup Parece que podemos modificarlo. Ahora sólo tenemos que hacer un script y guardarlo en /tmp/id y se ejecutará en lugar de el verdadero id.
  31. Creamos el script y le damos permisos de ejecución con chmod +x /tmp/id. lookup
  32. Volvemos a ejecutar /user/sbin/pwm. lookup Obtenemos lo que parece una lista de contraseñas.
  33. Vamos a probar fuerza bruta con dicha lista contra el usuario think por ssh. lookup
  34. Iniciamos sesión con el usuario think y leemos la flag. lookup
  35. Buscando maneras de escalar privilegios nos encontramos con /usr/bin/look. lookup
  36. Si miramos en GTFOBins: lookup BINGO!
  37. Seguimos los pasos. lookup En este caso se trata de un SHA512, lo sabemos gracias al comienzo: $6$. Además vemos que el formato es salt.pass.
  38. Miramos en el manual de hashcat: lookup
  39. Vamos a usar hashcat con rockyou.txt para obtener la contraseña. lookup lookup No hemos encontrado la contraseña así. Es por eso que pensaremos en otra manera.
  40. Si podemos leer cualquier archivo como sudo, en realidad también podemos leer la clave ssh de root y usarla desde nuestra propia máquina para conectarnos como root. Empezamos leyéndola. lookup
  41. La copiamos en nuestra máquina y la usamos para iniciar sesión. lookup MUY IMPORTANTE CAMBIAR LOS PERMISOS A 600 (rw-------).
  42. Leemos la flag. lookup