Translated ['', 'src/pentesting-cloud/aws-security/aws-unauthenticated-e

This commit is contained in:
Translator
2025-11-01 11:06:13 +00:00
parent 0cbbbe39e3
commit 0c64b9ed18
2 changed files with 66 additions and 48 deletions

View File

@@ -1,74 +1,74 @@
# AWS - Relational Database (RDS) Enum
# AWS - Relasionele Databasis (RDS) Enumerasie
{{#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.
Die **Relational Database Service (RDS)** wat deur AWS aangebied word, is ontwerp om die ontplooiing, werking en skaal van 'n **relasionele databasis in die wolk** te vereenvoudig. Hierdie diens bied die voordele van koste-effektiwiteit en skaalbaarheid terwyl dit arbeidsintensiewe take soos hardware-provisioning, databasiskonfigurasie, 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.
AWS RDS ondersteun verskeie wydgebruikte relasionele databasis-engines, insluitend MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server, en Amazon Aurora, met versoenbaarheid 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.
- **Bestuur van databasisinstansies** word vereenvoudig.
- Skepping van **read replicas** om die leesprestasie te verbeter.
- Konfigurasie van **multi-Availability Zone (AZ) deployments** om hoë beskikbaarheid en failover-meganismes te verseker.
- **Integrasie** met ander AWS-dienste, soos:
- AWS Identity and Access Management (**IAM**) vir robuuste toegangsbeheer.
- AWS **CloudWatch** vir omvattende monitering en metrics.
- AWS Key Management Service (**KMS**) om enkripsie at rest 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:
Wanneer die DB-cluster geskep word, kan die meester **username** gekonfigureer word (standaard **`admin`**). 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
- **'n wagwoord** self aandui
- RDS om dit **outomaties te genereer**
- RDS laat dit bestuur in **AWS Secret Manager** versleut met 'n KMS-sleutel
<figure><img src="../../../images/image (144).png" alt=""><figcaption></figcaption></figure>
### Verifikasie
### Outentisering
Daar is 3 tipes verifikasie opsies, maar die gebruik van die **meester wagwoord is altyd toegelaat**:
Daar is 3 soorte outentiseringsopsies, maar die gebruik van die **meesterwagwoord is altyd toegelaat**:
<figure><img src="../../../images/image (227).png" alt=""><figcaption></figcaption></figure>
### 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.
Per verstek word **geen publieke toegang gegee** aan die databasisse nie, maar dit **kan gegee word**. Daarom sal per verstek slegs masjiene uit dieselfde VPC dit kan bereik indien die gekose **security group** (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**.
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-cluster **verbeter**.
Boonop kan die **databasispoort ook gewysig word**.
Verder kan die **databasispoort ook gemodifiseer word**.
### Versleuteling
### Enkripsie
**Versleuteling is standaard geaktiveer** met 'n AWS bestuurde sleutel (n CMK kan in plaas daarvan gekies word).
**Enkripsie is standaard geaktiveer** deur gebruik te maak van 'n AWS-beheerde 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**.
Deur enkripsie te aktiveer, skakel jy **enkripsie at rest vir jou stoorplek, snapshots, read replicas en jou rugsteun** in. Sleutels om hierdie enkripsie te bestuur kan uitgereik word deur **KMS** te gebruik.\
Dit is nie moontlik om hierdie vlak van enkripsie by te voeg nadat jou databasis geskep is nie. **Dit moet tydens die skepproses 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.
Daar is egter 'n **workaround wat jou toelaat om 'n nie-versleutelde databasis te versleutel soos volg**. Jy kan 'n snapshot van jou nie-versleutelde databasis skep, 'n versleutelde kopie van daardie snapshot maak, daardie versleutelde snapshot gebruik om 'n nuwe databasis te skep, en uiteindelik sal jou databasis dan versleuteld wees.
#### Deursigtige Data Versleuteling (TDE)
#### Transparent Data Encryption (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.
Benewens die enkripsiefunksies wat inherent aan RDS op toepassingsvlak is, ondersteun RDS ook **addisionele platformvlak enkripsiemeganismes** om data at rest te beskerm. Dit sluit in **Transparent Data Encryption (TDE)** vir Oracle en SQL Server. Dit is egter belangrik om te let dat hoewel TDE die sekuriteit verbeter deur data at rest te enkripteer, 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 nodig:
Om TDE te gebruik, is sekere voorlopige stappe vereis:
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.
2. **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.
3. **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.
1. **Option Group Association**:
- Die databasis moet geassosieer wees met 'n option group. Option groups dien as houers vir instellings en funksies, wat databasisbestuur, insluitend sekuriteitsverbeterings, vergemaklik.
- Dit is egter belangrik om te besef dat option groups slegs beskikbaar is vir spesifieke databasis-engines en weergawes.
2. **Inclusion of TDE in Option Group**:
- Sodra dit geassosieer is met 'n option group, moet die Oracle Transparent Data Encryption-opsie by daardie groep gevoeg word.
- Dit is noodsaaklik om te erken dat sodra die TDE-opsie by 'n option group gevoeg is, dit 'n permanente onderdeel word en nie verwyder kan word nie.
3. **TDE Encryption Modes**:
- TDE bied twee onderskeibare enkripsiemodusse:
- **TDE Tablespace Encryption**: Hierdie modus enkripteer hele tablespaces en bied 'n breër omvang van databeskerming.
- **TDE Column Encryption**: Hierdie modus fokus op die enkripsie van spesifieke, individuele elemente binne die databasis, wat meer gefyn beheer oor watter data enkripteer 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.
Om hierdie vereistes en die operasionele ingewikkeldhede van TDE te verstaan, is noodsaaklik vir effektiewe implementering en bestuur van enkripsie binne RDS, wat beide databeskerming en nakoming van nodige standaarde verseker.
### Enumerasie
```bash
@@ -80,6 +80,10 @@ aws rds describe-db-cluster-backtracks --db-cluster-identifier <cluster-name>
## 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 <ID> --snapshot-identifier <ID>
# 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 <ID> --db-snapshot-identifier <ID> --availability-zone us-west-2a
@@ -105,33 +110,33 @@ 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
### Nie-geauthentiseerde Toegang
{{#ref}}
../aws-unauthenticated-enum-access/aws-rds-unauthenticated-enum/README.md
{{#endref}}
### Privilege Escalation
### Privesc
{{#ref}}
../aws-privilege-escalation/aws-rds-privesc/README.md
{{#endref}}
### Post Exploitatie
### Post Exploitation
{{#ref}}
../aws-post-exploitation/aws-rds-post-exploitation/README.md
{{#endref}}
### Volharding
### Persistence
{{#ref}}
../aws-persistence/aws-rds-persistence/README.md
{{#endref}}
### SQL Inbraak
### SQL Injection
Daar is maniere om toegang tot DynamoDB-data te verkry met **SQL-sintaks**, daarom is tipiese **SQL-inbrake ook moontlik**.
Daar is maniere om toegang tot DynamoDB data te kry met **SQL syntax**, daarom is tipiese **SQL injections are also possible**.
{{#ref}}
https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html

View File

@@ -10,13 +10,13 @@ Vir meer inligting, sien:
../../aws-services/aws-relational-database-rds-enum.md
{{#endref}}
## Publieke Poort
## Openbare Poort
Dit is moontlik om publieke toegang tot die **databasis vanaf die internet** te gee. Die aanvaller sal steeds die **gebruikersnaam en wagwoord** moet ken, IAM-toegang benodig, of 'n **exploit** moet hê om toegang tot die databasis te kry.
Dit is moontlik om publieke toegang tot die **databasis vanaf die internet** te gee. Die aanvaller sal steeds **die gebruikersnaam en wagwoord** moet weet, oor IAM-toegang moet beskik, of 'n **exploit** moet hê om die databasis binne te dring.
## Publieke RDS Snapshots
## Openbare RDS Snapshots
AWS laat toe om **toegang aan enigiemand te gee om RDS snapshots af te laai**. Jy kan hierdie publieke RDS snapshots baie maklik vanaf jou eie rekening lys:
AWS maak dit moontlik om **toegang aan enigiemand te gee om RDS snapshots af te laai**. Jy kan hierdie openbare RDS snapshots baie maklik vanaf jou eie rekening lys:
```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
```
## Openbare RDS Cluster Snapshots
Net so kan jy na cluster snapshots soek
```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]
```
### Publieke URL-sjabloon
```
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306