İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

CHMOD ve Shell dosyası korunması

SavaS

0
İyinet Üyesi
Katılım
1 Haziran 2007
Mesajlar
234
Reaction score
4
Konum
Antalya
Bildiğimiz üzere Wordpress ve türevi sistemlerde resim yüklenen klasörlerin CHMOD'u 777 olmakta. Bu açıktan faydalanan denyolar shell dosyası yardımıyla siteleri heklemekte.

buna nasıl engel olabiliriz?
 

OnuR

0
İyinet Üyesi
Katılım
28 Ekim 2004
Mesajlar
1,817
Reaction score
52
Konum
makedonya
Eğer sadece wordpress kullanıyorsanız hiçbir bypass veya shell'i upload edemezler. Gif89a; yöntemi bile eski sürümlerde işliyor sadece wp'nin. Sadece wordpress için ise en son sürüme geçmeniz çözüm olacaktır..

Sunucu sahibi iseniz belirtin ben konfigürasyonları anlatayim birebir uygulayın.
 

SavaS

0
İyinet Üyesi
Katılım
1 Haziran 2007
Mesajlar
234
Reaction score
4
Konum
Antalya
Eevet sunucu sahibiyim, sorun sadece wordpress'te değil phpBB forumlarında da aynı şey geçerli malesef :(

Ayrıca WP'nin 2.8.x sürümündeyken, elemanın biri msn'e ekleyip böyle böyle sisteminizde açık var dedi ve database bilgilerine ulaşabilmiş config dosyasından.

php.ini'deki allow_url_open'dan mı acaba?

Yardımcı olursanız sevinirim.
 

OnuR

0
İyinet Üyesi
Katılım
28 Ekim 2004
Mesajlar
1,817
Reaction score
52
Konum
makedonya
Eevet sunucu sahibiyim, sorun sadece wordpress'te değil phpBB forumlarında da aynı şey geçerli malesef :(

Ayrıca WP'nin 2.8.x sürümündeyken, elemanın biri msn'e ekleyip böyle böyle sisteminizde açık var dedi ve database bilgilerine ulaşabilmiş config dosyasından.

php.ini'deki allow_url_open'dan mı acaba?

Yardımcı olursanız sevinirim.

hayır allow_url_open'den değil. Şimdi bir kaç fonksiyon'u kapatalım php.ini içerisindeki disable_functions= bölümünden.. Ondan sonra da Modsecurity'e c99 vs gibi basit sheller için kural koyacağız..

İlk olarak; php.ini dosyasını açıp disable_functions kısmını;

PHP:
   disable_functions = glob, posix_getpwuid, array_compare, array_user_key_compare, ini_restore, exec, proc_get_status, proc_nice, proc_open, allow_url_fopen, fin, pconnect, system, dl, passthruexec, shell_exec, proc_close, proc_get_status, chown, chgrp, escapeshellcmd, escapeshellarg, fileread, passthru, popen,curl_exec, shell, execute

şeklinde değiştiriyor ve bypasslara karşı sunucumuzu en sağlıklı şekilde koruyoruz. (*bypass: sheller içerisinde dosya okumaya yarayan kod betiği)

Önemli: safe_mode mutlaka ON olmalı ve sürümler güncel olmalı (cpanel, kernel vs.) bir çok bypass ve shell'ler kıpırdayamayacaktır.

İkinci işlem ise Modsecurity ile c99, r57 gibi shelllerin çalışmalarını önleyerek işlem yapmalarına izin vermiyoruz..

Modsecurity kurulu değilse hemen WHM panelinizden "Plugins" bölümüne girip Modsecurityi seçerek kurabilirsiniz. Sonra sayfayı yenileyip sol whm menüsünde en alta ModSecurity'nin eklendiğini göreceksiniz..

Eğer ModSecurity'i kurduysak benim devamlı kullandığım Ni.net.tr'nin hazırlamış olduğu modsec rules'i sunucumuza çekip yüklüyoruz ve c99 gibi shell'lere de elveda demiş oluyoruz.

PHP:
cd /usr/local/apache/conf/
rm -rf modsec.conf
wget www.ni.net.tr/dosyalar/modsec.conf.txt
mv modsec.conf.txt modsec.conf

Apache restart yapmayı unutmayalım.

PHP:
/etc/init.d/httpd restart

Bir sorunla karşılaşırsan buradan bildirirsen yardımcı olmaya çalışalım..
 

SavaS

0
İyinet Üyesi
Katılım
1 Haziran 2007
Mesajlar
234
Reaction score
4
Konum
Antalya
Yazdıklarınızı uyguladım faat sunucumda eggdrop tarzı ircd botlarını da barındırdığım için, modsec.conf'un içerisindeki eggdrop filter'ının önünü kapattım bir sorun olacağını sanmıyorum.

Bu gece vakti zaman ayırıp ilgilendiğiniz için, teşekkür ederim.
 

OnuR

0
İyinet Üyesi
Katılım
28 Ekim 2004
Mesajlar
1,817
Reaction score
52
Konum
makedonya
Rica ederim bu konularda döküman paylaşımlarını hızlandırıp biraz daha sunucularımızı kontrol altında tutmak en iyisi..
 

zemed

