Siber Güvenlik Dünyasına Hoşgeldiniz

Ulusal Siber Güvenlik Akademisi olarak sizlere bu alanda siber güvenlik & ethical hacking eğitimi , günümüz siber saldırılarında kullanılan araç ve teknikleri kullanarak, siber güvenlik konusunda sizlere saldırı ve savunma yönünden eğitimler ile sizlerin çözümler üretebileceğiniz bir siber dünya sunuyoruz .

  • Ulusal Siber Güvenlik Akademisi olarak sizlere bu alanda siber güvenlik & ethical hacking eğitimi , günümüz siber saldırılarında kullanılan araç ve teknikleri kullanarak, siber güvenlik konusunda sizlere saldırı ve savunma yönünden eğitimler ile sizlerin çözümler üretebileceğiniz bir siber dünya sunuyoruz .

RCE ile Nic şirketlerine girin

dokki

NEFER
NEFER
Katılım
11 Haz 2018
Mesajlar
5
Beğeniler
2
Yaş
28
#1
Şimdide alan adı yöneticileri (nic whois domain) sitelerinde bulunan Rce açığından bahsedelim.
Bu güvenlik açığı tüm türler arasında en tehlikelisidir ve genelde 10 üzerinden 10 ile derecelendirilir. Bulmak zordur. Komut çalıştırma açığı aranan scriptte, komut çalıştıran bi kod parçası olması gerekir haliyle. Bu yüzden bulmak zordur, çünkü çok gerekmedikçe webmasterlar kolay kolay komut çalıştıran kodlar yazmaz. Ancak her sistemin her katmanında bu tip açıklara rastlanabilir. Biz burada web hacking'deki mevzusundan bahsedeceğiz.
You do not have permission to view link Giriş yap veya üye ol.


Eğer birleştirecek bir komut kullanırsan, 2 komutun bileşkesini alırsın. Şekil b;



You do not have permission to view link Giriş yap veya üye ol.


Şimdi php kodumuzda deneme yapalım:

Normal sorgu(google.com):

You do not have permission to view link Giriş yap veya üye ol.



RCE(google.com|ls -la):
You do not have permission to view link Giriş yap veya üye ol.


"&" (AND Karakteri):
2 tane koyarsanız(&&) 2 komutu da çalıştırır. Örnek çıktı:
You do not have permission to view link Giriş yap veya üye ol.


Bi tane koyarsanız değişik bişeyler yapıyor(Aslında konsolda ilk komutu arka plana atar, orada çalıştırır). Ama and karakteri filtreli değilse niye bi tane koyayım ki zaten, 2 tane koyar keyfime bakarım.
Web sitemizde deneme yapalım:

You do not have permission to view link Giriş yap veya üye ol.


Mevzu 1:
url'den gönderilen & karakteri %26 ile urlencode edilmezse web server tarafından parametre ayracı olarak algılanır.

Mevzu 2:
Çıktıda önce ilk komut, sonra && 'den sonraki komut görünür.


" ` " (Backtick Karakterleri):
Bu karakter arasına yazılanlar da komut olarakçalıştırılır ve çıktısı olduğu gibi yazıldığı konumayansır.

Örnek kullanım:
You do not have permission to view link Giriş yap veya üye ol.


Burada `echo google.com` çıktısı "google.com" dur. Dolayısıyla "whois google.com" yapmış olduk. Bu karakter ile yapacağınız "rce" saldırılarında her zaman çıktı alamazsınız. Bu gibi durumlarda yaratıcılığınızı kullanın. Neticede kod çalışıyor. Örneğin wget ile kendi web adresinize istek göndertip gelen istekleri yakalatabilirsiniz(sniffer mantığı). Veya direk wget ile şelinizi sunucuya çekersiniz ;)

Web sitesi denemesi:

You do not have permission to view link Giriş yap veya üye ol.

Çıktı yok.
Komut çalışmışmı kontrol edelim:
You do not have permission to view link Giriş yap veya üye ol.

Çalışmış.


" $() " kombosu (shell değişkentanımlama):
Linux kullanan pek çoğunuz bi gün "apt-get install linux-headers-$(uname -r)" komutuna ihtiyaç duymuştur. Bu komutta kullanılan $(uname -r) kısmı bizim kernel versionumuzu basacaktır. Örnek ekran görüntüsü:
You do not have permission to view link Giriş yap veya üye ol.


Burada bize "3.18.0-kali3-amd64" döndürmüş oldu. Dolayısıyla $() içine ne yazarsak onun çıktısını döndürür. Anlık değişken kullanmış oluruz. Çıktıyı bunda da her zaman görmemiz mümkün olmayabilir. Ama wget mevzusunu burada da uygulayabiliriz. Neticede komutumuz çalışacak.

Web sitesi denemesi:

You do not have permission to view link Giriş yap veya üye ol.

Kod çalışmışmı kontrol edelim:

You do not have permission to view link Giriş yap veya üye ol.

Yemiş.


" ; " Karakteri (noktalı virgül):
Bu da && görevi görür:

Örnek deneme resim 1:
You do not have permission to view link Giriş yap veya üye ol.


Aşağısı:
You do not have permission to view link Giriş yap veya üye ol.


Gördüğünüz gibi iki komut da çalıştı. Ayrıca 2. komutu çıktıya da bastı.

Web site denemesi:

You do not have permission to view link Giriş yap veya üye ol.


Yine en altta "ls -la" çıktısı görünmekte.

" > " (echo karakteri):
Bildiğiniz gibi hem windows hem unixte bu karakter çıktıyı dosyaya yazar.
Örnek "echo asd > asd.txt" yazarsanız "asd.txt" oluşturup içine "echo asd" çıktısını yazar. Dolayısıyla "asd" yazmış olur. Biz de haliyle şelde takıldığımıza göre, "whois google.com > asd.php" yazarsak "whois google.com" çıktısını "asd.php" ye yazmış oluruz. Çıktısına müdahale edebileceğimizbir komutta ">" karakteri ile dosyaya yazabilirseksunucuda "php" dosya oluşturarak kod çalıştırabiliriz.Web denemesi yapalım:
You do not have permission to view link Giriş yap veya üye ol.



Dosyamız oluşmuşmu?
You do not have permission to view link Giriş yap veya üye ol.

Oluşmuş.


Sonuç:
Bunlar gibi belki benim de bilmediğim veya aklıma gelmeyen daha pek çok müdahale yöntemi var. Burada önemli olan, önce hangi karakterler filtreli onları tespit edip, bunları kullanmadan komuta müdahale etmenin imkanı varmı onu bulmak. He unutmadan şuna da değineyim, shellshock saldırı komutları da bu gibi komut üzerinden çalıştığındanşüphelenilen scriptlerde denenebilir.

Burada ben yazımı unix ağırlıklı yazdım ama bu yöntemlerin neredeyse hepsi windows'ta da işe yaramaktadır. Çoğunun kullanımı orada da aynıdır.

Önce çalışan komutu yorumlamak gerekir. Neticede adam komuta parametreyi " " (çift tırnak işaretleri) arasında da alabilir. Bu gibi durumda yazdıklarımız String olarak algılanacaktır. Dolayısıyla biz önce " kullanarak String bloğundan dışarı çıkmalıyız. Aynı şey ' ' (tek tırnak işaretleri) için de geçerli. Bunları kullanıp da parametreyi alırken "escape" etmemişse yine her türlü bi yolunu bulup komut çalıştırabilirsiniz. O yüzden shell'de kullandığınızda özel karakter olarak algılanan ne kadar karakter varsa kullanmanızı ve bu sayede hata almaya çalışmanızı tavsiye ederim.
Hatalar direk basılmasa bile, iç sunucu hataları alarak da denemeler yapabilirsiniz. Ayrıca bazı örneklerde gördüğünüz gibi RCE her zaman görsel olarak çıktı alma imkanı tanımaz. Bazen de Blind RCE yapmanız gerekebilir.