5439 - Pentesting Redshift
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Basiese Inligting
Hierdie poort word gebruik deur Amazon Redshift (AWS-beheerde data warehouse). Redshift se wire-protokol is ’n effens gemodifiseerde PostgreSQL-protokol, so die meeste Postgres client-gereedskap werk (psql, psycopg2, JDBC/ODBC) maar auth en TLS-vereistes verskil.
For more information check:
AWS - Redshift Enum - HackTricks Cloud
Enumerasie & Konnektiwiteit
- Default port: 5439/TCP (customizable). Serverless-werkgroepe gebruik ook standaard 5439.
- Public endpoint pattern:
<clusterid>.<random>.<region>.redshift.amazonaws.com(public) or.redshift.amazonaws.com.cn(China). Serverless:<workgroup>.<random>.<region>.redshift-serverless.amazonaws.com. - TLS: Redshift vereis TLS 1.2+ en perfect-forward-secrecy ciphers. Ou kliënte kan faal; dwing moderne TLS af:
psql "host=<endpoint> port=5439 user=awsuser dbname=dev sslmode=require"
# or using redshift-psql wrapper
- Parameter group
require_sslcontrols if plaintext is allowed. New clusters/workgroups usedefault.redshift-2.0withrequire_ssl=true, so downgrade/mitm is harder.
Vinnige enumerasie met psql
# basic banner/version
psql "host=<endpoint> user=<u> dbname=dev" -c 'select version();'
# list dbs, users, privileges
\l
\du
select * from pg_user;
select * from svv_redshift_sessions;
Foutboodskappe onderskei slegte wagwoord van ontbrekende gebruiker → potensiële username enumeration tydens brute force.
Verifikasie-paaie om te toets
- Database wagwoord vir master user (dikwels
awsuser) of geskepte DB gebruikers. - IAM auth tokens: genereer kortlewende credentials en verbind via libpq/JDBC/ODBC gebruik makend van
sslmode=requireenauthMech=IAMofplugin_name=com.amazon.redshift.plugin.OktaCredentialsProvider. Abuse stolen IAM creds/roles withrds-db:connectstyle permission equivalent for Redshift.
aws redshift get-cluster-credentials --cluster-identifier <id> \
--db-user pentest --db-name dev --duration-seconds 900
psql "host=<endpoint> user=pentest password=<token> dbname=dev sslmode=require"
- IAM Identity Center / SAML / Azure AD plugins: JDBC
plugin_namemay spin up local webserver for SSO; captured loopback callback can leak SAML assertion or temp creds.
Algemene wankonfigurasies (netwerk)
- Cluster gemerk PubliclyAccessible=true met wye SG (0.0.0.0/0) openbaar ’n Postgres-agtige oppervlak vir brute force of SQLi eksploitasie.
- Standaardpoort 5439 plus standaard SG maak maklike ontdekking (Shodan/Censys) moontlik. Poortverandering is ’n geringe obscurity maar soms oor die hoof gesien in verhardingskontrolelyste.
- No enhanced VPC routing → COPY/UNLOAD gaan oor publieke Internet; kan misbruik word vir exfil wanneer aanvaller beheer oor ’n S3 bucket/endpoint.
Aanvalnotas
- Indien login slaag, Redshift het geen superuser in serverless nie; in provisioned clusters het die master user wye regte insluitend die skep van UDFs (Python), external schema na Spectrum, COPY vanaf aanvaller S3, en
UNLOADom data te exfil. - Kontroleer cluster parameter group vir
max_concurrency_scaling_clusters,require_ssl,enable_user_activity_logging– logging gedeaktiveer help stealth. - Serverless workgroups steeds bereikbaar via TCP; dieselfde SQL aanvaloppervlak as provisioned clusters.
- Client-side metadata SQLi (Dec 2024): JDBC 2.1.0.31, Python connector 2.1.4 and ODBC 2.1.5.0 bou metadata queries met ongeciteerde user input in
getSchemas/getTables/getColumns(CVE-2024-12744/5/6). As ’n app aanvallers toelaat om katalogus of patroonargumente te beheer, kan jy arbitrary SQL injekteer wat loop met die DB user wat deur die connector gebruik word.
# exploit vulnerable python connector 2.1.4 via metadata API
import redshift_connector
conn = redshift_connector.connect(host='<endpoint>', database='dev', user='lowpriv', password='pw')
cur = conn.cursor()
# injection in table_pattern leaks data from pg_tables
cur.get_tables(table_schema='public', table_name_pattern="%' UNION SELECT usename,passwd FROM pg_user--")
- UDF execution model change: Python UDFs hou op om te werk 30 Junie 2026; slegs Lambda UDFs toegestaan daarna. Offensiewe impak: legacy provisioned clusters wat nog Python UDFs draai kan steeds in-cluster code exec uitvoer (geen FS/network toegang). Lambda UDFs skuif kode na Lambda waar die IAM role moontlik Internet/VPC endpoints kan bereik vir SSRF/pivot, maar sonder direkte cluster filesystem toegang. Jaag op ou clusters met Python UDFs aangeskakel kan steeds RCE primitives oplewer.
Onlangse sekuriteitsveranderings (aanvalsimpak)
- Public access disabled by default op nuwe clusters/snapshots (Jan 10, 2025 change). Legacy een mag steeds public wees.
- Encryption at rest + enforced TLS by default beteken sniffing/mitm moeiliker; benodig geldige credentials of SSRF in VPC path.
- Serverless VPCE rollout change (Jun 27, 2025): workgroup endpoints geskep in tot 3 AZs by skeppingstyd. Discovery tools moet alle workgroup VPCE DNS names per AZ enumereer om bereikbare IPs te vind.
References
- AWS Security Bulletin – SQLi in Redshift JDBC/Python/ODBC drivers (CVE-2024-12744/5/6)
- AWS Big Data Blog – Python UDF end-of-support and migration to Lambda UDFs (Jan 2026)
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.


