Cloud Bucket Kontrolleri

Cloud Bucket Kontrolleri (yaygın adıyla Bucket Hunting), hedef organizasyonun AWS S3, Azure Blob Storage, Google Cloud Storage gibi bulut depolama servislerinde yanlış yapılandırılmış, kamuya açık veya hassas veri içeren bucket'ları tespit etme sürecidir. Bug bounty ve pentest'lerde en yüksek kritiklikteki bulgulardan biridir.

Cloud Bucket Nedir?
Servis Ürün Adı URL Formatı
AWS S3 Bucket bucket-name.s3.amazonaws.com veya s3.amazonaws.com/bucket-name
AWS S3 Bucket (bölgesel) bucket-name.s3-{region}.amazonaws.com
Azure Blob Storage account-name.blob.core.windows.net/container-name
GCP Cloud Storage bucket-name.storage.googleapis.com
DigitalOcean Spaces bucket-name.nyc3.digitaloceanspaces.com
Alibaba OSS bucket-name.oss-{region}.aliyuncs.com
Bucket Vulnerability Türleri (Güncel):
1. Public Read (Kamuya Açık Okuma) 🔴 Kritik
Durum: Herkes bucket içeriğini listeleyebilir ve dosyaları indirebilir.

http
GET /bucket-name/ HTTP/1.1
Host: bucket-name.s3.amazonaws.com

HTTP/1.1 200 OK
<ListBucketResult>
<Contents>
<Key>database_backup.sql</Key>
<Key>config.json</Key>
<Key>users.csv</Key>
</Contents>
</ListBucketResult>
Tespit:

bash
# AWS CLI ile
aws s3 ls s3://bucket-name --no-sign-request

# curl ile
curl -s "https://bucket-name.s3.amazonaws.com/" | grep -Eo '<Key>[^<]+</Key>'
2. Public Write (Kamuya Açık Yazma) 🔴 Kritik
Durum: Herkes bucket'a dosya yükleyebilir, silebilir veya değiştirebilir.

bash
aws s3 cp malicious.php s3://bucket-name/ --no-sign-request
3. Public Read + Write 🔴 Kritik
Durum: Tam kontrollü bucket. Saldırgan shell upload, malware dağıtımı, veri sızdırma yapabilir.

4. Public List (Kamuya Açık Listeleme) 🟡 Orta
Durum: Bucket içeriği listelenebilir ancak dosyalar indirilemez.

5. Authenticated Users Access 🟡 Orta
Durum: AWS Authenticated Users grubuna açık. AWS hesabı olan herkes erişebilir.

6. Misconfigured Bucket Policies 🟡 Orta
Durum: Policy'de Principal: "*" veya yanlış Condition kullanımı.

7. Insecure CORS Configuration 🟢 Düşük
Durum: Access-Control-Allow-Origin: * ve credential'lar ile.

8. No Encryption (Server-Side) 🟢 Düşük
Durum: Bucket'ta veri şifrelemesi yok.

9. Versioning Enabled with Old Versions 🟡 Orta
Durum: Silinen veya güncellenen dosyaların eski versiyonları erişilebilir.

bash
aws s3api list-object-versions --bucket bucket-name --no-sign-request
Cloud Bucket Keşif Yöntemleri (Güncel):
1. Naming Convention (Adlandırma Tahmini)
En etkili yöntem. Bucket isimleri genellikle pattern'ler içerir.

bash
# Yaygın pattern'ler
hedef-{env}-{service}
hedef-{env}-{service}-{region}
{service}-hedef-{env}
hedef-{project}-{env}
Örnekler:

text
hedef-prod-backup
hedef-dev-static
hedef-staging-assets
hedef-media-uploads
hedef-logs-eu-west-1
hedef-cdn-assets
assets-hedef-prod
uploads.hedef.com
static.hedef.com
media.hedef.com
2. Subdomain/URL Keşfi
bash
# Subdomain'leri bucket olarak dene
subfinder -d hedef.com -silent | while read sub; do
curl -s -o /dev/null -w "%{http_code}" "https://${sub}.s3.amazonaws.com"
done

# Common bucket URL'leri dene
cat bucket_names.txt | while read bucket; do
curl -s -o /dev/null -w "%{http_code}" "https://${bucket}.s3.amazonaws.com"
done
3. Wayback Machine
bash
# Geçmişte referans verilen bucket URL'leri
waybackurls hedef.com | grep -E 's3\.amazonaws\.com|storage\.googleapis\.com|blob\.core\.windows\.net'
4. JavaScript Dosyaları
bash
# JavaScript'ten bucket URL'leri
cat js_files.txt | grep -E 's3\.amazonaws\.com|storage\.googleapis\.com|blob\.core\.windows\.net'
5. Certificate Transparency
bash
# Bucket subdomain'leri
curl -s "https://crt.sh/?q=%.s3.amazonaws.com&output=json" | jq -r '.[].name_value' | grep hedef
6. Shodan / Censys
bash
# S3 bucket arama
shodan search "http.title:'Index of' s3.amazonaws.com hedef"
7. GitHub Dorking
text
org:"hedef" s3
org:"hedef" bucket_name
org:"hedef" AWS_ACCESS_KEY
org:"hedef" aws_access_key_id
Cloud Bucket Test Araçları:
1. AWS CLI (Resmi)
bash
# List bucket contents
aws s3 ls s3://bucket-name --no-sign-request

# List all buckets (requires credentials)
aws s3 ls

# Download file
aws s3 cp s3://bucket-name/file.txt .