0
İyinet Üyesi
Katılım
19 Nisan 2010
Mesajlar
0
Reaction score
2
Konum
php.exe
@Onur ; disable_functions içinde curl_exec ' i koymuşsun. Hal böyleyken herhangi bir sanal pos işleminde banka ile iletişim kurulamaz diye düşünüyorum.
 

sonsuzhost

0
İyinet Üyesi
Katılım
28 Şubat 2006
Mesajlar
1,287
Reaction score
1
Konum
burdan yak
verilen Modsec rule dosyası güzel ancak bence aşırı abartılmış bu hali ile istedikleriniz dışında istemediğiniz bir çok şeyide engelleyecektir rule lar arasından seçmeler yapılmalı o conf taki tüm rule lar kullanılırsa önlemin yanında bir çok özelliğide kaybedersiniz ve sunucudaki farklı scriptler vb.. sorun yaşarsınız

php.ini de allow_url_fopen ı kapatmak bence gereksiz.

Özetle hepimiz biliyoruz ki bu tür modsec rule ları vs.. sadece scriptin verdiği açıkları kapatmaya çalışmaktır işin özünde var olan açığı sunucu da modsec önlemleri alarak değilde direkt scriptten kapatmanın yolları bulunmalı.

Şu unutulmamalı ki durduğu yerde chmod 777 olan klasöre shell yüklenemez illaki script bazlı bir açık olacak ki o shell o 777 olan klasöre yüklenebilsin ve yine scriptte bir açık olmadığı sürece allow_url_fopen ile shell vb.. durduk yere include edilemez.
 

OnuR

0
İyinet Üyesi
Katılım
28 Ekim 2004
Mesajlar
1,817
Reaction score
52
Konum
makedonya
@Onur ; disable_functions içinde curl_exec ' i koymuşsun. Hal böyleyken herhangi bir sanal pos işleminde banka ile iletişim kurulamaz diye düşünüyorum.

@zemed çok sayıda shared host kullanan bir serverde mutlaka ama mutlaka curl_exec gibi önemli zararlar verilebilecek fonksiyonlar engellenmelidir. Engellenmeli dediğimden kasıt şu Safe mod gerekmiyorsa script'ler için güvenli mod'da bir nebze engelleyecektir ama en etkilisi php.ini üzerinden engellemedir.

Ayrıca sanal pos ile bankadan iletişim kurabilirsin curl komple çalışmamazlık yapmıyor curl'un fonksiyonları çalışıyor. Bana bir örnek kod verebilir misin önemli bir portalın içerisinden kaynakla? bakıp deneyelim.

verilen Modsec rule dosyası güzel ancak bence aşırı abartılmış bu hali ile istedikleriniz dışında istemediğiniz bir çok şeyide engelleyecektir rule lar arasından seçmeler yapılmalı o conf taki tüm rule lar kullanılırsa önlemin yanında bir çok özelliğide kaybedersiniz ve sunucudaki farklı scriptler vb.. sorun yaşarsınız

php.ini de allow_url_fopen ı kapatmak bence gereksiz.

Özetle hepimiz biliyoruz ki bu tür modsec rule ları vs.. sadece scriptin verdiği açıkları kapatmaya çalışmaktır işin özünde var olan açığı sunucu da modsec önlemleri alarak değilde direkt scriptten kapatmanın yolları bulunmalı.

Şu unutulmamalı ki durduğu yerde chmod 777 olan klasöre shell yüklenemez illaki script bazlı bir açık olacak ki o shell o 777 olan klasöre yüklenebilsin ve yine scriptte bir açık olmadığı sürece allow_url_fopen ile shell vb.. durduk yere include edilemez.

allow_url_fopen'i kapatmak gerekli değil zaten diğer fonksiyonlar kapatıldığında onun bi önemi kalmıyor zaten ayrıca 777 olan her dizine zaten yükleme yapılamaz o yönden bir sıkıntı bulunmuyor.

Ayrıca modsec kurallarına bende baktım ve kullanıyorum bir sıkıntı olmadı şuana kadar + sıkıntı olduğunda engellenen içeriği modsec ile açmak en mantıklısı. Siz engellemenizi yapın sıkıntı yaratırsa açın c99 gibi basit birşeyle girilip darmadağın olmaktan daha iyidir.
 

zemed

0
İyinet Üyesi
Katılım
19 Nisan 2010
Mesajlar
0
Reaction score
2
Konum
php.exe
Merhaba , eski çalıştığım yerde curl_exec fonksiyonunu sunucudan pasifleştirdikleri için script banka ile iletişime geçemiyordu. Biraz uğraştıktan sonra hatanın curl_exec in pasifleştirildiği için meydana geldiğini bulmuştum.

Onun haricinde 3D kullanmayan sistemlerde kullanılan yapı aşağıdadır. Mesela çalışan bir garanti bankası pos dosyasının bir bölümü

PHP:
$url = "bankaurlsi";  //TEST
$ch = curl_init();    // initialize curl handle
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 90); // times out after 90s
curl_setopt($ch, CURLOPT_POSTFIELDS, $veriler); // add POST fields
$result = curl_exec($ch); // run the whole process


3D sistemini zamanında bir müşterime yapmıştım fakat uzun süre olduğundan tam hatırlamıyorum. 3D'li kodları inceleyip tekrar buraya koyarım.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst