Некоторые вирусные php-файлы содержат очень длинные строки в коде. Такие файлы можно поискать однострочником:find ./ -name "*.php" -print0 | wc -L --files0-from=- | sort -V | grep -E "^[0-9]{5,}+ \./"
найденные файлы можно просмотреть визуально или проверить чем-то еще.
URL:
Обсуждается: http://www.opennet.me/tips/info/2908.shtml
| xargs rm -rf
Ага, ага. Рекурсивность применять к единичным файлам. Молодец
А как насчет чего-нибудь типа
find ./ -name "*.php" -exec grep 'eval.*base64_decode' '{}' \+
grep -l конечно
в PHP кстати огромное количество функций которые делают eval ..например, preg_replace ..
не говоря уже о том что можно сделать:
$a = 'pre';
$b = 'g_replace';
$c = $a.$b;
$c(...);
Поиск eval.*base64_decode и других масок мы реализовали в антивирусе, но он не влез в одну строку кода, как в примере =)
таки поделитесь, будте любезы...
Кстати можно одним grep-ом:
grep -Ri -lsE --include="*.php" "eval.*base64_decode|^GIF89|Web Shell by|r57shell|c99 inj|default_action=.*FilesMan" ./
и так далее добавляем маски
ещё часто ловится вот такое вот:
if (!$ind78f5022f) { $ind78f5022f = TRUE;assert("e"."v"."a"."l(b"."a"."s"."e"."6"."4_d"."e"."c"."o"."d"."e('ICR........
Таких видов файлов достаточно много, у нас список шаблонов в текстовом файле. Также есть класс шаблонов, в которых учтено, что название переменной или функции может изменяться.
Есть вот такая штука, https://github.com/emposha/PHP-Shell-Detector
Давно не обновлялось.
Два дня назад, от 2015.10.07. Это слишком давно..
https://revisium.com/ai/
Спасибо помогло :)