обычно антивирусники могут их найти в файлах скрипта.
Увы обычно не могут.
Попробую расписать подробней.
Метод первый - Антивирус.
Более менее опытные хакеры никогда не льют на сервер шелл в чистом виде - 90% шеллов кодируют base64 eval и т.д.(мало ли обфускаторов?) причем каждый более менее опытный хаккер сам кодирует шеллы по собственному алгоритму(свой персональный шелл), таким образом приходим к выводу что нельзя достоверно проверить антивирусом сайт, поскольку никакая антивирусная компания не сможет отслеживать шеллы, и добавлять сигнатуры всех шеллов всех хакеров в антивирусные базы.
Метод второй - Встроенный антивирус DLE
Казалось бы что проще? Запусти встроенный антивирус, и проверяй файлы которые не знает двиг. Вроде просто, раз двигу не знаком файл, открой посмотри какие действия делает этот файл. Но и тут есть недостатки :
Во первых, на ДЛЕ куча модулей и запаришься вручную проверять каждый файл для каждого модуля, вникать в код и смотреть что исполняет файл, а если сайты большие с кучей модулей, то вообще не реально.
Во вторых, нужны знания хотя бы минимальные php
В третьих, самое главное пожалуй, антивирус сравнивает файл с неким зеркалом которое у него имеется, достаточно злоумышленнику после того как он залил вредоносный код нажать кнопку Сделать снимок, и встроенный антивирус, будет воспринимать вредоносный файл как родной
Но самое плохое, в том что злоумышленник сделал снимок, не ведется запись в лог файл, и это действие не отображается в Списке действий в админпанели
Пример зальем закодированный php shell в папку с дле
Антивирус нашел незнакомый файл
Нажмем кнопку сделать снимок
Как видите после нажатия кнопки антивирус перестал видеть залитый shell, хотя он физически присутствует на сервере
Ну и переходим в список действий в админ панели
Как видите нет ни одного намека на изменения снимка антивируса и какие либо действия в админ панели кроме авторизации
....
Итак что мы видим стандартными средствами искать shell бесполезно вручную преребирать кучу файлов геморройно, антивирус может не найти закодированный вредоносный файл если его сигнатур нет в базе.
Что делать? Кроме ручного перебора файлов, могу подсказать один метод, который в принципе будет работать на любой CMS, но доступен он если у Вас есть доступ непосредственно к серверу.
Я в работе не использую виртуальный хостинг, а пользуюсь либо VDS либо VPS и соответственно имею доступ к командной строке сервера и поэтому вредоносный код ищу так, переходим в папку сайта:
Код:
cd /home/www/you_dle_site_patch/
далее команда которую можно с минимальными изменениями использовать на любой CMS:
Код:
find . -type f -name '*.php' -mtime -7 -not -path "*/cache/*"
Эта команда рекурсивно ищет в папках, и выводит список файлов с расширением .php в которые вносились изменения за последние 7 дней, за исключением папки cache
Если нашлись измененные файлы, то после этого просматриваем их на соответсвие родным файлам, и удаляем все ненужное.
Пользователям виртуального хостинга, у которых нет доступа к командной строке, наверное стоит поискать скрипт выполняющий аналогичный поиск и пользоваться им