Ugrás a tartalomra
web-coder weboldal logo Kapcsolat
POST_1469

A Wordfence is elemezte a „kilenc életű” WordPress-malware-t

2026. szeptember 9-én írtunk egy rendkívül makacs WordPress-fertőzésről, amely a törölt kártékony fájlokat újra és újra visszaállította.

Szeptember 22-én a Wordfence Threat Intelligence is közzétett egy önhelyreállító, rejtőzködő WordPress MU-pluginról szóló részletes technikai elemzést. Az általuk feltárt működés több ponton rendkívül erős egyezést mutat az általunk vizsgált fertőzéssel.

A két elemzés összevetése nemcsak azt mutatja meg, hogyan maradhat életben egy ilyen kártevő a fájlok egyszerű törlése után, hanem azt is, miért lehet félrevezető egy látszólag megtisztított WordPress-oldal.

Mit talált a Wordfence?

A Wordfence által vizsgált kártevő egy WordPress must-use, vagyis MU-pluginként települő hátsó kapu. Ezeket a bővítményeket a WordPress automatikusan betölti, és a hagyományos bővítménylistában sem feltétlenül jelennek meg feltűnően.

A Wordfence részletes elemzése szerint a kártevő:

  • változó névvel és hamis bővítmény-metaadatokkal jelenhet meg;
  • több mint négyezer különböző fájlnév alatt fordult elő;
  • egyedi helyettesítéses titkosítással rejti el a karakterláncait;
  • elrejti magát a bővítménylistából, a frissítések közül és a Webhelyegészség felületéről;
  • hamis rendszergazdai fiókot hoz létre, vagy átvesz egy meglévő felhasználói fiókot;
  • manipulálja a felhasználók listáját és a megjelenített felhasználószámot;
  • képes megszerezni és eltárolni a rendszergazdák bejelentkezéskor megadott jelszavát;
  • adatbázisban tárolt példányból képes visszaírni saját magát;
  • más, számára írható WordPress-telepítésekbe is átmásolhatja magát;
  • távolról frissíthető, lecserélhető vagy új funkciókkal bővíthető;
  • adatokat küldhet a támadók vezérlőszervereire.

A Wordfence elemzésének egyik legérdekesebb megállapítása az úgynevezett EtherHiding technika alkalmazása. A kártevő Ethereum okosszerződésekből képes lekérni az aktuális vezérlőszerverek címeit, nyilvános RPC-szolgáltatásokon keresztül.

Ez megnehezíti a vezérlési infrastruktúra végleges blokkolását, mert a kártevőnek nem kell egyetlen, a kódba közvetlenül beírt szervercímre támaszkodnia.

Ugyanerről a kártevőről lehet szó?

Teljes bizonyossággal nem állítható, hogy minden általunk talált fájlt ugyanaz a támadási kampány hozott létre. A technikai egyezések azonban rendkívül erősek, és nagy valószínűséggel ugyanahhoz az „SC” jelölésű kártevőcsaládhoz tartozó mintákat vizsgáltunk.

Az általunk talált két orbit-provider-plus.php változat látszólag különböző bővítménynek próbálta mutatni magát:

  • az egyik „Orbit Provider Plus”, 1.0.5 verzió és Harper Walker szerzőnév alatt jelent meg;
  • a későbbi minta már „Nexus Monitor Lab”, 1.2.0 verzió és Ava Green szerzőnevet használt.

A fájlok mérete, tartalma és SHA-256 lenyomata is eltért. A belső kód azonban mindkét esetben tartalmazta ugyanazokat a jellegzetes SC azonosítókat, valamint a Wordfence által is bemutatott helyettesítéses dekódolási megoldást.

A belső verziójelölés közben SCV:4.2.7 értékről SCV:4.3.24 értékre változott.

Ez pontosan összhangban van a Wordfence azon megállapításával, hogy a fájlnév, a bővítmény neve, a szerző, a verzió és a fájl hashértéke nem használható megbízható azonosítóként. A kártevő ezeket változtathatja, miközben az alapvető működése megmarad.

