Технология удаления iframe вирусов с сайта. Обсудим?

12 3
SmiTT
На сайте с 05.08.2008
Offline
123
5552

Здравствуйте уважаемые, схватил я тут на свою учетную запись вирус в iframe, заражающий файлы, в названиях которых фигурируют "main" "index" "defaul"

Хотелось бы поговорить о технологии удаления подобных вирусов с сайта

т.к.

а) Может быть заражено большое количество файлов - удалять которые вручную 0 мазохизм

б) Не всегда известны названия зараженных объектов

Я использовал следующую технологию:

1) Скачал бекап фтп директории на компьютер

2) Разархивировал

3) При помощи Notepad++ сделал "Поиск в файлах", заменил код вируса на "ничего"

Вроде метод и не плохой, но мне кажется есть и другие, более оптимальные

Например скачивание двух гигабайт бекапа ещё терпимо, но открытие их через notepad++ заняло большой период времени.

Может здесь кто-нибудь может посоветовать как производить такую чистку - более быстрыми темпами?

Ещё вопрос немного из другой оперы.

Привык я хранить пароли от директорий фтп непосредственно в FTP клиенте, но как я понимаю вирусы идут через мой компьютер на сайты, подключаясь к фтп серверам и загружая вирусы. Я думаю что это дело можно предотвратить поставим один пароль на открытие фтп клиента. Какие клиенты поддерживают подобную функцию?

Заранее благодарен :) И с наступающим всех.

[Удален]
#1

Если имеется доступ по ssh то iframe можно убить так:

find . -type f -name '*.php' | xargs perl -p -i -e 's/.*malware_domain.*$//g'

команда найдет во всех файлах с расширенями php строку содержащую malware_domain, которая является частью адреса добавленного к коду сайта с вирусным кодом.

seo-alex
На сайте с 12.02.2006
Offline
143
#2

Есть программа под названием

"Словогрыз", легким движением руки выбираем закладку "Файлы" все файлы в перетаскиваем в прогу, в маске поиска пишем вредоносный код, в маске замены - ничего, обрабатывает тысячи текстовых файлов в лет, в настройках необходимо поставить расширения файлов с которыми будете работать, ну или скажем *.*, поймет.

скачать можно здесь: http://softwaremaniacs.org/soft/tr/

N
На сайте с 26.11.2006
Offline
83
nay
#3
SmiTT:

Например скачивание двух гигабайт бекапа ещё терпимо

а откуда подобные бекапы файлов? текст в базе же хранится, логично было бы просто заменить файлы новыми.

ну а в принципе многие наверно как и я резервируют те цмс которые нельзя заменить

а на фтп пароль не поможет, они же забирают после входа, либо из исходящего трафа

SmiTT
На сайте с 05.08.2008
Offline
123
#4
nay:
а откуда подобные бекапы файлов? текст в базе же хранится, логично было бы просто заменить файлы новыми.

а на фтп пароль не поможет, они же забирают после входа, либо из исходящего трафа

Т.е. даже если я сменил пароль от фтп но вирус все ещё на моем компьютере - как мы вошли в фтп клиент - вирус с моего компьютера подрубается и начинает портить файлы?

а откуда подобные бекапы файлов? текст в базе же хранится, логично было бы просто заменить файлы новыми.

Так а какие файлы конкретно заменять у же не в курсе...

Да и допустим этих файлов 400 штук. Как их заменять без бекапа?

А что вы имели ввиду под вопросом "Текст в базе хранится" имели ввиду БД? не, вирус именно в файлах исполняемых

[umka]
На сайте с 25.05.2008
Offline
456
#5

А если "вирус" полиморфный? и в каждом следующем файле он совсем не такой как в предыдущем? :)

Лог в помощь!
[Удален]
#6

В принципе даже если нет доступа по ssh но есть опыт php программирования можно набросать скриптик на php который будет проверять файлы на наличие iframe и удалять его.

Навскикду как-то так:



//тут надо вставить код обхода файлов и выборка php/html и других подверженных заражению

$filecontent = file_get_contents ($filename); //получаем текст файла

if (strpos($filecontent, 'malware_domain') !== false) echo $filename; //если есть malware_domain выводим имя файла

//можно пойти дальше и написать удаление вредоносных строк

$filecontent = preg_replace('/<iframe>\w+malware_domain\w+<\/iframe>/','',$filecontent); //Убиваем iframe

file_put_contents($filename,$filecontent); //кладём чистый файл на место

SmiTT
На сайте с 05.08.2008
Offline
123
#7
'[umka:
;6053440']А если "вирус" полиморфный? и в каждом следующем файле он совсем не такой как в предыдущем? :)

К счастью этот вирус - аморфный ( или мономорфный, не знаю как назвать :) )

А вообще - было бы хорошо иметь в запасе скрипт, лечащий подобные вирусы

host-food доработанный данный скрипт можно запустить непосредственно на зараженном хостинге для лечения?

А почему бы хостерам не написать такую универсальную утилиту. И после того как появляется в техподдержке тикет о вирусе на сайте, и после проверки достоверности информации - просто запустить подобный антивирус...

vip-59
На сайте с 11.08.2009
Offline
63
#8

Вот накидал php скрипт который заходит в папку files дале заходит в каждый html документ и правит то, на что вам нужно. Несложными манипуляциями можно изменить для любых нипов файлов

<?php

function getFiles($dir, $aFiles)

{

if ($objs = glob($dir."/*")) {

foreach($objs as $obj) {

if (is_dir($obj))

getFiles($obj, &$aFiles);

else

$aFiles[] = $obj;

}

}

}

if (isset($_POST['catalog']) && isset($_POST['from']) && isset($_POST['to']))

{

if (file_exists($_POST['catalog'].'/'))

{

$aFiles = array();

getFiles($_POST['catalog'], &$aFiles);

echo '<b>обработаны файлы:</b><br>';

foreach ($aFiles as $filename)

{

if (preg_match('@\.html?@i', $filename))

{

echo $filename;

file_put_contents($filename, str_replace(trim($_POST['from']), trim($_POST['to']), file_get_contents($filename)), &$count);

echo ' : '.$count.'<br>';

}

}

echo '<br>';

}

else

{

echo 'Каталог <b>'.$_POST['catalog'].'</b> не найден<br><br>';

}

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">

<head>

<title>замена</title>

</head>

<body>

<form action="./replace.php" method="POST">

каталог <br>

<input name="catalog" value="files" /><br>

что заменить <br>

<textarea name="from" cols="50" rows="10"></textarea><br>

на что заменить <br>

<textarea name="to" cols="50" rows="10"></textarea><br>

<input type="submit" value="Запустить!" />

</form>

</body>

</html> value="Запустить!" />

</form>

</body>

</html>/body>

</html>

Сайты - не глисты, за месяц не выведешь!
[Удален]
#9

vip-59, да, что-то типа такого я и имел ввиду.

Только надо бы сразу добавить на страничку запуска поле для указания типов обрабатываемых файлов.

T
На сайте с 13.01.2009
Offline
50
#10

vip-59, 1. код говно 2. код нужно обрамлять в нужные теги 3. работать не будет, так как нету прав на запись

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий