Malware eltávolítása WordPress alól

Előkészítő lépések

Fontos tisztában lenned vele, hogy a feltört WordPress webhelyed javítható! A helyreállítási metódus sok időbe és erőfeszítésedbe telhet, ezért alaposan készülj fel rá. Fontos, hogy nyugodt maradj, és kövesd az ajánlott helyreállítási eljárás folyamatát.

Mielőtt eltávolítanád a rosszindulatú szoftvereket a WordPress alapú webhelyről, végezzünk el néhány biztonsági intézkedést:

Korlátozd a webhelyhez való hozzáférést

Ha a WordPress webhelyeden olyan rosszindulatú átirányítások jelentek meg, amelyek kétes, nem biztonságos  kapcsolattal rendelkező webhelyekre mutatnak, akkor jó eséllyel feltörték a honlapodat. A fertőzött WordPress oldal arra késztetheti a kliens látogatókat, hogy veszélyes webhelyeket látogassanak meg, káros malware fájlokat töltsenek le, vagy hogy osszák meg a személyes adataikat az adathalász oldalakkal.

A WordPress webhelyéhez való hozzáférés korlátozása segít megakadályozni a jelenleg fertőző, rosszindulatú szoftverek további terjedését. A weboldalad elérésnek korlátozását legegyszerűbben a .htaccess fájl szerkesztésével végezheted el a Directadmin fájlkezelőjében, vagy FTP-kliens segítségével, mint például a FileZilla.

Add hozzá a WordPress oldalad .htaccess fájlához az alábbi sorokat és mentsd el:

order allow,deny
deny from all
allow from [ip-címed]
Amennyiben dinamikus IP címmel rendelkezel, úgy az ip címet rendszeresen frissítened kell majd a .htaccess fájlban, mivel az internet szolgálatók időnként új IP címet osztanak ki.
Mentés készítése és visszaállítása

Ha rendszeresen biztonsági másolatot készítesz egy webhelyről, könnyebb lesz később azonosítani a rosszindulatú vagy kártékony részeket és szoftvereket. A jelenlegi állapot összehasonlítása egy korábbi állapottal sokat segíthet a probléma felderítésében és azonosításában.

Biztonsági másolat készítése és visszaállítása:

Fontos szem előtt tartani, hogy amennyiben már a mentésben is a fertőzött weboldalad változatát tartalmazza, úgy a visszaállítás nem fog segíteni a probléma megoldásában. Ezért mindig győződj meg, hogy megfelelő-e erre a célra a visszaállítani kívánt mentés!

Cseréld le a jelszavaidat

Sok támadó rosszindulatú szoftvereket használ a fiókok bejelentkezési adatainak feltörésére irányuló nyers erővel (bruteforce) végrehajtott támadásokhoz. A jelszavak megváltoztatásával lelassíthatod őket, és minimalizálhatod annak az esélyét, hogy egy újabb biztonsági kockázat alakuljon ki.

Az alábbiakban néhány olyan szolgáltatást mutatunk be, amelyekhez a lehető leghamarabb cserélned szükséges a jelszavakat:

  • DirectAdmin alapértelmezett jalszavakat, mint MYSQL,FTP és DirectAdmin belépési jelszavak
  • Az Email címekhez tartozó jelszó módosítása. Amennyiben az alapértelmezett EMAIL fiókon kívül nincs más, nem szükséges, csak az első lépésben javasolt. Alapértelmezett az a fiók, amelyet a DirectAdmin hozott létre alapértelmezés szerint a szolgáltatás aktiválásakor.
  • Az FTP fiókokhoz tartozó jelszavak módosítása. Alapértelmezett az a fiók, amelyet a DirectAdmin hozott létre alapértelmezés szerint a szolgáltatás aktiválásakor.
  • Az SSH belépéshez használt jelszavakat és kulcsokat
  • Ellenőrizzük a DirectAdmin alatt a Felhasználói történetet, hogy Ön lépett-e be kizárólag
  • Ellenőrizzük a DiredAdmin – Statisztika / log naplók menüpont alatt található naplókat
  • WP-Admin hitelesítő adatok – változtasd meg az admin jelszavát és a webhelye backendjéhez hozzáférő más WordPress felhasználók bejelentkezési adatait is.
  • WP Salts – a WordPress Salt kulcsok módosítása segít a bejelentkezési adatok titkosításában, megerősítve WordPress fiókodat a nyers erővel (bruteforce) végrehajtott támadásokkal szemben.

