# AWS - S3 Neautentifikovana Enum {{#include ../../../banners/hacktricks-training.md}} ## S3 Javne Kante Kanta se smatra **“javnom”** ako **bilo koji korisnik može da pregleda sadržaj** kante, i **“privatnom”** ako se sadržaj kante može **pregledati ili pisati samo od strane određenih korisnika**. Kompanije mogu imati **pogrešno konfigurisane dozvole za kante** koje daju pristup ili svemu ili svima koji su autentifikovani u AWS-u u bilo kojem nalogu (dakle, bilo kome). Imajte na umu da čak i sa takvim pogrešnim konfiguracijama neke radnje možda neće moći da se izvrše jer kante mogu imati svoje vlastite liste kontrole pristupa (ACL). **Saznajte više o AWS-S3 pogrešnoj konfiguraciji ovde:** [**http://flaws.cloud**](http://flaws.cloud/) **i** [**http://flaws2.cloud/**](http://flaws2.cloud) ### Pronalaženje AWS Kanti Različite metode za pronalaženje kada veb stranica koristi AWS za skladištenje nekih resursa: #### Enumeracija & OSINT: - Korišćenje **wappalyzer** dodatka za pregledač - Korišćenje burp-a (**spidering** veba) ili ručnim navigiranjem kroz stranicu, svi **resursi** **učitani** će biti sačuvani u Istoriji. - **Proverite resurse** na domenima kao što su: ``` http://s3.amazonaws.com/[bucket_name]/ http://[bucket_name].s3.amazonaws.com/ ``` - Proverite za **CNAMES** jer `resources.domain.com` može imati CNAME `bucket.s3.amazonaws.com` - Proverite [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), veb sa već **otkrivenim otvorenim kantama**. - **Ime kante** i **ime domena kante** moraju biti **ista.** - **flaws.cloud** je na **IP** 52.92.181.107 i ako odete tamo, preusmerava vas na [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/). Takođe, `dig -x 52.92.181.107` daje `s3-website-us-west-2.amazonaws.com`. - Da biste proverili da li je to kanta, možete takođe **posetiti** [https://flaws.cloud.s3.amazonaws.com/](https://flaws.cloud.s3.amazonaws.com/). #### Brute-Force Možete pronaći kante **brute-forcing** imena povezanih sa kompanijom koju testirate: - [https://github.com/sa7mon/S3Scanner](https://github.com/sa7mon/S3Scanner) - [https://github.com/clario-tech/s3-inspector](https://github.com/clario-tech/s3-inspector) - [https://github.com/jordanpotti/AWSBucketDump](https://github.com/jordanpotti/AWSBucketDump) (Sadrži listu sa potencijalnim imenima kanti) - [https://github.com/fellchase/flumberboozle/tree/master/flumberbuckets](https://github.com/fellchase/flumberboozle/tree/master/flumberbuckets) - [https://github.com/smaranchand/bucky](https://github.com/smaranchand/bucky) - [https://github.com/tomdev/teh_s3_bucketeers](https://github.com/tomdev/teh_s3_bucketeers) - [https://github.com/RhinoSecurityLabs/Security-Research/tree/master/tools/aws-pentest-tools/s3](https://github.com/RhinoSecurityLabs/Security-Research/tree/master/tools/aws-pentest-tools/s3) - [https://github.com/Eilonh/s3crets_scanner](https://github.com/Eilonh/s3crets_scanner) - [https://github.com/belane/CloudHunter](https://github.com/belane/CloudHunter)
# Generišite listu reči za kreiranje permutacija
curl -s https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt > /tmp/words-s3.txt.temp
curl -s https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt >>/tmp/words-s3.txt.temp
cat /tmp/words-s3.txt.temp | sort -u > /tmp/words-s3.txt
# Generišite listu reči na osnovu domena i poddomena za testiranje
## Zapišite te domene i poddomene u subdomains.txt
cat subdomains.txt > /tmp/words-hosts-s3.txt
cat subdomains.txt | tr "." "-" >> /tmp/words-hosts-s3.txt
cat subdomains.txt | tr "." "\n" | sort -u >> /tmp/words-hosts-s3.txt
# Kreirajte permutacije na osnovu liste sa domenima i poddomenima za napad
goaltdns -l /tmp/words-hosts-s3.txt -w /tmp/words-s3.txt -o /tmp/final-words-s3.txt.temp
## Prethodni alat je specijalizovan za kreiranje permutacija za poddomene, filtrirajmo tu listu
### Uklonite linije koje se završavaju sa "."
cat /tmp/final-words-s3.txt.temp | grep -Ev "\.$" > /tmp/final-words-s3.txt.temp2
### Kreirajte listu bez TLD
cat /tmp/final-words-s3.txt.temp2 | sed -E 's/\.[a-zA-Z0-9]+$//' > /tmp/final-words-s3.txt.temp3
### Kreirajte listu bez tačaka
cat /tmp/final-words-s3.txt.temp3 | tr -d "." > /tmp/final-words-s3.txt.temp4http://phantom.s3.amazonaws.com/
### Kreirajte listu bez crtica
cat /tmp/final-words-s3.txt.temp3 | tr "." "-" > /tmp/final-words-s3.txt.temp5
## Generišite finalnu listu reči
cat /tmp/final-words-s3.txt.temp2 /tmp/final-words-s3.txt.temp3 /tmp/final-words-s3.txt.temp4 /tmp/final-words-s3.txt.temp5 | grep -v -- "-\." | awk '{print tolower($0)}' | sort -u > /tmp/final-words-s3.txt
## Pozovite s3scanner
s3scanner --threads 100 scan --buckets-file /tmp/final-words-s3.txt | grep bucket_exists
#### Pljačka S3 Kanti
S obzirom na otvorene S3 kante, [**BucketLoot**](https://github.com/redhuntlabs/BucketLoot) može automatski **tražiti zanimljive informacije**.
### Pronađite Region
Možete pronaći sve podržane regione od strane AWS-a na [**https://docs.aws.amazon.com/general/latest/gr/s3.html**](https://docs.aws.amazon.com/general/latest/gr/s3.html)
#### Preko DNS-a
Možete dobiti region kante sa **`dig`** i **`nslookup`** tako što ćete uraditi **DNS zahtev otkrivenog IP-a**:
```bash
dig flaws.cloud
;; ANSWER SECTION:
flaws.cloud. 5 IN A 52.218.192.11
nslookup 52.218.192.11
Non-authoritative answer:
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com.
```
Proverite da li rešen domen sadrži reč "website".\
Možete pristupiti statičkom vebsajtu odlaskom na: `flaws.cloud.s3-website-us-west-2.amazonaws.com`\
ili možete pristupiti bucket-u posetom: `flaws.cloud.s3-us-west-2.amazonaws.com`
#### Pokušavajući
Ako pokušate da pristupite bucket-u, ali u **domen imenu navedete drugu regiju** (na primer, bucket je u `bucket.s3.amazonaws.com`, ali pokušavate da pristupite `bucket.s3-website-us-west-2.amazonaws.com`, tada ćete biti **upučeni na ispravnu lokaciju**:
.png>)
### Enumeracija bucket-a
Da biste testirali otvorenost bucket-a, korisnik može jednostavno uneti URL u svoj veb pregledač. Privatni bucket će odgovoriti sa "Access Denied". Javni bucket će navesti prvih 1,000 objekata koji su sačuvani.
Otvoreno za sve:
.png>)
Privatno:
.png>)
Takođe možete proveriti ovo sa cli:
```bash
#Use --no-sign-request for check Everyones permissions
#Use --profile