Malware WordPress Vetë-Shërues Përdor Backdoor Blockchain
Imazh i krijuar nga IA

Malware WordPress Vetë-Shërues Përdor Backdoor Blockchain

Studiuesit e Sucuri detajojnë SC, një familje malware WordPress që rindërton veten nga tetë vendndodhje skedarësh, bazash të dhënash dhe memorieje dhe merr komanda përmes portave publike Ethereum.

Një familje malware WordPress vetë-shëruese e quajtur SC mund të rindërtojë veten nga tetë vende të veçanta fshehjeje, sipas një raporti të 30 shtatorit 2026 nga studiuesi i Sucuri, Gabriel Barbosa. Familja e merr emrin nga shënuesit SC_ që gjenden në kodin e injektuar. Gjatë një pastrimi, e njëjta backdoor vazhdonte të kthehej brenda sekondash pas çdo heqjeje, pavarësisht se sa me kujdes fshiheshin skedarët e dukshëm. Ngarkesa jeton në të paktën tetë vende njëkohësisht, e shpërndarë nëpër skedarë, bazën e të dhënave dhe memorien e përbashkët, dhe secili prej këtyre vendeve mund t'i rindërtojë të gjithë të tjerët. Fshini shtojcën dhe një drop-in e rishkruan atë. Fshini drop-in-in dhe tema e rishkruan atë. Pastroni çdo skedar në disk dhe ngarkesa tjetër e faqes e rikthen të gjithë grupin nga baza e të dhënave ose nga një segment i memories së përbashkët. Rezultati është një sistem rrethor pa asnjë pikë të vetme që mund të hiqet për ta ndaluar.

Komponentët e rikuperuar përdorin një skemë të zakonshme errësimi: pa eval, pa emra funksionesh të lexueshëm dhe pa shënues në pjesët më të reja. Çdo skedar mbart një tabelë me vargje të përziera dhe një dekoder të vogël që zgjidh një indeks numerik në një emër funksioni real përmes një shifrimi zëvendësimi pozicional. Një skedar .user.ini vendos auto_prepend_file, një direktivë PHP që ekzekuton një skedar të specifikuar para çdo kërkese në atë pemë direktorish. Direktiva tregon drejt një skedari shim me emër të thjeshtë, zakonisht në wp-content. Shim përfshin një ngarkues të fshehur me prefiks pikë nëse ekziston dhe në heshtje nuk bën asgjë nëse hiqet, gjë që e mban faqen funksionale ndërsa një komponent tjetër rikrijon skedarin e fshehur. Ai ngarkues i fshehur rindërton një shtojcë false must-use nga tre burime të provuara me radhë: një kopje ekzistuese shtojce, një cung i koduar në direktorinë e cache-it dhe një paketë rikthimi ZIP me një emër heksadecimal të rastësishëm. Ai shkruan përmes një skedari të përkohshëm, vendos lejet në 0644 dhe thërret opcache_invalidate në mënyrë që skedari i ri të ekzekutohet menjëherë. Një drop-in db.php, të cilin WordPress e ngarkon herët gjatë nisjes, mbart të gjithë backdoor-in si një blob gzip dhe base64 dhe e rishkruan shtojcën sa herë që ajo mungon ose është shumë e vogël. Një drop-in advanced-cache.php, i ngarkuar edhe më herët kur caching është i aktivizuar, mund ta rindërtojë shtojcën nga pesë burime: një shtojcë ekzistuese must-use, një kopje ekzistuese shtojce, një segment memorie të përbashkët System V që mban PHP, një paketë ZIP e kërkuar nëpër disa dosje dhe së fundi vetë baza e të dhënave përmes një lidhjeje direkte duke përdorur konstantet e kredencialeve të vetë faqes. Një bllok i shtuar në functions.php të temës aktive, i rrethuar nga shënues fillimi dhe fundi, vepron si një binjak i db.php që banon në temë dhe e rishkruan shtojcën kur ajo zhduket. Ngarkesa aktuale e malware është instaluar si një shtojcë must-use dhe si një shtojcë normale, me kopje identike, një faqe cilësimesh bindëse, një shortcode dhe një grep aktivizimi.

