Am fost hackerit într-un mod pervers

Atât de pervers încât aproape că mi-a plăcut și mie, că am avut ce învăța, dacă n-ar fi trebuit să lucrez doisprezece ore să remediez efectele nenorocirii, durerea maximă fiind aceea că operam cu un mediu de producție, că nu sunt companie cu mediu de test, de dezvoltare și deloy și ce-o mai fi

Tipul atacului a fost MySQL Injection, mai vechiuț, și l-am depistat doar ieri, când am văzut că site-ul mai avea un user de administrator, în afara aceluia creeat de mine. Și, mai rău, utilizatorul cel nou avea pe blog mai multe privilegii decât mine, întrucât el era un fel de super-administrator, în timp ce pe mine m-a degradat la un banal administrator.

Amu, de intrat în panică, n-am intrat. Dar nici mult nu mai aveam. Și, cum eram la muncă, nu mă puteam ocupa de blog, dar nici nu-l puteam lăsa să cadă pradă întâmplării, așa că am făcut două chestii:

  1. Am pus blogul în mentenanță (HTTP Error 503 – Service Unavaliable). Foarte bună treaba asta, bloca inclusiv accesul remote prin mobil.
  2. Am șters userul de DB folosit de WordPress. Este un gest extrem, dar fără user de acces, baza de date este în siguranță.

După aceea, pe seară, ajuns acasă, mi-am pus un pahar de vin din Moldova și am început să bibilesc prin baza de date, să văd cât de mare a fost vicleșugul. Și, după cum spuneam, a fost măricel: privilegii schimbate în baza de date, chestii de-astea hard core, fără de care WordPress funcționează dar la care îmi taie accesul. Cu siguranță cel sau cei care au făcut asta, știau toate subtilitățile WordPress și le mulțumesc frumos că nu mi-au distrus munca ci dar au făcut mișto de mine.

La cât de finuț au lucrat, puteau să-mi facă mult, mult mai mult rău. De asta zic, s-a văzut skill-ul lucrăturii, nu în fiecare zi vezi așa ceva!

În plus, față de priceperea lor, aveam WordPress 3.5.1. Găurile de securitate din el se cam știau, nu știu de ce nu m-am ocupat instant de el! Așa că am instalat un WordPress 3.7.1. într-un subdomeniu oarecare și am copiat întreg tabelul de permisiuni wp_options de la site-ul cu versiunea 3.7.1. instalat pe curat la WordPress-ul meu 3.5.1. stricat.

Câteva chestii au rămas, nu e totul perfect, dar nu mai este de la hack, ci de la altceva. Revenind, am comparat permisiunile de feature direct din DB (și mi-a luat mai mult de o oră) și de-abia după miezul nopții am reușit să…

Dar stați, că mai este. Spuneam că am șters utilizatorul de bază de date folosit de WordPress pentru a se conecta la baza de date. Ești nebun? Am găsit un bug de CPanel, și n-am reușit să-i atașez un alt utilizator bazei de date a blogului, așa că am clonat-o (trăiască PHPMyAdmin) și noii baze de date i-am atașat un utilizator.

Bineînțeles că am actualizat tot ce se putea, inclusiv temele implicite din WordPress, am șters toate modulele pe care nu le mai foloseam, am refăcut fișierele .htaccess și am reinstaurat accesul parolat la partea de Admin. De ce să mint? Am observat că wp-login este accesată de 2,000 de ori pe lună, și nu de către mine, dar cum folosesc nume de utilizatori și parole puternice, nu prea m-a interesat.

Pe de altă parte, am îmbunătățit cache-ul blogului cu W3 EDGE și CloudFlare, și am făcut o serie mai mare de îmbunătățiri pe care, altfel, nu le-aș fi făcut din lipsă de timp. Așa, mi-am făcut și timp și chef să fac tot ce n-am făcut în câteva luni – și se cam cerea făcut!

Sper să nu mai am probleme prea curând, dar nu-mi fac iluzii că într-un an sau doi nu se va întâmpla iar.

Oricum, cei de la Elvsoft mi-au fost de foarte mare ajutor și m-au ajutat cu toate cererile pe care le-am făcut și țin să le mulțumesc pentru aceasta.

13 Comentarii

  1. Nea Cornel 02 noiembrie 2013 la 22:56 - Raspunde

    Și eu am pățit-o anul ăsta, dar din fericire am avut back-up și profesionisti la hosting. Apropo de CloudFlare, se merită pentru un blog mic?

    • Robin Molnar 12 noiembrie 2013 la 07:42 - Raspunde

      Nu strică sau, cel puțin, nu enervează așa de tare.

  2. Bogdan 02 noiembrie 2013 la 23:53 - Raspunde

    Frumos lucrat de ambele părţi, bine că “l-ai rezolvat” DAR… “Am observat că wp-login este accesată de 2,000 de ori pe lună, și nu de către mine”! În cazul meu, hosting-ul mă anunţă când am 7-8 accesări suspecte pe diferitele zone de login (admin, ftp, cpanel, etc).

    Trebuie să existe şi pentru WordPress ceva asemănător cu ce folosesc pe Joomla, un plugin ce ataşează o cheie suplimentară la link-ul de admin, aşa că după ce află foarte uşor ce platformă foloseşti, e mai complicat (în niciun caz imposibil) de descoperit şi sub-cheia.

    Block la orice clase necunoscute îţi apar ţie ca accesând zone de login, always! 😉

  3. Manuel 04 noiembrie 2013 la 09:38 - Raspunde

    Bine ca ai reusit sa rezolvi treaba. Am avut, la un moment dat, un WP ami vechi pe un subdomaniu si ceva lagerian a intrat pe el si a faut ravagii. Am curatat tot si am reinstalat 😀

    • Robin Molnar 12 noiembrie 2013 la 07:39 - Raspunde

      Așa se învață poporul minte să n-o mai lălăie.

  4. Adrian Sava 19 noiembrie 2015 la 10:20 - Raspunde

    Ce bine ca ai scris acest post!!! M-am luminat si eu – minimal ce-i drept – de ce imi apar reclame pe blog fara permisiunea mea. Surpriza! Un hacker! Acum, ca sunt extrem de blond cand vine vorba de bucataria wp este o realitate! Limba straina! Si atunci ramane sa cer o mana de ajutor! In ce masura tu Robin Molnar ma poti ajuta sa-mi remediez problema?

  5. adrian sava 20 noiembrie 2015 la 20:21 - Raspunde

    Fiuuu…. m-am linistit! Multumesc ca ti-ai alocat timp din timpul tau pentru aceasta lamurire. Doar ca domeniul meu este unul platit. E posibil ca din exces de zel cei de la wp sa posteze reclame la siteuri deocheate? De asemenea daca posteaza pe blogul meu, aceste reclame nu pot fi monetizate?

    • Robin Molnar 21 noiembrie 2015 la 01:19 - Raspunde

      Sunt 2 chestiuni:

      1. WP nu cred că ar pune, vreodată, reclame deocheate.
      2. WP are nevoie să publice reclame, pentru că așa subvenționează costul de hosting.

      • adrian sava 21 noiembrie 2015 la 13:10 - Raspunde

        Multumesc foarte mult pentru aceste lamuriri!

Lasa un raspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Vreau să fiu părtaș la faptă. Poți, de asemenea, să fii părtaș și fără martori.

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.