AWS - Relational Database (RDS) Enum
Reading time: 6 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Relational Database Service (RDS) koji nudi AWS je dizajniran da pojednostavi implementaciju, rad i skaliranje relacione baze podataka u oblaku. Ova usluga nudi prednosti troškovne efikasnosti i skalabilnosti dok automatizuje radno intenzivne zadatke kao što su obezbeđivanje hardvera, konfiguracija baze podataka, zakrpe i rezervne kopije.
AWS RDS podržava različite široko korišćene motore relacijskih baza podataka uključujući MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server i Amazon Aurora, sa kompatibilnošću za MySQL i PostgreSQL.
Ključne karakteristike RDS uključuju:
- Upravljanje instancama baza podataka je pojednostavljeno.
- Kreiranje read replicas za poboljšanje performansi čitanja.
- Konfiguracija multi-Availability Zone (AZ) implementacija za obezbeđivanje visoke dostupnosti i mehanizama prebacivanja.
- Integracija sa drugim AWS uslugama, kao što su:
- AWS Identity and Access Management (IAM) za robusnu kontrolu pristupa.
- AWS CloudWatch za sveobuhvatno praćenje i metrike.
- AWS Key Management Service (KMS) za obezbeđivanje enkripcije u mirovanju.
Akreditivi
Kada se kreira DB klaster, glavno korisničko ime može biti konfigurisano (admin
po defaultu). Da biste generisali lozinku za ovog korisnika možete:
- Naznačiti lozinku sami
- Reći RDS da je automatski generiše
- Reći RDS da je upravlja u AWS Secret Manager enkriptovano KMS ključem
.png)
Autentifikacija
Postoje 3 tipa opcija za autentifikaciju, ali korišćenje glavne lozinke je uvek dozvoljeno:
.png)
Javni pristup i VPC
Po defaultu nema javnog pristupa bazama podataka, međutim, može biti odobren. Stoga, po defaultu samo mašine iz iste VPC će moći da mu pristupe ako odabrana grupa sigurnosti (smeštena u EC2 SG) to dozvoljava.
Umesto izlaganja DB instance, moguće je kreirati RDS Proxy koji poboljšava skalabilnost i dostupnost DB klastera.
Pored toga, port baze podataka se takođe može modifikovati.
Enkripcija
Enkripcija je omogućena po defaultu koristeći AWS upravljani ključ (može se izabrati i CMK).
Omogućavanjem vaše enkripcije, omogućavate enkripciju u mirovanju za vašu skladištenje, snimke, read replicas i vaše rezervne kopije. Ključevi za upravljanje ovom enkripcijom mogu biti izdati korišćenjem KMS.
Nije moguće dodati ovaj nivo enkripcije nakon što je vaša baza podataka kreirana. To mora biti učinjeno tokom njene kreacije.
Međutim, postoji rešenje koje vam omogućava da enkriptujete neenkriptovanu bazu podataka na sledeći način. Možete kreirati snimak vaše neenkriptovane baze podataka, kreirati enkriptovanu kopiju tog snimka, koristiti tu enkriptovanu snimku za kreiranje nove baze podataka, i na kraju, vaša baza podataka bi tada bila enkriptovana.
Transparent Data Encryption (TDE)
Pored mogućnosti enkripcije inherentnih RDS na nivou aplikacije, RDS takođe podržava dodatne mehanizme enkripcije na platformi za zaštitu podataka u mirovanju. Ovo uključuje Transparent Data Encryption (TDE) za Oracle i SQL Server. Međutim, važno je napomenuti da, iako TDE poboljšava sigurnost enkripcijom podataka u mirovanju, može takođe uticati na performanse baze podataka. Ovaj uticaj na performanse je posebno primetan kada se koristi u kombinaciji sa MySQL kriptografskim funkcijama ili Microsoft Transact-SQL kriptografskim funkcijama.
Da biste koristili TDE, potrebni su određeni preliminarni koraci:
- Asocijacija sa grupom opcija:
- Baza podataka mora biti povezana sa grupom opcija. Grupe opcija služe kao kontejneri za podešavanja i funkcije, olakšavajući upravljanje bazom podataka, uključujući poboljšanja sigurnosti.
- Međutim, važno je napomenuti da su grupe opcija dostupne samo za određene motore baza podataka i verzije.
- Uključivanje TDE u grupu opcija:
- Kada je povezana sa grupom opcija, opcija Oracle Transparent Data Encryption treba biti uključena u tu grupu.
- Važno je prepoznati da, kada se TDE opcija doda grupi opcija, postaje trajna i ne može se ukloniti.
- TDE režimi enkripcije:
- TDE nudi dva različita režima enkripcije:
- TDE Tablespace Encryption: Ovaj režim enkriptuje cele tabele, pružajući širi opseg zaštite podataka.
- TDE Column Encryption: Ovaj režim se fokusira na enkripciju specifičnih, pojedinačnih elemenata unutar baze podataka, omogućavajući veću kontrolu nad tim koji su podaci enkriptovani.
Razumevanje ovih preduslova i operativnih složenosti TDE je ključno za efikasno implementiranje i upravljanje enkripcijom unutar RDS, obezbeđujući i sigurnost podataka i usklađenost sa potrebnim standardima.
Enumeracija
# 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
Neautentifikovani Pristup
AWS - RDS Unauthenticated Enum
Privesc
Post Eksploatacija
Persistencija
SQL Injekcija
Postoje načini za pristup podacima iz DynamoDB koristeći SQL sintaksu, stoga su tipične SQL injekcije takođe moguće.
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.