È un po' offuscato, ma l'ho de-offuscato. La funzione flnftovr accetta una stringa e un array come argomenti. Crea una nuova stringa $ggy utilizzando la formula
isset($array[$string[$i]]) ? $array[$string[$i]] : $string[$i];}
Quindi antepone base64_decode alla stringa.
La stringa è $s, l'array è $koicev. Quindi valuta il risultato di questa manipolazione. Quindi alla fine viene creata una stringa:
base64_decode(QGluaV9zZXQoJ2Vycm9yX2xvZycsIE5VTEwpOwpAaW5pX3NldCgnbG9nX2Vycm9ycycsIDApOwpAaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywgMCk7CkBzZXRfdGltZV9saW1pdCgwKTsKCmlmKGlzc2V0KCRfU0VSVkVSKfZW5jb2RlKHNlcmlhbGl6ZSgkcmVzKSk7Cn0=)
Quindi ciò che effettivamente viene eseguito sul tuo server è:
@ini_set('error_log', NULL);
@ini_set('log_errors', 0);
@ini_set('max_execution_time', 0);
@set_time_limit(0);
if(isset($_SERVER)
encode(serialize($res));
}
Se non l'hai creato tu e sospetti che il tuo sito sia stato violato, ti suggerisco di cancellare il server e creare una nuova installazione delle app in esecuzione sul tuo server.
Rinominare i file php in php.suspected di solito è inteso e fatto dallo script dell'hacker. Cambiano l'estensione del file per dare l'impressione che il file sia stato controllato da un software antimalware, sia sicuro e non possa essere eseguito. Ma, in effetti, non lo è. Cambiano l'estensione in "php" ogni volta che vogliono invocare lo script e, successivamente, cambiano l'estensione in "sospettato". Puoi leggerlo su Securi Research Labs
Forse questo post è vecchio ma l'argomento è ancora vivo. Soprattutto secondo la campagna malware di giugno 2019 che prende di mira i plugin di WordPress. Ho trovato alcuni file "sospetti" nelle sottodirectory di WordPress del mio cliente (ad es. wp-content)
La ridenominazione di .php
file a .php.suspected
continua ad accadere oggi. I seguenti comandi non dovrebbero produrre qualcosa:
find <web site root> -name '*.suspected' -print
find <web site root> -name '.*.ico' -print
Nel mio caso, i file infetti potrebbero essere individuati con i seguenti comandi:
cd <web site root>
egrep -Rl '\$GLOBALS.*\\x'
egrep -Rl -Ezo '/\*(\w+)\*/\s*@include\s*[^;]+;\s*/\*'
egrep -Rl -E '^.+(\$_COOKIE|\$_POST).+eval.+$'
Ho preparato una descrizione più lunga del problema e di come affrontarlo su GitHub.