мой сервер был взломан, и теперь я пытаюсь найти все «странные» файлы. Я бегаю:
find . -type f -name '*' | xargs grep -l "Mini Shell"
Эта команда очень помогает мне находить и удалять вредоносный код.
Однако это также вызывает у меня много ошибок и охватывает всю мою оболочку, и я не могу легко найти найденные файлы с расширением. Это пример того, что я вижу:
grep: Player: No such file or directory
grep: Quick: No such file or directory
grep: Start: No such file or directory
grep: Guide.pdf: No such file or directory
grep: ./domain1.pl/wp-content/themes/kingsize/images/social/1.: No such file or directory
grep: license.txt: No such file or directory
grep: ./domain1.pl/wp-content/themes/kingsize/documentation/Express: No such file or directory
grep: Install.xml: No such file or directory
grep: ./domain2.net/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/Sorting: No such file or directory
grep: icons.psd: No such file or directory
./domain3.in/admin/static/radio.php
В тексте выше есть только 1 вредоносный файл, который я искал. Все остальные сообщения - мусор. Как я могу избежать появления таких сообщений «Нет такого файла или каталога» в запросе grep?
Как будто он ломается, когда находит имена файлов с пробелами.
Спасибо
Нет необходимости вставлять 'find' в 'xargs', как это.
Что бы я сделал (-r
: рекурсивный):
grep -rl "Mini Shell" .
Ошибки связаны с тем, что у вас есть файлы с пробелами в именах файлов.
Если вы хотите обрабатывать каждый файл, даже со специальными символами в именах файлов, я рекомендую (использовать NULL byte
как разделитель файлов):
grep -Zrl "Mini Shell" . | xargs -I% -0 mv % /path/to/trash
find
имеет смысл только в том случае, если файлы для проверки имеют определенное расширение файла, например, .php
. Тогда вы могли бы использовать -exec
параметр find
:
find . -name "*.php" -type f -exec grep -l "Mini Shell" {} \;
Это сделает поиск измененных файлов намного быстрее, чем поиск всех файлов.
-name='*'
само по себе не имеет смысла. -type f
сделает выполнение find
несколько быстрее, потому что каталоги будут опущены.
Общие рекомендации
Если ваш сервер был взломан, вам в первую очередь нужно будет найти вектор атаки, иначе вас снова взломают. Также, может быть, лучше настроить его с нуля и восстановить веб-приложения из резервной копии, потому что вы вряд ли найдете все файлы, которые изменили злоумышленники, и, следовательно, может иметь нестабильную или небезопасную систему.