İyinet'e Hoşgeldiniz!

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

Kayıt Ol!

Sunucu Sahiplerine: Perl Scripti Açığı Uyarısı ve Önlemi

LaTenT

0
İyinet Üyesi
Katılım
8 Kasım 2005
Mesajlar
717
Reaction score
16
Merhaba,
Ana sunucum üzerinde, güncel (aslında eski ama yeni yaygınlaşan) bir perl açığınının/suistimalinin raporunu aldım. Konu yakın zamanda (2010 şubat-mart) bir webmaster forumunda da tartışılmış. Kimi ücretli yaparım, kimi çözümü imkansız demiş. PL uzantılı scripti inceleyerek işe yarar bir çözüm üretmeye çalıştım. Direk uygulama yönüyle bunu engellemiş görünüyorum. Çözümü şöyle:

* Tüm sunucu sahiplerinin bu yolu izlemesini öneririm.

1. ssh root girişi yapın. chmod 711 /usr/bin/perl komutunu verin. Eğer diğer forumlarda belirtildiği gibi bu değeri 710 veya 444 yaparsanız perl kullanan webmail, awstats gibi scriptler çalışmayacaktır. Bu nedenle bu değeri 711 yapın.

2. httpd.conf dosyanızı açın. Yerini bilmiyorsanız whereis httpd.conf . pico /etc/httpd/conf/httpd.conf veya nano /etc/httpd/conf/httpd.conf ardından ctrl+w tuşuyla addhand yazıp entera basın. Sizi şu satıra götürecektir: AddHandler cgi-script .cgi .pl .plx .ppl .perl bu satırın başına # işareti koyarak pl, perl okumayı engelleyin. Böylece .htaccess ile pl çalıştırma izninin de önüne geçmiş olacağız.

3. Sunucunuzun http servisini yeniden başlatın.

Önemli Uyarılar:
* İki adımı da tam olarak uygulamadan bu açığın önüne geçmeniz mümkün görünmüyor.
* Mod-security rulesi yapsanız dahi pl scripti aspx, asp (sunucunuz linux olsa da) şeklinde çalıştırılabiliyor.
* Scriptin PHP tabanlı olanı "system" fonksiyonunu kullanıyor. Php.ini'den bu fonksiyonu disable etmelisiniz.


Ek-1: Bu tür bir scripti bulmak için sunucumuzu taratalım. PHP veya PL uzantısını siz belirleyebilirsiniz:

rm -rf /root/tara.txt
find /home/ -name "*.php" -print | xargs egrep -l 'ls -al' >> /root/tara.txt

işlem bitince pico /root/tara.txt

pl taramak için: "*.php" olan yeri "*.pl" olarak değiştirin.

NOT: Bu konuyla ilgili deneyimlerinizi, bilgilerinizi paylaşmaktan çekinmeyin. Böyle böyle bir açık var bunu ücretli yaparım diyebilirdim. Konu hakkında ne tür görüşünüz varsa belirtin irdeleyelim.

