Está algo ofuscado, pero lo he desofuscado. La función flnftovr toma una cadena y una matriz como argumentos. Crea una nueva cadena $ggy usando la fórmula
isset($array[$string[$i]]) ? $array[$string[$i]] : $string[$i];}
Luego antepone base64_decode a la cadena.
La cadena es $s, la matriz es $koicev. Luego evalúa el resultado de esta manipulación. Así que finalmente se crea una cadena:
base64_decode(QGluaV9zZXQoJ2Vycm9yX2xvZycsIE5VTEwpOwpAaW5pX3NldCgnbG9nX2Vycm9ycycsIDApOwpAaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywgMCk7CkBzZXRfdGltZV9saW1pdCgwKTsKCmlmKGlzc2V0KCRfU0VSVkVSKfZW5jb2RlKHNlcmlhbGl6ZSgkcmVzKSk7Cn0=)
Entonces, lo que realmente se ejecuta en su servidor es:
@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));
}
Si no creó esto y sospecha que su sitio ha sido pirateado, le sugiero que limpie el servidor y cree una nueva instalación de cualquier aplicación que se esté ejecutando en su servidor.
Cambiar el nombre de los archivos php a php.suspected generalmente está destinado y realizado por el script del hacker. Cambian la extensión del archivo para dar la impresión de que el archivo fue revisado por algún software antimalware, es seguro y no se puede ejecutar. Pero, de hecho, no lo es. Cambian la extensión a "php" cada vez que quieren invocar el script y, después, vuelven a cambiar la extensión a "sospechoso". Puede leer sobre esto en Securi Research Labs
Tal vez este post es viejo, pero el tema sigue vivo. Especialmente según la campaña de malware de junio de 2019 dirigida a los complementos de WordPress. Encontré algunos archivos "sospechosos" en los subdirectorios de WordPress de mi cliente (por ejemplo, wp-content)
El cambio de nombre de .php
archivos a .php.suspected
sigue pasando hoy. Los siguientes comandos no deberían generar nada:
find <web site root> -name '*.suspected' -print
find <web site root> -name '.*.ico' -print
En mi caso, los archivos infectados podrían localizarse con los siguientes comandos:
cd <web site root>
egrep -Rl '\$GLOBALS.*\\x'
egrep -Rl -Ezo '/\*(\w+)\*/\s*@include\s*[^;]+;\s*/\*'
egrep -Rl -E '^.+(\$_COOKIE|\$_POST).+eval.+$'
He preparado una descripción más larga del problema y cómo solucionarlo en GitHub.