• Kategori: Güvenlik
  • Eyüp ÇELİK
  • Gösterim: 7247

Symlink ile Web Hacking ve Güvenlik

Merhaba arkadaşlar. İşlerimin oldukça yoğun olması, eğitimler, konferanslar v.s dolayı yaklaşık 2 aylık bir süredir makale yazamıyordum. Bu makalemizde yeni nesil web saldırı yöntemlerinden biri olan “Symlink (Symbol Link)” saldırılarını detaylıca inceleyeceğiz.

Symlink Nedir? Symlink ile Web Hacking

Önce “Symlink”in ne olduğu hususuna değineceğim. Linux işletim sistemlerinde tüm dosyalar hiyerarşik bir düzende klasörlerin (dizinlerin) içerisinde tutulurlar. Bir klasör içerisinde bulunan dosyayı başka bir klasör içerisinde kullanmak istiyor isek ve bu dosyayı bulunduğu klasör dışında bir yere kopyalamak istemiyor isek imdadımıza “Symlink” yetişiyor. Symlink adından da anlaşılacağı üzere bir sembolik bağ oluşturur. Bu yöntem ile üzerinde çalıştığımız dosya bir yerde olacak ve biz ona istediğimiz dizinden erişebileceğiz. Temel saldırı mantığı da burada oluşmaktadır işte… Linux’ta bulunan (ln) komutu bu sembolik bağı oluşturmak için kullanılır. Bir sunucuya erişildiğinde eğer gerekli güvenlik önlemleri alınmış ise kritik dosyaların içeriği okunamamaktadır. Örneğin, configuration.php dosyası okunamıyor. Symlink yaparak uzaktan bu dosya rahatlıkla okunabilir. Web sunucumuzun güvenliğini sağlamış olalım. Sunucumuzda Shell-Exploitlerin çalıştığı fonksiyonların devre dışı olduğunu varsayalım. Böyle bir web sunucusunda exploitler çalışmayacaktır.

“ln –s /root/eyup/klasor/dosya.txt  /var/www/eyup.txt”

Bu komut ile /root/eyup/klasor/ dizininde bulunan dosya.txt dosyası /var/www/ dizininde eyup.txt dosyasına symlink’lendi. Böylece erişemediğimiz dosya.txt dosyasına Symlink üzerinden erişerek /var/www/eyup.txt dizininden okuyabiliriz. Bu yöntem ile güvenlik önlemlerinin bir çoğu bypass edilmiş olacaktır.

PHP’de de bu aşağıdaki gibi olacaktır.

<?php

$dosya = ‘../../home/asia/configuration.php’;

$yeniYol = ‘../../home/erica/sym/1.txt’;

symlink($dosya, $yeniYol);

echo readlink($yeniYol);

?>

Bu PHP kodu ile /home/asia/ dizininde bulunan configuration.php dosyasını okuyarak /home/erica/sym/ dizininde 1.txt olarak symlink’ledik. Normal şartlarda erişemediğimiz configuration.php dosyasına Symlink üzerinden erişerek, dosya içerisinde bulunan yolları okuduk.

Örnek bir uygulama yapalım.

Symlink

Resim-01

02

Resim-02

Resim-01’de göreceğiniz üzere www.eyupcelik.com.tr sitesine yüklenmiş bir Shell mevcut. Bu shellde devre dışı bırakılmış fonksiyonları görebilirsiniz. Resim-02’de de www.fundayilmaz.com.tr sitesinde bulunan Symlink Shell mevcuttur. Biz www.fundayilmaz.com.tr adresinde bulunan Shell den faydalanarak www.eyupcelik.com.tr adresinde bulunan konfigürasyon dosyasına erişeceğiz.

Bunun için Symlink Shell’ine /home/kullanıcıadı/public_html/config.php – dosya adı olarakta 1.txt yazacağız.

03

Resim-03

Okumak istediğimiz ve Symbol linklemek istediğimiz dosya adlarını yazıp symlink’i tıkladıktan sonra 1.txt adındaki dosyamıza erişerek içeriğini okuyabiliriz.

04

Resim-04

Symlink üzerinden okuduğumuz 1.txt dosyası Resim-04’teki gibidir.

Symlink Saldırısını Engelleme

Symlink saldırılarını engellemek için PHP-Symlink fonksiyonunu deaktif etmemiz gerekir. Bunun için php.ini dosyamızda bulunan disable_functions satırını disable_functions= “show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open, symlink” şeklinde değiştirip apache sunumuzu restart etmemiz gerekir.

Symlink Engellemesini Bypass Etme

Symlink saldırılarını disable_functions ile engellemiş isek, bu güvenlik önlemi de bypass edilebilir. Bunu bypass etmek için Symlink shell’inin bulunduğu klasör içerisine bir php.ini dosyası yükleyerek bu fonksiyon bypass edilebilir. Yükleyeceğimiz php.ini dosyası içerisine disable_fuctions= “” yazıp, php.ini dosyasını Symlink shell’inin bulunduğunu dizine yükleyerek güvenlik yöntemini atlatabiliriz. Bu bypass yöntemini engellemek için de php.ini dosyasının sadece bir yerden okunması, dış php.ini dosyalarının okunmasını engelleyerek atlatabilirsiniz.

Konu ile ilgili olarak hazırlamış olduğum videoya aşağıdan erişebilirsiniz.

Symlink Shell : http://www.eyupcelik.com.tr/CehLabs/Symlink.rar

Yardımlarından dolayı İsmail SAYGILI’ya teşekkür ederim.

Güvenli günler.

Comments

-2 Guest 28-03-2013 09:44 #1
Çok faydalı bilgiler paylaşmışsınız.
Teşekkür ediyor saygılar sunuyorum.
Quote
+2 Guest 12-07-2013 09:59 #2
teşekkürler çok faydalı oldu.
Quote
0 Guest 23-07-2013 15:59 #3
windows hosting sunucusundaki siteye yapılan shell saldırılarını nasıl engelleriz Teşekkür ederim.
Quote
0 Guest 16-10-2013 19:01 #4
Faydalı Bilgi
Quote
0 Guest 20-10-2013 23:53 #5
Merhabalar.

Windows sunucuda kullanmış olduğunuz teknolojiyi (PHP, ASP, ASP.NET) de yazarsanız daha iyi yardımcı olabilirim.
Quote

Yorum ekle


Güvenlik kodu Yenile

Bookmaker betfair Bonus review by ArtBetting.co.uk

Bookmaker bet365 review by ArtBetting.co.uk

Germany bookmaker b.artbetting.de review by ArtBetting.de

Bookmaker Greece BET365 review by ArtBetting.gr

Back to top