You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Enable full SQL logging via DB parameter groups and exfiltrate via RDS log APIs
180
178
181
179
Abuse `rds:ModifyDBParameterGroup` with RDS log download APIs to capture all SQL statements executed by applications (no DB engine credentials needed). Enable engine SQL logging and pull the file logs via `rds:DescribeDBLogFiles` and `rds:DownloadDBLogFilePortion` (or the REST `downloadCompleteLogFile`). Useful to collect queries that may contain secrets/PII/JWTs.
@@ -455,3 +453,188 @@ Notes:
455
453
- If multi-statement SQL is rejected by rds-data, issue separate execute-statement calls.
456
454
- For engines where modify-db-cluster --enable-http-endpoint has no effect, use rds enable-http-endpoint --resource-arn.
457
455
- Ensure the engine/version actually supports the Data API; otherwise HttpEndpointEnabled will remain False.
456
+
457
+
458
+
### Harvest DB credentials via RDS Proxy auth secrets (`rds:DescribeDBProxies` + `secretsmanager:GetSecretValue`)
459
+
460
+
Abuse RDS Proxy configuration to discover the Secrets Manager secret used for backend authentication, then read the secret to obtain database credentials. Many environments grant broad `secretsmanager:GetSecretValue`, making this a low-friction pivot to DB creds. If the secret uses a CMK, mis-scoped KMS permissions may also allow `kms:Decrypt`.
461
+
462
+
Permissions needed (minimum):
463
+
-`rds:DescribeDBProxies`
464
+
-`secretsmanager:GetSecretValue` on the referenced SecretArn
465
+
- Optional when the secret uses a CMK: `kms:Decrypt` on that key
466
+
467
+
Impact: Immediate disclosure of DB username/password configured on the proxy; enables direct DB access or further lateral movement.
468
+
469
+
Steps
470
+
```bash
471
+
# 1) Enumerate proxies and extract the SecretArn used for auth
### Stealthy continuous exfiltration via Aurora zero‑ETL to Amazon Redshift (rds:CreateIntegration)
512
+
513
+
Abuse Aurora PostgreSQL zero‑ETL integration to continuously replicate production data into a Redshift Serverless namespace you control. With a permissive Redshift resource policy that authorizes CreateInboundIntegration/AuthorizeInboundIntegration for a specific Aurora cluster ARN, an attacker can establish a near‑real‑time data copy without DB creds, snapshots or network exposure.
--sql "select table_schema,table_name from information_schema.tables where table_schema not in ('pg_catalog','information_schema') order by 1,2 limit 20;"
629
+
```
630
+
</details>
631
+
632
+
Evidence observed in test:
633
+
- redshift describe-inbound-integrations: Status ACTIVE for Integration arn:...377a462b-...
634
+
- SVV_INTEGRATION showed integration_id 377a462b-c42c-4f08-937b-77fe75d98211 and state PendingDbConnectState prior to DB creation.
635
+
- After CREATE DATABASE FROM INTEGRATION, listing tables revealed schema ztl and table customers; selecting from ztl.customers returned 2 rows (Alice, Bob).
636
+
637
+
Impact: Continuous near‑real‑time exfiltration of selected Aurora PostgreSQL tables into Redshift Serverless controlled by the attacker, without using database credentials, backups, or network access to the source cluster.
0 commit comments