WordPress Backdoor aneb kde hledat zadní vrátka

Ve většině případů nebudete ani tušit, že se vám někdo dostal do instalace WordPress a umístil zde zadní vrátka. Pokud nepoužíváte speciální bezpečnostní pluginy, jako je například WordFence, který porovnává verze souboru v repozitáři wordpress.org s vašim aktuálním, tak se to ani dozvědět nemusíte. Přitom pravidelně bude prostřednictvím těchto zadních vrátek stahovat obsah databáze.

Backdoor neboli zadní vrátka jsou kus kódu, který umožňuje útočníkovi částečný anebo úplný přístup do systému. Může například vytvořit dočasného uživatele s administrátorským právem anebo to být konzole přes který půjde vkládat libovolný PHP kód.

Tyto zadní vrátka většinou se většinou dají odhalit podle používaných funkcí.

Používané funkce

Mezi nejrozšířenějšími je skrytí kódu pomocí kódování, které převádí binární data na znaky, které se dají dobře přenášet přes textové kanály – Base64. Takto převedené znaky se převádí zpět přes funkci Base64_decode. Většina nebezpečného kódu s kterým se setkáte bude schovaná právě v tomto kódu. Pokud máte použitou tuto funkci v souborech WordPress může se jednat o skrytý skript. Pozor, někteří tvůrci šablon si pomocí této funkce chrání podpis k šabloně. Pokud se tedy nachází v patičce zřejmě můžete být v klidu. Ostatně pomocí následujícího kódu se můžete dozvědět, co v řetězci vlastně je:

echo base64_decode("skrytý řetezec");

Popřípadě použít online nástroj pro dekódování Base64.

Dalším příznakem problémů je funkce Eval. Ta má za úkol spustit PHP kód, který se v ní nachází. Většinou jí ve skriptu najdete v kombinaci s base64_decode. Obecná doporučení je Eval nepoužívat, takže jí běžně ve WordPress nenajdete. Jestli tedy uvidíte:

eval(base64_decode("skrytý kód");

Tak se jedná o škodlivý kód s pravděpodobností hraničící s jistotou.

Tyto funkce jsou takovým základem s kterým se setkáte nejčastěji. Mezi další patří Exec, System a Shell_exec. Ty jsou však v PHP většinou zakázané, protože mohou nadělat opravdu hodně škody.

Kde se ve WordPress backdoor nejčastěji skrývá

Na rozdíl od malware u kterého útočník chce, aby se aktivoval pokažde, tak backdoor má být mimo dohled. Pokud nemáte důsledně upravené oprávnění adresářů, tak může být kdekoliv. V případě, že práva omezují zápis, tak se statisticky nejčastěji vyskytuj v adresářích, kde je povolený zápis, tedy wp-upload a wp-includes.

Backdoor může být v samostatném souboru anebo jako součást jiného už existujícího souboru. Většinou takového, který se moc nepoužívá. Jakmile totiž jednou odešle skript informaci o tom, že je vaše instalace infikována nestojí o to být snadno nalezen.

Je třeba si uvědomit, že pokud se spouští přes funkci eval, tak nemusí být jen v jednom souboru a hlavně samotný škodlivý kód nepotřebuje koncovku .php. Funkce eval totiž může includovat skript třeba v textové formě, tvářící se jako zip (samozřejmě zakódovanou v Base64 či dokonce šifrovanou). Teoreticky si dokonce může skript stáhnout z jiného serveru a pak přes eval spustit.

Odstranění backdoor ve WordPress

S výše uvedenými informacemi už asi tušíte jak na to. Základem je najít stránku, kde je použita funkce eval a odstranit jí, respektive nahradit zálohou. Tím se nebude skript spouštět. Jenomže pak je třeba najít i jej. Opět je zde šance použít hledání funkce base64_decode.

Problémy jsou tu ale dva. Jednak obě tyto funkce mohou používat tvůrci pluginů a šablon, takže se může stát, že narazíte na podezřelé soubory, které jsou ale v pořádku (jejich nahrazení originálem nic nezkazíte). Další problém je, že útočník může škodlivý kód vložit do samostatného souboru a nijak jej nemaskovat. Stačí když bude vědět, že tam je.

Nezapomeňte také projít databázi. I zde může být schovaný útočníkův kód.

Takže jak to vyřešit? Technicky je nejjednodušší prostě vzít zálohu a nahrát jí. Následně celou instalaci sledovat. Pokud toto nepřipadá v úvahu doporučuji zkusit už jednou zmiňovaný plugin WordFence, který umí backdoor vyhledat a zničit. Zvláště pokud používáte všechno z repozitáře WordPress.org.

Pokud naprosto všechno selhalo, čeká vás doslova mravenčí práce hledání a sledování, kde se co děje. Zkuste se zaměřit na data a časy změn v souborech. Například po aktualizaci WordPress mají všechny soubory v jádru datum a čas sjednocený. Napadený soubor anebo ten, který do něj nepatří bude mít jiný. Obdobně to platí u šablon a pluginů.

Nezapomínejte, že i vy můžete být zdrojem nákazy. Třeba má útočník vaše heslo k FTP anebo administraci.

Share Button

Tento článek byl byl přečten 3476 krát

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *