ClamAv неплохо справляется с поиском шеллов и вирусов на сайтах. Однажды он помог мне обнаружить залитый шелл на сайт с вордпресс. Проблема оказалась в каком-то плагине, но это уже выходит за рамки статьи. :)
Прежде всего нужно будет установить ClamAv:
aptitude install clamav
После установки обязательно обновите вирусные базы, напечатав в консоли команду freshclam. Отобразится результат обновления.
root@localhost:~# freshclam ClamAV update process started at Wed Jul 16 11:08:02 2014 main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo) Downloading daily-19193.cdiff [100%] daily.cld updated (version: 19193, sigs: 1082296, f-level: 63, builder: neo) bytecode.cld is up to date (version: 242, sigs: 46, f-level: 63, builder: dgoddard) Database updated (3506567 signatures) from db.local.clamav.net (IP: 194.186.47.19)
По истечении процесса обновления, можно запустить сканирование. Команда проста:
clamscan -i -r /path/to/site
Ключ -i отображает в отчёте о проверке информацию только о заражённых файлах.
Ключ -r укажет сканеру, что нужно сканировать каталоги рекурсивно.
При использовании данной команды, результат сканирования будет отображён в консоли. Если файлов много, а следить за консолью нет времени (или желания :) ), то можно запустить сканирование в оболочке Screen.
В случае необходимости, установите его:
aptitude install screen
Запускается сканирование в этом случае следующим образом:
screen -A -m -d clamscan -i -r -l clamlog.txt
Ключи -A -m -d для screen запускают сессию свёрнутой. Для разворачивания окна screen используется команда screen -r.
Свернуть окно с процессом сканирования можно нажатием сочетания клавиш ctrl+a+d.
Ключ сканера -l, который запишет лог сканирования в текстовый файл, имя которого нужно указывать сразу после ключа. Информация о найденных уязвимостях не будет отображена на экране консоли при использовании screen, поскольку с завершением сканирования screen также завершает свою работу.
Можно также просканировать файлы из списка. Для этого нужно указать ключ -f и файл, содержащий список файлов для проверки.