Je to poněkud zamlžené, ale už jsem to zatemnil. Funkce flnftovr bere jako argumenty řetězec a pole. Vytvoří nový řetězec $ggy pomocí vzorce
isset($array[$string[$i]]) ? $array[$string[$i]] : $string[$i];}
Poté k řetězci připojí base64_decode.
Řetězec je $s, pole je $koicev. Následně vyhodnotí výsledek této manipulace. Nakonec se tedy vytvoří řetězec:
base64_decode(QGluaV9zZXQoJ2Vycm9yX2xvZycsIE5VTEwpOwpAaW5pX3NldCgnbG9nX2Vycm9ycycsIDApOwpAaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywgMCk7CkBzZXRfdGltZV9saW1pdCgwKTsKCmlmKGlzc2V0KCRfU0VSVkVSKfZW5jb2RlKHNlcmlhbGl6ZSgkcmVzKSk7Cn0=)
Takže to, co se ve skutečnosti spustí na vašem serveru, je:
@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));
}
Pokud jste to nevytvořili a máte podezření, že váš web byl napaden hackery, doporučuji vám vymazat server a vytvořit novou instalaci všech aplikací, které na vašem serveru běží.
Přejmenování souborů php na php.suspected je obvykle zamýšleno a prováděno hackerským skriptem. Změní příponu souboru, aby vyvolal dojem, že soubor byl zkontrolován nějakým antimalwarovým softwarem, je bezpečný a nelze jej spustit. Ale ve skutečnosti není. Změní příponu na "php" kdykoli chtějí vyvolat skript a poté změní příponu zpět na "podezřelé". Můžete si o tom přečíst na Securi Research Labs
Možná je tento příspěvek starý, ale téma je stále živé. Zejména podle malwarové kampaně z června 2019 zaměřené na pluginy WordPress. V podadresářích WordPress mého klienta (např. wp-content) jsem našel několik „podezřelých“ souborů
Přejmenování .php
soubory do .php.suspected
děje se i dnes. Následující příkazy by neměly s něčím přijít:
find <web site root> -name '*.suspected' -print
find <web site root> -name '.*.ico' -print
V mém případě by infikované soubory mohly být lokalizovány pomocí následujících příkazů:
cd <web site root>
egrep -Rl '\$GLOBALS.*\\x'
egrep -Rl -Ezo '/\*(\w+)\*/\s*@include\s*[^;]+;\s*/\*'
egrep -Rl -E '^.+(\$_COOKIE|\$_POST).+eval.+$'
Připravil jsem delší popis problému a jeho řešení na GitHubu.