16.000 Dolarlık Geliştirici Hatası. Herkese merhaba! | kaydeden Daniel Marte


Daniel Marte

Herkese merhaba!

Son yazımın üzerinden epey zaman geçti. Çoğunuzun bildiği gibi geçen yıl Bugcrowd ekibine Uygulama Güvenliği Mühendisi olarak katıldım. O zamandan beri, Bugcrowd’da tam zamanlı bir göreve geçtiğimde, tam zamanlı bilgisayar korsanlığım oldukça arka planda kaldı. Yıl sonuna doğru, sahip oldukları tüm varlıklar kapsam dahilinde olduğundan, yalnızca 1 programa odaklanmaya karar verdim!

Bu, Recon’da bazı AWS anahtarlarını nasıl bulduğum, rolleri ve izinleri bulmak ve etkiyi gerçekten sağlamlaştırmak için farklı hizmetleri daha derinlemesine incelemek için bundan nasıl yararlanabildiğim hakkında bir yazı olacak.

  1. Burp Suite Pro

2. JSminer Uzantısı

3. DataExtractor Uzantısı

4. FUF

5. Uçurtma Koşucusu

6. Varlık Notu Kelime Listeleri

7. AWS klibi

8. Shodan

Bildiğiniz gibi, her iyi güvenlik açığı hikayesi sağlam bir keşifle başlar. Bu yüzden Shodan’a gitmeye ve umut verici bir şey aramaya karar verdim. Yani sorguyu yaparak, “ssl:”{{Kuruluş adı}}””, bu sorguyu yaparak kuruluşa ait tüm taranmış Varlıkları çekebildim ancak BİRÇOK varlık olduğu için filtrelemeye başlamam gerekiyordu, bu yüzden tıpkı sorguyu kullandığım gibi ssl:”{{Kuruluş adı}}”, Sorgularıma “-” ekleyerek farklı varlıkları filtrelemeye başladım.

Artık bende var ssl:”{{Kuruluş adı}}” sonuçlar ve example1.com’a ait tüm varlıkların sonuçlarını kaldırmak istiyorum. Sorgum şu şekilde olacak:

ssl:”{{Kuruluş adı}} –Ssl.cert.konu.CN:”example1.com”

Ayrıca AkamaiGhost tarafından sunulan tüm varlıkları kaldırmak istediğim için -AkamaiGhost†’u da ekledim.

Tamam! şimdi daha önce hiç görmediğim bazı ilginç varlıklar ve IP adresleri görüyorum. Yeni varlıklara ulaşmaya başlamak için Burp ve Firefox’u açıyorum. Önceki gün JSminer adında, normal ifadeler ve kalıpların bir listesini çalıştıran ve bunu önem derecesi olarak yayınlayan bir Burp uzantısı keşfettim.

[Post JSMiner screenshot]

Ayrıca Gwendolyn tarafından yapılmış ve kullanıcı tarafından sağlanan normal ifadeler listesine dayalı olarak veri çekecek başka bir aracım da var. İşte github deposunun bağlantısı. Bu 2 uzantının her ikisi de pasif tarama yoluyla çalışır, ancak JSMiner’da .map dosyalarını aramak için aktif bir tarama modülü bulunur.

Artık tüm araçlar yeni bir Burp Projesinde ayarlandı. GAU ve Wayback’ten JS dosyalarını çıkararak başladım ve bunları J adlı bir dosyaya kaydettim.surls.txt. Daha sonra TomNomNom Unfurl aracını kullanarak. Bu dosyayı aldım, ana bilgisayarların listesini çıkardım ve bunu adlı bir dosyaya koydum. Alan adları.txt. Daha sonra URL’lerin tüm yollarını çıkardım ve J adlı başka bir dosyaya kaydettim.spaths.txt. Bildiğiniz gibi bazı kaba kuvvetler önünüze çıkıyor ancak İLK olarak bu konuda biraz daha ayrıntılı olmak istiyorum. Nasıl Ben kaba kuvvet uyguluyorum. Bu yüzden tekrar ziyaret etmeye karar verdim JSurls.txt URL’yi ilk alt dizine (js dosyaları olmadan) çıkarmak ve bunu benim dosyama koymak için dosya Alan adları.txt dosya. Daha sonra 2. seviye alt dizinleri ve ardından 3. seviye alt dizinleri olan URL’leri çektim ve bunları ekledim. Alan adları.txt dosya. Artık içerik keşfini başlatmak için FFUF aracını kullanmanın zamanı gelmişti. GAU/Wayback’ten aldığım tüm Javascript yollarını tüm alt alan adlarına/alt dizinlere karşı çalıştırmak için basit bir FFUF tek satırlık çalıştırdım. Oradan, ‘200’ü BURP’a döndüren sonuçların FFUF vekilini aldım. BURP daha sonra aşağıdakileri içeren canlı bir pasif tarama başlatacaktır: JSMiner ve DataExtractor eklenti.

Birkaç dakika içinde geliştirici alt etki alanındaki bir AWS anahtarına yönelik birkaç isabet elde ettim. Görünüşe göre 2. seviye alt dizinleri eklemek buradaki anahtardı. Javascript dosyasının nihai sonucu şuydu: https://tre-uat-euw1.redacted.com/assets/Javascript/config/config.js. “/Javascript/config/config.js” yolu buradaki anahtar yoldu. AWS Erişim Anahtarını ve AWS Gizli Anahtarını aldıktan sonra. Maksimum etkiyi nasıl sağlayabileceğimizi görmek için doğrudan AWSCLI’ye daldım.

