У нас есть собственный сервер разработки под Linux (Ubuntu). Несколько дней назад был внедрен подозрительный код. Напомню, что у нас более 300 проектов. Код рекурсивно внедряется почти в каждый файл.
Мы попробовали Dreamweaver в Windows в локальной сети для поиска и замены, но нашли другую причину, которая не работает с DreamWeaver;
Внедренный код, запускающий тег PHP:
<?php $ldtxxk
и между ними много зашифрованного кода, но все файлы имеют разный код, НО заканчивающийся тегом PHP, заканчивающимся TAG. Таким образом, из-за полностью измененного кода во всех файлах мы не можем очистить его с помощью какого-либо программного обеспечения для поиска и замены.
Итак, нам нужна какая-то команда SED с регулярным выражением в SSH, которая может выполнять рекурсивную работу с конкретным директором для
найти из
<?php $ldtxxk
к
?>
и удалите все, включая начальные и конечные теги PHP.
Заранее спасибо.
Сначала попробуйте что-нибудь подобное. Он удаляет (d) текст между двумя шаблонами (разделенными косой чертой):
sed '/<?php $ldtxxk/,/?>/d' file_with_injected_code.php
Если результат выглядит хорошо, вы можете вставить «-i», чтобы заменить содержимое файла:
sed '/<?php $ldtxxk/,/?>/d' file_with_injected_code.php
Затем вы можете объединить команду sed с командой find для рекурсивного поиска файлов php, начинающихся в рабочем каталоге:
find -name '*.php' -exec sed -i '/<?php $ldtxxk/,/?>/d' '{}' \;
Если вы исправили файлы php, вам следует выяснить, как злоумышленник получил доступ. Проверьте файлы журнала!
Доступна ли ваша машина из Интернета?