A Wordfence tapasztalatai és a mi esetünk

A Wordfence által feltárt működésAmit a saját esetünkben tapasztaltunk
A kártevő MU-pluginként települAz orbit-provider-plus.php a wp-content/mu-plugins könyvtárban jelent meg
Változó nevet és hamis bővítményadatokat használKét különböző bővítménynévvel, szerzővel és verzióval rendelkező mintát találtunk
Egyedi helyettesítéses kódolással rejti el a karakterláncaitMindkét több megabájtos fájlban azonos jellegű dekódoló és nagyméretű helyettesítési táblák voltak
Elrejti magát a WordPress adminisztrációs felületeinA fertőzéshez kapcsolódó elemek nem jelentek meg hagyományos telepített bővítményként
Rejtett rendszergazdai fiókot hozhat létreAz adatbázisban jogosulatlan adminisztrátori fiókot találtunk
Adatbázisban tárolt forrásból újraírhatja magátsc_persist_manifest, sc_payload_* és sc_recover_* jellegű adatbázis-bejegyzéseket találtunk
Ellenőrzi saját jelenlétét, és visszaállítja a hiányzó fájltA törölt fájl egyes kísérletekben 10–15 másodpercen belül újra létrejött
Más elérhető WordPress-telepítésekbe is átmásolhatja magátA fertőzés több fájlt, drop-int, témát és feltöltési könyvtárat is érintett
Távolról frissíthető és lecserélhetőA visszatérő fájl tartalma, mérete, metaadatai és belső verziója is megváltozott
Az adatbázisban eltárolhatja saját forráskódjátA saját esetünkben is találtunk a helyreállításhoz kapcsolódó adatbázis-bejegyzéseket
Ethereum-alapú vezérlőszerver-felderítést használhatEnnek meglétét a mi környezetünkben hálózati naplók hiányában nem tudtuk közvetlenül igazolni

Mi magyarázza, hogy nem ugyanaz a fájl tért vissza?

Korábban az egyik legfontosabb kérdés az volt, hogyan jelenhet meg a tárhelyen egy új méretű, új tartalmú és új verziószámú fájl, ha a webes hozzáférést .htaccess fájllal teljesen letiltottuk.

A Wordfence elemzése erre két lehetséges magyarázatot is ad.

Az egyik, hogy a kártevő saját forrásának egy példányát az adatbázisban tárolja, és ebből írja vissza magát. A másik, hogy a támadók távolról új változatot küldhetnek számára, amelyet a kártevő eltárol, majd az eredeti fájl helyére ír.

Így nincs szükség arra, hogy minden visszaállításkor pontosan ugyanaz a fájl jöjjön létre. A kód változtathatja a metaadatokat, a verziószámot és akár a belső szerkezet egyes részeit is.

Ez a működés megmagyarázhatja a két eltérő mintánkat, de önmagában még nem bizonyítja, hogy az adott fájlt melyik konkrét folyamat írta a tárhelyre.

Amit továbbra sem magyaráz meg teljesen

Az egyik kísérlet során a tárhelyen nem maradt WordPress, adatbázis vagy archivált weboldal. A webhely könyvtárában kizárólag a teljes HTTP-hozzáférést tiltó .htaccess volt jelen. Ennek ellenére egyik reggel ismét létrejöttek a kártékony fájlok.

Egy másik ellenőrzésnél teljesen friss WordPress került a tárhelyre, mindössze a két gyári bővítménnyel. A HTTP-hozzáférés ekkor is tiltva volt. Másnap reggel ismét létrejött az mu-plugins könyvtár és benne az orbit-provider-plus.php.

Ez arra utal, hogy a fájlt létrehozó folyamat nem feltétlenül a böngészőből elérhető WordPress-oldalon keresztül indult el.

A .htaccess ugyanis csak a webszerveren keresztül érkező kéréseket tiltja. Nem akadályozza meg:

  • a már futó PHP-folyamatokat;
  • a felhasználói vagy szerveroldali cronfeladatokat;
  • a parancssorból vagy vezérlőpultból indított műveleteket;
  • a tárhelyfiók más könyvtáraiból érkező fájlműveleteket;
  • az ellopott FTP-, SFTP- vagy tárhely-hozzáférés használatát;
  • egy, a webszervert megkerülő helyi folyamat működését.

