AWS - Relational Database (RDS) Enum

Reading time: 7 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Basic Information

Huduma ya Relational Database Service (RDS) inayotolewa na AWS imeundwa kuboresha uwekaji, uendeshaji, na kupanua database ya uhusiano katika wingu. Huduma hii inatoa faida za ufanisi wa gharama na kupanuka huku ikitengeneza kazi zinazohitaji nguvu kama vile ugawaji wa vifaa, usanidi wa database, urekebishaji, na nakala za akiba.

AWS RDS inasaidia injini mbalimbali maarufu za database za uhusiano ikiwa ni pamoja na MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server, na Amazon Aurora, ikiwa na ufanisi kwa MySQL na PostgreSQL.

Vipengele muhimu vya RDS ni pamoja na:

  • Usimamizi wa mifano ya database umewekwa rahisi.
  • Uundaji wa read replicas ili kuboresha utendaji wa kusoma.
  • Usanidi wa multi-Availability Zone (AZ) deployments ili kuhakikisha upatikanaji wa juu na mifumo ya kufeli.
  • Ushirikiano na huduma nyingine za AWS, kama:
  • AWS Identity and Access Management (IAM) kwa udhibiti wa ufikiaji wenye nguvu.
  • AWS CloudWatch kwa ufuatiliaji na vipimo vya kina.
  • AWS Key Management Service (KMS) kwa kuhakikisha usimbaji fiche wakati wa kupumzika.

Credentials

Wakati wa kuunda klasta ya DB jina la mtumiaji mkuu linaweza kuwekewa usanidi (admin kwa chaguo-msingi). Ili kuunda nenosiri la mtumiaji huyu unaweza:

  • Kueleza nenosiri mwenyewe
  • Mwambie RDS kuunda kiotomatiki
  • Mwambie RDS kusimamia katika AWS Secret Manager iliyosimbwa kwa ufunguo wa KMS

Authentication

Kuna aina 3 za chaguo za uthibitishaji, lakini kutumia nenosiri la mkuu daima kunaruhusiwa:

Public Access & VPC

Kwa chaguo-msingi hakuna ufikiaji wa umma unaotolewa kwa databases, hata hivyo inaweza kutolewa. Hivyo, kwa chaguo-msingi mashine tu kutoka VPC hiyo hiyo zitakuwa na uwezo wa kuifikia ikiwa kikundi cha usalama kilichochaguliwa (kimehifadhiwa katika EC2 SG) kinaruhusu.

Badala ya kufichua mfano wa DB, inawezekana kuunda RDS Proxy ambayo inaimarisha kupanuka & upatikanaji wa klasta ya DB.

Zaidi ya hayo, bandari ya database inaweza kubadilishwa pia.

Encryption

Usimbaji fiche umewezeshwa kwa chaguo-msingi kwa kutumia ufunguo unaosimamiwa na AWS (CMK inaweza kuchaguliwa badala yake).

Kwa kuwezesha usimbaji wako, unawawezesha usimbaji fiche wakati wa kupumzika kwa uhifadhi wako, picha za snapshot, read replicas na nakala zako za akiba. Funguo za kusimamia usimbaji huu zinaweza kutolewa kwa kutumia KMS.
Haiwezekani kuongeza kiwango hiki cha usimbaji baada ya database yako kuundwa. Lazima ifanyike wakati wa uundaji wake.

Hata hivyo, kuna njia mbadala inayokuruhusu kusimbwa fiche database isiyosimbwa kama ifuatavyo. Unaweza kuunda picha ya snapshot ya database yako isiyosimbwa, kuunda nakala iliyosimbwa ya snapshot hiyo, tumia snapshot hiyo iliyosimbwa kuunda database mpya, na kisha, hatimaye, database yako itakuwa imewekwa usimbaji fiche.

Transparent Data Encryption (TDE)

Pamoja na uwezo wa usimbaji fiche ulio ndani ya RDS katika ngazi ya programu, RDS pia inasaidia mbinu za usimbaji fiche za ngazi ya jukwaa ili kulinda data wakati wa kupumzika. Hii inajumuisha Transparent Data Encryption (TDE) kwa Oracle na SQL Server. Hata hivyo, ni muhimu kutambua kwamba ingawa TDE inaongeza usalama kwa kusimbwa fiche data wakati wa kupumzika, inaweza pia kuathiri utendaji wa database. Athari hii ya utendaji inajulikana hasa inapokuwa ikitumiwa pamoja na kazi za usimbaji fiche za MySQL au kazi za usimbaji fiche za Microsoft Transact-SQL.

Ili kutumia TDE, hatua fulani za awali zinahitajika:

  1. Kushirikisha Kundi la Chaguo:
  • Database lazima iwe na ushirikiano na kundi la chaguo. Vikundi vya chaguo vinatumika kama vyombo vya kuweka mipangilio na vipengele, vinavyosaidia usimamizi wa database, ikiwa ni pamoja na maboresho ya usalama.
  • Hata hivyo, ni muhimu kutambua kwamba vikundi vya chaguo vinapatikana tu kwa injini maalum za database na matoleo.
  1. Kuongeza TDE katika Kundi la Chaguo:
  • Mara tu inaposhirikishwa na kundi la chaguo, chaguo la Oracle Transparent Data Encryption linahitaji kuongezwa katika kundi hilo.
  • Ni muhimu kutambua kwamba mara chaguo la TDE linapoongezwa kwenye kundi la chaguo, linakuwa sehemu ya kudumu na haliwezi kuondolewa.
  1. Modes za Usimbaji wa TDE:
  • TDE inatoa modes mbili tofauti za usimbaji:
  • TDE Tablespace Encryption: Hali hii inasimbwa fiche meza nzima, ikitoa wigo mpana wa ulinzi wa data.
  • TDE Column Encryption: Hali hii inazingatia kusimbwa fiche vipengele maalum, ikiruhusu udhibiti wa kina juu ya ni data gani inayo simbwa fiche.

Kuelewa masharti haya na intricacies za operesheni za TDE ni muhimu kwa kutekeleza na kusimamia usimbaji fiche ndani ya RDS, kuhakikisha usalama wa data na kufuata viwango vinavyohitajika.

Enumeration

bash
# 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

Upatikanaji Usio na Uthibitisho

AWS - RDS Unauthenticated Enum

Privesc

AWS - RDS Privesc

Baada ya Kutekeleza

AWS - RDS Post Exploitation

Kudumu

AWS - RDS Persistence

SQL Injection

Kuna njia za kufikia data za DynamoDB kwa kutumia SQL syntax, hivyo basi, SQL injections za kawaida pia zinaweza kutokea.

SQL Injection - HackTricks

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks