У нас есть собственный сервер разработки под Linux (Ubuntu). Несколько дней назад был внедрен подозрительный код. Напомню, что у нас более 300 проектов. Код рекурсивно внедряется почти в каждый файл.
Мы пробовали Dreamweaver в Windows в локальной сети для поиска и замены, но обнаружили другую причину, которая не работает с DreamWeaver;
Внедренный код, запускаемый с PHP, запускающим TAG:
<?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, вам следует выяснить, как злоумышленник получил доступ. Проверьте файлы журналов!
Доступен ли ваш компьютер из Интернета?