A minap Merras írt egy hasznos és tanulságos bejegyzést a blogjára Életveszélyes WordPress SEO spamek, amik kinyírhatják a helyezéseidet címmel, ami szóbakerült egy chat-en mint wordpress, wordpress feltörés, hackelés stb... E beszélgetés vége az lett, hogy TLoF írt egy nagyon hasznos PHP scriptet (Wordpress Hack Detector), mely segít felderíteni, hogy
- feltörték-e a lapot (módosultak-e fájlok)
- és ha igen, mely fájlok módosultak
Ezúton is köszönjük neki! :) A program egyszerű és mindössze egyetlen fájlból áll, melyet fel kell tölteni a tárhelyre (pl. a wordpress root könyvtárába). Persze nem csak Wordpress blog kapcsán hasznos, bármilyen más rendszerhez is jó. Emiatt a fájlneve kicsit megtévesztő lehet de most már marad e. :) A program alapértelmezetten a PHP, INC, TPL, JS és HTML kiterjesztésű fájlokat vizsgálja, ellenőrzi. A basedir-től számítva a script futtatásakor az összes alkönyvtárat feltérképezi, a bennük található fájlokról pedig fejlegyzést készít az alábbi adatokkal: - utolsó módosítás dátuma
- a fájl md5 összege
A script futtatásakor (amikor meghívod böngészőből) a fájlokról tárolt régebbi adatokat hasonlítja össze az újakkal, jelzi az új fájlokat és azokat, melyek megváltoztak. A törölt fájlokkal nem foglalkozik, hiszen ha azok eddig sem hiányoztak, biztonsági kockázatot biztos nem jelentenek. ## A script futtatása
Első ugye mindenképp le kell legalább 1x futtatni a scriptet, hogy az a szükséges adatokat el tudja menteni. Utána jöhetnek a frissítő - ellenőrző futtatások, amikor már tényleges csekkolja, hogy történt-e vmi gubanc a fájlokkal. A kódban van egy ilyen részlet:
$password = '';
Itt tetszőleges jelszó adható meg. A példa kedvéért most legyen a jelszó a "tutorialponthu", szóval ez esetben a scriptet majd így kellene meghívni:
wphackdetector.php?write=on&password=tutorialponthu
Miután megadtad az új jelszót, azt értelemszerűen a link végére, az egyenlőségjel után be kell írnod amikor futtatod a scriptet a böngésződben. Az adatokat gyűjti egy fájlba amit maga mellett hoz létre rkh.data néven. Ehhez a file-t üresen létre kell hozni, és ideiglenesen irás jogot adni a file-ra a webszervernek. Egy átlagos WordPress honlapnál kb 100-200 kbyte körüli fájl jön létre. ## Önellenőrző rész
Mvel készülni kell arra, hogy a progi adatbázisát is megpiszkálhatják, ezért erről is készül egy ellenörző md5 összeg. Ezt az értéket mindig kiírja a rendszer az éppen aktuális file alapján, illetve amikor frissülnek az adatok a file-ban az új érték is megjelenik a képernyőn. Ezt ajánlott elmenteni valahova, és a következő futáskor megnézni, hogy változott-e. ## A script eredménye
A script futtatásakor 2 fajta eredményt lehet kapni. Amikor minden rendbenHa minden rendben van, akkor képernyőn kb ennyi információ fog megjelenni:
RKH MD5
226671f4f5d4e374za2csi94b7c3621e
New files:
Changed files:
Tehát nincs új fájl és nem is módosult semmi. Amikor valami változott
RKH MD5
226671f4f5d4e374za2cfc94b7c3621e
RKH DATA UPDATED
NEW MD5 HASH: 69a5a8c7b43dad40cf90391b37cdebab
New files:
Changed files:
./olvasdel.html :: 2011-02-24 10:04:35
Mint látható, egyből látszódik, hogy módosult (+ hogy mikor) az olvasdel.html fájlom. ## Letöltés
A Wordpress Hack Detector php script itt tölthető le: wphackdetectorv2.zipA ZIP-ben 1db PHP fájl van. Kérdés, kérés, javaslat szívesen látott dolog.
Harder
Profil
Korábbi hozzászólások (9)
A régi blogon érkezett hozzászólások archívuma. Új hozzászólást már nem lehet írni.
Köszönjük Nektek! Szerintem, mindenki ellenőrizze a weblapját!
Köszi a scriptet, igen hasznos. :]
Találtam viszont pár bugot:
- A bejegyzésben rhk.data a kért filenév, viszont a script rkh.data nevű filet vár. (Érdekesség, hogy a kódban konzisztensen function rhk(); van, de ettől még működik, valamint az egyik szöveg is "RHK DATA UPDATED". Minden más esetben rkh.)
- Ha nem adsz meg jelszót, akkor sohasem menti el a filet. Ez azért van, mert a fileba mentés függvénye ellenőrzi a jelszó egyenlőségét, viszont előtte a kód az üres jelszót kicseréli egy véletlenszerű md5-re.
Köszi a visszajelzést! Ahol tudtam, módosítottam most az rkh vs rhk-t illetve tettem default jelszót is a scriptbe, majd módosítottam a cikk szövegét. :)
Azért ha már fájlokat módosítanak, akkor azt is igazán megtehetik, hogy egyszerűen átírják a scriptet (önellenőrzést kiszedik, bármi). De szerintem ahol ilyen előfordul, ott már régen nagyobb bajok vannak :-).
@mad
De ha webroot fölött van a script és cronból hívkálod már jó is lehetsz :)
No és ez csak WP-hez működik, más honlapokhoz nem használható?
Ebből a kérdésből is látszik, hogy nem tudom, hogy működik, de ha nem tároljuk a tárhelyen sem magát a scriptet, sem a korábbi ellenőrzés eredményét, akkor gondolom nincs esély arra, hogy egy esetleges támadás esetleg felülírja. Vagy nem lehet ezeket csak úgy egyszerűen visszamásolgatni?
Mint ahogy azt a cikk is tartalmazza: "Persze nem csak Wordpress blog kapcsán hasznos, bármilyen más rendszerhez is jó." :P
Ha lemented magadnak azt a fájl, ami az eredményeket tárolja és a köv. ellenőrzés előtt visszamásolod, akkor tökmindegy, hogy a támadás során felülírták-e vagy sem.
No igen, gondoltam, hogy ez a második így lesz (a visszamásolgatós módszerrel kapcs.), az első kérdésemre pedig köszi a választ és bocsi, tényleg nem olvastam el figyelmesen a posztot! (Igazából csak átfutottam, mert én nem WP-t használok.)
Én joomlás oldalt néztem meg vele, és tökéletesen működött! Köszönet a fejlesztőnek! Meg is találtam a módosított php állományt. Lehet hogy még hasznos lenne egy olyan változata amivel egy adott időintervallumot vizsgál a script. Mert ha tudom a betörés időpontját akkor csak azt szeretném tudni hogy mely állományok változtak akkor. Nekem speciel egy áttelepítés miatt az összes, hónapokkal korábbi állományt is kilistázta.
Van hozzáfűznivalód? Írj nekem közvetlenül.
Kapcsolat