Feltört weboldal javítása: három eset az elmúlt hónapokból

Az elmúlt hónapokban három feltört WordPress oldalt takarítottam ki: egy webshopot, egy céges bemutatkozó oldalt és egy egészségügyi szolgáltató oldalát. Ez a cikk leírja, hogyan jutottak be a támadók, mit csináltak bent, mit javítottam, és mi volt a közös a három esetben.

Feltört weboldal javítása: három eset az elmúlt hónapokból

Röviden: Három feltört WordPress oldalból kettőnél ellopott vagy kiszivárgott jelszóval jutottak be, nem bővítményhibán át. A támadók hónapokig, az egyik esetben évekig bent maradtak. A részleges takarítás egyik esetben sem volt elég: a teljes javítás jelszócserével, a munkamenetek kiléptetésével és minden idegen fájl eltávolításával jár, néha teljes újraépítéssel.

Az elmúlt hónapokban három feltört WordPress oldalt takarítottam ki. Az egyik egy webshop, a másik egy cég bemutatkozó oldala, a harmadik egy egészségügyi szolgáltatóé. Az ügyfelek nevét nem írom le, a részleteket igen, mert egy feltört weboldal javítása sokkal több munka annál, mint ami kívülről látszik, és a hibák ismétlődnek.

1. Webshop: egy külsős munkatárs ellopott jelszavai

Ami történt: a webshoppal dolgozó külsős marketinges gépén egy kártevő ellopta a böngészőben mentett jelszavakat. Köztük volt a webshop admin-jelszava és a tárhely jelszava is. Két nappal később a támadó bejelentkezett.

Három nap alatt ezt csinálta:

  • a WordPress beépített sablonszerkesztőjével egy hátsó ajtót írt a téma egyik fájljába
  • egy bővítménnyel adminisztrátori jogot adott két régóta nem használt vásárlói fióknak
  • a WordPress saját jQuery-fájlját egy 1,2 MB-os, összezavart kódra cserélte, ami minden látogatónál lefutott, a pénztárban is
  • végül egy hamis „Cloudflare-ellenőrzés" oldalt tett ki, amely arra kérte a látogatót, hogy másoljon be és futtasson egy parancsot a saját gépén

A naplók szerint megnézte a felhasználók és a rendelések listáját is, ezért ezt adatvédelmi incidensként kellett kezelni. A GDPR szerint ilyenkor 72 óra van arra, hogy a cég eldöntse, bejelenti-e a hatóságnak.

Amit javítottam: a WordPress magját újra letöltöttem, és fájlonként összevetettem a hivatalos ellenőrzőösszegekkel. A jQuery-fájlnak új verziójelölést adtam, mert a látogatók böngészője a gyorsítótárból még napokig a fertőzött példányt tölthette volna be. Visszaállítottam a két vásárlói fiók jogait, töröltem a támadó bővítményeit és a külsős fiókját, mindenkit kiléptettem, és lecseréltem a WordPress titkos kulcsait (salt). Letiltottam a beépített fájlszerkesztőt. Minden admin és boltkezelő új jelszót kapott, és kötelező lett a kétlépcsős azonosítás. A webshophoz kötött szolgáltatások kulcsait (számlázó, hírlevél, levélküldés) is cseréltük.

A tanulság: a külsős munkatárs még aznap reggel maga is takarított, de csak a téma hátsó ajtaját és a hamis ellenőrző oldalt vette ki. A lecserélt jQuery és a két új admin bent maradt. Egy részleges takarítás után az oldal tisztának látszik, közben a támadó bármikor visszajöhet.

2. Céges oldal: évekig rejtőző kártevő, ami csak a Google-nek mutatta magát

Ami történt: a cég oldala a látogatóknak rendben volt. A Google viszont szerencsejáték-spamet látott rajta, 17 MB-nyi oldalt idegen nyelvű kulcsszavakkal. Ezt cloakingnak hívják: a kártevő megnézi, ki kéri az oldalt, és a keresőrobotnak mást ad, mint az embernek.

Amikor elkezdtem visszafejteni, kiderült:

  • az oldalnak két példánya volt két szerveren. A fertőzést egy korábbi költözéskor az oldallal együtt átvitték az új tárhelyre.
  • az első nyomok 2023-ból valók. A WordPresst akkor újratelepítették, de a régi mappák (közel ezer PHP-fájl) bent maradtak mellette.
  • 2024-től egy kódrészlet-bővítményen keresztül hetente új kódrészlet került az oldalba. Ez végezte az átirányítást és a spamet.
  • a bővítmények között 14 hamis galéria-bővítmény volt, véletlenszerű nevekkel. Mindegyik a hivatalos bővítmény pontos másolata volt, plusz egy fájl, ami a hátsó ajtó. Az egyik a levelezés naplóját próbálta olvasni, vagyis e-mail-jelszavakat gyűjtött.
  • 2026 januárjában kilencszer lépett be valaki az egyetlen admin fiókkal, váltakozó külföldi IP-címekről. A jelszó tehát kiszivárgott.

