Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md

7.0 KiB

AWS - Relational Database (RDS) Enum

{{#include ../../../banners/hacktricks-training.md}}

Basiese Inligting

Die Relational Database Service (RDS) wat deur AWS aangebied word, is ontwerp om die ontplooiing, werking en skaal van 'n relationele databasis in die wolk te stroomlyn. Hierdie diens bied die voordele van kostedoeltreffendheid en skaalbaarheid terwyl dit arbeidsintensiewe take soos hardewareverskaffing, databasis konfigurasie, patching en rugsteun outomatiseer.

AWS RDS ondersteun verskeie algemeen gebruikte relationele databasis enjin, insluitend MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server, en Amazon Aurora, met kompatibiliteit vir beide MySQL en PostgreSQL.

Belangrike kenmerke van RDS sluit in:

  • Bestuur van databasisinstansies is vereenvoudig.
  • Skep van lees replika's om leesprestasie te verbeter.
  • Konfigurasie van multi-Availability Zone (AZ) ontplooiings om hoë beskikbaarheid en failover meganismes te verseker.
  • Integrasie met ander AWS dienste, soos:
  • AWS Identity and Access Management (IAM) vir robuuste toegangbeheer.
  • AWS CloudWatch vir omvattende monitering en metrieke.
  • AWS Key Management Service (KMS) om versleuteling in rus te verseker.

Kredensiale

Wanneer die DB-kluster geskep word, kan die meester gebruikersnaam geconfigureer word (admin as standaard). Om die wagwoord van hierdie gebruiker te genereer, kan jy:

  • Aangee 'n wagwoord self
  • RDS vra om dit outomaties te genereer
  • RDS vra om dit in AWS Secret Manager te bestuur wat met 'n KMS-sleutel versleuteld is

Verifikasie

Daar is 3 tipes verifikasie opsies, maar die gebruik van die meester wagwoord is altyd toegelaat:

Publieke Toegang & VPC

Standaard word geen publieke toegang toegestaan tot die databasisse nie, maar dit kan toegestaan word. Daarom sal slegs masjiene van dieselfde VPC toegang hê as die geselekteerde veiligheidsgroep (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 schaalbaarheid & beskikbaarheid van die DB-kluster verbeter.

Boonop kan die databasispoort ook gewysig word.

Versleuteling

Versleuteling is standaard geaktiveer met 'n AWS bestuurde sleutel (n CMK kan in plaas daarvan gekies word).

Deur jou versleuteling te aktiveer, aktiveer jy versleuteling in rus vir jou stoor, snapshots, lees replika's en jou rugsteun. Sleutels om hierdie versleuteling te bestuur kan uitgereik word deur KMS.
Dit is nie moontlik om hierdie vlak van versleuteling by te voeg nadat jou databasis geskep is nie. Dit moet tydens die skepping gedoen word.

Daar is egter 'n ompad wat jou toelaat om 'n nie-versleutelde databasis soos volg te versleutel. Jy kan 'n snapshot van jou nie-versleutelde databasis skep, 'n versleutelde kopie van daardie snapshot skep, daardie versleutelde snapshot gebruik om 'n nuwe databasis te skep, en dan, uiteindelik, sou jou databasis dan versleuteld wees.

Deursigtige Data Versleuteling (TDE)

Saam met die versleuteling vermoëns wat inherent aan RDS op die toepassingsvlak is, ondersteun RDS ook addisionele platform-vlak versleuteling meganismes om data in rus te beskerm. Dit sluit Deursigtige Data Versleuteling (TDE) vir Oracle en SQL Server in. Dit is egter belangrik om op te let dat terwyl TDE sekuriteit verbeter deur data in rus te versleutel, dit ook databasisprestasie kan beïnvloed. Hierdie prestasie-impak is veral merkbaar wanneer dit saam met MySQL-kryptografiese funksies of Microsoft Transact-SQL-kryptografiese funksies gebruik word.

Om TDE te gebruik, is sekere voorlopige stappe nodig:

  1. Opsie Groep Assosiasie:
  • Die databasis moet met 'n opsiegroep geassosieer word. Opsiegroepe dien as houers vir instellings en funksies, wat databasisbestuur vergemaklik, insluitend sekuriteitsverbeterings.
  • Dit is egter belangrik om op te let dat opsiegroepe slegs beskikbaar is vir spesifieke databasis enjin en weergawes.
  1. Insluiting van TDE in Opsie Groep:
  • Sodra dit met 'n opsiegroep geassosieer is, moet die Oracle Deursigtige Data Versleuteling opsie in daardie groep ingesluit word.
  • Dit is noodsaaklik om te erken dat sodra die TDE opsie by 'n opsiegroep gevoeg is, dit 'n permanente kenmerk word en nie verwyder kan word nie.
  1. TDE Versleuteling Modusse:
  • TDE bied twee onderskeidbare versleuteling modusse:
  • TDE Tabelruimte Versleuteling: Hierdie modus versleutel hele tabelle, wat 'n breër omvang van databeskydding bied.
  • TDE Kolom Versleuteling: Hierdie modus fokus op die versleuteling van spesifieke, individuele elemente binne die databasis, wat meer granulaire beheer oor watter data versleutel word, moontlik maak.

Om hierdie vereistes en die operasionele ingewikkeldhede van TDE te verstaan, is noodsaaklik vir effektiewe implementering en bestuur van versleuteling binne RDS, wat beide datasekuriteit 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

# 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

Ongeauthentiseerde Toegang

{{#ref}} ../aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum.md {{#endref}}

Privilege Escalation

{{#ref}} ../aws-privilege-escalation/aws-rds-privesc.md {{#endref}}

Post Exploitatie

{{#ref}} ../aws-post-exploitation/aws-rds-post-exploitation.md {{#endref}}

Volharding

{{#ref}} ../aws-persistence/aws-rds-persistence.md {{#endref}}

SQL Inbraak

Daar is maniere om toegang tot DynamoDB-data te verkry met SQL-sintaks, daarom is tipiese SQL-inbrake ook moontlik.

{{#ref}} https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html {{#endref}}

{{#include ../../../banners/hacktricks-training.md}}