5432 - PostgreSQL

Einführung

Typische Angriffspunkte:

  • Schwache Passwörter (Brute Force).

  • Offen zugängliche Datenbankservices (kein IP-Restricting).

  • SQL-Injection in Webanwendungen.

  • Übermäßig privilegierte Benutzer.


Gefährliche Einstellungen

  • trust-Authentifizierung: Ermöglicht Zugang ohne Passwort.

  • listen_addresses = '*': Erlaubt Verbindungen von allen Netzwerken.

  • log_statement = 'all': Kann sensible Daten im Log speichern.


Wichtige Befehle für PostgreSQL

\l                     - Listet alle Datenbanken auf.
\c <Datenbankname>     - Verbindet mit der angegebenen Datenbank.
\dt                    - Zeigt alle Tabellen im aktuellen Schema.
\d <Tabellenname>      - Zeigt die Struktur (Spalten, Datentypen) einer Tabelle.
\du                    - Listet alle Benutzer/Rollen und deren Rechte.
\conninfo              - Zeigt Informationen zur aktuellen Verbindung.
SELECT * FROM <Tabelle>; - Gibt alle Daten aus einer Tabelle aus.
CREATE USER <Benutzer> WITH PASSWORD '<Passwort>'; - Erstellt einen neuen Benutzer mit Passwort.
GRANT ALL PRIVILEGES ON DATABASE <Datenbank> TO <Benutzer>; - Erteilt einem Benutzer alle Rechte auf eine Datenbank.
SHOW log_directory;    - Zeigt das Verzeichnis der Server-Logs.
SHOW log_filename;     - Zeigt den Namen der aktuellen Logdatei.
SELECT version();      - Zeigt die PostgreSQL-Version und Systeminformationen.
SELECT * FROM pg_stat_activity; - Listet aktive Verbindungen zur Datenbank.


Schritt-für-Schritt Pentest

1. Enumeration

  1. Offene Ports und Version identifizieren:

  1. Anmelden mit Standardbenutzern: Versuche Standardbenutzer wie postgres ohne Passwort oder mit einfachen Passwörtern (postgres, 1234).

2. Exploitation

  1. Brute Force gegen PostgreSQL: Tools wie Hydra oder Medusa können verwendet werden:

  2. Code Execution (Falls Superuser): PostgreSQL erlaubt die Ausführung von Befehlen über Extensions:

3. Post-Exploitation

  • Daten exfiltrieren:

  • Systembefehle ausführen (bei Superuser-Rechten):


Nützliche Tools

  • pgcli: Alternativer Client mit Autovervollständigung und Syntaxhighlighting.

  • Metasploit: PostgreSQL-Login-Scanner.

  • Hydra/Medusa: Brute-Force-Tools für PostgreSQL.

Last updated