Rosszindulatú fájlok keresése és helyreállítás

Frissítsük a WordPress alkalmazást

A feltört WordPress oldalak 39,3%-a elavult WordPress verziót futtat. Azzal, hogy naprakészen tartod a CMS-t, megelőződ a legtöbb sebezhetőség kialakulását, amelyeket a hackerek kihasználva megtámadhatják webhelyed.

Íme egy lista a frissítendő szoftverekről és fájlokról:

  • WordPress verzió – frissítsd a WordPress-t a legújabb verzióra a WordPress adminisztrációs műszerfalán keresztül.
  • Témák és bővítmények – az elavult WordPress bővítmények és témák frissítése. A potenciális biztonsági problémákat kiküszöbölése végett javasolt a nem használt témák és bővítmények eltávolítása.
  • PHP verzió – Javasolt a legfrissebb PHP verzió beállítása a WordPress oldaladhoz
Ellenőrizd a fájlmódosulásokat

A WordPress webhely naplói nyomon követik az összes forgalmat és a szerveren végrehajtott változtatásokat. A naplók ellenőrzése a hackelés ideje körüli gyanús tevékenységekre vonatkozóan megkönnyíti a csaló fiókok és a fertőzött fájlok azonosítását.

Először is elemezd a fájl módosulásokat a find parancs SSH-n történő futtatásával:

find . -type f -name '*.kiterjesztes' -mtime n


kiterjesztes értéket helyettesítsd az ellenőrizni kívánt fájltípussal. (például php vagy js) Javasoljuk, hogy a JavaScript és a PHP fájlokat keresd, mivel mindkét fájlkiterjesztés gyakori célpontja a rosszindulatú programok befecskendezésének.
A ‘-mtime’ opció, amelyet a napok száma követ, a fájlok módosítás szerinti keresésére szolgál. A napok száma lehet pozitív vagy negatív. A következő SSH-parancs például megjeleníti a 7 nappal ezelőtt hozzáadott vagy módosított PHP-fájlokat:

find . -type f -name '*.php' -mtime -7
Távolítsd el a symlinkeket

szimbolikus hivatkozások olyan fájltípusok, amelyek egy másik fájlra vagy könyvtárra mutatnak, és parancsikonként szolgálnak. Miközben többféle hozzáférési pontot biztosítanak, a hackerek kihasználhatják őket, hogy Symlink-támadásokat indítsanak, és hozzáférjenek a gyökérkönyvtárhoz. Fontos tudnod, hogy a DirectAdmin is használ symlink hivatkozásokat, amelyek a domain neved könyvtárára mutatnak. Ezekről részletesebben a fájlkezelő mappáinak bemutatása alatt tájékozódhatsz. A symlinkek eltávolítása előtt mindig készíts azokról biztonsági mentést!

Futtasd az alábbi parancsot SSH-n keresztül a fájlok és könyvtárak symlinkjének megszüntetéséhez:

find . -type l -exec unlink {} \;
Fájl- és mappaengedélyek visszaállítása

A rendszergazdai szerepkörrel rendelkező felhasználók számának korlátozása nagyszerű biztonsági intézkedés annak megakadályozására, hogy a hackerek hozzáférjenek a webhely bizalmas fájljaihoz. A biztonság megsértése esetén javasoljuk a fájl- és mappaengedélyek visszaállítását az alapértelmezett értékekre, hogy megszüntesd a nem megfelelő hozzáférési jogosultsággal rendelkező WordPress-felhasználókat.

A fájljogosultságok beállításait a DirectAdmin fájlkezelőjén vagy SSH-n keresztül tudod megtekinteni és módosítani.

A Domain mappában az összes fájl jogosultságát 644-es értékre, míg a mappákat 755-es értékre állítsd vissza.

