TryHackme Wonderland
Última actualización
Última actualización
Bueno en esta vez vamos a resolver esta maquina de nivel de dificultad Medio.
Primeramente vamos a ver los puertos abiertos usando nuestra herramienta de confianza NMAP. La cual nos muestra que tenemos dos.
Ahora seguimos usando NMAP para observar la version que corre para los dos puertos abiertos.
Si vamos al puerto 80 nos muestra esto nada mas, una pagina web simple. A la cual le haremos fuzzing para descubrir directorios ocultos o subdominios si fuera el caso.
Utilizando wfuzz fuzzeamos en busca de directorios y encontramos de momento uno solo la letra /r.
Nota para no hacer tan extenso el WRITEUPS
Cuando recien usabamos wfuzz lo unico que de primeras encontrabamos era la letra /r como DC primero, pero si seguimos fuzeando vamos encontrando mas DC con una sola letra que al final toda la conbinacion es /r/a/b/b/i/t.
Que todo este combo nos lleva a esta pagina.
Que si luego inspeccionamos el codigo fuente de la pagina encontramos credenciales para un usuario llamdo alice. Estas credenciales las testearemos en el puerto 22 ya que solo tenemos dos puertos abiertos.
Si utilizamos las credenciales encontradas en el codigo fuente de la pagina lo cual no es muy realista pero bueno es un CTF no la vida real.
Observamos que nos podemos autentificar y conectarnos por SSH como el usuario alice.
Ya conectados vamos por nuestra primera bandera la de user.txt. Ahora vienes la parte de escalar nuestros privilegios y convertirnos en el administrador del sistema para obtener la ultima bandera la de root.txt.
Si como el usuario alice nos vamos al /home, observamos que tenemos mas usuarios, hatter,rabbit,tryhackme.
Si como el actual usuario hacemos un sudo -l, observamos que como el usuario rabbit y no como el usuario alice podemos ejecutar este script en python3.6 que esta bajo el directorio de trabajo de alice.
Si abrimos el script con nano, podemos ver que es un poema que no se que dice, mi ingles es barato, pero de entrada esta importando la libreria de random.
Como esta importando la libreria de random, nos creamos nuestra propia random.py y le metemos ahi algo pequeño para que nos otorgue una bash.
La idea es hacer un secuestro de la libreria random, por eso creamos lo que creamos con ese nombre, para que asi cuando ejecutemos el script original que solo puede ejecutar rabbit, en vez de invocar la libreria que esta dentro del script original tome la que nosotros hemos creado.
Ejecutamos el script original como el usuario rabbit, y observamos que nos migra del usuario alice ah rabbit.
Estamos escalando nuestros privilegios de forma lateral saltando de usuario en usuario.
Ahora ya como el usuario rabbit si hacemos un ls -l, tenemos un binario con permisos SUID, el cual ejecuta algo que tiene que ver con un evento poniendonos la fecha.
La fecha del binario no se toma de forma absoluta si no de forma relativa lo cual puede deribar en un PATH Hijacking.
Ahora vamos a hacer un PATH Hijacking, este ataque consiste en la manipulacion del PATH.
Nos creamos el date le damos permisos de ejecucion y el codigo que introducimos dentro es /bin/bash.
Ahora vamos a manipular el PATH despues de haber creado el date. Ese archivo lo puedes crear en /tmp/ o como lo hice yo en /dev/shm.
Ahora si hago un echo $PATH me muestra que mi PATH empieza en /usr/local/sbin/etc/etc.
Ahora como punto dos vamos a exportar el PATH manipularlo y que empiece donde yo quiero eso lo hacemos asi export PATH=/dev/shm:$PATH.
Ahora como tercer punto si hacemos un echo $PATH observamos que ahora el PATH no inicia en /usr/local/sbin/etc/etc si no que en /dev/shm:/local/etc/etc.
NOTA. El PATH ya lo hemos manipulado y ahora inicia donde nosotros queremos donde tenemos alojado el archivito date.
Ahora si ejecutamos el binario ./teaParty si hacemos un whoami, ahora ya no somos rabbit, ahora somos otro usuario hatter.
Como pasa esto, pues por la manipulacion del PATH, como la ruta de la funcion que me muestra la fecha osea date no es absoluta si no relativa podemos crear nuestro propio date que fue lo que hicimos y introducir lo que nosotros queramos lo que queremos que nos interprete que en este caso fue /bin/bash.
Bueno ahora que ya somos el usuario hatter seguimos escalando nuestros privilegios de forma lateral hasta llegar al rey root.
Ahora como el usuario hatter si nos vamos a su directorio de trabajo tiene un password.txt el cual es del ssh pero para el usuario hatter, nos las copiamos y ahora nos conectamos al usuario hatter via ssh.
Ahora buscando una forma de escalar lo encontramos por las Capabilities la de perl, ejecutamos lo que se observa resaltado y wala somos root.
Ahora ya como root solo nos queda hacernos con la ultima bandera la de root.txt. YYY maquina RESUELTA.