AWS - S3 Unauthenticated Enum
Javni S3 Bucketi
Bucket se smatra "javni" ako bilo koji korisnik može da vidi sadržaj bucket-a, i "privatni" ako sadržaj bucket-a može videti ili pisati samo određeni korisnici.
Kompanije mogu imati nespravno konfigurisane dozvole za bucket-e dajući pristup ili svemu ili svakome ko je autentifikovan u AWS-u u bilo kojem nalogu (tako da svako može pristupiti). Imajte na umu da čak i sa takvim nespravnim konfiguracijama neke radnje možda neće moći da se obave jer bucket-i mogu imati svoje liste kontrola pristupa (ACL).
Saznajte više o AWS-S3 nespravnoj konfiguraciji ovde: http://flaws.cloud i http://flaws2.cloud/
Pronalaženje AWS Bucket-a
Različite metode za pronalaženje kada veb stranica koristi AWS za skladištenje nekih resursa:
Enumeracija & OSINT:
Korišćenjem wappalyzer dodatka za pregledač
Korišćenjem burp-a (spidering web stranice) ili ručnim navigiranjem kroz stranicu svi resursi učitani će biti sačuvani u Istoriji.
Proverite resurse na domenima kao:
Proverite CNAMES jer
resursi.domen.com
može imati CNAMEbucket.s3.amazonaws.com
Proverite https://buckets.grayhatwarfare.com, veb sa već otkrivenim otvorenim bucket-ima.
Ime bucket-a i domen bucket-a moraju biti isti.
flaws.cloud je na IP 52.92.181.107 i ako odete tamo preusmerava vas na https://aws.amazon.com/s3/. Takođe,
dig -x 52.92.181.107
dajes3-website-us-west-2.amazonaws.com
.Da biste proverili da li je u pitanju bucket možete takođe posetiti https://flaws.cloud.s3.amazonaws.com/.
Brute-Force
Možete pronaći bucket-e brute-forcing imena povezana sa kompanijom koju pentestirate:
https://github.com/jordanpotti/AWSBucketDump (Sadrži listu potencijalnih imena bucket-a)
Pljačka S3 kanti
Dajući otvorene S3 kante, BucketLoot automatski može tražiti zanimljive informacije.
Pronalaženje regiona
Sve podržane regione od strane AWS-a možete pronaći na https://docs.aws.amazon.com/general/latest/gr/s3.html
Preko DNS-a
Možete dobiti region kante pomoću dig
i nslookup
izvršavajući DNS zahtev otkrivenoj IP adresi:
Proverite da li rešena domena sadrži reč "website".
Možete pristupiti statičkom veb sajtu odlaskom na: flaws.cloud.s3-website-us-west-2.amazonaws.com
ili možete pristupiti kanti posetom: flaws.cloud.s3-us-west-2.amazonaws.com
Pokušaj
Ako pokušate da pristupite kanti, ali u imeni domena navedete drugu regiju (na primer, kanta je na bucket.s3.amazonaws.com
ali pokušavate da pristupite bucket.s3-website-us-west-2.amazonaws.com
), bićete upućeni na ispravnu lokaciju:
Enumerisanje kante
Da biste testirali otvorenost kante, korisnik jednostavno može uneti URL u svoj veb pregledač. Privatna kanta će odgovoriti sa "Pristup odbijen". Javna kanta će izlistati prvih 1.000 objekata koji su sačuvani.
Otvoreno za sve:
Privatno:
Takođe možete proveriti ovo pomoću komandne linije:
Ako kanta nema ime domena, prilikom pokušaja enumeracije, samo stavite ime kante a ne ceo AWSs3 domen. Primer: s3://<IMEKANTE>
Šablon javnog URL-a
Dobijanje ID naloga sa javnog Bucket-a
Moguće je odrediti AWS nalog iskorišćavanjem nove S3:ResourceAccount
Policy Condition Key. Ova uslov ograničava pristup na osnovu S3 bucket-a u kojem se nalazi nalog (ostale politike zasnovane na nalozima ograničavaju se na osnovu naloga u kojem se nalazi zahtevajući princip).
I pošto politika može sadržati zvezdice, moguće je pronaći broj naloga samo po jedan broj u isto vreme.
Ovaj alat automatizuje proces:
Ova tehnika takođe funkcioniše sa URL-ovima API Gateway-a, Lambda URL-ovima, Data Exchange data setovima čak i za dobijanje vrednosti oznaka (ako znate ključ oznake). Više informacija možete pronaći u originalnom istraživanju i alatu conditional-love za automatizaciju ovog iskorišćavanja.
Potvrđivanje da li je kanta povezana sa AWS nalogom
Kao što je objašnjeno u ovom blog postu, ako imate dozvole da navedete kantu, moguće je potvrditi accountID kojem kanta pripada slanjem zahteva poput:
Ako je greška "Pristup odbijen", to znači da je ID naloga bio netačan.
Korišćeni e-mailovi za enumeraciju root naloga
Kao što je objašnjeno u ovom blog postu, moguće je proveriti da li je e-mail adresa povezana sa nekim AWS nalogom pokušavajući da dodelite dozvole za e-mail nad S3 bucket-om putem ACL-ova. Ako ovo ne izazove grešku, to znači da je e-mail root korisnik nekog AWS naloga:
Reference
Last updated