A rendelkezésünkre álló naplókból nem lehetett egyértelműen meghatározni, ezek közül pontosan melyik írta vissza a fájlt. Ehhez a tárhelyszolgáltató által elérhető folyamat-, audit-, cron-, PHP-FPM- és fájlrendszernaplókra lett volna szükség.

Ezért fontos különválasztani két állítást:

  • a fájl bizonyíthatóan újra létrejött akkor is, amikor a webhely HTTP-n nem volt elérhető;
  • ebből önmagában nem következik, hogy a teljes tárhelyszerver vagy a szolgáltató infrastruktúrája fertőzött volt.

Azt viszont egyértelműen mutatja, hogy az egyszerű fájltörlés és a WordPress adminisztrációs felület ellenőrzése nem volt elegendő a fertőzés forrásának megszüntetéséhez.

Miért nem elég egy víruskereső vagy a fertőzött fájl törlése?

Az ilyen kártevő több, egymást helyreállítani képes példányból állhat. Amíg ezek közül akár csak egy is megmarad, a fertőzés ismét felépítheti magát.

Egy alapos helyreállítás során ezért egy időben kell ellenőrizni:

  • a WordPress összes fájlját;
  • az MU-pluginokat és a drop-ineket;
  • a témák és bővítmények PHP-fájljait;
  • a .user.ini, .htaccess és PHP-konfigurációs állományokat;
  • az adatbázis options, posts, postmeta és users tábláit;
  • a cron- és Action Scheduler-feladatokat;
  • a tömörített mentéseket és gyorsítótárakat;
  • a tárhelyfiók alatt található összes további webhelyet;
  • az FTP-, tárhely-, adatbázis- és WordPress-hozzáféréseket.

A WordPress biztonsági kulcsait is le kell cserélni, a munkameneteket vissza kell vonni, és minden érintett jelszót kompromittáltnak kell tekinteni. A Wordfence kutatása alapján a kártevő a rendszergazdák bejelentkezéskor megadott jelszavát és munkamenetét is megszerezhette, ezért egy egyszerű jelszócsere önmagában nem elegendő, ha a kártékony kód még fut.

Mit erősített meg számunkra a Wordfence elemzése?

A Wordfence kutatása technikai magyarázatot adott több olyan jelenségre, amelyet korábban közvetlenül megfigyeltünk:

  • a változó fájlnév és hamis bővítményadat nem véletlen;
  • a különböző hashérték nem jelenti azt, hogy teljesen más kártevőről van szó;
  • az adatbázis valóban használható rejtett biztonsági másolatként;
  • a kártevő képes saját magát ellenőrizni és visszaállítani;
  • a rejtett adminisztrátor a működés tudatos része;
  • a fertőzés más elérhető WordPress-telepítésekbe is továbbterjedhet;
  • a támadók távolról lecserélhetik vagy frissíthetik a kódot.

A saját esetünkben a fájl visszaírását végző konkrét szerveroldali folyamatot nem sikerült azonosítani. A kártevőcsalád működéséről azonban a Wordfence elemzése lényegében megerősítette mindazt, amire a fájlok, az adatbázis-bejegyzések és az ismételt visszafertőződések alapján következtettünk.

Segítség fertőzött WordPress-oldal helyreállításához

Ha egy WordPress-oldalon törlés után ismét megjelennek a kártékony fájlok, ismeretlen adminisztrátor kerül az adatbázisba, vagy a fertőzés több sikertelen tisztítás után is 24 órán belül visszatér, az oldal egyszerű újratelepítése valószínűleg nem lesz elegendő.

Ilyen esetben a teljes fájlállományt, az adatbázist, a hozzáféréseket és a tárhelyen található további webhelyeket is együtt kell megvizsgálni.

A WordPress vírusmentesítés és biztonságos helyreállítás szolgáltatásunkról itt olvashatsz részletesebben.