NOT-2: Perl scriptin chmodu 777 yapıldığında script çalışıyor. Ancak ls -al /home/*/public_html/wp-config.php abc.txt gibi komutların çıktısı boş dönüyor. abc.txt'i okutmak mümkün olmadı.
 

LaTenT

0
İyinet Üyesi
Katılım
8 Kasım 2005
Mesajlar
717
Reaction score
16
bir tarama şekli daha: find /home/ -name "*.pl" -print | xargs egrep -l 'alarm($CommandTimeoutDuration)' >> /root/tara2.txt
 

Z.YÜKSEL

0
İyinet Üyesi
Katılım
29 Ocak 2010
Mesajlar
1,489
Reaction score
18
Süpersin dostum bu tür konular oldukça iyinet eski haline kısa sürede gelicektir, teşekkürler +rep.

Edit: K.bakma u LaTenT Mesajı yeniden değerlendirebilmeniz için başka Üyelerin Mesajlarınıda değerlendirmeniz gerekmektedir.

Bir dahaki sefere artık:p
 

KLAMP

0
İyinet Üyesi
Katılım
1 Şubat 2010
Mesajlar
290
Reaction score
0
Merhaba,
Ana sunucum üzerinde, güncel (aslında eski ama yeni yaygınlaşan) bir perl açığınının/suistimalinin raporunu aldım. Konu yakın zamanda (2010 şubat-mart) bir webmaster forumunda da tartışılmış. Kimi ücretli yaparım, kimi çözümü imkansız demiş. PL uzantılı scripti inceleyerek işe yarar bir çözüm üretmeye çalıştım. Direk uygulama yönüyle bunu engellemiş görünüyorum. Çözümü şöyle:

* Tüm sunucu sahiplerinin bu yolu izlemesini öneririm.

1. ssh root girişi yapın. chmod 711 /usr/bin/perl komutunu verin. Eğer diğer forumlarda belirtildiği gibi bu değeri 710 veya 444 yaparsanız perl kullanan webmail, awstats gibi scriptler çalışmayacaktır. Bu nedenle bu değeri 711 yapın.

2. httpd.conf dosyanızı açın. Yerini bilmiyorsanız whereis httpd.conf . pico /etc/httpd/conf/httpd.conf veya nano /etc/httpd/conf/httpd.conf ardından ctrl+w tuşuyla addhand yazıp entera basın. Sizi şu satıra götürecektir: AddHandler cgi-script .cgi .pl .plx .ppl .perl bu satırın başına # işareti koyarak pl, perl okumayı engelleyin. Böylece .htaccess ile pl çalıştırma izninin de önüne geçmiş olacağız.

3. Sunucunuzun http servisini yeniden başlatın.

Önemli Uyarılar:
* İki adımı da tam olarak uygulamadan bu açığın önüne geçmeniz mümkün görünmüyor.
* Mod-security rulesi yapsanız dahi pl scripti aspx, asp (sunucunuz linux olsa da) şeklinde çalıştırılabiliyor.
* Scriptin PHP tabanlı olanı "system" fonksiyonunu kullanıyor. Php.ini'den bu fonksiyonu disable etmelisiniz.


Ek-1: Bu tür bir scripti bulmak için sunucumuzu taratalım. PHP veya PL uzantısını siz belirleyebilirsiniz:

rm -rf /root/tara.txt
find /home/ -name "*.php" -print | xargs egrep -l 'ls -al' >> /root/tara.txt

işlem bitince pico /root/tara.txt

pl taramak için: "*.php" olan yeri "*.pl" olarak değiştirin.

NOT: Bu konuyla ilgili deneyimlerinizi, bilgilerinizi paylaşmaktan çekinmeyin. Böyle böyle bir açık var bunu ücretli yaparım diyebilirdim. Konu hakkında ne tür görüşünüz varsa belirtin irdeleyelim.

NOT-2: Perl scriptin chmodu 777 yapıldığında script çalışıyor. Ancak ls -al /home/*/public_html/wp-config.php abc.txt gibi komutların çıktısı boş dönüyor. abc.txt'i okutmak mümkün olmadı.



pico /usr/lib/php.ini içinde
ctrl w system aradım disable_functions karşısında zaten Ayarlı

disable_functions = ini_set,ini_get_all,hopenbasedir,system,dl,passth ru,cat,exec,popen,proc_close,proc_get_status,proc_ nice,proc_open,escapeshellcmd,escapeshellarg,show_ source,posix_mkfifo,mysql_list_dbs,get_current_use r,getmyuid,pconnect,link,symlink,pcntl_exec,ini_al ter,leak,apache_child_terminate,posix_kill,posix_s etpgid,posix_setsid,posix_setuid,posix_getpwuid,pr oc_terminate,syslog,fpassthru,stream_select,socket _select,socket_create,socket_create_listen,socket_ create_pair,socket_listen,socket_accept,socket_bin d,socket_strerror,pcntl_fork,pcntl_signal,pcntl_wa itpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifs ignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wter msig,openlog,apache_get_modules,apache_get_version ,apache_getenv,apache_note,apache_setenv,virtual,u ser_dir,ini_restore



