
Zilele acestea am pățit ca unul dintre clienții mei să se infecteze cu un virus dedicat siteurilor WordPress. Pentru că nu aveam prea mult timp la dispoziție, primul instinct a fost să iau la rând pluginurile specializate în curățarea siteurilor WordPress, asta după ce am încercat să elimin virusul manual. Atacul a fost unul care a escaladat rapid în decurs de câteva zile, folosind mai multe tehnici complementare. Toate au avut la bază o breșă de securitate a unui plugin ce a permis fie încărcarea unui fișier, fie injectarea de cod în baza de date. Atacul s-a întîmplat atât de rapid încât este destul de dificil să îmi dau seama care a fost portița de intrare inițială. Însă, am analizat virusul și am descoperit care sunt tehnicile prin care rău făcătorul se asigura că accesul lui din site nu este eliminat.
later edit: se pare că atacul s-a realizat printr-o vulnerabilitate a pluginului WordPress File Manager ce a fost instalat la un anumit moment de un developer junior. Recomand ca în construirea siteurilor WordPress să se utilizeze un număr cât de mic cu putință de module pentru a limita posibilitatea de a intra în breșe de securitate de la oricare dintre vendorii acestora. Mai ales, recomand să se evite pluginurile care pot avea funcționalități prea complexe sau „periculoase”, cum ar fi un file manager.
CVE-2025-53260 DetailAwaiting Analysis
This CVE record has been marked for NVD enrichment efforts. DescriptionUnrestricted Upload of File with Dangerous Type vulnerability in getredhawkstudio File Manager Plugin For WordPress allows Upload a Web Shell to a Web Server. This issue affects File Manager Plugin For WordPress: from n/a through 7.5. |
Ce pot spune este că niciunul dintre soluțiile actuale nu au rezolvat problema, așa am ajuns să pierd mai mult timp decât speram. Wordfence, Sucuri, Malcare și Malcure nu au curățat nimic. Și mai frustrant este că malcare mi-a arătat o alertă cum că 2 fișiere ar fi infectate, însă nu preciza și care dintre ele sunt. Prețul pentru a solicita o curățare era de 149 de dolari pe an pe care clientul sigur nu l-ar fi plătit și nici eu benevol. Malcure, în schimb, a identificate cele 2 fișiere, dar nu a permis curățarea fără un plan premium. Totuși, am putut merge individual la fiecare fișier și să le șterg manual. Pentru că instinctul meu nu m-a lăsat și curiozitatea mi-a făcut mâncărimi la mouse, am zis să văd ce e înăuntru, așa că am descărcat fișierele pentru o analiză mai aprofundată.
Așa am descoperit că și antivirusul de pe hosting ar fi detectat ceva, dar nu a fost suficient de abil să curețe tot. Unul dintre fișiere se numea hell_prison.php. Când Malcure a terminat scanarea, am văzut că și în baza de date mai era injectat un script, script care la rândul lui executa multe cereri către altre scripturi, totul foarte bvine mascat. Între timp, alte fișiere se multipicau pe server (ce conșineau cod obfuscat, encoded).
Am descoperit că unul dintre fișiere descărcat un cod obfuscat de pe github, aceasta fiind o altă tehnică pentru a face atacatprul să fie prins mai greu pentru că pare a fi un cod cât de cât legitim, mai ales fiind la un nivel minim de linii de cod. Pentru că multe fișiere din wordpress și toate pluginurile erau modificate, am instalat un plugin care mi-a permis reinstalarea lor forțată. Problema este că în tabela utilizatorilor apărea un utilziator cu drepturi depline de admin ce era imposibil de șters pentru că apărea instant.
Întrucât am observat ce fișiere încearcă să acceseze atacatorul prin sute de requesturi externe, am mai identificat câteva denumiri de fișiere pe care antivirusul de la hiosting nu îl putea identifica. Cireașa de pe tort a fost să descopăr un „plugin” care nu era vizibil ]n administrare, dar în fișiere da. Acest plugin rula automat și nu putea fi dezactivat, dar rolul său era să creeze adminul. Pare că acesta a fost unul dintre primele fișiere create pe server de la atac și singurul neidentificat de nici o soluție de scanare.
În acest moment, siteul este curățat, cu prețul timpului meu și cu ărețul refacerii unor secțiuni ce nu au mai putut fi recuperate (petnru că am renunțațt la pluginurile pe care le-am considerat riscante), Siteul rămâne în monitorizare, dar sper că situația rămâne sub control.
PS: Așa arată un plugin fals. Acesta este un exemplu de virusl care vine in completarea celui anterior menționat.
Așa arată un cod obfuscat menit să nu fie ințeles cu ușurință și pentru a ascunde activitatea suspectă
Așa arată un fișier curățat incomplet de antivirus
Fișier ce conține cod encoded base64 pentru a fi nedetectabil de către sistemele de securitate ale github.
Lasă un răspuns