AWS - Relational Database (RDS) Enum

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese Inligting

Die Relational Database Service (RDS) wat deur AWS aangebied word, is ontwerp om die implementering, werking en skaalvergroting van 'n relasionele databasis in die wolk te stroomlyn. Hierdie diens bied die voordele van koste-effektiwiteit en skaalbaarheid terwyl dit arbeidsintensiewe take soos hardewarevoorsiening, databasiskonfigurasie, patching en rugsteun outomatiseer.

AWS RDS ondersteun verskeie algemeen gebruikte relasionele databasis-enjins, insluitend MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server, en Amazon Aurora, met verenigbaarheid vir beide MySQL en PostgreSQL.

Kernkenmerke van RDS sluit in:

  • Die bestuur van databasisinstansies is vereenvoudig.

  • Die skep van leesvervaardigings om leesprestasie te verbeter.

  • Konfigurasie van multi-Beskikbaarheidsone (AZ) implementasies om hoë beskikbaarheid en oorvalmeganismes te verseker.

  • Integrasie met ander AWS-dienste, soos:

  • AWS Identity and Access Management (IAM) vir robuuste toegangsbeheer.

  • AWS CloudWatch vir omvattende monitering en metriese.

  • AWS Key Management Service (KMS) om versekering van kodering by rus te verseker.

Gelde

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

  • Self 'n wagwoord aandui

  • Sê vir RDS om dit outomaties te genereer

  • Sê vir RDS om dit te bestuur in AWS Secret Manager gekodeer met 'n KMS-sleutel

Verifikasie

Daar is 3 tipes verifikasie-opsies, maar die gebruik van die hoofwagwoord is altyd toegelaat:

Publieke Toegang & VPC

Standaard word geen publieke toegang verleen tot die databasisse nie, maar dit kan verleen word. Daarom sal slegs masjiene van dieselfde VPC dit kan benader as die gekose sekuriteitsgroep (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-kluster verbeter.

Verder kan die databasispoort ook gewysig word.

Kodering

Kodering is standaard geaktiveer deur 'n AWS-bestuurde sleutel te gebruik (daar kan 'n CMK in plaas daarvan gekies word).

Deur jou kodering te aktiveer, aktiveer jy kodering by rus vir jou stoor, snitte, leesvervaardigings en jou rugsteune. Sleutels om hierdie kodering te bestuur, kan uitgereik word deur KMS te gebruik. Dit is nie moontlik om hierdie vlak van kodering by te voeg nadat jou databasis geskep is nie. Dit moet gedoen word tydens sy skepping.

Daar is egter 'n omweg wat jou toelaat om 'n ongekripteerde databasis te kripteer soos volg. Jy kan 'n snit van jou ongekripteerde databasis skep, 'n gekripteerde kopie van daardie snit skep, daardie gekripteerde snit gebruik om 'n nuwe databasis te skep, en dan, uiteindelik, sal jou databasis dan gekripteer wees.

Deursigtige Datakodering (TDE)

Benewens die koderingsvermoënskappe inherent aan RDS op die toepassingsvlak, ondersteun RDS ook bykomende platformvlak-koderingsmeganismes om data by rus te beskerm. Dit sluit Deursigtige Datakodering (TDE) vir Oracle en SQL Server in. Dit is egter noodsaaklik om te let dat terwyl TDE die sekuriteit verbeter deur data by rus te kripteer, 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:

  1. Opsiegroepassosiasie:

  • Die databasis moet geassosieer word met 'n opsiegroep. Opsiegroepe dien as houers vir instellings en kenmerke, wat databasisbestuur fasiliteer, insluitend sekuriteitsverbeteringe.

  • Dit is egter belangrik om te let dat opsiegroepe slegs beskikbaar is vir spesifieke databasis-enjins en -weergawes.

  1. Insluiting van TDE in Opsiegroep:

  • Nadat dit geassosieer is met 'n opsiegroep, moet die Oracle Deursigtige Datakodering-opsie in daardie groep ingesluit word.

  • Dit is noodsaaklik om te erken dat sodra die TDE-opsie by 'n opsiegroep gevoeg word, dit 'n permanente kenmerk word en nie verwyder kan word nie.

  1. TDE Koderingsmodusse:

  • TDE bied twee onderskeie koderingsmodusse:

  • TDE Tabelspasie Kodering: Hierdie modus kripteer hele tabelle, wat 'n breër omvang van data beskerming bied.

  • TDE Kolomkodering: Hierdie modus fokus op die kriptering van spesifieke, individuele elemente binne die databasis, wat meer fynbeheer oor watter data gekripteer word, toelaat.

Die begrip van hierdie voorvereistes en die operasionele ingewikkeldhede van TDE is noodsaaklik vir die doeltreffende implementering en bestuur van kodering binne RDS, wat beide data-sekuriteit en voldoening aan 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

pageAWS - RDS Unauthenticated Enum

Privesc

pageAWS - RDS Privesc

Post Exploitation

pageAWS - RDS Post Exploitation

Volharding

pageAWS - RDS Persistence

SQL Injection

Daar is maniere om toegang tot DynamoDB-data te kry met SQL-sintaksis, daarom is tipiese SQL-inspuitings ook moontlik.

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated