Ako vyzerá hack WordPress stránky? 😨

Jeden z najväčšich strachov každého webmastra je určite jeho potreba oznamiť klientovi, že jeho stránka bola hacknutá. Samozrejme v prípade, že sa tak stalo.

Dá sa však celému tomu predísť? Odpoveď je jednoznačná. Dá.

Dôvod prečo som si istý mojou odpoveďou je, že WordPress poháňa množstvo známych stránok, ktoré ešte nikdy neboli hacknuté. Patria medzi ne napr. TechCrunch, Facebook NewsRoom, RollingStone a mnohé ďalšie.

V tomto článku Vám ukážem ako predsa taký hack WordPress stránky vyzerá. A ako inak, z vlastnej skúsenosti 🙂

Ako to začalo

Každý hack nejak začína. A začína presne ľahostajnosťou k bezpečnosti. Túto ľahostajnosť má na svedomí vždy nejaký človek. V tomto prípade to budem ja.

Je to už nejaký ten rok, čo som vytvroil svoj prvý WordPress web. Ako programátor som túto atránku programoval na svojom počítači na lokálnm webserveri. A rovnako, ako každý WordPress web, aj tento potreboval pri inštalácii vytvoriť administrátorské konto. V tom čase WordPress ako defaulný názov účtu používal „admin“ – čo samozrejme veľa ľudí používalo – a ja som nebol výnimka. No a z dôvodu, že som mal stránku len u seba v počítači, tak som si nastavil to najjednoduhšie heslo na svete: „password“.

Takže moja kombinácia mena a hesla k prihláseniu bola „admin:password“ – hotová pohoroma. Avšak, všetko sa to odohrávalo len na mojom počítači.

Pre klientov na produkčný, resp. „ostrý“ web som nikdy také heslo nepoužíval. Moje krédo bolo, že pokiaľ je to testovací web alebo web, ktorý sa len vyvíja, tak tieto prihlasovačky nie sú až tak citlivý údaj a kľudne cez ne môze niekto hacknúť web.

Až dokým…

Ako to prebiehalo

…som nezačal pracovať v agentúre, kde sa používal agentúrny testovací server na vývoj webstránok. Išlo o linuxové VPS, kde si interný tím mohol konfigurovať webserver ako chcel.

A na tomto serveri bola umiestnená aj moja wordpress stránka, ktorá sa len vyvíjala. Ešte vôbec nebola spustená, avšak bola viditeľná pre web, pretože bola na adrese „http://wordpress.agentura.sk“.

Google 😠

Google je skvelý pomcník, ale aj zlý… pomocník. Google totižto túto wordpress stránku zaindexoval a bolo ju možné zobraziť vo výsledkoch vyhľadávania. Ako to už býva, akoáhle sa niečo dostane do google vyhľadávania, už odtiaľ niet cesty späť. A to sa aj stalo.

Prostredníctvom Google si totižito moju stránku našiel akýsi neznámy bot, ktorý okamžite skúšal brute-force dictionary attack.

Podarilo sa útočníkovi prelomiť moje prihlasovacie údaje? Ak si spomeniem na to, že na testovacích weboch a weboch vo vývoji som pouźíval kombináciu na prihlásenie „admin:password“ odpoveď bola 💯 áno!

Od toho momentu, kedy sa tomuto botovi podarilo prihlásiť mal 100% kontrolu nad celým webserverom (kde sa nachádzala asi stovka ďalších webov).

Teraz sa môžete pýtať, ako mohol dostať útočník 100% kontrolu servera, akonáhle sa mu podarilo získať cookie pre administrátorský účet?

Odpoveďou je editor šablón!

Presne tak, administrátorský účet v defaultnej inštalácii WordPressu má možnosť editácie PHP súborov šablóny a prostredníctvom tohoto editora je možné vložiť akýkoľvek PHP kód do šablóny. Aj taký, ktorý robí zlobu.

V tomto prípade to mal bot vymyslené perfektne. Do functions.php PHP súboru si vložil nasledovný kód:

eval(gzuncompress(base64_decode('...')));

Vo vyšsie uvedenom kóde ako parameter funkcie base64_decode bol zakódovaný PHP kód, ktorý mal za úlohu do funkcie eval() posunúť kód predaný prostredníctvom $_GET parametra.

Takže, akonáhle mal útočník svoj zákerný kód vložený v mojej stránke, mohol sa kľudne odhlásiť a prísť povedzme na ďalší deň a napísať niečo v štýle:

http://wordpress.agentura.sk?evil_param=function delete_everything() {} delete_everything();

Samozrejme, ten kód by vyzeral zložitejšie, ale samotná podstata ostáva. Kedykoľvek, akokoľvek bola moja WordPress webstránka a zároveň aj celý VPS server vystavený na pospas tomuto útočníkovi.

Ako to skončilo

Našťastie veľmi úsmevne 🙂

Totižto, prostredníctvom vyšsie spoinaného editorá šablón je možné upravovať PHP kód šablóny. To však znamená, že vy upravujete priamo kód, pod ktorým beží vaša webstránka.

A PHP kód, narozdiel od HTML kódu sa správa tak, že stačí jedna zle umiestnená čiarka, alebo jedna chýbajúca čiarka a spadne vám celá webstránka. Koniec, skončili ste, potrebujete sa prihlásiť na FTP a manuálne ten kód opraviť.

A toto presne tento automatický bot alebo veľmi nešikovný útočník urobili. Do PHP súboru, do ktorého umiestnili svoj zákerný kód vložili okrem svojho kódu ešte aj obyčajné písmeno „a“. Toto nikam nepatriace písmeno nevedel PHP interpreter prečítať a tak celá stránka spadla. Nebola prístupná ani pre útočníka, ani pre mňa.


Tak ako teda na bezpečnejšiu WordPress stránku?

V článku 5 pilierov nedobytného WordPress webu som zhrnul poďľa mňa 5 najpodstatnejších opatrení, ktoré potrebuje mať každá WordPress stránka zabezpečené.

Ak by ste aj vy potrebovali pomôcť s bezpečnosťou Vášho webu, či už napr. zabezpečiť bezpečnostné prvky, prekontrolovať stav bezpečnosti alebo konzultáciu, ozvite sa na kontaktné údaje nižšie:

✉️ Požiadať o konzultáciu »

Zdroje k článku:

Poďakovanie: