Selam dostlar, bugün size tamamen gerçekçi ve güncel bir senaryodan bahsedeceğim. İşin içinde son 2 yılda çıkan birkaç kritik CVE var, hepsi production ortamlarında hâlâ karşılaşılan türden. Amacımız sadece "exploit yazmak" değil, gerçek bir red team operasyonunda nasıl adım adım ilerleyebileceğimizi anlatmak. Konu oldukça uzun ve detaylı olacak, sabırlı okuyun.
Öncelikle hedef ortamı düşünelim: Birçok şirket hâlâ Kubernetes 1.24-1.26 kullanıyor ve CRI-O runtime'ı tercih ediyor. containerd 1.6 serisi de yaygın. Bu iki runtime arasındaki iletişimde ufak bir misconfig + CVE birleşimi işleri çok hızlı değiştirebiliyor.
İlk adım genellikle node'lara SSRF veya iç ağ erişimiyle başlamak oluyor. Sonra CRI-O'nun container create endpoint'ine ulaşabiliyorsan iş biter.
Bu basit istek bile doğru versiyonda (CRI-O < 1.28.2) container'ı privileged modda başlatmana izin verebiliyor. containerd tarafındaki CVE-2023-25173 ile birleşince host filesystem'ine direkt mount atabiliyorsun.
Devamında cluster-wide persistence için etcd'ye ulaşmak lazım. Çoğu ortamda etcd TLS kullanıyor ama node'lar arası mTLS kontrolü zayıf kalıyor. Birkaç satır Go ile etcd client'ı taklit edip secret'ları çekmek işin en kolay kısmı haline geliyor.
Sonuçta bütün cluster'ı ele geçirmek 4-5 adımdan oluşuyor ve hepsi açık kaynak araçlarla yapılabiliyor. Bu tarz zincirleri production'da gören çok az insan var, çünkü herkes tek CVE'ye odaklanıyor.
Eğer bu tarz multi-stage saldırıları daha derinlemesine merak ediyorsan söyle, bir sonraki yazıda etcd persistence mekanizmalarını da açarım.
Öncelikle hedef ortamı düşünelim: Birçok şirket hâlâ Kubernetes 1.24-1.26 kullanıyor ve CRI-O runtime'ı tercih ediyor. containerd 1.6 serisi de yaygın. Bu iki runtime arasındaki iletişimde ufak bir misconfig + CVE birleşimi işleri çok hızlı değiştirebiliyor.
İlk adım genellikle node'lara SSRF veya iç ağ erişimiyle başlamak oluyor. Sonra CRI-O'nun container create endpoint'ine ulaşabiliyorsan iş biter.
Hidden content - for more
Konuyu Görebilmeniz için "Beğenmeniz ve Yorum yapmaniz" Gerekir.
Devamında cluster-wide persistence için etcd'ye ulaşmak lazım. Çoğu ortamda etcd TLS kullanıyor ama node'lar arası mTLS kontrolü zayıf kalıyor. Birkaç satır Go ile etcd client'ı taklit edip secret'ları çekmek işin en kolay kısmı haline geliyor.
Sonuçta bütün cluster'ı ele geçirmek 4-5 adımdan oluşuyor ve hepsi açık kaynak araçlarla yapılabiliyor. Bu tarz zincirleri production'da gören çok az insan var, çünkü herkes tek CVE'ye odaklanıyor.
Eğer bu tarz multi-stage saldırıları daha derinlemesine merak ediyorsan söyle, bir sonraki yazıda etcd persistence mekanizmalarını da açarım.
Bu içeriği görmek için giriş yapın.