burda bir sorun görünmüyor anladığım kadarıyla benim php.ini de acaba başka hangi kmutlarıda disable etmemiz gerek
 

LaTenT

0
İyinet Üyesi
Katılım
8 Kasım 2005
Mesajlar
717
Reaction score
16
ek olarak;
chmod 700 /bin/cat
chmod 700 /bin/ln
chmod 700 /bin/ls

böylece bu komutları sadece roota açtık.

@Klamp: disable ettiğin fonksiyonlarda sorun var. kopyala yapıştır yapmışsın aralarda boşluk kalmış. örneğin u ser_dir değil user_dir olmalı.
 

KLAMP

0
İyinet Üyesi
Katılım
1 Şubat 2010
Mesajlar
290
Reaction score
0
ek olarak;
chmod 700 /bin/cat
chmod 700 /bin/ln
chmod 700 /bin/ls

böylece bu komutları sadece roota açtık.

@Klamp: disable ettiğin fonksiyonlarda sorun var. kopyala yapıştır yapmışsın aralarda boşluk kalmış. örneğin u ser_dir değil user_dir olmalı.

teşekkürler Latenet Ni-osman makalesinden almıştım o kodları kodları kontrol etmeden yapıştırmışım bilgilendirma için teşekkür ederim
 

KLAMP

0
İyinet Üyesi
Katılım
1 Şubat 2010
Mesajlar
290
Reaction score
0
chmod 700 /bin/cat
chmod 700 /bin/ln
chmod 700 /usr/bin/perl
chmod 700 /bin/dir
chmod 700 /usr/bin/dir
chmod 700 /usr/bin/find
chmod 700 /usr/bin/tac
chmod 700 /usr/bin/ls


chmod 700 /usr/bin/ls
chmod: cannot access `/usr/bin/ls': No such file or directory


chmod 700 /bin/dir
chmod: cannot access `/bin/dir': No such file or directory

hata aldım burada chmod 700 vermemiz örneğin şifre değiştirmlerde sorun yaşatmazmı




bir webmaster sitesindeki bir üyenin yorumlarından alıntı yaparak yazayım birde


"

".pl" yi engellesek bile telnet.req olarak çalıştırabiliyorum ve Co$kuN 'un dediği gibi chmod ile bitmiyor iş.

Fake symlink yöntemi var. Ayrıca ln komutu engelli olsa bile açılıyor. "



" Kernel'inizi iyi bilen birisine ücret karşılığında derletin. home ve tmp klasörlerinizi noexec nosuid olarak mount ettirin. Bunların her biri kalenizin surlarını yükseltecektir "
 

KLAMP

0
İyinet Üyesi
Katılım
1 Şubat 2010
Mesajlar
290
Reaction score
0
pico /etc/httpd/conf/httpd.conf

veya

nano /etc/httpd/conf/httpd.conf


sunucuda güncelleme yapınca girdiğimiz bu ayarı sıfırlıyor

birde belli süre sonrada sıfırlıyo bunu sıfırlamaması için Ne yapabiliriz
 

kuzgun

İyinet Üyesi
Onaylı Üye
Katılım
19 Temmuz 2008
Mesajlar
12,395
Reaction score
254
geçen gün güncelledi sunucuyu host, bu açıktan yararlanarak bi kaç siteye "sadece" index atılmış
 

floppy

1
İyinet Üyesi
Katılım
7 Şubat 2011
Mesajlar
573
Reaction score
7
Konum
İstanbul

Scap

0
İyinet Üyesi
Katılım
10 Mart 2008
Mesajlar
104
Reaction score
1
En büyük tehlike perl perl e chmod 700 yapmak iyi bir çözüm olabilir.
 

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