From 4d75f09978ae8b4cd9f0b5572d92acd13371fc01 Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 1 Nov 2025 11:04:09 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/aws-security/aws-services/aws-rela --- .../aws-relational-database-rds-enum.md | 87 ++++++++++--------- .../aws-rds-unauthenticated-enum/README.md | 17 +++- 2 files changed, 61 insertions(+), 43 deletions(-) diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md index e9210c131..1380e687c 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-relational-database-rds-enum.md @@ -4,71 +4,71 @@ ## 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. +The **Relational Database Service (RDS)** offered by AWS je dizajniran da pojednostavi deploy, upravljanje i skaliranje **relacione baze podataka u cloudu**. Ovaj servis pruža prednosti u pogledu efikasnosti troškova i skalabilnosti dok automatizuje radno-intenzivne zadatke kao što su provisioning hardvera, konfiguracija baze, patchiranje i backupi. -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. +AWS RDS podržava razne široko korišćene engines za relation baze 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: +Ključne karakteristike RDS-a uključuju: -- **Upravljanje instancama baza podataka** je pojednostavljeno. +- Jednostavnije **upravljanje instancama baze podataka**. - 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. +- Konfigurisanje **multi-Availability Zone (AZ) deployments** za obezbeđenje visoke dostupnosti i failover mehanizama. +- **Integracija** sa drugim AWS servisima, kao što su: + - AWS Identity and Access Management (**IAM**) za robusnu kontrolu pristupa. + - AWS **CloudWatch** za sveobuhvatni monitoring i metrike. + - AWS Key Management Service (**KMS**) za obezbeđivanje encryption at rest. -## Akreditivi +## Kredencijali -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: +Prilikom kreiranja DB cluster-a master **username** se može konfigurisati (**`admin`** po defaultu). Da biste generisali password 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 +- **Uneti** password sami +- Reći RDS-u da ga **auto generate** +- Reći RDS-u da ga menadžuje u **AWS Secret Manager** enkriptovan ključem iz KMS-a
-### Autentifikacija +### Autentikacija -Postoje 3 tipa opcija za autentifikaciju, ali korišćenje **glavne lozinke je uvek dozvoljeno**: +Postoje 3 vrste opcija za autentikaciju, ali korišćenje **master password-a je uvek dozvoljeno**:
-### Javni pristup i VPC +### Javni pristup & 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. +By default **nije dodeljen javni pristup** bazama podataka, međutim on **može biti dodeljen**. Dakle, po defaultu samo mašine iz iste VPC će moći da mu pristupe ako izabrani **security group** (se čuvaju u EC2 SG) to dozvoljava. -Umesto izlaganja DB instance, moguće je kreirati **RDS Proxy** koji **poboljšava** **skalabilnost** i **dostupnost** DB klastera. +Umesto eksponiranja DB instance, moguće je kreirati **RDS Proxy** koji **poboljšava** **scalability** i **availability** DB cluster-a. -Pored toga, **port baze podataka se takođe može modifikovati**. +Takođe, **port baze podataka se može izmeniti**. ### Enkripcija -**Enkripcija je omogućena po defaultu** koristeći AWS upravljani ključ (može se izabrati i CMK). +**Enkripcija je omogućena po defaultu** koristeći AWS managed key (može se odabrati 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**. +Omogućavanjem enkripcije omogućavate **encryption at rest za skladište, snapshot-e, read replicas i vaše backup-e**. Ključevi za upravljanje ovom enkripcijom mogu se izdavati koristeći **KMS**.\ +Nije moguće dodati ovaj nivo enkripcije nakon što je baza podataka kreirana. **To mora biti urađeno tokom kreiranja**. -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. +Međutim, postoji **workaround koji vam omogućava da enkriptujete neenkriptovanu bazu na sledeći način**. Možete napraviti snapshot vaše neenkriptovane baze, kreirati enkriptovanu kopiju tog snapshot-a, koristiti taj enkriptovani snapshot za kreiranje nove baze, i na kraju će vaša baza biti 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. +Pored enkripcionih mogućnosti koje RDS pruža na nivou aplikacije, RDS takođe podržava **dodatne mehanizme enkripcije na nivou platforme** kako bi zaštitio podatke u mirovanju. Ovo uključuje **Transparent Data Encryption (TDE)** za Oracle i SQL Server. Važno je napomenuti da iako TDE pojačava sigurnost enkriptovanjem podataka u mirovanju, može takođe **uticati na performanse baze**. Taj uticaj na performanse je naročito primetan kada se koristi u kombinaciji sa MySQL cryptographic funkcijama ili Microsoft Transact-SQL cryptographic funkcijama. Da biste koristili TDE, potrebni su određeni preliminarni koraci: -1. **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. -2. **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. -3. **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. +1. **Option Group Association**: +- Baza podaci mora biti povezana sa option group-om. Option groups služe kao kontejneri za podešavanja i funkcije, olakšavajući upravljanje bazom, uključujući sigurnosna poboljšanja. +- Međutim, važno je napomenuti da su option groups dostupni samo za određene database engines i verzije. +2. **Inclusion of TDE in Option Group**: +- Kada je povezana sa option group-om, Oracle Transparent Data Encryption opcija treba biti uključena u tu grupu. +- Bitno je razumeti da kada se TDE opcija doda u option group, ona postaje stalna i ne može biti uklonjena. +3. **TDE Encryption Modes**: +- TDE nudi dva različita moda enkripcije: +- **TDE Tablespace Encryption**: Ovaj mod enkriptuje cele tablespace-ove, pružajući širi obuhvat zaštite podataka. +- **TDE Column Encryption**: Ovaj mod se fokusira na enkriptovanje specifičnih, pojedinačnih elemenata unutar baze, omogućavajući granularniju 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. +Razumevanje ovih preduslova i operativnih nijansi TDE-a je ključno za efikasnu implementaciju i upravljanje enkripcijom unutar RDS-a, osiguravajući kako bezbednost podataka tako i usklađenost sa potrebnim standardima. ### Enumeracija ```bash @@ -80,6 +80,10 @@ aws rds describe-db-cluster-backtracks --db-cluster-identifier ## 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 --snapshot-identifier # Get DB instances info aws rds describe-db-instances #username, url, port, vpc, SG, is public? @@ -91,6 +95,7 @@ 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 --db-snapshot-identifier --availability-zone us-west-2a @@ -105,7 +110,7 @@ aws rds describe-db-proxy-targets ## reset credentials of MasterUsername aws rds modify-db-instance --db-instance-identifier --master-user-password --apply-immediately ``` -### Neautentifikovani Pristup +### Neautentifikovan pristup {{#ref}} ../aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum/README.md @@ -117,21 +122,21 @@ aws rds modify-db-instance --db-instance-identifier --master-user-password ../aws-privilege-escalation/aws-rds-privesc/README.md {{#endref}} -### Post Eksploatacija +### Post Exploitation {{#ref}} ../aws-post-exploitation/aws-rds-post-exploitation/README.md {{#endref}} -### Persistencija +### Persistence {{#ref}} ../aws-persistence/aws-rds-persistence/README.md {{#endref}} -### SQL Injekcija +### SQL Injection -Postoje načini za pristup podacima iz DynamoDB koristeći **SQL sintaksu**, stoga su tipične **SQL injekcije takođe moguće**. +Postoje načini da se pristupi DynamoDB podacima koristeći **SQL syntax**, stoga su tipične **SQL injections** takođe moguće. {{#ref}} https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum/README.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum/README.md index 1b077f025..953f7f7cd 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum/README.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum/README.md @@ -12,11 +12,11 @@ Za više informacija pogledajte: ## Javni port -Moguće je dati javni pristup **bazi podataka sa interneta**. Napadač će i dalje morati da **zna korisničko ime i lozinku,** IAM access, ili neki **exploit** da bi ušao u bazu podataka. +Moguće je dati javni pristup **bazi podataka sa interneta**. Napadač će i dalje morati da **zna korisničko ime i lozinku**, ima IAM pristup, ili iskoristi neki **exploit** da bi ušao u bazu podataka. ## Javni RDS Snapshots -AWS omogućava davanje **pristupa bilo kome za preuzimanje RDS snapshots**. Iz vašeg naloga možete veoma lako izlistati ove javne RDS snapshots: +AWS omogućava davanje **pristupa bilo kome za preuzimanje RDS snapshots**. Možete vrlo lako izlistati ove javne RDS snapshots iz svog naloga: ```bash # Public RDS snapshots aws rds describe-db-snapshots --include-public @@ -32,6 +32,19 @@ aws rds describe-db-snapshots --snapshot-type public [--region us-west-2] ## Even if in the console appear as there are public snapshot it might be public ## snapshots from other accounts used by the current account ``` +## Javni RDS snapshot-ovi klastera + +Slično, možete tražiti snapshot-ove klastera. +```bash +# Public RDS cluster snapshots +aws rds describe-db-cluster-snapshots --include-public + +## Search by account ID +aws rds describe-db-cluster-snapshots --include-public --query 'DBClusterSnapshots[?contains(DBClusterSnapshotIdentifier, `284546856933:`) == `true`]' + +# From the own account you can check if there is any public cluster snapshot with: +aws rds describe-db-cluster-snapshots --snapshot-type public [--region us-west-2] +``` ### Javni URL šablon ``` mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306