mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-28 13:43:24 -08:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-unauthenticated-e
This commit is contained in:
@@ -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 sê 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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user