# Upload file (test write)
aws s3 cp test.txt s3://bucket-name/test.txt --no-sign-request

# Check bucket permissions
aws s3api get-bucket-acl --bucket bucket-name --no-sign-request
aws s3api get-bucket-policy --bucket bucket-name --no-sign-request
2. Cloud_Enum (Python)
bash
git clone https://github.com/initstring/cloud_enum
cd cloud_enum
pip install -r requirements.txt

python cloud_enum.py -k hedef
python cloud_enum.py -k hedef -s -b -a # Storage, buckets, azure
3. S3Scanner
bash
git clone https://github.com/sa7mon/S3Scanner
cd S3Scanner
pip install -r requirements.txt

python s3scanner.py --bucket hedef
python s3scanner.py --bucket-list buckets.txt --dump
4. DumpsterDiver
bash
git clone https://github.com/securing/DumpsterDiver
cd DumpsterDiver
pip install -r requirements.txt

python DumpsterDiver.py -b bucket-name --no-sign-request
5. BucketLooter
bash
go install github.com/belane/bucketlooter@latest

bucketlooter list -bucket bucket-name -no-sign
bucketlooter download -bucket bucket-name -no-sign -output /tmp/
6. Azure Blob Storage Tools
bash
# AzCopy
azcopy list https://account-name.blob.core.windows.net/container-name

# Azure Storage Explorer (GUI)
7. GCP Storage Tools
bash
# gsutil
gsutil ls gs://bucket-name
gsutil ls gs://bucket-name/**
Cloud Bucket Test Pipeline:
bash
#!/bin/bash
# Cloud Bucket Discovery Pipeline

DOMAIN=$1
OUTPUT_DIR="bucket_discovery_$DOMAIN"
mkdir -p $OUTPUT_DIR

echo "[1] Passive Bucket Discovery"

# Subdomain'leri bucket olarak dene
subfinder -d $DOMAIN -silent > $OUTPUT_DIR/subdomains.txt
while read sub; do
for provider in "s3.amazonaws.com" "storage.googleapis.com" "blob.core.windows.net"; do
curl -s -o /dev/null -w "%{http_code} $sub.$provider\n" "https://$sub.$provider"
done
done < $OUTPUT_DIR/subdomains.txt > $OUTPUT_DIR/bucket_status.txt

echo "[2] Wayback Machine Bucket URLs"
waybackurls $DOMAIN | grep -E 's3\.amazonaws\.com|storage\.googleapis\.com|blob\.core\.windows\.net' > $OUTPUT_DIR/wayback_buckets.txt

echo "[3] JavaScript Bucket URLs"
katana -u https://$DOMAIN -jc -silent | grep -E 's3\.amazonaws\.com|storage\.googleapis\.com|blob\.core\.windows\.net' > $OUTPUT_DIR/js_buckets.txt

echo "[4] Common Bucket Names"
cat common_bucket_names.txt | while read bucket; do
echo $bucket
curl -s -o /dev/null -w "%{http_code} $bucket.s3.amazonaws.com\n" "https://$bucket.s3.amazonaws.com"
done > $OUTPUT_DIR/bucket_fuzzing.txt

echo "[5] Cloud Enumeration"
cloud_enum -k $DOMAIN -o $OUTPUT_DIR/cloud_enum.txt

echo "[6] Check Public Buckets"
grep "200" $OUTPUT_DIR/bucket_status.txt | awk '{print $2}' > $OUTPUT_DIR/public_buckets.txt

echo "[7] Dump Public Buckets"
while read bucket; do
aws s3 ls s3://$bucket --no-sign-request > $OUTPUT_DIR/dump_$bucket.txt
done < $OUTPUT_DIR/public_buckets.txt

echo "[8] Result"
echo "Public Buckets Found: $(cat $OUTPUT_DIR/public_buckets.txt | wc -l)"
Cloud Bucket Kontrol Listesi:
A. Keşif:
Subdomain enumeration yapıldı mı?

Common bucket names fuzzing yapıldı mı?

Wayback Machine kontrolü yapıldı mı?

JavaScript dosyaları kontrolü yapıldı mı?

GitHub dorking yapıldı mı?

Certificate transparency kontrolü yapıldı mı?

B. Test:
Public read kontrolü yapıldı mı?

Public write kontrolü yapıld mı?

Public list kontrolü yapıldı mı?

Bucket policy kontrolü yapıldı mı?

CORS yapılandırması kontrolü yapıldı mı?

Versioning kontrolü yapıldı mı?

C. Hassas Veri:
Hassas dosyalar tespit edildi mi?

API keys bulundu mu?

Credential'lar bulundu mu?

Backup dosyaları bulundu mu?

Log dosyaları bulundu mu?

Güncel İpuçları (2026):
AWS Bucket Policy Scanner: Bucket policy'lerini otomatik kontrol edin

Azure Storage Explorer: Azure blob'ları için en iyi araç

GCP gsutil: GCP bucket'ları için

GitHub Actions: CI/CD'den sızan credential'lar

TruffleHog: GitHub'dan secret sızıntısı tespiti

Bucket-Project-Discovery: Yeni bucket isimleri keşfi

AI-Powered Bucket Naming: Yapay zeka ile olası bucket isimleri tahmini

🔒 Bu içeriği görmek için giriş yapın

 
Yanıt yazmak için giriş yapmalısınız
Forum özelliklerini kullanmak ve Level 2 üyelik satın almak için hesabınıza giriş yapın.
133,663Konular
3,288,262Mesajlar
324,335Kullanıcılar
hbi14Son Üye
Üst Alt