AWS CLI: tüm AWS hizmetlerini tek bir merkezi konsolda bir araya getiren bir araçbirden fazla AWS hizmetini tek bir araçla kolayca kontrol edebilmenizi sağlar. Kısaltma, Amazon Web Services Komut Satırı Arayüzü anlamına gelir çünkü adından da anlaşılacağı gibi kullanıcılar onu komut satırından çalıştırır. Bu aracı kullanarak bulduğumuz anahtarları almamıza ve hangi hizmetlere erişebildiğimizi keşfetmemize olanak tanır. Yani KAPALI gidiyoruz:

Öncelikle bunu kullanarak bir profil oluşturmalıyız. tek astar:
aws yapılandırması — profil {whatevername}

Bu profili oluşturarak Javascript dosyasında yer alan kimlik bilgilerini kullanarak awscli komutlarını çağırabiliriz. Artık profil oluşturulduğuna göre, bu anahtarların gerçekte ne kadar izin verici olduğunu anlamanın zamanı geldi.

Aşağıdaki komutu çalıştırdım:

aws — profil {whatevername} sts get-caller-identity

Bu komut size Kullanıcı Kimliği, Hesap Kimliği ve arn (kullanıcı adını içeren) verir. Bu komutu çağırdığınızda, size daha fazla yön verip keşfetmeye devam etmeniz için kullanıcı adı gibi önemli bilgiler sağlayabilir. Bu bilgilerin doğası gereği hassas olmasına rağmen, bu maksimum etki olarak değerlendirilmez. Bazen program sahiplerinin belirli güvenlik açıklarının ne kadar etkili olabileceğini bilmeleri gerekir. Bu, 9,0 kritik ve 10,0 kritik (maksimum ödeme) arasındaki farkı belirleyebilir. Aşağıdaki Awscli komutlarıyla daha fazla etki belirleyebiliriz.

Yukarıdaki komut size aşağıdaki gibi komuta girilen kullanıcı adıyla ilişkili politika bilgilerini verecektir. Aşağıda görebileceğiniz gibi, yer alan kullanıcı adı ile ilişkili politika adı AdministratorAccess’tir.

aws iam listeye bağlı kullanıcı politikaları — profil {whatevername} — kullanıcı adı {username}

Yukarıdaki bu komut size kullanıcının bağlı olduğu Politika hakkında önemli bilgiler sağlayacaktır. AWS terimleriyle politika, bir rol veya “grup”tur. Bu aslında bir kullanıcının belirli hizmetlere erişmesine olanak tanıyan bir izin kümesidir. REZİL izinler. Yukarıdaki ekran görüntüsüne dayanarak bu anahtarların yönetici ayrıcalıklarına sahip olduğunu varsayabiliriz. Şimdi bu kullanıcının hangi AWS hizmetlerine erişime sahip olduğunu ve bu kullanıcının hizmetlere tam yönetici erişiminin olup olmadığını öğrenmemiz gerekiyor.

Son olarak, anahtarların tam kapsamını anlamak için çalıştırmak istediğim son komut şu komutu çalıştırmaktı:

aws iam get-policy-version — profil düzenlendi — politika-arn arn:aws:iam::aws:policy/AdministratorAccess — sürüm kimliği v1

Bu tam olarak ihtiyacım olan şeydi! Bu bana ÇOK önemli iki nokta kazandırdı. Anlayabileceğiniz gibi, Eylem ve Kaynak anahtarının yanında bir joker yıldız işareti değeri vardır. Bu, AWS anahtarlarıyla HERHANGİ bir eylemi gerçekleştirebileceğimi ve tüm kaynaklara erişebildiğimi gösterir. Bu tam olarak ne anlama geliyor?

Etkisini bir kez daha vurgulamak gerekirse, Yönetici olarak tüm AWS hizmetlerine tam erişime ve tüm eylemleri gerçekleştirme yetkisine sahibim. Yani şirkete ait her şeyi oluşturabilir, okuyabilir, güncelleyebilir ve silebilirim.

  • Tüm EC2 anlık görüntülerine tam erişimim vardı
  • Lambda işlevlerine tam erişim
  • Tüm S3 klasörlerine tam erişim.

Rapor edildikten sonra bu 30 dakika içinde kaldırıldı ve Cumartesi günü program yöneticisi tarafından önceliklendirildi. Bir hafta içinde ilk 5 haneli ödememi 16.000$ olarak aldım.

Harika ödül avcılarının dediği gibi: BOM!

Çıkarımlar:

  • Bir şirketi ve işleri nasıl yaptıklarını anlamak için zaman ayırın. Keşif çalışmalarının bir kısmı, veri toplamanın yanı sıra modeli anlamaya çalışmaktır. Her programın, alt alan adlarını adlandırma biçiminden, dizinlerini nasıl yapılandırdığına ilişkin bir modeli vardır.
  • Kalıpları belirledikten sonra yaratıcı olmaya başlayın.
  • Etkiniz konusunda dikkatli olun. Bu güvenlik açığını daha fazla etki için daha derine inmeden sunsaydım, bunun yüksek bir ödül olarak değerlendirilmeyeceğini gerçekten hissettim.

Okuduğunuz için hepinize teşekkürler! Sorularınız varsa bizimle iletişime geçmekten çekinmeyin heyecan en https://twitter.com/Masonhck3571





Source link