GWS - Google Platforms Phishing

Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert) ile!

HackTricks'i desteklemenin diğer yolları:

Genel Balıkçılık Metodolojisi

Google Grupları Balıkçılığı

Görünüşe göre, varsayılan olarak, iş yeri üyeleri gruplar oluşturabilir ve insanları davet edebilirler. Daha sonra kullanıcıya gönderilecek e-postayı bazı bağlantılar ekleyerek değiştirebilirsiniz. E-posta, bir google adresinden geleceği için gerçek görünecek ve insanlar bağlantıya tıklayabilir.

Ayrıca, GÖNDEREN adresini Google grup e-postası olarak ayarlamak ve grup içindeki kullanıcılara daha fazla e-posta göndermek de mümkündür, aşağıdaki resimde olduğu gibi grup google--support@googlegroups.com oluşturuldu ve grup üyelerine bir e-posta gönderildi (izinleri olmadan eklenen üyeler)

Google Sohbet Balıkçılığı

Bir kişiyle sohbet başlatabilir veya konuşma daveti gönderebilirsiniz. Ayrıca, "Google Destek" gibi herhangi bir adı olabilen bir Alan oluşturabilir ve üyeleri davet edebilirsiniz. Kabul ederlerse, Google Destek ile konuştuklarını düşünebilirler:

Ancak testlerimde davet edilen üyeler davet bile almadı.

Bu nasıl çalıştığını geçmişte kontrol edebilirsiniz: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s

Google Belge Balıkçılığı

Geçmişte, görünüşte meşru bir belge oluşturmak ve ardından bir yorumda bazı e-postaları belirtmek (@user@gmail.com gibi) mümkündü. Google, bu e-posta adresine belgede adlarının geçtiğini bildiren bir e-posta gönderdi. Günümüzde bu işe yaramaz ancak kurban e-postaya belge erişim izni verirseniz Google bunu bildiren bir e-posta gönderecektir. Birini belirttiğinizde görünen mesaj şudur:

Kurbanların, dış belgenin paylaşıldığına dair e-postaların e-postalarına ulaşmasına izin vermeyen koruma mekanizmaları olabilir.

Google Takvim Balıkçılığı

Şirketi hedef alan bir takvim etkinliği oluşturabilir ve sahip olduğunuz kadar çok e-posta adresini ekleyebilirsiniz. Bu takvim etkinliğini, mevcut zamandan 5 veya 15 dakika sonra planlayın. Etkinliği gerçekçi gösterin ve bir yorum ve bir başlık ekleyin, okumaları gerektiğini belirten (balıkçılık bağlantısıyla).

Bu tarayıcıda görünecek bir uyarı, "İnsanları İşten Çıkarma" başlıklı bir toplantı olduğundan, daha fazla balıkçılığa benzer bir başlık belirleyebilirsiniz (ve hatta e-postanıza ilişkilendirilen adı değiştirebilirsiniz).

Daha az şüpheli görünmesi için:

  • Alıcıların davet edilen diğer kişileri görememesini sağlayın

  • Etkinlikle ilgili e-posta bildirimi göndermeyin. Sonra insanlar sadece 5 dakika içinde bir toplantı uyarısı ve o bağlantıyı okumaları gerektiğine dair uyarılarını görecekler.

  • API kullanarak, insanların etkinliği kabul ettiğini ve hatta onların adına yorumlar oluşturabileceğinizi belirtebilirsiniz.

Uygulama Betikleri Yönlendirme Balıkçılığı

https://script.google.com/ adresinde bir betik oluşturmak ve herkesin erişebileceği bir web uygulaması olarak açığa çıkarmak mümkündür ve bu, meşru alan script.google.com kullanacaktır. Aşağıdaki gibi bazı kodlarla bir saldırgan, betiği durdurmadan bu sayfada keyfi içerik yükleyebilir:

function doGet() {
return HtmlService.createHtmlOutput('<meta http-equiv="refresh" content="0;url=https://cloud.hacktricks.xyz/pentesting-cloud/workspace-security/gws-google-platforms-phishing#app-scripts-redirect-phishing">')
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

Örneğin https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec adresine erişerek aşağıdakini göreceksiniz:

İçeriğin bir iframe içinde yüklendiği için bir uyarı belirecektir.

App Scripts OAuth Phishing

Belgelerle ilişkilendirilmiş App Scripts oluşturarak kurbanın OAuth belirteci üzerinden erişim elde etmeye çalışmak mümkündür, daha fazla bilgi için kontrol edin:

GWS - App Scripts

OAuth Uygulamaları Phishing

Önceki tekniklerden herhangi biri, kullanıcının yüksek ayrıcalıklı izinler isteyen bir Google OAuth uygulamasına erişmesini sağlamak için kullanılabilir. Kullanıcı kaynağa güvenirse, uygulamaya da güvenebilir (yüksek ayrıcalıklı izinler istese bile).

Google'ın, uygulamanın güvenilir olmadığı konusunda uyarıda bulunduğu ve Workspace yöneticilerinin insanların OAuth uygulamalarını kabul etmesini engelleyebileceği birçok durumda çirkin bir uyarı sunar.

Google, çeşitli Google hizmetleri ile kullanıcılar adına etkileşimde bulunabilen uygulamalar oluşturmaya izin verir: Gmail, Drive, GCP...

Diğer kullanıcılar adına hareket etmek üzere bir uygulama oluşturulduğunda, geliştirici, uygulamanın kullanıcı verilerine erişmek için ihtiyaç duyduğu kapsamları (izinleri) belirtmek üzere GCP içinde bir OAuth uygulaması oluşturmalıdır. Bir kullanıcı o uygulamayı kullanmak istediğinde, belirtilen kapsamlarda belirtilen verilere erişim sağlayacağına dair uygulamanın kabul edilmesi gerektiği konusunda uyarılacaktır.

Bu, teknik olmayan kullanıcıları, sonuçları anlamayabilecekleri duyarlı bilgilere erişen uygulamaları kullanmaya yönlendirmenin çok etkili bir yoludur. Ancak, kuruluş hesaplarında bunun gerçekleşmesini engellemenin yolları vardır.

Doğrulanmamış Uygulama uyarısı

Bahsedildiği gibi, Google her zaman kullanıcının, uygulamanın adına verdikleri izinleri kabul etmesi için bir uyarı penceresi sunacaktır. Ancak, uygulama tehlikeli olarak kabul edilirse, Google önce tehlikeli olduğunu belirten bir uyarı penceresi gösterecek ve kullanıcının uygulamaya izin vermesini daha zor hale getirecektir.

Bu uyarı, şu tür uygulamalarda görünür:

  • Özel verilere erişebilen herhangi bir kapsam kullanıyor (Gmail, Drive, GCP, BigQuery...)

  • 100'den az kullanıcıya sahip uygulamalar (100'den fazla kullanıcıya sahip uygulamalar için doğrulanmamış uyarıyı göstermeyi durdurmak için bir inceleme süreci de gereklidir)

