AWS - Relasionele Databasis (RDS) Enumerasie
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Basiese Inligting
Die Relational Database Service (RDS) wat deur AWS aangebied word, is ontwerp om die ontplooiing, werking en skaal van ’n relasionele databasis in die wolk te vereenvoudig. Hierdie diens bied die voordele van koste-effektiwiteit en skaalbaarheid terwyl dit arbeidsintensiewe take soos hardware-provisioning, databasiskonfigurasie, patching en rugsteun outomatiseer.
AWS RDS ondersteun verskeie wydgebruikte relasionele databasis-engines, insluitend MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server, en Amazon Aurora, met versoenbaarheid vir beide MySQL en PostgreSQL.
Belangrike kenmerke van RDS sluit in:
- Bestuur van databasisinstansies word vereenvoudig.
- Skepping van read replicas om die leesprestasie te verbeter.
- Konfigurasie van multi-Availability Zone (AZ) deployments om hoë beskikbaarheid en failover-meganismes te verseker.
- Integrasie met ander AWS-dienste, soos:
- AWS Identity and Access Management (IAM) vir robuuste toegangsbeheer.
- AWS CloudWatch vir omvattende monitering en metrics.
- AWS Key Management Service (KMS) om enkripsie at rest te verseker.
Kredensiale
Wanneer die DB-cluster geskep word, kan die meester username gekonfigureer word (standaard admin). Om die wagwoord van hierdie gebruiker te genereer kan jy:
- ’n wagwoord self aandui
- RDS sê om dit outomaties te genereer
- RDS laat dit bestuur in AWS Secret Manager versleut met ’n KMS-sleutel
.png)
Outentisering
Daar is 3 soorte outentiseringsopsies, maar die gebruik van die meesterwagwoord is altyd toegelaat:
.png)
Publieke Toegang & VPC
Per verstek word geen publieke toegang gegee aan die databasisse nie, maar dit kan gegee word. Daarom sal per verstek slegs masjiene uit dieselfde VPC dit kan bereik indien die gekose security group (wat in EC2 SG gestoor word) dit toelaat.
In plaas daarvan om ’n DB-instansie bloot te stel, is dit moontlik om ’n RDS Proxy te skep wat die skaalbaarheid en beskikbaarheid van die DB-cluster verbeter.
Verder kan die databasispoort ook gemodifiseer word.
Enkripsie
Enkripsie is standaard geaktiveer deur gebruik te maak van ’n AWS-beheerde sleutel (’n CMK kan in plaas daarvan gekies word).
Deur enkripsie te aktiveer, skakel jy enkripsie at rest vir jou stoorplek, snapshots, read replicas en jou rugsteun in. Sleutels om hierdie enkripsie te bestuur kan uitgereik word deur KMS te gebruik.
Dit is nie moontlik om hierdie vlak van enkripsie by te voeg nadat jou databasis geskep is nie. Dit moet tydens die skepproses gedoen word.
Daar is egter ’n workaround wat jou toelaat om ’n nie-versleutelde databasis te versleutel soos volg. Jy kan ’n snapshot van jou nie-versleutelde databasis skep, ’n versleutelde kopie van daardie snapshot maak, daardie versleutelde snapshot gebruik om ’n nuwe databasis te skep, en uiteindelik sal jou databasis dan versleuteld wees.
Transparent Data Encryption (TDE)
Benewens die enkripsiefunksies wat inherent aan RDS op toepassingsvlak is, ondersteun RDS ook addisionele platformvlak enkripsiemeganismes om data at rest te beskerm. Dit sluit in Transparent Data Encryption (TDE) vir Oracle en SQL Server. Dit is egter belangrik om te let dat hoewel TDE die sekuriteit verbeter deur data at rest te enkripteer, dit ook die databasisprestasie kan beïnvloed. Hierdie prestasie-impak is veral merkbaar wanneer dit saam met MySQL-kriptografiese funksies of Microsoft Transact-SQL kriptografiese funksies gebruik word.
Om TDE te gebruik, is sekere voorlopige stappe vereis:
- Option Group Association:
- Die databasis moet geassosieer wees met ’n option group. Option groups dien as houers vir instellings en funksies, wat databasisbestuur, insluitend sekuriteitsverbeterings, vergemaklik.
- Dit is egter belangrik om te besef dat option groups slegs beskikbaar is vir spesifieke databasis-engines en weergawes.
- Inclusion of TDE in Option Group:
- Sodra dit geassosieer is met ’n option group, moet die Oracle Transparent Data Encryption-opsie by daardie groep gevoeg word.
- Dit is noodsaaklik om te erken dat sodra die TDE-opsie by ’n option group gevoeg is, dit ’n permanente onderdeel word en nie verwyder kan word nie.
- TDE Encryption Modes:
- TDE bied twee onderskeibare enkripsiemodusse:
- TDE Tablespace Encryption: Hierdie modus enkripteer hele tablespaces en bied ’n breër omvang van databeskerming.
- TDE Column Encryption: Hierdie modus fokus op die enkripsie van spesifieke, individuele elemente binne die databasis, wat meer gefyn beheer oor watter data enkripteer word, moontlik maak.
Om hierdie vereistes en die operasionele ingewikkeldhede van TDE te verstaan, is noodsaaklik vir effektiewe implementering en bestuur van enkripsie binne RDS, wat beide databeskerming en nakoming van nodige standaarde verseker.
Enumerasie
# Clusters info
## Get Endpoints, username, port, iam auth enabled, attached roles, SG
aws rds describe-db-clusters
aws rds describe-db-cluster-endpoints #Cluster URLs
aws rds describe-db-cluster-backtracks --db-cluster-identifier <cluster-name>
## Cluster snapshots
aws rds describe-db-cluster-snapshots
aws rds describe-db-cluster-snapshots --include-public --snapshot-type public
## Restore cluster snapshot as new instance
aws rds restore-db-instance-from-db-snapshot --db-cluster-identifier <ID> --snapshot-identifier <ID>
# Get DB instances info
aws rds describe-db-instances #username, url, port, vpc, SG, is public?
aws rds describe-db-security-groups
## Find automated backups
aws rds describe-db-instance-automated-backups
## Find snapshots
aws rds describe-db-snapshots
aws rds describe-db-snapshots --include-public --snapshot-type public
## Restore snapshot as new instance
aws rds restore-db-instance-from-db-snapshot --db-instance-identifier <ID> --db-snapshot-identifier <ID> --availability-zone us-west-2a
# Any public snapshot in the account
aws rds describe-db-snapshots --snapshot-type public
# Proxies
aws rds describe-db-proxy-endpoints
aws rds describe-db-proxy-target-groups
aws rds describe-db-proxy-targets
## reset credentials of MasterUsername
aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password <NewPassword> --apply-immediately
Nie-geauthentiseerde Toegang
AWS - RDS Unauthenticated Enum
Privesc
Post Exploitation
Persistence
SQL Injection
Daar is maniere om toegang tot DynamoDB data te kry met SQL syntax, daarom is tipiese SQL injections are also possible.
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

