Небольшая заметка о том, как искать следы наличия плохих гостей на ваших сайтах.
Сразу стоит отметить, что искать по дате изменения файла бесполезно, она изменяется одной командой. Оптимальным вариантом по моему мнению является поиск файлов с "опасными" функциями и ручной их просмотр. Искать надо во всех файлах, а не только в .php, шеллы могут быть хорошо спрятаны. Лучший вариант искать по всем файлам OS, если для этого нет прав, то искать надо в web директории и tmp папках.
Данный метод не даёт 100% гарантии обнаружения, но в большинстве случаев поможет найти шелл, если кто-то сильно не постарался его спрятать.
Код для поиска:
grep -RPni "(passthru|shell_exec|system|phpinfo|base64_decode|chmod|mkdir|eval|preg_replace) {0,1}\(" /var/www/
Данный код пишется в консоли по ssh, файлы которые он выведет не являются 100% шеллами, их нужно просматривать вручную, код шелла зачастую сильно выделяется от кода обычных скриптов.
Если удалось найти шелл, то лучше сразу поискать по всем имеющимся логам вхождение его имени, возможно удастся найти уязвимый скрипт, через который был залит шелл.
Если на вашем сервере разрешен allow_url_fopen или allow_url_include ( посмотреть можно в php.ini или через phpinfo), то шелл может подключаться через include или require и тут уже потребуется более тщательное изучение кода.
Категория:
All