Backdoor-i fshihet duke filtruar listën e shtojcave, transientin e përditësimit dhe pamjet e shtojcave të faqes dhe rrjetit, dhe injekton JavaScript admin për ta hequr veten nga tabela e shtojcave si masë rezervë. Për komandim dhe kontroll, ai nuk përdor një server të vetëm të koduar. Në vend të kësaj, ai mbart një listë me rreth njëzet porta publike Ethereum RPC dhe një grup selektorësh metodash të kontratave inteligjente. Këto porta legjitime të palëve të treta veprojnë si transport, kështu që bllokimi vetëm i asaj që shihet në trafik i lë të tjerat të disponueshme. Ngarkesa merr gjurmët e faqes duke mbledhur URL-në dhe hostin e faqes, versionet e WordPress dhe shtojcave, hash-et e shtigjeve, temat aktive, listën e shtojcave must-use dhe tokenat aktualë të sesionit të administratorit. Ai e kodon atë paketë dhe e poston në pikën përfundimtare të zgjidhur. Përgjigja mund të përmbajë JavaScript front-end për ta injektuar, i cili në një dyqan online mundëson skimming në arkëtim, PHP të ri për ta instaluar dhe lista të shtojcave të sigurisë për t'i çaktivizuar dhe fshirë. Kur i thuhet të heqë një shtojcë sigurie, ai mund ta çaktivizojë atë, të fshijë direktorinë e saj dhe së pari të ricaktojë ose ngrejë një llogari tjetër. Ai gjithashtu krijon një administrator të fshehur duke adoptuar një admin ekzistues të fshehur ose duke gjeneruar një të ri, duke e shkruar llogarinë direkt në tabelat users dhe usermeta kur API normal nuk është i disponueshëm. Ai i ruan aftësitë nën çelësin meta të aftësive të paracaktuara, e fsheh llogarinë nga listat e përdoruesve, numërimet dhe pamjet e roleve dhe falsifikon cookie autentikimi të vlefshme në mënyrë që operatori të hyjë pa fjalëkalim. Një parametër magjik kërkese, një prefiks i shkurtër i ndjekur nga një vlerë fikse, trajtohet para se WordPress të përfundojë ngarkimin dhe kthen një përgjigje normale me përmbajtje para se të dalë. Së fundi, ngarkesa lidh një grup të madh veprimesh dhe filtrash për të rishkruar çdo komponent tjetër: drop-in-et db.php dhe advanced-cache.php, injektimin e temës, ngarkuesin e fshehur dhe direktivat e tij prepend .htaccess dhe .user.ini, paketën e rikthimit ZIP, segmentin e memories së përbashkët dhe kopjen e bazës së të dhënave. Ai madje hap një lidhje të papërpunuar me bazën e të dhënave për të futur direkt opsionin e ngarkesës së tij, duke anashkaluar WordPress.

Mësimi i vetëm më i rëndësishëm nga ky rast është se persistenca nuk kufizohet vetëm te skedarët. Sucuri rikuperoi kopje të gjalla të ngarkesës në tre vendndodhje jo-skedarësh, secila prej të cilave do ta rindërtojë të gjithë grupin në kërkesën tjetër. Ngarkesa e plotë qëndron në një rresht opsionesh nën një emër të rastësishëm, e ruajtur në të njëjtin format gzip dhe base64, dhe advanced-cache.php e lexon atë përmes një lidhjeje direkte me bazën e të dhënave. Në serverët që mbështesin memorie të përbashkët System V, ngarkesa shkruhet në një segment të identifikuar nga një çelës numerik fiks. Ai segment jeton në RAM, kështu që i mbijeton fshirjes së skedarëve dhe pastrimit të bazës së të dhënave njësoj, dhe në hosting të përbashkët mund të jetë madje në pronësi të një llogarie tjetër. Infeksioni gjithashtu regjistron grepa cron, duke përfshirë emra të rastësishëm krahas një grepi të njohur fetch. Cron-i i sistemit ekzekuton skedarin cron të WordPress-it, jo trafikun e vizitorëve, pastaj shkakton ri-dislokimin sipas orarit. Variantet SC të lidhura përdorin triggers të bazës së të dhënave që rikrijojnë një administrator gjatë insertimit. Një trigger ekzekutohet brenda bazës së të dhënave, kështu që i mbijeton një rikthimi të plotë të skedarëve dhe madje fshirjes së llogarisë që vazhdon të rikrijojë, gjë që e bën pastrimin e përdoruesve të kotë derisa trigger-i të hiqet.

