Panoramica rapida
Data intervento
2026
Problema
Malware WordPress, backdoor e SEO spam nel database
Categoria
Sicurezza WordPress
Complessità
Critica
Livello rischio
File e database compromessi con rischio di reinfezione
Tempo risposta
Non documentato
Tempo risoluzione
Bonifica eseguita in più fasi
Stato finale
Malware, backdoor e SEO spam rimossi
Tecnico incaricato
Carlo Alberto Bello
Contesto dell’intervento
WpSupporto è intervenuto su un sito WordPress dedicato al settore viaggi che presentava una compromissione di sicurezza particolarmente estesa. Il problema non interessava esclusivamente alcuni file dell’installazione: durante l’analisi sono state individuate alterazioni anche all’interno del database WordPress.
Il sito mostrava contenuti completamente estranei alla normale attività editoriale, con riferimenti a casinò online, scommesse e altri argomenti spam. Parte di questi contenuti era stata nascosta graficamente all’utente, rendendo l’infezione meno evidente durante una normale visita delle pagine.
La presenza contemporanea di file PHP malevoli, backdoor, contenuto SEO spam nel database e componenti vulnerabili rendeva insufficiente una semplice reinstallazione del core WordPress. Era necessario ricostruire l’estensione della compromissione e intervenire separatamente su filesystem, database e componenti dell’installazione.
Contesto tecnico dell’ambiente
Tipologia sitoSito editoriale / portale viaggi
CMSWordPress
HostingShellrent – Hosting Linux / Apache
Versione WordPress7.1 rilevata dallo scanner durante l’analisi
Versione PHPVersione esatta non documentata nel rapporto originale
CacheNon determinante per la root cause
DatabaseDatabase WordPress compromesso da SEO spam
Componenti coinvoltiCore, mu-plugins, filesystem, database e componenti WordPress
AmbienteProduzione
Problema segnalato
Il sito presentava contenuti e collegamenti estranei alla normale attività, riconducibili a campagne SEO spam legate principalmente a casinò online e scommesse. L’infezione non era limitata a ciò che risultava immediatamente visibile nel frontend.
Durante l’analisi sono infatti emersi blocchi HTML nascosti attraverso tecniche CSS che posizionavano il contenuto migliaia di pixel fuori dall’area visibile della pagina. In questo modo un visitatore poteva apparentemente visualizzare una pagina normale mentre il codice HTML continuava a contenere collegamenti spam potenzialmente rilevabili dai motori di ricerca.
Un esempio concreto individuato nella Home utilizzava una dichiarazione simile a position:absolute; left:-7015px;. Il contenuto era associato a un widget Elementor e includeva testo e link verso siti di casinò.
Tra le stringhe effettivamente individuate compariva un riferimento alle “netent slot”, inserito all’interno di un collegamento verso un dominio esterno dedicato al gioco online.
Ulteriori verifiche hanno confermato che la compromissione non riguardava soltanto il contenuto delle pagine: erano presenti file PHP malevoli e backdoor in diverse aree dell’installazione.
Analisi tecnica
Verifiche effettuate
- Analisi iniziale del frontend per identificare contenuti estranei, link SEO spam e comportamenti anomali.
- Scansione dell’installazione WordPress mediante strumenti di sicurezza per individuare file modificati, backdoor e componenti sospetti.
- Analisi del database WordPress alla ricerca di stringhe riconducibili a casinò, scommesse e collegamenti esterni non appartenenti al sito.
- Controllo del contenuto Elementor della Home e delle altre pagine interessate per individuare blocchi HTML nascosti fuori dall’area visibile.
- Verifica della directory
wp-content/mu-plugins, dove è stato individuato il file sospetto health-check.php. - Analisi dei file non appartenenti al normale core WordPress e delle directory create nella root dell’installazione.
- Controllo della directory
fileexplorerfemngr-files, contenente un file index.php classificato dallo scanner come TinyFileManager/backdoor. - Verifica dei plugin installati e delle vulnerabilità note rilevate dagli strumenti di sicurezza.
- Controllo dei contenuti presenti nelle tabelle WordPress per distinguere i dati legittimi dai payload SEO spam.
- Nuove scansioni dopo la bonifica per individuare eventuali file malevoli residui.
Cause escluse
- Semplice problema del provider: le evidenze presenti nei file e nel database dimostravano una compromissione dell’installazione WordPress e non un normale disservizio dell’hosting.
- Problema limitato alla cache: il contenuto spam era memorizzato anche nei dati delle pagine e veniva rilevato direttamente nel codice HTML.
- Infezione limitata al database: la presenza di backdoor PHP e file estranei all’installazione dimostrava una compromissione anche del filesystem.
- Infezione limitata al core WordPress: elementi malevoli erano presenti anche in
wp-content, nei mu-plugin e in directory esterne alla normale struttura dei plugin. - Semplice contenuto editoriale inserito per errore: i blocchi erano deliberatamente nascosti tramite posizionamento CSS fuori schermo e contenevano numerosi collegamenti SEO verso domini estranei al sito.
Root cause tecnica
L’analisi ha confermato una compromissione multilivello dell’installazione WordPress. L’attaccante non si era limitato a modificare una singola pagina o un singolo file, ma aveva lasciato diversi elementi in grado di mantenere o ripristinare l’accesso all’ambiente.
Una delle evidenze principali è stata individuata nella directory wp-content/mu-plugins. Il file health-check.php è stato rilevato con firma malware SMW-INJ-CLOUDAV-php.backdoor.wp-PHPTRP2-4. Dopo la verifica e la rimozione del file, la directory è risultata priva di quel componente malevolo.
Un’ulteriore backdoor è stata individuata nel percorso fileexplorerfemngr-files/index.php, collocato direttamente nell’area dell’installazione e non all’interno della normale directory di un plugin WordPress. Wordfence ha classificato il file come Backdoor: PHP/TinyFileManager.D.11206.
La presenza di un file manager PHP indipendente all’interno di una directory anomala rappresentava un rischio elevato, perché strumenti di questo tipo, quando installati abusivamente, possono consentire la gestione diretta dei file del sito al di fuori delle normali funzioni amministrative di WordPress.
È stata inoltre individuata ed eliminata dalla root dell’installazione una directory contenente file utilizzabili per impartire comandi. Questo elemento, insieme alle altre backdoor rilevate, confermava che la compromissione non poteva essere risolta intervenendo soltanto sui contenuti visibili.
La seconda parte dell’infezione interessava direttamente il database. Lo spam SEO era stato inserito nel contenuto delle pagine WordPress e nascosto attraverso CSS. In almeno un caso il contenuto malevolo era presente all’interno di un widget Elementor della Home identificato durante l’analisi.
Sono stati inoltre rilevati contenuti spam in altre aree del sito. Una verifica del database ha individuato, tra gli altri elementi analizzati, contenuto riconducibile al gambling nel campo post_content di una pagina del sito.
Questo meccanismo permetteva di mantenere visivamente normale parte delle pagine per l’utente, lasciando però nel sorgente HTML collegamenti e parole chiave destinati alla manipolazione dei risultati dei motori di ricerca.
Le scansioni hanno inoltre evidenziato componenti WordPress che richiedevano particolare attenzione dal punto di vista della sicurezza. Tra questi risultavano ThemeREX Addons 2.17.5 e Slider Revolution 6.7.12, per i quali gli strumenti utilizzati segnalavano vulnerabilità critiche.
La presenza di componenti vulnerabili rappresenta un importante fattore di rischio, ma non è stata considerata automaticamente la prova del vettore iniziale dell’attacco. In assenza di log sufficienti a dimostrare quale vulnerabilità o credenziale fosse stata utilizzata per il primo accesso, l’origine iniziale della compromissione non è stata attribuita arbitrariamente a uno specifico plugin.
Root cause individuata
Compromissione estesa dell’installazione WordPress con presenza simultanea di backdoor PHP, file e directory estranei alla normale struttura del sito e SEO spam memorizzato nel database e nascosto all’interno delle pagine. La persistenza di più punti di compromissione rendeva insufficiente la rimozione del solo malware visibile.
Registro operativo dell’intervento
Fase 1
Claudio
Ricezione della segnalazione relativa ai contenuti anomali presenti sul sito e raccolta delle prime informazioni necessarie all’analisi.
Fase 2
Carlo Alberto Bello
Presa in carico tecnica del caso e classificazione dell’intervento come incidente di sicurezza WordPress.
Fase 3
Carlo Alberto Bello
Analisi del frontend e del codice delle pagine. Vengono individuati contenuti SEO spam nascosti e collegamenti verso domini estranei al sito.
Fase 4
Carlo Alberto Bello
Analisi dei contenuti WordPress ed Elementor. Lo spam non risulta soltanto visuale ma memorizzato all’interno del database.
Fase 5
Carlo Alberto Bello
Scansione del filesystem e individuazione del file wp-content/mu-plugins/health-check.php classificato come backdoor.
Fase 6
Carlo Alberto Bello
Individuazione di fileexplorerfemngr-files/index.php, classificato come TinyFileManager/backdoor e non appartenente al normale core, tema o plugin WordPress.
Fase 7
Carlo Alberto Bello
Analisi della root e individuazione di una directory contenente file di comando. La directory viene eliminata durante la bonifica.
Fase 8
Carlo Alberto Bello
Bonifica del database con rimozione dei blocchi SEO spam individuati nei contenuti delle pagine, prestando attenzione a preservare i contenuti legittimi.
Fase 9
Carlo Alberto Bello
Rimozione dei file malevoli e delle backdoor individuate e controllo dei componenti WordPress segnalati come vulnerabili o sospetti.
Fase 10
Carlo Alberto Bello
Esecuzione di nuove verifiche e scansioni per individuare eventuali residui della compromissione nei file e nei contenuti del sito.
Fase 11
Claudio
Comunicazione della conclusione della bonifica e indicazione della necessità di monitorare il sito nel periodo successivo all’intervento.
Intervento eseguito
- Analizzato il sito e il relativo codice HTML per individuare la natura dei contenuti spam presenti nelle pagine.
- Individuati i blocchi SEO spam nascosti mediante posizionamento CSS fuori dall’area visibile e identificati i contenuti WordPress ed Elementor interessati.
- Analizzato e ripulito il database rimuovendo le iniezioni spam individuate senza eliminare indiscriminatamente i contenuti legittimi.
- Rimosso il file
health-check.php presente nei mu-plugins dopo la sua identificazione come backdoor. - Individuato e rimosso il file manager PHP malevolo presente nella directory
fileexplorerfemngr-files. - Eliminata una directory anomala presente nella root contenente file di comando estranei alla normale installazione.
- Analizzati i componenti WordPress segnalati dagli scanner per distinguere le vulnerabilità dai file effettivamente compromessi.
- Verificata la presenza di componenti obsoleti o vulnerabili che potevano aumentare la superficie di attacco dell’installazione.
- Eseguite nuove scansioni dopo la bonifica per controllare l’eventuale persistenza dei principali indicatori rilevati inizialmente.
Evidenze tecniche
Backdoor nei mu-plugin
Il file wp-content/mu-plugins/health-check.php è stato identificato durante l’analisi con la firma SMW-INJ-CLOUDAV-php.backdoor.wp-PHPTRP2-4. Il file è stato rimosso durante la bonifica.
TinyFileManager rilevato nel filesystem
Wordfence ha segnalato il file fileexplorerfemngr-files/index.php come Backdoor: PHP/TinyFileManager.D.11206. Il file non apparteneva al normale core WordPress, al tema o alla directory ufficiale del plugin File Manager installato sul sito.
SEO spam nascosto nel database
All’interno dei contenuti WordPress sono stati individuati blocchi HTML nascosti tramite regole CSS come position:absolute e valori negativi molto elevati di left. I blocchi contenevano collegamenti verso casinò, scommesse e altri domini estranei al sito.
La combinazione di queste evidenze dimostrava che l’incidente non poteva essere classificato come una semplice alterazione del frontend. La compromissione interessava contemporaneamente filesystem, meccanismi di persistenza e database WordPress.
Verifiche finali
- Controllato il frontend dopo la rimozione dei contenuti SEO spam individuati.
- Verificato il backend WordPress dopo la bonifica.
- Ricontrollata la directory
wp-content/mu-plugins dopo la rimozione della backdoor. - Verificata la rimozione del file TinyFileManager individuato fuori dalle normali directory dei plugin.
- Ricontrollata la root dell’installazione dopo l’eliminazione della directory contenente i file di comando.
- Ripetute le ricerche nel database per verificare la rimozione dei principali contenuti SEO spam individuati durante l’analisi.
- Controllate le pagine precedentemente interessate da blocchi HTML nascosti.
- Eseguite nuove scansioni del filesystem per individuare eventuali residui o ulteriori file sospetti.
- Verificato il normale caricamento delle principali pagine pubbliche del sito dopo l’intervento.
- Avviato il monitoraggio successivo alla bonifica per controllare l’eventuale ricomparsa di file o contenuti anomali.
Risultato ottenuto
Bonifica di filesystem e database completata
Le backdoor e i file malevoli individuati durante l’analisi sono stati rimossi e il database è stato ripulito dai contenuti SEO spam rilevati. Le pagine interessate sono state riportate ai contenuti legittimi del sito.
L’intervento ha consentito di eliminare non soltanto gli effetti visibili dell’infezione, ma anche diversi elementi utilizzabili per mantenerla attiva. Questo passaggio è stato fondamentale perché la semplice eliminazione dei link spam dal frontend avrebbe lasciato nel filesystem le backdoor individuate.
Non sono state effettuate cancellazioni generalizzate del database: la bonifica è stata eseguita individuando i contenuti compromessi e preservando i dati legittimi del sito.
Rischi evitati
- Persistenza delle backdoor PHP all’interno dell’installazione WordPress.
- Possibilità di continuare a gestire file dell’hosting attraverso il file manager malevolo individuato.
- Indicizzazione da parte dei motori di ricerca di contenuti relativi a casinò e scommesse estranei al sito.
- Progressiva contaminazione di ulteriori pagine e contenuti WordPress.
- Reinfezione del sito dopo una pulizia limitata esclusivamente al database.
- Perdita accidentale di contenuti legittimi attraverso una bonifica indiscriminata delle tabelle WordPress.
Come prevenire il problema
- Mantenere aggiornati WordPress, tema e plugin e intervenire rapidamente sui componenti per i quali vengono segnalate vulnerabilità critiche.
- Rimuovere completamente plugin e temi non utilizzati, perché anche un componente disattivato continua a lasciare i propri file sul server.
- Controllare periodicamente
mu-plugins: i plugin presenti in questa directory vengono caricati automaticamente e possono passare inosservati rispetto alla normale schermata dei plugin WordPress. - Monitorare la comparsa di directory o file PHP non riconducibili al core, al tema o ai plugin effettivamente installati.
- Controllare periodicamente anche il database. Una scansione dei soli file non è sufficiente quando il malware inserisce SEO spam direttamente in
post_content, metadati o contenuti dei page builder. - Conservare backup esterni e precedenti alla compromissione, evitando di considerare automaticamente sicuro un backup recente.
- Dopo una bonifica, eseguire più controlli nel tempo: la ricomparsa degli stessi file o contenuti è un indicatore importante della presenza di una persistenza non ancora individuata.
Cosa abbiamo imparato
Questo caso dimostra perché una scansione del solo filesystem non è sempre sufficiente per dichiarare pulito un sito WordPress. Il malware aveva lasciato elementi sia nei file sia nel database: eliminare soltanto le backdoor avrebbe lasciato online parte dello SEO spam, mentre ripulire esclusivamente le pagine avrebbe lasciato attivi i meccanismi utilizzabili per compromettere nuovamente il sito.
Un secondo aspetto importante riguarda i contenuti nascosti. Il frontend può apparire apparentemente normale mentre il sorgente HTML contiene decine di link che l’utente non vede. L’analisi di un sito compromesso deve quindi comprendere file, database, codice generato dalle pagine e contenuti dei page builder, non soltanto ciò che appare visivamente nel browser.
Infine, una vulnerabilità rilevata su un plugin rappresenta un fattore di rischio ma non dimostra automaticamente che quel plugin sia stato il punto di ingresso utilizzato dall’attaccante. In assenza di log o altre evidenze tecniche sufficienti, abbiamo preferito documentare le vulnerabilità riscontrate senza attribuire loro una responsabilità che non poteva essere dimostrata.
Approfondimenti utili
Firma tecnica
Intervento documentato dal team WpSupporto
Caso studio ricostruito sulla base del processo operativo seguito durante l’intervento.
I dati identificativi del cliente, del dominio e dei componenti coinvolti sono stati anonimizzati per tutelarne la riservatezza.