
Удаление вредоносного кода с использованием maldet и SED в Unix/Linux
Я сталкиваюсь с очень большим количеством взломанных аккаунтов на хостинге. Данные аккаунты заразили вредоносным кодом и его необходимо лечить ( удалять). По этому, данная статья «Удаление вредоносного кода с использованием maldet и SED в Unix/Linux» именно по такому случаю. Я использую maldet для поиска вирусов на серверах, но он не удаляет ничего, по этому, приходится открывать файл и удалять все вручную. Это терпимо, когда имеется несколько зараженных файлов, но когда их сотни, то каждый редактировать не особо хочется, так же, тратить время.
Если не знаете как установить и использовать maldet, можете ознакомится тут:
Установка Maldet для поиска вирусов на linux\Unix
PS: Чтобы maldet работал быстрее подключите для проверки движок clamav:
Установка ClamAV на Debian/Ubuntu/ Linux Mint
Установка ClamAV на RedHat/Centos/Fedora
Если используете Cpanel, то нужно проверить если ли symlink в /usr/local/bin/clamscan и создайте его, если он не существует:
# ln -s /usr/local/cpanel/3rdparty/bin/clamscan /usr/local/bin/clamscan
А я буду собирать разнообразные вирусы в этой теме и буду рассказывать как их лечить, чтобы в следующий раз не тратить на написание шаблона — свое время. И так, для начала сохраним файл, но для этого, я открою его с помощью vim:
# EDITOR=vim maldet --report 081115-0723.23405
Сохраняем его.
После чего он будет сохранен в очень неудобном варианте, для этого, я его переименую:
# mv /usr/local/maldetect/sess/session.081115-0723.23405 /tmp/maldet.sorted
Но данный файл будет содержать в себе все файлы (зараженные и не зараженные), по этому, нужно отгрепать и пересохранить его:
# cat /usr/local/maldetect/sess/session.081115-0723.23405 | grep {HEX}php.brute.bf1lic.186 > /tmp/maldet.sorted
После чего, приступаем к лечению.
Не помню точного названия.
Лечим:
# cat /tmp/maldet.sorted |awk '{print $3}'| xargs -n1 sed -i 'N;N;s|//###==###\n.*\n//###==###||;P;D'
php.brute.bf1lic.186
В самом начала вставляет вредоносный код. Maldet показывает что это вирус:
{HEX}php.brute.bf1lic.186
Лечение:
# cat /tmp/maldet.sorted |awk '{print $3}'| xargs -n1 sed -i 's/<?php.*<?php.*<?php/<?php/'
или
# cat /tmp/maldet.sorted |awk '{print $3}'| xargs -n1 sed -i 's/<?php.*//'
или
# cat /tmp/maldet.sorted |awk '{print $3}'| xargs -n1 sed -i 's/<?php.*<?php.*<?/<?/'
Это 3 разных модификации данного вредоносного кода.
{HEX}base64.inject.unclassed.7
# sed -i 's/<?php.*eval(base64_decode.*?>//' file_name
php.cmdshell.unclassed.358
Maldet показывает что это вирус:
{HEX}php.cmdshell.unclassed.358
Лечение:
# sed -i 's/preg_replace.*//' ~/wp-contents.php
Это не все лечение для вредоносного кода, буду по мере возможностей, добавлять еще материал.
В общим, я не стал заморачиватся и усложнять жизнь себе и другим и взял написал скрипт, который запускает maldet, ищет вредоносный код по моей собранной базе ( основа взята у maldet) и после чего выполняет ряд действий по зараженным файлам ( удаление или исправление). Если интересно, можно использовать данный скрипт:
# cd /usr/local/src && wget https://raw.githubusercontent.com/SebastianUA/Detect-and-fix-malwares-with-ClamAV-Maldet/master/detect_and_fix_malwares_2.0.sh --no-check-certificate
Вот еще одно лечение для вируса (без использования малдета):
# grep -Rls "<?php.*?><?php" | xargs -I{} -n1 echo {} | xargs -n1 sed -i 's/<?php.*?><?php/<?php/'
PS: Я запустил в текущей директории.
Вот и все, тема «Удаление вредоносного кода с использованием maldet и SED в Unix/Linux» завершена.