mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-08 22:00:47 -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 - Hifadhidata ya Uhusiano (RDS) Uorodheshaji
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Taarifa za Msingi
|
||||
|
||||
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.
|
||||
The **Relational Database Service (RDS)** offered by AWS imeundwa kurahisisha deployment, operation, na scaling ya **relational database in the cloud**. Huduma hii inatoa faida za ufanisi wa gharama na uwezo wa kupanuka huku ikiautomate kazi zinazochukua kazi nyingi kama provisioning ya hardware, configuration ya database, patching, na backups.
|
||||
|
||||
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.
|
||||
AWS RDS inaunga mkono engines mbalimbali maarufu za hifadhidata za uhusiano ikiwa ni pamoja na MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server, na Amazon Aurora, ikiwa na compatibility 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.
|
||||
- **Management of database instances** imewekwa rahisi.
|
||||
- Uundaji wa **read replicas** kuboresha performance ya kusoma.
|
||||
- Uwekaji wa **multi-Availability Zone (AZ) deployments** kuhakikisha high availability na mechanisms za failover.
|
||||
- **Integration** na huduma nyingine za AWS, kama:
|
||||
- AWS Identity and Access Management (**IAM**) kwa udhibiti imara wa upatikanaji.
|
||||
- AWS **CloudWatch** kwa monitoring na metrics kamili.
|
||||
- AWS Key Management Service (**KMS**) kwa kuhakikisha encryption at rest.
|
||||
|
||||
## Credentials
|
||||
## Vyeti
|
||||
|
||||
Wakati wa kuunda klasta ya DB jina la **mtumiaji mkuu** linaweza kuwekewa usanidi (**`admin`** kwa chaguo-msingi). Ili kuunda nenosiri la mtumiaji huyu unaweza:
|
||||
When creating the DB cluster the master **username** inaweza kusanidiwa (**`admin`** kwa default). Ili kuzalisha nenosiri la mtumiaji huyu unaweza:
|
||||
|
||||
- **Kueleza** nenosiri **mwenyewe**
|
||||
- Mwambie RDS **kuunda** kiotomatiki
|
||||
- Mwambie RDS kusimamia katika **AWS Secret Manager** iliyosimbwa kwa ufunguo wa KMS
|
||||
- **Eleza** **password** mwenyewe
|
||||
- Mwambie RDS ili **auto generate** yake
|
||||
- Mwambie RDS iisimamie huko **AWS Secret Manager** ikifichwa kwa ufunguo wa KMS
|
||||
|
||||
<figure><img src="../../../images/image (144).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Authentication
|
||||
### Uthibitishaji
|
||||
|
||||
Kuna aina 3 za chaguo za uthibitishaji, lakini kutumia **nenosiri la mkuu daima kunaruhusiwa**:
|
||||
Kuna aina 3 za chaguo la uthibitishaji, lakini kutumia **master password is always allowed**:
|
||||
|
||||
<figure><img src="../../../images/image (227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### 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.
|
||||
Kwa default **no public access is granted** kwa databases, hata hivyo inaweza **kuitolewa**. Kwa hiyo, kwa default mashine kutoka kwenye VPC hiyo hiyo ndizo zitakazoweza kuifikia ikiwa **security group** iliyochaguliwa (are stored in EC2 SG) inaruhusu.
|
||||
|
||||
Badala ya kufichua mfano wa DB, inawezekana kuunda **RDS Proxy** ambayo **inaimarisha** **kupanuka** & **upatikanaji** wa klasta ya DB.
|
||||
Badala ya kuonyesha DB instance, inawezekana kuunda **RDS Proxy** ambayo **improve** **scalability** & **availability** ya DB cluster.
|
||||
|
||||
Zaidi ya hayo, **bandari ya database inaweza kubadilishwa** pia.
|
||||
Zaidi ya hayo, **database port can be modified** pia.
|
||||
|
||||
### Encryption
|
||||
|
||||
**Usimbaji fiche umewezeshwa kwa chaguo-msingi** kwa kutumia ufunguo unaosimamiwa na AWS (CMK inaweza kuchaguliwa badala yake).
|
||||
**Encryption is enabled by default** ikitumia AWS managed key (a 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**.
|
||||
Kwa kuwezesha encryption yako, unawezesha **encryption at rest for your storage, snapshots, read replicas and your back-ups**. Keys za kusimamia encryption hii zinaweza kutolewa kwa kutumia **KMS**.\
|
||||
Haiwezekani kuongeza kiwango hiki cha encryption baada ya database yako kuundwa. **It has to be done during its creation**.
|
||||
|
||||
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.
|
||||
Hata hivyo, kuna **workaround allowing you to encrypt an unencrypted database as follows**. Unaweza kuunda snapshot ya database yako isiyofichwa, kuunda nakala iliyofichwa ya snapshot hiyo, kutumia snapshot iliyofichwa kuunda database mpya, na hatimaye database yako itakuwa imefichwa.
|
||||
|
||||
#### 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.
|
||||
Mbali na uwezo wa encryption uliopo ndani ya RDS kwenye ngazi ya application, RDS pia inaunga mkono **additional platform-level encryption mechanisms** za kulinda data at rest. Hii inajumuisha **Transparent Data Encryption (TDE)** kwa Oracle na SQL Server. Hata hivyo, ni muhimu kutambua kwamba ingawa TDE inaongeza usalama kwa kuficha data at rest, inaweza pia **athiri performance ya database**. Mlipuko wa performance huu unaonekana hasa wakati inatumika pamoja na MySQL cryptographic functions au Microsoft Transact-SQL cryptographic functions.
|
||||
|
||||
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.
|
||||
2. **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.
|
||||
3. **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.
|
||||
1. **Option Group Association**:
|
||||
- Database lazima ihusishwe na option group. Option groups hutumika kama containers kwa settings na features, zikisaidia usimamizi wa database, pamoja na kuboresha usalama.
|
||||
- Hata hivyo, ni muhimu kutambua kwamba option groups zinapatikana tu kwa engines na versions maalum za database.
|
||||
2. **Inclusion of TDE in Option Group**:
|
||||
- Mara database imehusishwa na option group, chaguo la Oracle Transparent Data Encryption linahitaji kuongezwa kwenye kundi hilo.
|
||||
- Ni lazima kutambua kwamba mara chaguo la TDE linapoongezwa kwenye option group, linakuwa la kudumu na haliwezi kuondolewa.
|
||||
3. **TDE Encryption Modes**:
|
||||
- TDE inatoa modes mbili tofauti za encryption:
|
||||
- **TDE Tablespace Encryption**: Mode hii inaficha meza nzima, ikitoa wigo mpana wa ulinzi wa data.
|
||||
- **TDE Column Encryption**: Mode hii inalenga kuficha vitu maalum ndani ya database, ikiruhusu udhibiti wa kina juu ya data inayofichwa.
|
||||
|
||||
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.
|
||||
Kuelewa prerequisites hizi na utata wa kiutendaji wa TDE ni muhimu kwa kutekeleza na kusimamia encryption ndani ya RDS kwa ufanisi, kuhakikisha usalama wa data na uzingatiaji wa viwango vinavyohitajika.
|
||||
|
||||
### Enumeration
|
||||
```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
|
||||
|
||||
@@ -117,13 +122,13 @@ aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password
|
||||
../aws-privilege-escalation/aws-rds-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Baada ya Kutekeleza
|
||||
### Post Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../aws-post-exploitation/aws-rds-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Kudumu
|
||||
### Persistence
|
||||
|
||||
{{#ref}}
|
||||
../aws-persistence/aws-rds-persistence/README.md
|
||||
@@ -131,7 +136,7 @@ aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password
|
||||
|
||||
### SQL Injection
|
||||
|
||||
Kuna njia za kufikia data za DynamoDB kwa kutumia **SQL syntax**, hivyo basi, **SQL injections za kawaida pia zinaweza** kutokea.
|
||||
Kuna njia za kupata data za DynamoDB kwa kutumia **SQL syntax**, kwa hivyo, **SQL injections** za kawaida pia zinawezekana.
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## RDS
|
||||
|
||||
Kwa habari zaidi angalia:
|
||||
Kwa maelezo zaidi angalia:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-services/aws-relational-database-rds-enum.md
|
||||
@@ -12,11 +12,11 @@ Kwa habari zaidi angalia:
|
||||
|
||||
## Public Port
|
||||
|
||||
Inawezekana kutoa ufikiaji wa umma kwa **database kutoka kwenye internet**. Mshambuliaji bado atahitaji **kujua username na password,** upatikanaji wa IAM, au **exploit** ili kuingia kwenye database.
|
||||
Inawezekana kutoa public access kwa **database from the internet**. Mshambuliaji bado atahitaji **know the username and password,** IAM access, au **exploit** ili kuingia kwenye database.
|
||||
|
||||
## Public RDS Snapshots
|
||||
|
||||
AWS inaruhusu kutoa **ufikiaji kwa mtu yeyote kupakua RDS snapshots**. Unaweza kuorodhesha RDS snapshots hizi za umma kwa urahisi kutoka kwenye akaunti yako:
|
||||
AWS inaruhusu kutoa **access to anyone to download RDS snapshots**. Unaweza kuorodhesha hizi public RDS snapshots kwa urahisi kutoka kwenye akaunti yako:
|
||||
```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
|
||||
```
|
||||
## Snapshot za Cluster za RDS za Umma
|
||||
|
||||
Vivyo hivyo, unaweza kutafuta snapshot za cluster.
|
||||
```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]
|
||||
```
|
||||
### Kiolezo cha URL ya Umma
|
||||
```
|
||||
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306
|
||||
|
||||
Reference in New Issue
Block a user