İlginç Kapsamlar

Burada tüm Google OAuth kapsamlarının bir listesini bulabilirsiniz.

  • cloud-platform: Google Cloud Platform hizmetlerindeki verilerinizi görüntüleyin ve yönetin. GCP'de kullanıcıyı taklit edebilirsiniz.

  • admin.directory.user.readonly: Kuruluşunuzun GSuite dizinini görüntüleyin ve indirin. Tüm kullanıcıların adlarını, telefon numaralarını, takvim URL'lerini alın.

Bir OAuth Uygulaması Oluşturma

OAuth Client ID oluşturmaya başlayın

  1. https://console.cloud.google.com/apis/credentials/oauthclient adresine gidin ve onay ekranını yapılandırmak için tıklayın.

  2. Ardından, kullanıcı türünün içsel (yalnızca kuruluşunuzdaki kişiler için) veya harici olup olmadığı sorulacaktır. İhtiyaçlarınıza uygun olanı seçin

  • İçsel, kuruluşun bir kullanıcısını zaten ele geçirdiyseniz ve başka birini avlamak için bu Uygulamayı oluşturuyorsanız ilginç olabilir.

  1. Uygulamaya bir ad, bir destek e-postası (daha fazla anonimleşmek için bir googlegroup e-postası ayarlayabileceğinizi unutmayın), bir logo, yetkilendirilmiş alanlar ve diğer güncelleştirmeler için bir e-posta verin.

  2. OAuth kapsamlarını seçin.

  • Bu sayfa, hassas olmayan izinler, hassas izinler ve kısıtlı izinler olmak üzere üçe ayrılmıştır. Yeni bir izin eklediğinizde, kategorisine eklenir. İstenen izinlere bağlı olarak, kullanıcıya ne kadar hassas olduklarını belirten farklı uyarılar görünecektir.

  • Hem admin.directory.user.readonly hem de cloud-platform hassas izinlerdir.

  1. Test kullanıcıları ekleyin. Uygulamanın durumu test aşamasındayken, yalnızca bu kullanıcılar uygulamaya erişebilecekler, bu nedenle avlamayı yapacağınız e-postayı eklemeyi unutmayın.

Şimdi daha önce oluşturulan OAuth Client ID kullanarak bir web uygulaması için kimlik bilgileri alalım:

  1. https://console.cloud.google.com/apis/credentials/oauthclient adresine geri dönün, bu sefer farklı bir seçenek görünecektir.

  2. Web uygulaması için kimlik bilgileri oluşturmayı seçin

  3. Gerekli Javascript kökenlerini ve yönlendirme URI'lerini ayarlayın

  • Test için http://localhost:8000/callback gibi bir şey belirleyebilirsiniz

  1. Uygulama kimlik bilgilerinizi alın

Son olarak, OAuth uygulama kimlik bilgilerini kullanan bir web uygulamasını çalıştıralım. Bir örneği https://github.com/carlospolop/gcp_oauth_phishing_example adresinde bulabilirsiniz.

git clone ttps://github.com/carlospolop/gcp_oauth_phishing_example
cd gcp_oauth_phishing_example
pip install flask requests google-auth-oauthlib
python3 app.py --client-id "<client_id>" --client-secret "<client_secret>"

http://localhost:8000 adresine gidin, Google ile giriş yapın düğmesine tıklayın, şu şekilde bir mesajla karşılaşacaksınız:

Uygulama erişim ve yenileme belirteçlerini gösterecek, bu belirteçler kolayca kullanılabilir. Bu belirteçleri nasıl kullanacağınız hakkında daha fazla bilgi için şu adrese bakın:

GCP - Non-svc Persistance

glcoud Kullanımı

Web konsolu yerine gcloud kullanarak bir şeyler yapmak mümkündür, şu adrese bakın:

GCP - ClientAuthConfig Privesc

Referanslar

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları:

Last updated