Ellenőrizd a WordPress weboldalad
  • Vizsgáld meg az Imunify malware kereső szolgáltatásunk által jelzett találatokat
  • Javasolt a proaktív szűrők használata! Az egyik ilyen a SUCURI elnevezésű WordPress bővítmény. A SUCURI ingyenes változatában manuálisan indíthatunk ellenőrzéseket, amelynek során felderíti az esetleges téma és fájlmódosításokat, malware kódokat, saját felhő adatbázisból dolgozik és szoftveres tűzfalként is funkcionál! Site Audit megoldások révén pedig javaslatokat kapunk a felmerülő problémák megoldására. További eszközök: Exploit Scanner, Wordfence, Acunetix WP Security, Antivirus
  • Javasolt a malware, deface és egyéb kártékony módosítások külső ellenőrzése: az interneten számtalan eszközt találhatunk, amely segít az ilyen típusú problémák felderítésében. Fontos tudni, hogy bár ezek hatékonysága jó, de előfordulhat, hogy nem minden kártékony módosítást és sérülékenységet jelez! Az egyik ilyen ingyenes ellenőrzőeszköz: Sucuri SitecheckVirusTotal
Ellenőrizd a számítógépedet

Bár a támadás kezdetben a WordPress weboldaladat célozhatja meg, de nem lehet tudni, hogy a rosszindulatú fertőzés nem érintett-e a számítógéped. A számítógép vírusirtó szoftverrel történő átvizsgálása segít eltávolítani a potenciális rosszindulatú fertőzések felderítésében.

Javasolt intézkedések:

  • vizsgáljuk át a számítógépet vírus és malware kereső szoftverrel.  Fontos, hogy ne ingyenes vagy warezolt vírusirtót használj. Hatékony vírusirtókat ide kattintva kereshetsz
  • használjunk mester jelszót a szenzitív adatokat és jelszavakat tároló alkalmazásokhoz, mint FTP, EMAIL, SSH, stb. Amennyiben erre nincs lehetőség, és a jelszavak nem kerülnek titkosítva eltárolásra,  úgy legalább ne mentsük el az alkalmazásban a jelszavakat
  • használjunk tűzfal szoftvereket a kliens számítógépen. Amennyiben kikapcsolásra került a Windows alapértelmezett tűzfal, kapcsoljuk be
  • távolítsuk el az illegális szoftvereket. Az illegálisan letöltött szoftver melegágya az elrejtett rosszindulatú kártevőknek! Ideértve a be nem azonosítható 3. féltől származó források, kiegészítések. (Weboldalaknál a leggyakrabban a WordPress témák, kiegészítések fertőzöttek)
Telepítsd újra a WordPress alkalmazást

Miután elvégezted az összes korábbi lépést, ideje újratelepíteni a WordPress alkalmazást. Ha hozzáférsz a WordPress műszerfalhoz, navigálj a Frissítés menüpontra, majd kattints az XX.XX verzió újratelepítése feliratú most gombra.

Amennyiben nem férsz hozzá a WordPress alkalmazásod wp-admin felületéhez, manuálisan is újratelepítheted azt:

  1. töltsd le a legfrissebb WordPress telepítő fájlokat a számítógépedre és csomagold ki azokat
  2. nyiss egy FTP kapcsolatot a WordPres oldalad gyökérkönyvtárához
  3. töltsd le a wp-content nevű mappát a számítógépedre
  4. másold fel FTP-n a letöltött és kitömörített friss WordPress fájlokat a weboldalad gyökérkönyvtárába, így felülírva az ott lévő fájlokat
  5. másold vissza a wp-content mappa tartalmát, felülírva az ott lévő fájlokat
  6. ezzel kész is!
WordPress telepítés összehasonlítása

Amennyiben valamiért nem szeretnéd újratelepíteni a WordPress alkalmazásod, az alábbi összehasonlító módszer alkalmazásával is megkeresheted a fertőzött fájlokat.

  1. töltsd le a legfrissebb WordPress telepítő csomagot a számítógépedre és csomagold ki azokat
  2. nyiss egy FTP kapcsolatot a WordPress oldalad gyökérkönyvtárához
  3. készíts egy könyvtárat wordpress-clean és wordpress-infected néven
  4. másold fel FTP-n a letöltött és kitömörített friss WordPress fájlokat wordpress-clean könyvtárba
  5. másold át a fertőzött WordPress fájlokat wordpress-infected könyvtárba
  6. hasonlítsd össze a tartalmukat az FTP-kliensed segítségével. A FileZilla rendelkezik egy könyvtár-összehasonlító funkcióval (Directory Comparison ), amelyet a folyamat egyszerűsítésére használhatsz