Për shkak se çdo komponent mund t'i rindërtojë të tjerët, radha e veprimeve ka më shumë rëndësi sesa fshirjet individuale. Pastrimi i rekomanduar nga Sucuri fillon me neutralizimin e prepend-it përpara se të fshihet objektivi i tij. Vlera auto_prepend_file ruhet në cache nga PHP deri në 300 sekonda, kështu që zbrazja e objektivit prepend në një cung inert së pari, pastaj heqja e direktivës nga .user.ini, php.ini dhe .htaccess, shmang rrëzimin e çdo kërkese PHP në llogari. Më pas, pastroni kopjet e ngarkesës jashtë diskut: hiqni rreshtin e ngarkesës nga tabela e opsioneve, pastroni segmentin e memories së përbashkët dhe fshini opsionet e kontrollit dhe transientët. Në hosting të përbashkët, një segment i memories së përbashkët mund të jetë në pronësi të një llogarie tjetër, në të cilin rast vetëm ajo llogari ose hosti mund ta heqë atë, dhe ai bëhet i padëmshëm sapo drop-in-et që e lexojnë të jenë zhdukur. Pastaj hiqni detyrat e planifikuara dhe çdo trigger të bazës së të dhënave: pastroni grepat kron me qëllim të keq dhe auditojeni information_schema.TRIGGERS për çdo trigger që rikrijon një administrator gjatë insertimit. Hiqni administratorin e fshehur aftësitë e të cilit ruhen nën çelësin meta të aftësive të paracaktuara dhe pastroni opsionin jetim që tregon ID-në e tij. Pastroni skedarët në një kalim të vetëm: hiqni ngarkuesit e pavarur dhe shim-in, fshini të dyja kopjet e shtojcës false nga mu-plugins dhe plugins, fshini paketën e rikthimit ZIP kudo që ishte fshehur dhe hiqni drop-in-et e injektuara. Për db.php dhe advanced-cache.php, fshini skedarët me qëllim të keq; për functions.php të temës, shkurtoni vetëm bllokun e kufizuar midis shënuesve të fillimit dhe fundit në mënyrë që kodi legjitim i temës të mbetet i paprekur. Së fundi, kryeni një skanim të plotë dhe monitoroni shtigjet e prekura. Një komponent që kthehet do të thotë se një pikë persistence mbijetoi ose shtegu origjinal i hyrjes është ende i hapur.

Sucuri këshillon mbajtjen e WordPress-it dhe të gjithë komponentëve të përditësuar, përdorimin e një muri zjarri të aplikacionit web për të bllokuar përpjekjet e shfrytëzimit dhe trafikun e komandave dalëse, auditimin e tabelës së opsioneve, detyrave të planifikuara, trigger-ave të bazës së të dhënave dhe llogarive të përdoruesve sipas një orari, dhe trajtimin e çdo rishfaqjeje si shenjë të një pike persistence që mbijeton. Për pronarët e faqeve që duan atë lloj mbrojtjeje pa e mirëmbajtur vetë, një plan i menaxhuar hosting WordPress si AEU Hosting mund të marrë përsipër një pjesë të punës së përditësimit dhe forcimit të platformës, megjithëse asnjë host nuk mund t'i zëvendësojë hapat e pastrimit të mësipërm.

Si të Mbroheni

  1. Përditëso WordPress-in, temën tënde dhe çdo shtojcë sapo të dalin versione të reja, sepse ky malware shpesh hyn përmes të metave të njohura në softuer të vjetëruar.
  2. Aktivizo një mur zjarri të aplikacionit web për faqen tënde, i cili kontrollon trafikun hyrës dhe mund të bllokojë shumë përpjekje shfrytëzimi para se të arrijnë te WordPress.
  3. Nëse faqja jote vazhdon të riinfektohet, mos fshi vetëm skedarët; hiq së pari kopjet e fshehura në bazën e të dhënave, detyrat e planifikuara dhe memorien e serverit, ose punëso një shërbim profesional pastrimi malware.
  4. Kontrollo listën e përdoruesve të WordPress për çdo llogari administratori që nuk e ke krijuar ti dhe fshije atë, pastaj ndrysho të gjitha fjalëkalimet.
  5. Pas një pastrimi, mbikëqyr dosjen wp-content për skedarë që rishfaqen papritur, sepse kjo do të thotë se një pikë e fshehur persistence mbijetoi.

Termat e Shpjeguar

  • WordPress Një sistem ndërtimi faqesh interneti dhe menaxhimi përmbajtjeje shumë i përdorur që mban shumë blogje dhe dyqane online.
  • malware Softuer me qëllim të keq i krijuar për të dëmtuar, kontrolluar ose përdorur fshehurazi një kompjuter ose faqe interneti.
  • backdoor Një rrugë e fshehur në një faqe interneti ose sistem që i lejon një sulmuesi të kthehet pa kredenciale normale hyrjeje.
  • command and control Kanali që një sulmues përdor për t'i dërguar udhëzime malware-it dhe për të marrë të dhëna të vjedhura.
  • PHP Një gjuhë programimi e përdorur zakonisht për të ndërtuar faqe interneti dinamike, duke përfshirë WordPress.
  • blockchain Një regjistër dixhital publik më i njohur për kriptovalutat, këtu i keqpërdorur si një mënyrë për të fshehur nga vijnë komandat.
  • smart contract Një program i vogël i ruajtur në një blockchain që ekzekutohet automatikisht kur plotësohen kushte të caktuara.
  • shared memory Memorie e përkohshme kompjuteri e ndarë midis proceseve, e cila mund të ruajë të dhëna edhe pasi skedarët janë fshirë.
  • cron job Një detyrë e planifikuar që ekzekutohet automatikisht në një server në kohë të caktuara.

Shërbime AEU të lidhura

  • AEU Panel Paneli i kontrollit për hosting-un e menaxhuar
  • AEU-I Konsulencë IT dhe sigurie