Как декодировать вирусный файл WorPress PHP? - PullRequest
0 голосов
/ 14 октября 2018

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

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

Путинайденного файла приведены ниже

wp-includes/rest-api/requests.ini
wp-includes/Requests/IPconfig.ini

ниже есть небольшая часть файла

Здесь есть полный файл в pastebin https://pastebin.com/EfUNTaRr

if(empty($_GET['ineedthispage'])){
ini_set('display_errors',"Off");
ignore_user_abort(1);
$I7rKRVNNat3intmYmv="10.1";
$IssgsfYr3WZGty="";
$IL8lxLZy5SGibS7od="";
$IGvpZBegv061k="";
if(!empty($_COOKIE['PHPSSIDDD2'])){
    $IGvpZBegv061k=$_COOKIE['PHPSSIDDD2'];
    }
    $IvVtGi5vH1edafW="RE3PUldBWUlTV4";
    if(!IIlFCqjaR5JVZ33VAo('curl_init')){
        $IssgsfYr3WZGty.="1\t";
        $IL8lxLZy5SGibS7od.="1\t";
    }
    if(!IIlFCqjaR5JVZ33VAo('fopen')){

может кто-нибудь расшифровать этот файл на вставке.Спасибо

1 Ответ

0 голосов
/ 14 октября 2018

Я использовал phpcs-fixer для красивого просмотра этого скрипта.Вы можете видеть это здесь .Я не трачу много времени на декодирование, поэтому могу ошибаться в своих рассуждениях =)

Функция IIlFCqjaR5JVZ33VAo похожа на улучшенную function_exists, которая проверяет, существует ли функция, вызывается ли она и не отключена (получить отini)

function __function_exists($functionName)
{
    $functionName=strtolower(trim($functionName));
    if ($functionName=='') {
        return false;
    }
    $disabledFunctions=explode(",", @ini_get("disable_functions"));
    if (empty($disabledFunctions)) {
        $disabledFunctions=array();
    } else {
        $disabledFunctions=array_map('trim', array_map('strtolower', $disabledFunctions));
    }
    return (function_exists($functionName) && is_callable($functionName) && !in_array($functionName, $disabledFunctions));
}

Скрипт собирает много вещей в файлы.Имена файлов закодированы по этим правилам:

// this is like file hash
$ItZg0lwPNAV8rSZCcknwRw6=md5(__FILE__);
// ... some other stuff and define directory like {path_to_file}/cache{file_hash}
$Id3jh7jnThGJnxV0=dirname(__FILE__).DIRECTORY_SEPARATOR."cache".$ItZg0lwPNAV8rSZCcknwRw6;
// and then file stored in defined dir
$Id3jh7jnThGJnxV1=$Id3jh7jnThGJnxV0.DIRECTORY_SEPARATOR."ke".substr($ItZg0lwPNAV8rSZCcknwRw6, 0, 8)."ys";
// and so on for [keys, useragents, botips, referers, ...] with interesting logic which I don'tfully understand

А затем некоторые данные отправляются на http://main.infowp.info/getdata.php.Но я не уверен.Почему этот домен?Вы можете видеть это здесь

И он определяет, какая CMS использовалась: WP, Drupal или Joomla, проверяя, существуют ли определенные функция и класс: wp_insert_post, node_save, JFactory.

...