Érdemes nagy figyelmet fordítanod a JavaScript és PHP fájlokra, mivel ezek a leggyakoribb eszközei a rosszindulatú szoftvereknek. Töltsön fel annyi tiszta WordPress-fájlt a webhelyre, amennyit csak szükséges, és rendszeresen ellenőrizd ezt követően, hogy a webhelyed megfelelően működik-e.

Alternatívaként használhatod a diff parancsot SSH-ban a fertőzött és a tiszta mappák összehasonlításához:

diff -r wordpress-clean/ wordpress-infected/ -x wp-content
PHP fájlok törlése az Uploads könyvtárból

Mivel rosszindulatú PHP-fájlok okozhatják a legtöbb problémát, ezért a PHP-fájlok eltávolítása az Uploads könyvtárból a WordPress tisztítási folyamatának lényeges lépése.

Ezt manuálisan, FTP-kliens segítségével teheted meg, a wp-content mappában található Uploads mappa megkeresésével. A legtöbb FTP-kliens, mint például a FileZilla olyan szűrőfunkciókat kínál, amely megkönnyíti számodra ezt a folyamatot. Egy másik lehetőség a find parancs használata SSH-n:

find . -name "*.php"
Keress biztonsági réseket a fájlokban

A támadók „hátsó ajtókat” ún backdoorok ágyazhatnak be a fájlokba, hogy biztonsági réseket, ún. exploitokat hozzanak létre a WordPress webhelyen belül, ezért fontos, hogy eltávolítsd az ilyen algoritmusokat tartalmazó és feltört fájlokat.

A backdoorok gyakran hasonlítanak a WordPress alapfájljaira. A wp-config.php és plugins, themes illetve uploads könyvtárakban található fájlok a legnépszerűbb célpontjai a backdoor injekcióknak. A potenciális backdoor-ok azonosításához keresd a fájlokban ezeket a PHP-funkciókat:

  • base64
  • exec
  • move_uploaded_file
  • str_rot13
  • gzuncompress
  • eval
  • stripslashes
  • system
  • assert
  • preg_replace (with /e/)
  • edoced_46esad
  • shell_exec
  • python_eval
  • passthru
  • is_bot
  • mkdir

A következő SSH-paranccsal észlelheted a könyvtárakban található feltört fájlokat. A | jellel elválasztva bővítheted a kulcsszavakat:

find . -type f -name '*.php' | xargs egrep -i "(mail|fsockopen|pfsockopen|stream\_socket\_client|exec|system|passthru|eval|base64_decode) *("

A következő parancs megkeresi a backdoor funkciókat tartalmazó JPG képfájlokat:

find wp-content/uploads -type f -iname '*.jpg' | xargs grep -i php

Végül az alábbi parancs segítségével keresd meg a fertőzött iframe-eket:

find . -type f -name '*.php'| grep -i '<iframe'

Az ilyen függvények jelenléte a php-kódban egyáltalán nem jelenti azt, hogy a kód rosszindulatú, mert sok fejlesztő használja ezeket a függvényeket saját céljaira (adatok be- és kicsomagolása, egyéni betűtípusok a css-ben és mások). Ezért az eltávolításuk után minden esetben teszteljük azok működését! Javasolt továbbá, hogy töltsd le az eredeti fájlokat, és hasonlítsa össze a feltört webhelyről letöltött fájlokkal, hogy elkerüld az alapvető funkciók törlését.

Keress rosszindulatú átirányításokat

Ezek az átirányítások bosszantóak, de könnyen felismerhetők és javíthatóak. A kihívást az jelenti, hogy gyakran egy backdoor-hoz vagy akár egy cron feladathoz kapcsolódnak, amelyet úgy terveztek, hogy bizonyos meghatározott időközönként újraírja magát. A felderítés azonban szép és egyszerű. Nagyon ritkán fordul elő, hogy az átirányításokat nem észleli a legtöbb ellenőrző eszköz, ezért mindig érdemes manuálisan ellenőrizni.

