Klient volal s větou, kterou známe z Websupportu i jiných hostingů: Účet jsme pozastavili kvůli malware. Blog o zdravém stárnutí na Elementoru přestal fungovat. Obsah byl v databázi. Špína byla na disku — a v patičce každé veřejné stránky.
Tenhle spis je o tom, jak to vypadá, když útočník nechce „jen“ SEO spam, ale infikovat návštěvníky.
Co jsme našli v záloze
Statická forenzní analýza souborů a SQL dumpu ukázala dvě jasné vlny:
- První drop — během sedmi minut útočník jako administrátor nahrál sadu falšovaných pluginů a šablon s čísly v názvu (unix timestamp). Uvnitř byly RCE webshelly (POST → XOR →
system/shell_exec) a velké zabalené backdoory (~1,3 MB). - Druhá vlna o čtyři dny později — další složky a aktivace pluginu, který se tvářil jako LitSpeed-Beta.
LitSpeed to nebyl. Háček na wp_footer vkládal obfuscovaný JavaScript. Skript přes blockchain (Polygon smart contract) stáhl vzdálený payload a spustil ho běžným návštěvníkům. Administrátory plugin přeskočil — klasika, ať majitel „nic nevidí“.
Právě tohle automatické skenery hostingu chytí a účet zamknou. Správně.
Jak se dovnitř dostali
Nejpravděpodobnější vektor: kompromitovaný administrátorský účet majitele. Škodlivý ZIP v médiích měl autora user ID 1. Session tokeny v databázi seděly na časy obou vln.
Co útokem nebylo:
- masový SEO spam v článcích
- změna
siteurl/home - smazaná databáze
Obsah (články, Elementor layouty, fotky) šel zachránit. Soubory ne — ty jsme brali jako kontaminované.
Jak jsme to vrátili
- Nová čistá instalace WordPressu — žádné „obnovení celé špinavé zálohy“.
- Import vyčištěné databáze: pryč LitSpeed z
active_plugins, pryč malware attachment, invalidované session tokeny. - Pluginy z oficiálních zdrojů; z kontrolované zálohy jen to, co prošlo kontrolou (mj. Elementor Pro).
- Nová hesla všude — WP, hosting, FTP, databáze.
- 2FA a kontrola, kdo ještě má roli administrátor.
Web zase ukazoval články. Hosting odemkl. Klient dostal forenzní timeline, ne jen „už to běží“.
Co si z toho odnést
Když hosting lockne účet „kvůli malware“, skoro nikdy nestačí „smazat jeden divný soubor“. Hledejte falšované pluginy/šablony s čísly v názvu, aktivní injectory v patičce a session, které sedí na čas dropu.
A hlavně: neobnovujte špinavou zálohu 1:1. Tím si koupíte druhý lock za týden.
Pokud vám Websupport, Wedos nebo kdokoli jiný napsal, že účet pozastavil, berte to jako incident. Vstupní kontrola rozsahu u nás nic nestojí — a ušetříte si slepé mazání.