GCP - Non-svc Persistance
Last updated
Last updated
Bir şekilde GCP kimlik bilgilerini veya GCP ortamında çalışan bir makineyi ele geçirdikten sonra bu kullanışlı tekniklerden yararlanabilirsiniz.
Bir kullanıcının mevcut token'ını almak için şunu çalıştırabilirsiniz:
Bu sayfada bu belirteci gcloud kullanarak doğrudan nasıl kullanacağınızı kontrol edin:
Yeni bir erişim belirteci oluşturmak için ayrıntıları almak için çalıştırın:
Ayrıca, $HOME/.config/gcloud/application_default_credentials.json
ve $HOME/.config/gcloud/legacy_credentials/*/adc.json
dosyalarında yenileme token'ları bulmak mümkündür.
Yenilenmiş bir erişim token'ı almak için yenileme token'ı, istemci kimliği ve istemci sırrını kullanarak şunu çalıştırın:
Yenileme belgelerinin geçerliliği Yönetici > Güvenlik > Google Cloud oturum kontrolü bölümünde yönetilebilir ve varsayılan olarak 16 saat olarak ayarlanmıştır, ancak hiçbir zaman süresiz olarak ayarlanabilir:
gcloud auth login
gibi bir şey kullandığınızda kimlik doğrulama akışı tarayıcıda bir iletişim kutusu açacak ve tüm kapsamları kabul ettikten sonra tarayıcı, aracın açtığı http bağlantı noktasına şu gibi bir istek gönderecektir:
Sonra, gcloud, durumu ve kodu bazı sabit client_id
(32555940559.apps.googleusercontent.com
) ve client_secret
(ZmssLNjJy2998hD4CTg2ejr2
) ile kullanarak son yenileme belirteci verilerini alacaktır.
Localhost ile iletişim HTTP üzerinden gerçekleştiği için verileri ondersiz almak mümkündür, ancak bu veri yalnızca 1 kez geçerlidir, bu yüzden bu işe yaramaz, yenileme belirtecini dosyadan okumak daha kolaydır.
Tüm Google kapsamlarını https://developers.google.com/identity/protocols/oauth2/scopes adresinde bulabilir veya aşağıdaki komutu çalıştırarak alabilirsiniz:
gcloud
'un kimlik doğrulamak için kullandığı uygulamanın hangi kapsamları destekleyebileceğini bu betikle görmek mümkündür:
Uygulamanın desteklediği kapsamların kontrol edildiğinde şunlar tespit edildi:
Bu uygulamanın drive
kapsamını desteklediğini görmek ilginç, bu da bir saldırganın bir kullanıcıyı bu kapsamla bir token oluşturmaya zorladığında GCP'den Workspace'e yükselmesine izin verebilir.
Bir hizmet hesabının özel anahtar dosyasını ele geçirirseniz, genellikle istediğiniz sürece buna erişebileceksiniz. Ancak, bir hizmet hesabının OAuth token'ını çalarsanız, bu daha da ilginç olabilir, çünkü varsayılan olarak bu tokenlar genellikle sadece bir saat için kullanışlı olsa da, kurban özel API anahtarını sildiğinde, OAuth tokenı hala geçerli olacaktır.
Tabii ki, GCP ortamında çalışan bir makinede olduğunuz sürece, o makineye bağlı hizmet hesabına metadata uç noktasına başvurarak erişebileceksiniz (bu uç noktada erişebileceğiniz OAuth tokenlarının genellikle kapsamlarla sınırlı olduğunu unutmayın).
Bu teknikler için bazı çözümler https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2 adresinde açıklanmıştır.