Ugyanez a felhasználónév és jelszó a cég testvéroldalán is működött. Ott 17 fertőzött fájlt találtam a webgyökérben, betöltőket, adathalász oldalt és kártevő-letöltéseket.

Amit javítottam: mindent lementettem a szerveren kívülre, mielőtt bármihez nyúltam. A testvéroldalról eltávolítottam a 17 fájlt. A fertőzött oldalon leállítottam a WordPresst, és a webgyökérben letiltottam a PHP futtatását, így ott most semmilyen kód nem tud lefutni, amíg az oldal tisztán újra nem épül.

A tanulság: az újratelepítés nem takarítás, ha a régi fájlok bent maradnak. A cloakingot pedig a tulajdonos soha nem veszi észre, mert ő az ember-változatot látja. Ezt csak úgy lehet kiszűrni, ha valaki rendszeresen a keresőrobot szemével is lekéri az oldalt.

3. Egészségügyi szolgáltató: amikor nem lehet kitakarítani

Ami történt: a kártevő a tárhelyfiók szintjén terjedt, és négy WordPress telepítést fertőzött meg ugyanazon a fiókon. Két takarítás után is percek alatt visszaírta magát.

Amit csináltam: itt a takarítás helyett a tiszta újraépítést választottuk egy új szerveren. A régi szerverről egyetlen fájlt sem vittem át. A témát és a bővítményeket hivatalos forrásból telepítettem újra, az adatbázist pedig kézzel szűrtem.

Az adatbázisban 20 spambejegyzést találtam (felnőtt tartalmú affiliate-linkekkel), egy ismeretlen felhasználó nevén, pár perc alatt tömegesen létrehozva. Ezt a kártevő-szűrés nem fogta ki, mert ezek közönséges bejegyzések voltak. A tárhely vírusellenőrzője közben további álcázott bővítménymappákat talált időbélyeges nevekkel, és egy hamis wp-config.php-t.

A tanulság: a tárhely naplói csak öt nappal a fertőzés utánról voltak meg, így a belépési pont soha nem derül ki pontosan. A tárhelyszolgáltató tapasztalata szerint a leggyakoribb út az elavult bővítmény vagy a kalóz („nulled") prémium téma. Ezek egy részébe szándékosan tesznek hátsó ajtót.

Mi a közös a három esetben?

  • Három esetből kettőnél jelszóval jöttek be. Az egyiknél egy külsős böngészőjéből lopták el, a másiknál évekig ugyanaz a jelszó volt két oldalon.
  • A támadók sokáig bent maradtak. Napokig, hónapokig, az egyik esetben évekig, mert senki nem nézte rendszeresen, mi változik az oldalon.
  • A részleges takarítás nem elég. Egy feltört weboldal javítása a jelszavak cseréjét, a munkamenetek kiléptetését, a titkos kulcsok cseréjét és minden idegen fájl eltávolítását jelenti, az adatbázisban is. Néha az újraépítés a gyorsabb út.

Amit ezekből bevezettem az általam karbantartott oldalakon: minden munkatárs saját fiókot kap, csak a szükséges jogokkal, és a munka végén törlöm. Az adminoknak kötelező a kétlépcsős azonosítás. A beépített fájlszerkesztő ki van kapcsolva. A feltöltési mappában nem futhat PHP.

Ha az oldaladat valaki más készítette, és nem tudod, ki fér hozzá, a weboldal-átvétel első lépése pontosan ennek a feltérképezése. Ha pedig már gyanús jeleket látsz, írj nekem.

Sárosi Zoltán

A cikk szerzője

Sárosi Zoltán

Alapító, WordPress fejlesztő – Eagle Solutions

2011 óta készítek weboldalakat és webshopokat Hargita megyéből, kis- és középvállalkozásoknak, egyesületeknek és ügynökségi partnereknek. Amit itt leírok, azt a saját projektjeimben tapasztaltam.

Többet rólam →

Kérdésed van a saját oldaladdal kapcsolatban?

Írj pár mondatot, mire lenne szükséged. Egy munkanapon belül válaszolok, az első konzultáció ingyenes.

Van már weboldalad? Írd be a címét az üzenetbe, és ingyen, 10 pontban leírom, mit javítanék rajta. Ez semmire nem kötelez.

Írok Zoltánnak → Árak megtekintése

Még nem tudod pontosan, mi kell? Számold ki az ársávot két perc alatt →

Töltsd le a 10 pontos weboldal-ellenőrző listát (PDF) →

← Vissza a bloghoz