A legnyilvánvalóbb hely ezeknek a fertőzéseknek a gyökér könyvtárban található .htaccess fájlban van. Alapértelmezés szerint a .htaccess fájl teljesen legitim, önmagában nem jelent problémát a létezése. Bizonyos esetekben viszont rosszindulatú átirányításokat helyezhetnek el benne. Amikor megnyitod, valami ilyesmit fogsz látni:

Az alábbi képen láthatjuk a különböző szabályokat; ha bármelyik agent megfeleltethető az adott szabálynak, akkor a felhasználót a RewriteRule direktívában meghatározott weboldalra irányítjuk át. A leggyorsabb megoldás a teljes eltávolítás, de ne feledd, hogy minden fájlt meg kell keresni:

find ./ -name .htaccess -type f
Ellenőrizd a WordPress Cron folyamatokat

A különböző malware alkalmazások nem ritkán Cron folyamatokból építik újra magukat. Ennek ellenőrzésére több opció  is a rendelkezésedre áll. 

  • WP-CLI: A meglévő cron események eléréséhez írd be ezt a parancsot az SSH terminálba: wp cron event list
  • WP Crontrol Plugin: telepítsd a WP Crontrol Plugin nevű plugint. Ezt követően a vezérlőpulton az Eszközök ➠ Cron Events menüpont alatt megtudod tekinteni a futó WP CRON folyamatokat

A WordPress létrehozza és tárolja a WP-Cron feladat szkriptet a wp-cron.php fájlban. Bár ez borzasztóan kényelmes, hogy így a WordPress a cron feladatokat az operációs rendszertől függetlenül tudja futtatni, de sajnos ez a fájl nem immunis a támadásokkal szemben, és sok esetben konfliktusba kerülhet a gyorsítótárazási bővítményekkel is. A valódi cron-feladatok használatával kiküszöbölhető a fájl állandó futtatása.

A valódi cron feladatok beállítása előtt le kell tiltanod az alapértelmezett WordPress cron funkciót. A WP_CRON letiltásához add hozzá ezt a kódrészletet a wp-config.php fájlodban az alábbi sor után a „/* That’s all, stop editing! Happy blogging. */„:

define( 'DISABLE_WP_CRON', true )

A következő lépés egy valódi cron feladat beállítása lesz a WordPress alapvető feladatainak ütemezésére. A folyamat a tárhelyszolgáltatótól vagy a szolgáltatástól függően változhat, nálunk az alábbiak szerint tudsz cron feladatot létrehozni:

Az alábbi parancsot szükséges futtatnod 30 percenként:

wget -O /dev/null -o /dev/null https://weboldaladcíme.hu/wp-cron.php?doing_wp_cron
Az SQL-adatbázis fájl vizsgálata

Az adatbázisod sem védett a rosszindulatú injektálásokkal szemben. Miután megbizonyosodtál arról, hogy a WordPress core- és tartalomfájlok már tiszták, a következő lépés az adatbázis közelebbről vizsgáld.

Először is, exportáld a MySQL-adatbázisodat .sql biztonsági mentésként a phpMyAdmin segítségével. Egy olyan szövegszerkesztővel, mint az EmEditor vagy Sublime vizsgáld meg az SQL fájlt rosszindulatú tartalom szempontjából. Ne töröld a gyanús bejegyzéseket az adatbázis fájljából, hanem jegyezd fel a helyüket, és ugorj a következő lépésre.

Egyes oldalak és bejegyzések kódjának áttekintése

Keressen rosszindulatú üzeneteket, tartalmakat a bejegyzéseiben, oldalaidon és a hozzászólásokban. Ellenőrizze a módosítási előzményeiket annak észlelésére, hogy ha bármilyen gyanús tevékenység történt ezekkel az adattartalmakkal.

Nézd meg közelebbről azokat a helyeket, ahol a korábbi lépés során gyanús bejegyzéseket találtél. Távolíts el minden rosszindulatú kódot és bejegyzést egy szövegszerkesztő segítségével, és szükség esetén formázd újra a tartalmat. Töröld a tisztítási folyamat során talált spamüzeneteket is.

Távolítsd el weboldalad a feketelistákról

Ha minden jól ment, ezen a ponton már a WordPress webhelyednek mentesnek kell lennie a rosszindulatú kódoktól. Most már csak annyi a teendő, hogy eltávolítsd a weboldalad a feketelistákról: