AWS - S3 Unauthenticated Enum
S3 Genel Kovaları
Bir kova "genel" olarak kabul edilir eğer kovanın içeriğini herhangi bir kullanıcı listeleyebilir, ve "özel" olarak kabul edilir eğer kova içeriği yalnızca belirli kullanıcılar tarafından listelenebilir veya yazılabilir.
Şirketler, kova izinlerini yanlış yapılandırarak her şeye veya AWS'de herhangi bir hesapta kimlik doğrulanan herkese erişim sağlayabilirler. Unutmayın, bu tür yanlış yapılandırmalarla bazı işlemlerin gerçekleştirilemeyebileceği, çünkü kovaların kendi erişim kontrol listelerine (ACL'ler) sahip olabileceği unutulmamalıdır.
AWS-S3 yanlış yapılandırma hakkında bilgi edinin burada: http://flaws.cloud ve http://flaws2.cloud/
AWS Kovalarını Bulma
Bir web sayfasının AWS'yi kullanıp kullanmadığını bulmanın farklı yöntemleri:
Numaralandırma ve OSINT:
wappalyzer tarayıcı eklentisini kullanarak
Burp'u kullanarak (web tarayarak) veya sayfa içinde manuel olarak gezinerek tüm yüklenen kaynaklar Geçmiş'te kaydedilecektir.
Alanlarda kaynakları kontrol edin:
resources.domain.com
gibi CNAMES için kontrol edin,bucket.s3.amazonaws.com
CNAME'ye sahip olabilirhttps://buckets.grayhatwarfare.com adresine bakın, zaten açık kovalar keşfedilmiş bir web sitesi.
Kova adı ve kova alan adının aynı olması gerekir.
flaws.cloud IP 52.92.181.107'de ve oraya gittiğinizde sizi https://aws.amazon.com/s3/ adresine yönlendirir. Ayrıca,
dig -x 52.92.181.107
s3-website-us-west-2.amazonaws.com
verir.Bir kovanın olup olmadığını kontrol etmek için ayrıca https://flaws.cloud.s3.amazonaws.com/ adresini ziyaret edebilirsiniz.
Kaba Kuvvet
Şirketi pentest ettiğinizde ilişkili isimleri kaba kuvvet uygulayarak kovaları bulabilirsiniz:
https://github.com/jordanpotti/AWSBucketDump (Potansiyel kova adları içeren bir liste içerir)
S3 Kovalarını Yağma
Açık S3 kovaları verildiğinde, BucketLoot otomatik olarak ilginç bilgileri arayabilir.
Bölgeyi Bulma
AWS tarafından desteklenen tüm bölgeleri https://docs.aws.amazon.com/general/latest/gr/s3.html adresinde bulabilirsiniz.
DNS ile
Bir kova bölgesini keşfedilen IP'nin DNS isteği yaparak dig
ve nslookup
ile alabilirsiniz:
Kontrol Etme
Çözümlenen alan adında "website" kelimesinin bulunduğundan emin olun.
Statik web sitesine şu adresten erişebilirsiniz: flaws.cloud.s3-website-us-west-2.amazonaws.com
veya kovaya şu adresten erişebilirsiniz: flaws.cloud.s3-us-west-2.amazonaws.com
Deneyerek
Bir kovaya erişmeyi denerseniz, ancak alan adında başka bir bölge belirtirseniz (örneğin kova bucket.s3.amazonaws.com
içindeyken bucket.s3-website-us-west-2.amazonaws.com
'a erişmeye çalışırsanız, o zaman doğru konuma yönlendirileceksiniz:
Kovayı Numaralandırma
Bir kullanıcının kovanın açıklığını test etmek için sadece URL'yi web tarayıcısına girmesi yeterlidir. Özel bir kova "Erişim Reddedildi" yanıtı verecektir. Genel bir kova ise depolanan ilk 1.000 nesneyi listeleyecektir.
Herkese açık:
Özel:
Ayrıca bunu cli ile de kontrol edebilirsiniz:
Eğer kovada bir alan adı yoksa, numaralandırmaya çalışırken yalnızca kova adını ve tüm AWSs3 alan adını değil. Örnek: s3://<BUCKETNAME>
Genel URL şablonu
Genel Kova'dan Hesap Kimliği Alın
Yeni S3:ResourceAccount
Politika Koşulu Anahtarı'ndan faydalanarak bir AWS hesabını belirlemek mümkündür. Bu koşul, erişimi S3 kovasına göre kısıtlar (diğer hesap tabanlı politikalar, istekte bulunan ana prensibin bulunduğu hesaba göre kısıtlar).
Ve çünkü politika yer tutucuları içerebilir, hesap numarasını sadece bir numara ile birlikte bulmak mümkündür.
Bu araç süreci otomatikleştirir:
Bu teknik aynı zamanda API Gateway URL'leri, Lambda URL'leri, Veri Değişim veri setleri ve hatta etiket değerlerini almak için de çalışır (eğer etiket anahtarını biliyorsanız). Daha fazla bilgiyi orijinal araştırmada bulabilirsiniz ve bu sömürüyü otomatikleştirmek için conditional-love aracını kullanabilirsiniz.
Bir kovaya bir AWS hesabının ait olup olmadığını doğrulama
Bu blog yazısında açıklandığı gibi, bir kovayı listeleme izniniz varsa, kovaya ait bir accountID'yi doğrulamak için şu şekilde bir istek göndermek mümkündür:
Kullanılan E-postaların kök hesap numaralandırması
Bu blog gönderisinde açıklandığı gibi, bir e-postanın herhangi bir AWS hesabıyla ilişkili olup olmadığını kontrol etmek mümkündür. Bunun için ACL'ler aracılığıyla bir S3 kovasına bir e-postaya izin vermeyi deneyerek. Bu bir hata tetiklemezse, bu e-postanın bir AWS hesabının kök kullanıcısı olduğu anlamına gelir:
Referanslar
Last updated