AWS Pentesting
Osnovne informacije
Pre početka pentesting-a AWS okruženja, postoje neke osnovne stvari koje morate znati o tome kako AWS funkcioniše kako biste razumeli šta treba da uradite, kako da pronađete neispravne konfiguracije i kako da ih iskoristite.
Koncepti poput hijerarhije organizacije, IAM i drugi osnovni koncepti su objašnjeni u:
AWS - Basic InformationLaboratorije za učenje
Alati za simuliranje napada:
Metodologija AWS Pentestera/Red Tima
Da biste pregledali AWS okruženje, veoma je važno znati: koje servise koristite, šta je izloženo, ko ima pristup čemu, i kako su interni AWS servisi povezani sa spoljnim servisima.
Sa stanovišta Red Tima, prvi korak ka kompromitovanju AWS okruženja je uspeti da dobijete neke akreditive. Evo nekih ideja kako to možete postići:
Leak-ovi na github-u (ili slično) - OSINT
Socijalno inženjerstvo
Ponovna upotreba lozinki (leak-ovi lozinki)
Ranjivosti u AWS-hostovanim aplikacijama
Server Side Request Forgery sa pristupom metadata endpoint-u
Čitanje lokalnih fajlova
/home/USERNAME/.aws/credentials
C:\Users\USERNAME\.aws\credentials
lica koja su hakovana
Interni zaposleni
Cognito akreditivi
Ili kompromitovanjem neautentifikovanog servisa koji je izložen:
AWS - Unauthenticated Enum & AccessIli ako radite pregled, možete jednostavno zatražiti akreditive sa ovim ulogama:
AWS - Permissions for a PentestNakon što ste uspeli da dobijete akreditive, morate znati kome ti akreditivi pripadaju, i na šta imaju pristup, tako da morate izvršiti neku osnovnu enumeraciju:
Osnovna Enumeracija
SSRF
Ako pronađete SSRF na mašini unutar AWS-a, proverite ovu stranicu za trikove:
Whoami
Jedna od prvih stvari koje morate znati je ko ste (u kojem nalogu se nalazite i druge informacije o AWS okruženju):
Imajte na umu da kompanije mogu koristiti canary tokens kako bi identifikovale kada se tokeni kradu i koriste. Preporučuje se proveriti da li je token canary token pre nego što ga koristite. Za više informacija posetite ovu stranicu.
Enumeracija organizacije
AWS - Organizations EnumEnumeracija IAM-a
Ako imate dovoljno dozvola, provera privilegija svakog entiteta unutar AWS naloga pomoći će vam da razumete šta vi i ostali identiteti možete raditi i kako dosegnuti privilegije.
Ako nemate dovoljno dozvola da enumerišete IAM, možete ih bruteforce-ovati da biste ih otkrili. Proverite kako izvršiti enumeraciju i brute-force u:
AWS - IAM, Identity Center & SSO EnumSada kada imate neke informacije o svojim akreditivima (i ako ste crveni tim, nadamo se da niste otkriveni). Vreme je da saznate koje usluge se koriste u okruženju. U sledećem odeljku možete proveriti neke načine za enumeraciju nekih zajedničkih usluga.
Enumeracija usluga, post-eksploatacija i postojanost
AWS ima ogroman broj usluga, na sledećoj stranici pronaći ćete osnovne informacije, enumeraciju šema prevara**,** kako izbeći otkrivanje, dobiti postojanost i druge tehnike post-eksploatacije o nekima od njih:
AWS - ServicesImajte na umu da ne morate obavljati sav posao ručno, u nastavku u ovom postu možete pronaći odeljak o automatizovanim alatima.
Osim toga, 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 & AccessEskalacija privilegija
Ako možete proveriti bar svoje sopstvene dozvole nad različitim resursima, možete proveriti da li možete dobiti dodatne dozvole. Trebalo bi da se fokusirate bar na dozvole navedene u:
AWS - Privilege EscalationJavno izložene usluge
Dok enumerišete AWS usluge, možda ste pronašli neke od njih koje izlažu elemente na internetu (VM/Container portove, baze podataka ili usluge redova, snimke ili buckete...). Kao pentester/crveni tim, uvek biste trebali proveriti da li možete pronaći osetljive informacije / ranjivosti na njima jer vam mogu omoguć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. Kako pronaći ranjivosti u izloženim mrežnim uslugama preporučujem vam da pretražite specifičnu uslugu na:
Kompromitovanje organizacije
Iz glavnog/upravljačkog naloga
Kada upravljački nalog kreira nove naloge u organizaciji, novi ulog se kreira u novom nalogu, podrazumevano nazvan OrganizationAccountAccessRole
i daje AdministratorAccess politiku upravljačkom nalogu da pristupi novom nalogu.
Dakle, da biste pristupili kao administrator u podnalogu, treba vam:
Kompromitovati upravljački nalog i pronaći ID dečijih naloga i imena uloge (podrazumevano OrganizationAccountAccessRole) koja omogućava upravljačkom nalogu pristup kao administrator.
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 ime uloga, stoga proverite sve prilagođene IAM politike i potražite bilo koju koja omogućava
sts:AssumeRole
nad prethodno otkrivenim dečijim nalozima.Kompromitujte principala u upravljačkom nalogu sa dozvolom
sts:AssumeRole
nad ulogom u dečijim nalozima (čak i ako nalog dozvoljava bilo kome iz upravljačkog naloga da se predstavi, budući da je to spoljni nalog, potrebne su specifičnests:AssumeRole
dozvole).
Automatizovani alati
Recon
aws-recon: Višenitni alat za prikupljanje inventara fokusiran na sigurnost AWS-a napisan u Ruby-u.
cloudlist: Cloudlist je višenamenski alat za dobijanje resursa (Imena hostova, IP adrese) od provajdera oblaka.
cloudmapper: CloudMapper vam pomaže da analizirate vaše Amazon Web Services (AWS) okruženje. Sada sadrži mnogo više funkcionalnosti, uključujući proveru bezbednosnih problema.
kartografija: Kartografija 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 sa usluga i sistema, uključujući cloud infrastrukturu, SaaS aplikacije, sigurnosne kontrole, i više, u intuitivnom grafičkom prikazu podržanom Neo4j bazom podataka.
aws-inventory: (Koristi python2) Ovo je alat koji pokušava da otkrije sve AWS resurse kreirane u jednom nalogu.
aws_public_ips: Ovo je alat za dobavljanje svih javnih IP adresa (IPv4/IPv6) povezanih sa AWS nalogom.
Privesc & Eksploatacija
SkyArk: Otkrijte najprivilegovanije korisnike u skeniranom AWS okruženju, uključujući AWS Shadow Admins. Koristi powershell. Možete pronaći definiciju privilegovanih politika u funkciji
Check-PrivilegedPolicy
na https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1.pacu: Pacu je open-source AWS okvir za eksploataciju, dizajniran za testiranje sigurnosti protiv cloud okruženja. Može enumerisati, pronaći greške u konfiguraciji i iskoristiti ih. Možete pronaći definiciju privilegovanih dozvola na 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 sopstvene putanje priveska (ne celokupni nalog).
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 alternativne putanje koje napadač može preduzeti da bi dobio pristup resursu ili akciji u AWS-u. Možete proveriti dozvole korišćene za pronalaženje privesc putanja u datotekama koje se završavaju sa
_edges.py
na https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing
cloudsplaining: Cloudsplaining je alat za procenu bezbednosti AWS IAM koji identifikuje kršenja najmanjih privilegija i generiše HTML izveštaj prioritizovan po riziku. Prikazaće vam potencijalno prekomerno privilegovane korisnike, inline i aws polise i koje principale imaju pristup njima. (Ne proverava samo privesc već i druge vrste zanimljivih dozvola, preporučuje se korišćenje).
cloudjack: CloudJack procenjuje AWS naloge za ranjivosti preuzimanja poddomena kao rezultat odvojenih konfiguracija Route53 i CloudFront.
ccat: Listaj ECR repozitorijume -> Preuzmi ECR repozitorijum -> Backdoor-uj ga -> Povuci backdoored sliku
Dufflebag: Dufflebag je alat koji pretražuje javne Elastic Block Storage (EBS) snimke u potrazi za tajnama koje su možda slučajno ostavljene unutra.
Revizija
cloudsploit: CloudSploit od Aqua je open-source projekat dizajniran za otkrivanje sigurnosnih 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).
Prowler: Prowler je alat otvorenog koda za bezbednost koji vrši procene najboljih praksi za bezbednost na AWS platformi, revizije, odgovor na incidente, kontinuirano praćenje, jačanje i spremnost za forenzičke analize.
CloudFox: CloudFox vam pomaže da steknete situacionu svest u nepoznatim cloud okruženjima. To je alat otvorenog koda za komandnu liniju napravljen da pomogne pentesterima i drugim profesionalcima za ofanzivnu bezbednost da pronađu iskorišćive putanje napada u cloud infrastrukturi.
ScoutSuite: Scout Suite je alat otvorenog koda za proveru bezbednosti više oblaka, koji omogućava procenu bezbednosnog položaja okruženja u oblaku.
cs-suite: Cloud Security Suite (koristi python2.7 i izgleda neodržavan)
Zeus: Zeus je moćan alat za AWS EC2 / S3 / CloudTrail / CloudWatch / KMS najbolje prakse za očvršćavanje (izgleda neodržavan). Proverava samo podrazumevane konfigurisane akreditive unutar sistema.
Konstantna revizija
cloud-custodian: Cloud Custodian je pravilnički motor za upravljanje javnim cloud nalozima i resursima. Omogućava korisnicima definisanje pravila za omogućavanje dobro upravljanje cloud infrastrukturom, koja je i sigurna i optimizovana po troškovima. Konsoliduje mnoge ad-hoc skripte organizacija u lagani i fleksibilni alat, sa ujedinjenim metrikama i izveštavanjem.
pacbot: Bot za pravila kao kod (PacBot) je platforma za kontinuirano praćenje usaglašenosti, izveštavanje o usaglašenosti i automatizaciju sigurnosti za cloud. U PacBot-u, sigurnosna i usaglašenost pravila su implementirana kao kod. Svi resursi otkriveni od strane PacBota se procenjuju prema ovim pravilima kako bi se ocenila usaglašenost sa pravilima. Okvir za automatsko popravljanje PacBota pruža mogućnost automatskog odgovora na povrede pravila preuzimanjem unapred definisanih akcija.
streamalert: StreamAlert je serverless, real-time okvir za analizu podataka koji vam omogućava da unosite, analizirate i obaveštavate o podacima iz bilo kog okruženja, koristeći izvore podataka i logiku obaveštavanja koje definišete. Timovi za računarsku sigurnost koriste StreamAlert za skeniranje terabajta podataka dnevnika svakog dana radi otkrivanja incidenata i odgovora.
DEBUG: Snimanje AWS cli zahteva
Reference
Last updated