AWS Pentesting
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Pre nego što započnete pentesting AWS okruženja, postoji nekoliko osnovnih stvari koje treba da znate o tome kako AWS funkcioniše kako biste razumeli šta treba da radite, kako da pronađete pogrešne konfiguracije i kako da ih iskoristite.
Koncepti kao što su hijerarhija organizacije, IAM i drugi osnovni koncepti su objašnjeni u:
AWS - Basic InformationTools to simulate attacks:
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 i eksterne usluge povezane.
Iz perspektive Red Teama, prvi korak za kompromitovanje AWS okruženja je da uspete da dobijete neke akreditive. Evo nekoliko ideja kako to učiniti:
Leaking na github-u (ili slično) - OSINT
Društveno inženjerstvo
Ponovna upotreba lozinki (curenje lozinki)
Ranljivosti u AWS-hostovanim aplikacijama
Server Side Request Forgery sa pristupom metapodacima
Čitanje lokalnih fajlova
/home/USERNAME/.aws/credentials
C:\Users\USERNAME\.aws\credentials
3rd parties provaljeni
Interni zaposleni
Cognito akreditivi
Ili kompromitovanjem neautentifikovane usluge koja je izložena:
AWS - Unauthenticated Enum & AccessIli ako radite reviziju, mogli biste jednostavno tražiti akreditive sa ovim rolama:
AWS - Permissions for a PentestNakon što ste uspeli da dobijete akreditive, treba da znate čijim akreditivima pripadaju, i čemu imaju pristup, tako da treba da izvršite neku osnovnu enumeraciju:
Ako ste pronašli SSRF na mašini unutar AWS-a, proverite ovu stranicu za trikove:
Jedna od prvih stvari koje treba da znate je ko ste (u kojem računu se nalazite i druge informacije o AWS okruženju):
Napomena da kompanije mogu koristiti canary tokens da identifikuju kada se tokeni kradu i koriste. Preporučuje se da proverite da li je token canary token ili ne pre nego što ga upotrebite. Za više informacija proverite ovu stranicu.
Ako imate dovoljno dozvola, proveravanje privilegija svake entiteta unutar AWS naloga pomoći će vam da razumete šta vi i druge identitete možete da radite i kako da eskalirate privilegije.
Ako nemate dovoljno dozvola da enumerišete IAM, možete ukrasti brute-force da ih otkrijete. Proverite kako da uradite numeraciju i brute-forcing u:
AWS - IAM, Identity Center & SSO EnumSada kada imate neke informacije o vašim kredencijalima (i ako ste red tim, nadamo se da niste otkriveni). Vreme je da otkrijete koje se usluge koriste u okruženju. U sledećem odeljku možete proveriti neke načine da enumerišete neke uobičajene usluge.
AWS ima neverovatnu količinu usluga, na sledećoj stranici naći ćete osnovne informacije, enumeraciju cheatsheets**,** kako da izbegnete otkrivanje, dobijete persistence, i druge post-exploitation trikove o nekima od njih:
AWS - ServicesNapomena da ne morate obavljati sav posao ručno, ispod u ovom postu možete pronaći odeljak o automatskim alatima.
Štaviše, u ovoj fazi možda ste otkrili više usluga izloženih neautentifikovanim korisnicima, možda ćete moći da ih iskoristite:
AWS - Unauthenticated Enum & AccessAko možete proveriti barem svoje dozvole nad različitim resursima, mogli biste proveriti da li možete dobiti dodatne dozvole. Trebalo bi da se fokusirate barem na dozvole navedene u:
AWS - Privilege EscalationDok 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 teamer 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:
Kada upravljački nalog kreira nove naloge u organizaciji, nova uloga se kreira u novom nalogu, po defaultu nazvana OrganizationAccountAccessRole
i daje AdministratorAccess politiku upravljačkom nalogu da pristupi novom nalogu.
Dakle, da biste pristupili kao administrator detetovom nalogu, potrebno je:
Kompromitovati upravljački nalog i pronaći ID dečijih naloga i imena uloge (OrganizationAccountAccessRole po defaultu) koja omogućava upravljačkom 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 upravljačkom nalogu sa sts:AssumeRole
dozvolom nad ulogom u dečijim nalozima (čak i ako nalog omogućava bilo kome iz upravljačkog naloga da se pretvara, kao što je eksterni nalog, specifične sts:AssumeRole
dozvole su neophodne).
aws-recon: Alat za prikupljanje inventara fokusiran na AWS sigurnost, pisan u Ruby-u.
cloudlist: Cloudlist je alat za više oblaka za dobijanje resursa (domaćinska imena, IP adrese) od provajdera oblaka.
cloudmapper: CloudMapper vam pomaže da analizirate svoja okruženja Amazon Web Services (AWS). Sada sadrži mnogo više funkcionalnosti, uključujući reviziju za bezbednosne probleme.
cartography: Cartography je Python alat koji konsoliduje infrastrukturne resurse i odnose između njih u intuitivnom grafičkom prikazu koji pokreće Neo4j baza podataka.
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.
aws-inventory: (Koristi python2) Ovo je alat koji pokušava da otkrije sve AWS resurse kreirane u nalogu.
aws_public_ips: To je alat za preuzimanje svih javnih IP adresa (i IPv4/IPv6) povezanih sa AWS nalogom.
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.
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 unutar user_escalation_methods
rečnika.
Imajte na umu da pacu samo proverava vaše vlastite privesc puteve (ne na nivou naloga).
PMapper: Principal Mapper (PMapper) je skripta i biblioteka za identifikaciju rizika u konfiguraciji AWS Identity and Access Management (IAM) za AWS nalog ili AWS organizaciju. Modeluje različite IAM korisnike i uloge u nalogu kao usmereni graf, što omogućava provere za privilege escalation i za alternativne puteve koje napadač može da preuzme kako bi dobio pristup resursu ili akciji u AWS-u. Možete proveriti permissions used to find privesc puteve u datotekama koje se završavaju sa _edges.py
u https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing
cloudsplaining: Cloudsplaining je alat za procenu bezbednosti AWS IAM koji identifikuje kršenja principa minimalnih privilegija i generiše izveštaj u HTML formatu sa prioritetom rizika. 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 vrste zanimljivih dozvola, preporučuje se korišćenje).
cloudjack: CloudJack procenjuje AWS naloge na ranjivosti otmice poddomena kao rezultat odvojenih Route53 i CloudFront konfiguracija.
ccat: Lista ECR repozitorijuma -> Preuzmi ECR repozitorijum -> Uvedi backdoor -> Pomeraj backdoor-ovanu sliku
Dufflebag: Dufflebag je alat koji pretražuje javne Elastic Block Storage (EBS) snimke za tajne koje su možda slučajno ostavljene.
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).
Prowler: Prowler je alat otvorenog koda za procenu najboljih praksi bezbednosti AWS-a, revizije, odgovor na incidente, kontinuirano praćenje, učvršćivanje i spremnost za forenziku.
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.
ScoutSuite: Scout Suite je alat za reviziju bezbednosti otvorenog koda za više oblaka, koji omogućava procenu bezbednosnog stanja oblaka.
cs-suite: Cloud Security Suite (koristi python2.7 i izgleda neodržavano)
Zeus: Zeus je moćan alat za AWS EC2 / S3 / CloudTrail / CloudWatch / KMS najbolje prakse učvršćivanja (izgleda neodržavano). Proverava samo podrazumevane konfiguracije kredencijala unutar sistema.
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: 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: 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.
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)