Как удалить скрытые ссылки на сайте?

В этой статье я расскажу, как почистить сайт от скрытых ссылок и как удалить скрытые ссылки.
Почти все файлы на нашего клиента были заражены кодом "eval(base64_decode"

Итак мы имеем более чем 600 зараженных файлов на нашем тестовом сервере. О очистке «вручную» просто может быть и речи! Можете ли вы себе представить, войти в каждый файл и удалить закодированные скрытые ссылки?
Ниже привожу пример команд, которые я использовал. Предполагаю, что вы вошли в Linux Shell и уже есть резервная копия всех файлов (в том числе зараженных файлов)!
Команда для поиска "eval(base64_decode"
grep -lr --include=*.php "eval(base64_decode" /path/to/webroot

Команда для поиска строки длиннее 80 символов
find /path/to/webroot -name '*.php' | xargs grep -E '[0-9a-zA-Z/]{80}'

Рекомендую проанализировать наличие php файлов в директориях для картинок, как правило это "вредоносный код".
find /path/to/webroot -name '*.php' | grep '/images/'

Еще одна полезная команда, может пригодится для поиска троянов и скрытых шеллов. Поиск файлов с датой модификации «- 2 дня»
find /path/to/webroot -type f -mtime -2
Это не обязательно, но лучше проверить некоторые файлы вручную, чтобы действительно убедится в наличие вредоносного кода. Также мы можем использовать эти команды после команды очистки, чтобы перепроверить, что очистка сайта действительно удалась.
Если команды для поиска отображают eval(base64_decode, выполните следующие команды для очистки сайта:

grep -lr --include=*.php "eval(base64_decode" /path/to/webroot | xargs 
sed -i.bak 's/<!--?php eval(base64_decode[^;]*;/<!--?php\n /g'


Эта команда создаст резервную копию файлов, которых он будет изменять. Например, если он удаляет код из index.php, вы найдете новый файл index.php.bak в том же каталоге с оригинальным содержанием index.php. В зависимости от найденного кода, вам возможно придётся скорректировать команду.
Например, найденный код может быть такой:

eval(base64_decode(' ..... SSBoYXZlIGJlZW4gIGRlY29kZWQh= .............'));
или
• eval(base64_decode(
• eval(gzinflate(base64_decode(
• eval(gzuncompress(base64_decode(
• eval(gzinflate(str_rot13(base64_decode(


После запуска команды выше, вы все равно найдете несколько зараженные файлы. Нужно настроить поиск и замену параметров в "SED" части. Вы также можете использовать следующую команду для "либеральной" очистки с риском поломки сайта. (в случае, вы можете что-нибудь сломать. В этом случае обратитесь к разделу "Устранение неполадок" ниже!)

grep -lr --include=*.php "eval(base64_decode" /path/to/webroot | xargs sed -i.bak '/eval(base64_decode*/d'

Устранение неполадок
Отсутствует Чтобы добавить "PHP:" Метка в начале index.php файлов, если вы удалите его случайно, можно воспользоваться следующей командой:

find /var/www/ -name "index.php" | grep "/htdocs/index.php" | xargs grep -L "<?php" | xargs sed -i "1s/^/<?php \n/"

Если вы обнаружите, после очистки, дополнительные «символы новой строки» в верхней части вашего кода. Эти символы могут создает проблемы. Можно использовать следующую команду, чтобы удалить символ перевода строки.

 find . -name '*.php' -exec sed -i -e :a -e '/^\n*$/{$d;N;ba' -e '}' '{}' \;

Я надеюсь, что вы найдете этот материал полезным.

Прочитано 2318 раз Последнее изменение Воскресенье, 12 Июль 2015 12:17

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

JoomShaper