Aktuální situace: PHP2Shell. Dvě kritické zranitelnosti PHP (CVSS 9.2) umožňují spustit škodlivý kód bez přihlášení. Záplaty od 21. 10. 2026.Co nyní udělat →

Jak najít zadní vrátka ve WordPressu: systematické hledání

Kde se zadní vrátka ve WordPressu typicky ukrývají a jak je správci systematicky vyhledají pomocí WP-CLI a několika příkazů.

Stav 5 min čteníPoradna

Stručně: Zadní vrátka ve WordPressu najdete nejrychleji tak, že jádro a pluginy porovnáte přes WP-CLI s oficiálními kontrolními součty a poté cíleně projdete mu-plugins, uploady, wp-config.php, účty správců a databázi. Důležité po PHP2Shell: aktualizace WordPressu zranitelnost PHP neuzavře a existující zadní vrátka neodstraní.

Proč by se provozovatelé WordPressu měli dívat pozorněji právě teď

S PHP2Shell se v říjnu 2026 staly známými dvě kritické zranitelnosti v samotném PHP, CVE-2026-109618 a CVE-2026-109619. Umožňují spuštění škodlivého kódu bez přihlášení, bez ohledu na to, jak dobře je vaše instalace WordPressu udržována. Záplaty existují od 21. 10. 2026, podle zpráv médií byl ale první pokus o útok pozorován už 17. 10.

Kdo byl v tomto období zranitelný, měl by hledat stopy. WordPress je přitom typický cíl, protože mnoho instalací je postaveno podobně a útočníci znají úkryty. Co musí provozovatelé k PHP2Shell obecně udělat, najdete na stránce WordPress a PHP2Shell.

Následující kontroly provádějte pokud možno na kopii nebo po zálohování. Příkazy jen čtou a nic nemění.

Podle čeho zadní vrátka poznáte v běžném provozu

Zadní vrátka jsou navržena tak, aby zůstala nenápadná. Přesto existují příznaky, kterých si všimnete i bez technických znalostí. Patří k nim přesměrování na cizí stránky, která se objevují jen u návštěvníků z vyhledávače Google nebo jen na mobilních zařízeních. Podezřelé jsou také nové stránky s reklamou na léky, hazard nebo kopie značkového zboží, které se objevují ve vyhledávacím indexu, ale ne v administraci WordPressu.

Dalšími náznaky jsou varování od Googlu nebo prohlížeče, stížnosti zákazníků na spam z vaší domény, náhle výrazně vyšší spotřeba výpočetního času u poskytovatele hostingu nebo správci, které nikdo v týmu nezná. Žádný z těchto příznaků sám o sobě zadní vrátka nedokazuje. Pokud se jich objeví více najednou, neodkládejte následující kontroly.

A naopak: pokud nic z toho nevidíte, neznamená to, že je instalace čistá. Právě zadní vrátka, zřízená jen pro pozdější přístup, navenek často žádný účinek neukazují.

Jak najít zadní vrátka ve WordPressu: kontrola jádra a pluginů

WP-CLI umí porovnat soubory jádra WordPressu a pluginů z oficiálního adresáře se zveřejněnými kontrolními součty. Každá odchylka je konkrétní úkol ke kontrole.

cd /var/www/meine-seite
# Soubory jádra proti oficiálním kontrolním součtům
wp core verify-checksums
# Pluginy z oficiálního adresáře
wp plugin verify-checksums --all
# Nainstalované verze a stav
wp plugin list
wp theme list

Komerční pluginy a šablony takto zkontrolovat nelze. Pro ně pomůže jen porovnání s čerstvě staženým originálním balíčkem od výrobce. Neznámé pluginy, které nikdo z týmu neinstaloval, jsou vždy podezřelé, i když se zdají být deaktivované.

Typické úkryty v souborovém systému

Některá místa se u kompromitovaných instalací WordPressu opakují pořád dokola:

  • wp-content/mu-plugins/: načítá se automaticky a v běžném seznamu pluginů se neobjevuje.
  • wp-content/uploads/: patří tam obrázky a dokumenty, žádné soubory PHP.
  • wp-config.php: dodatečné řádky include nebo require na začátku nebo na konci.
  • .htaccess a .user.ini ve webovém adresáři a podsložkách: neočekávaná přesměrování nebo automaticky předem načítané soubory.
  • Soubory v hlavním adresáři, jejichž názvy připomínají jádrové soubory WordPressu, ale nepatří k němu.
# Soubory PHP ve složce uploads
find wp-content/uploads -type f -name "*.php*"
# Obsah Must-Use pluginů
ls -la wp-content/mu-plugins/
# Všechny soubory .htaccess a .user.ini s datem změny
find . \( -name ".htaccess" -o -name ".user.ini" \) -exec ls -la {} +
# Nedávno změněné soubory PHP
find . -type f -name "*.php" -newermt "2026-10-17" -ls

Obecné vzory pro hledání zakódovaného kódu popisuje příručka Jak poznat a odstranit webshell.

Kontrola uživatelů, databáze a plánovaných úloh

Mnohá zadní vrátka vůbec nejsou v souborovém systému. Útočníkům často stačí k pozdějšímu návratu další účet správce.

# Všichni správci s datem registrace
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered
# Plánované úlohy ve WordPressu
wp cron event list
# Adresa webu (manipulace vedou k přesměrováním)
wp option get siteurl
wp option get home
# Příspěvky s vloženými skripty
wp db query "SELECT ID, post_title FROM $(wp db prefix)posts WHERE post_content LIKE '%<script%'"

Zkontrolujte také volby s neobvykle velkým obsahem a widgety s cizím kódem. Nálezy automaticky neznamenají útok, protože skripty používají i sledovací kódy nebo vložené mapy. Rozhodující je, zda obsah někdo z týmu zná.

Důležité

Po nálezu změňte všechna hesla a bezpečnostní klíče v wp-config.php. Jinak zůstanou stávající přihlášení útočníků platná.

Jak zadní vrátka zavřít a zabránit návratu

Pokud jste zadní vrátka našli, je nová instalace většinou bezpečnější než opravování jednotlivých souborů. Osvědčilo se toto pořadí:

  1. Zajistit stopy: uložit logy, podezřelé soubory a export databáze s datem.
  2. Přivést PHP na opravený stav a restartovat všechny procesy PHP.
  3. Jádro WordPressu, pluginy a šablony nainstalovat znovu z originálních zdrojů.
  4. Uploady a databázi převzít po kontrole, smazat cizí účty, změnit všechny přístupy.
  5. Spouštění PHP ve složce uploads zakázat na úrovni serveru.

Pro Nginx k tomu stačí blok v konfiguraci serveru:

location ~* ^/wp-content/uploads/.*\.php$ {
    deny all;
}

U Apache dosáhnete téhož pravidlem v konfiguraci serveru pro složku uploads. Soubor .htaccess přímo ve složce uploads je slabší, protože ho útočník s právy k zápisu může znovu změnit.

Po vyčištění počítejte s několika týdny přísnějšího sledování. Noví správci, nové soubory PHP a změny v wp-config.php by se měly v této době ihned projevit, například pravidelnou kontrolou přes WP-CLI nebo monitorováním souborů na serveru.

Jak potom nastavit práva k souborům, aby WordPress mohl zapisovat jen tam, kde je to nutné, ukazuje příručka Práva k souborům na webovém serveru.

Jak konkrétně pomáhá PHP SOS?

  • Zajistíme stav instalace dřív, než se cokoli změní.
  • Zkontrolujeme jádro, pluginy, šablony, databázi, účty a konfiguraci serveru na zadní vrátka.
  • WordPress znovu nasadíme z čistých zdrojů a převezmeme jen ověřený obsah.
  • Server i instalaci zabezpečíme a zdokumentujeme, co bylo nalezeno a odstraněno.

Průběh čištění popisuje služba Nechat odstranit malware a webshelly.

Časté dotazy

Uzavře aktualizace WordPressu zranitelnost PHP2Shell?

Ne. PHP2Shell je v interpretu PHP, nikoli ve WordPressu. Aktualizace WordPressu, šablon nebo pluginů na tom nic nemění; rozhodující je stav PHP na serveru a restart všech procesů PHP.

Najde bezpečnostní plugin všechna zadní vrátka?

Ne spolehlivě. Plugin běží uvnitř kompromitované instalace a sám může být zmanipulován. Doplňte ho kontrolami zvenčí, například kontrolními součty přes WP-CLI a porovnáním s čistými originálními soubory.

Co jsou mu-plugins a proč jsou podezřelé?

Must-Use pluginy ve složce wp-content/mu-plugins se načítají automaticky a v běžném seznamu pluginů se neobjevují. Útočníci toho rádi využívají, protože provozovatelé tuto složku zřídka kontrolují.

Mohou být zadní vrátka i v databázi?

Ano. Škodlivý kód nebo přesměrování se často ukládají do voleb, příspěvků nebo widgetů. Útočníci navíc často zřizují vlastní účty správců, které najdete v tabulce uživatelů.

Zdroje

Okamžitý kontakt

Každá hodina se počítá. Napište nám hned.

Stručně popište systém, verzi PHP a pozorování. Ozveme se, vyjasníme situaci a budeme pracovat na dálku, dokud nebude incident uzavřen a zdokumentován.

Okamžitá pomoc