Malware e backdoor su eCommerce WordPress: analisi e bonifica completa

Caso Studio Reale WPS-CS-8012

Malware e backdoor su eCommerce WordPress: analisi e bonifica completa

Documentazione tecnica di un intervento reale WpSupporto: richiesta ricevuta, analisi, diagnosi, intervento e verifiche finali.

Data pubblicazione: 20/09/2026 Versione documento: 1.0 Archivio interventi tecnici
Malware WordPress e Backdoor Rimossi Caso Studio WpSupporto

Questo documento descrive un intervento realmente eseguito dal team WpSupporto. Per tutelare la privacy del cliente, alcuni dettagli identificativi possono essere stati anonimizzati senza alterare la natura tecnica del caso.

Panoramica rapida

Data intervento
Settembre 2026
Problema
Malware WordPress, backdoor e codice SEO spam
Categoria
Sicurezza WordPress
Complessità
Alta
Livello rischio
Sito compromesso e possibilità di reinfezione
Tempo risposta
Non documentato
Tempo risoluzione
Intervento eseguito in più fasi di analisi e bonifica
Stato finale
Malware e backdoor individuati e rimossi
Tecnico incaricato
Carlo Alberto Bello

Contesto dell’intervento

WpSupporto è stato contattato per intervenire su un eCommerce realizzato con WordPress e WooCommerce che presentava evidenti anomalie a livello dell’installazione. Durante le prime verifiche era già emersa la presenza di un file index.php compromesso e il sito mostrava inoltre problemi che impedivano di eseguire normalmente alcune operazioni amministrative, tra cui l’installazione e la gestione dei plugin.

La situazione richiedeva un’analisi più ampia rispetto alla semplice sostituzione del file inizialmente individuato. Su un eCommerce in produzione, infatti, la presenza di codice malevolo può coinvolgere più aree dell’installazione e lasciare meccanismi utilizzabili per mantenere l’accesso al sito anche dopo una prima pulizia.

L’obiettivo dell’intervento è stato quindi verificare l’estensione della compromissione, individuare i componenti coinvolti, rimuovere il codice malevolo e controllare che le principali evidenze rilevate durante l’analisi non fossero più presenti.

Contesto tecnico dell’ambiente

Tipologia sitoeCommerce WooCommerce
CMSWordPress
HostingHosting Linux
Versione WordPressInstallazione WordPress in produzione
Versione PHPNon rilevante per la root cause individuata
CachePresenza di file utilizzati dal malware come cache del payload
DatabaseDatabase WordPress verificato durante la bonifica
Plugin coinvoltoNessun singolo plugin identificato come root cause definitiva
AmbienteProduzione

Problema segnalato

L’installazione WordPress presentava segni concreti di compromissione. Oltre al file index.php risultato alterato, durante le operazioni amministrative venivano riscontrate limitazioni che impedivano di lavorare normalmente sul sito.

In particolare, alcune operazioni restituivano un errore 403 Forbidden. Questo comportamento rendeva inizialmente difficoltosa anche l’installazione degli strumenti necessari per approfondire l’analisi di sicurezza.

La verifica della configurazione del server ha portato all’individuazione di un file .htaccess anomalo nella root di WordPress. Al suo interno era presente un blocco generale dell’esecuzione PHP accompagnato da una whitelist di file con nomi non riconducibili alla normale installazione, tra cui riferimenti come system_log.php, adminfuns.php e connects.php.

La sostituzione della configurazione compromessa con le regole WordPress corrette ha eliminato il blocco 403 e ha consentito di proseguire con l’analisi dell’installazione.

Analisi tecnica

Verifiche effettuate

  • Controllo dei file presenti nella root dell’installazione WordPress dopo l’individuazione del primo index.php compromesso.
  • Analisi del file .htaccess per individuare la causa degli errori 403 che impedivano alcune operazioni amministrative.
  • Ripristino delle normali regole WordPress nel file .htaccess e verifica della scomparsa del blocco 403.
  • Installazione ed esecuzione di Wordfence dopo il ripristino dell’accesso alle normali funzioni di WordPress.
  • Scansione di 27.208 file dell’installazione, con rilevazione iniziale di 20 problemi.
  • Analisi delle directory segnalate, tra cui wordpress-cache-optimizer, background-image-cropper, CustomWp e mu-installer.
  • Controllo dei file del tema attivo, con successiva individuazione di codice malevolo all’interno del file footer.php.
  • Ricerca nel database degli indicatori individuati durante l’analisi, per verificare se il payload fosse stato memorizzato anche nelle tabelle WordPress.
  • Ricerca dei file .dat utilizzati dal codice malevolo per memorizzare localmente il contenuto recuperato dall’esterno.
  • Nuova scansione di sicurezza dopo la rimozione delle directory e dei file compromessi per verificare la persistenza delle backdoor precedentemente rilevate.

Cause escluse

  • Semplice errore di configurazione WordPress: le anomalie non erano riconducibili soltanto a permalink o impostazioni errate, perché la scansione ha individuato file classificati come backdoor in più directory dell’installazione.
  • Errore 403 causato esclusivamente dall’hosting: il blocco è scomparso dopo la sostituzione del file .htaccess compromesso, collegando il comportamento alla configurazione presente nell’installazione.
  • Infezione limitata al solo index.php: le verifiche successive hanno individuato ulteriori componenti compromessi, dimostrando che il primo file trovato rappresentava soltanto una parte dell’infezione.
  • Payload SEO spam memorizzato direttamente nel database: le ricerche effettuate nel database per gli indicatori controllati, tra cui osohbet.org e wh-footer, non hanno restituito corrispondenze.
  • Problema risolvibile con la sola reinstallazione del core: parte del codice malevolo era presente anche nell’area wp-content e nel tema, quindi la sostituzione dei soli file WordPress non sarebbe stata sufficiente a eliminare l’intera compromissione.

Root cause tecnica

L’analisi ha evidenziato una compromissione distribuita su più elementi dell’installazione WordPress. Il problema non era quindi rappresentato da un unico file infetto.

La prima evidenza importante è stata individuata nel file .htaccess della root. La configurazione presente bloccava generalmente l’esecuzione di file PHP ma conteneva contemporaneamente una whitelist anomala che consentiva l’accesso a specifici script. Questa configurazione non corrispondeva al normale funzionamento richiesto da WordPress e provocava gli errori 403 riscontrati durante le operazioni amministrative.

Una volta ripristinato il file .htaccess, è stato possibile eseguire una scansione più approfondita. Wordfence ha analizzato 27.208 file e ha inizialmente rilevato 20 problemi. Tra le segnalazioni erano presenti file classificati come backdoor all’interno delle directory wordpress-cache-optimizer, background-image-cropper, CustomWp e mu-installer.

L’analisi non si è fermata alle directory segnalate dallo scanner. Nel file wp-content/themes/pneupress/footer.php è stato infatti individuato un ulteriore meccanismo malevolo che contattava il dominio esterno linkal.xyz.

Il codice effettuava una richiesta verso un endpoint remoto /pull, recuperava un payload esterno e ne memorizzava localmente il risultato utilizzando file con schema .lp-*.dat. Il contenuto salvato veniva successivamente inserito nell’output della pagina tramite lettura del file locale.

Uno dei file .dat individuati conteneva effettivamente HTML SEO spam con collegamenti verso diversi domini esterni estranei all’attività dell’eCommerce. Questo ha permesso di collegare il codice presente nel footer.php al contenuto spam rilevato sul sito.

Per stabilire se lo stesso contenuto fosse stato inserito anche nel database, sono state effettuate ricerche mirate. Gli indicatori controllati non hanno prodotto risultati, consentendo di concentrare la bonifica sul filesystem e sui componenti compromessi effettivamente individuati, senza effettuare modifiche indiscriminate alle tabelle WordPress.

La root cause tecnica documentabile è quindi una compromissione dell’installazione WordPress con presenza di più backdoor e di un injector nel tema capace di recuperare da un server esterno un payload SEO spam, memorizzarlo in file locali .dat e inserirlo nelle pagine del sito.

La modalità iniziale con cui l’attaccante ha ottenuto l’accesso all’installazione non è stata determinata con certezza. In assenza di una prova tecnica sufficiente, non è quindi corretto attribuire l’origine dell’attacco a uno specifico plugin, password o vulnerabilità.

Root cause individuata

Installazione WordPress compromessa con più backdoor e file alterati. Nel footer.php del tema era presente un injector che recuperava un payload da un dominio esterno, lo memorizzava in file .dat e lo inseriva nell’output del sito, generando contenuto SEO spam.

Registro operativo dell’intervento

Non registrato
Claudio

Ricezione della segnalazione relativa alle anomalie presenti sull’eCommerce WordPress e apertura del caso per l’analisi tecnica.

Non registrato
Carlo Alberto Bello

Presa in carico dell’intervento e prima verifica dell’installazione. La presenza di un file index.php compromesso porta a classificare il problema come possibile compromissione di sicurezza e non come semplice errore WordPress.

Non registrato
Carlo Alberto Bello

Durante le operazioni amministrative viene rilevato un errore 403 Forbidden. L’analisi viene quindi estesa alle regole di accesso del server e al file .htaccess presente nella root di WordPress.

Non registrato
Carlo Alberto Bello

Nel file .htaccess viene individuata una configurazione anomala: blocco generale dell’esecuzione PHP accompagnato da eccezioni per script non riconducibili alla normale installazione. Il file viene ripristinato con regole WordPress coerenti e il blocco 403 viene rimosso.

Non registrato
Carlo Alberto Bello

Ripristinate le normali operazioni amministrative, viene avviata una scansione approfondita con Wordfence. La scansione analizza 27.208 file e segnala inizialmente 20 problemi da verificare.

Non registrato
Carlo Alberto Bello

Le segnalazioni vengono analizzate manualmente. Vengono individuati file classificati come backdoor in directory quali wordpress-cache-optimizer, background-image-cropper, CustomWp e mu-installer. Le directory compromesse vengono rimosse.

Non registrato
Carlo Alberto Bello

L’analisi viene estesa al tema attivo. Nel file footer.php viene individuato codice non appartenente alla normale logica del tema, collegato a un dominio remoto e alla gestione locale di file con estensione .dat.

Non registrato
Carlo Alberto Bello

Il codice viene analizzato e ricondotto a un injector: recuperava un payload da un endpoint esterno, lo salvava localmente e ne inseriva il contenuto nell’output del sito. Un file .dat individuato conteneva HTML SEO spam e collegamenti verso domini estranei all’eCommerce.

Non registrato
Carlo Alberto Bello

Vengono effettuate ricerche mirate nel database utilizzando gli indicatori emersi dall’analisi. Le stringhe controllate non vengono rilevate nelle tabelle analizzate, evitando così modifiche non necessarie al database.

Non registrato
Carlo Alberto Bello

Dopo la rimozione dei componenti compromessi viene eseguita una nuova scansione e vengono ricontrollate le aree precedentemente coinvolte. Le backdoor individuate nella fase iniziale non risultano più presenti.

Non registrato
Claudio

Conclusa la fase di bonifica, viene comunicato al cliente l’esito dell’intervento e viene indicata la necessità di mantenere il sito sotto osservazione nei giorni successivi per verificare l’eventuale ricomparsa di file o comportamenti anomali.

Intervento eseguito

  • Analizzato lo stato iniziale dell’installazione dopo l’individuazione del primo file compromesso, evitando di considerare il problema risolto con la sola sostituzione di index.php.
  • Verificato il file .htaccess per determinare l’origine degli errori 403 che impedivano alcune operazioni amministrative e ostacolavano l’utilizzo degli strumenti necessari alla diagnosi.
  • Rimossa la configurazione anomala presente nel file .htaccess e ripristinate regole compatibili con il normale funzionamento di WordPress.
  • Eseguita una scansione completa dell’installazione con Wordfence, analizzando 27.208 file e verificando manualmente le segnalazioni prodotte dallo scanner.
  • Individuate e rimosse directory contenenti file classificati come backdoor, tra cui wordpress-cache-optimizer, background-image-cropper, CustomWp e mu-installer.
  • Analizzati i file del tema attivo fino all’individuazione dell’injector presente nel footer.php, non limitando la bonifica agli elementi rilevati automaticamente dallo scanner.
  • Individuato il meccanismo utilizzato per recuperare contenuto da un server remoto e memorizzarlo localmente in file .dat, successivamente utilizzati per inserire HTML SEO spam nelle pagine.
  • Ricercati nel database gli indicatori associati al contenuto malevolo. L’assenza di corrispondenze ha permesso di evitare modifiche indiscriminate alle tabelle WordPress.
  • Eliminati i componenti malevoli individuati nel filesystem e ripetuta la scansione per verificare che le backdoor precedentemente segnalate non fossero più presenti.
  • Mantenuta una fase di monitoraggio successiva alla bonifica, necessaria perché l’assenza immediata di malware rilevabile non dimostra da sola che non esistano ulteriori meccanismi di persistenza.

Evidenze tecniche

Injector individuato nel footer del tema

Nel file wp-content/themes/pneupress/footer.php era presente codice estraneo alla normale struttura del tema che effettuava richieste verso il dominio esterno linkal.xyz. Il contenuto recuperato veniva salvato localmente attraverso file con schema .lp-*.dat e successivamente inserito nell’output della pagina.

L’analisi di uno dei file .dat ha mostrato la presenza di HTML SEO spam e collegamenti verso domini esterni non pertinenti all’attività dell’eCommerce. La corrispondenza tra il codice presente nel footer.php, il sistema di cache locale e il contenuto del file generato ha fornito un’evidenza concreta del funzionamento dell’injector.

Backdoor rilevate dalla scansione

La scansione iniziale di 27.208 file ha rilevato 20 problemi. Tra gli elementi analizzati erano presenti file classificati come backdoor in più directory dell’installazione, comprese wordpress-cache-optimizer, background-image-cropper, CustomWp e mu-installer.

La presenza di più elementi compromessi ha confermato che l’infezione non poteva essere trattata come l’alterazione isolata di un singolo file. Dopo la rimozione delle directory coinvolte, una nuova scansione non ha più rilevato quelle stesse backdoor.

Configurazione .htaccess anomala

Il file .htaccess presente nella root conteneva regole che bloccavano generalmente l’esecuzione PHP prevedendo contemporaneamente eccezioni per specifici file dai nomi anomali, tra cui system_log.php, adminfuns.php e connects.php.

Il ripristino di una configurazione WordPress coerente ha rimosso il comportamento 403 riscontrato durante le operazioni amministrative e ha permesso di proseguire con la bonifica.

Verifiche finali

  • Verificata nuovamente la root WordPress dopo la rimozione degli elementi compromessi individuati durante l’analisi.
  • Controllato il file .htaccess dopo il ripristino delle normali regole di WordPress.
  • Verificato che l’errore 403 che ostacolava le operazioni amministrative non fosse più presente dopo la correzione della configurazione.
  • Ripetuta la scansione Wordfence dopo la bonifica per confrontare il risultato con le 20 segnalazioni iniziali.
  • Verificata la rimozione delle backdoor precedentemente individuate nelle directory compromesse.
  • Controllato il footer.php del tema dopo l’individuazione del codice responsabile del caricamento del payload esterno.
  • Ricercati nuovamente i file .dat associati al meccanismo di cache utilizzato dall’injector.
  • Verificato il database utilizzando gli indicatori individuati durante l’analisi, senza rilevare le stringhe malevole ricercate.
  • Controllato il funzionamento del sito dopo la rimozione dei componenti compromessi.
  • Avviato un periodo di osservazione post-bonifica per rilevare l’eventuale ricomparsa di file o segnalazioni riconducibili all’infezione.

Risultato ottenuto

Componenti malevoli individuati e rimossi

L’intervento ha permesso di rimuovere le backdoor individuate, correggere il file .htaccess compromesso e individuare nel tema il meccanismo utilizzato per recuperare e pubblicare contenuto SEO spam proveniente da un server esterno.

Il sito è rimasto operativo al termine della bonifica e le backdoor rilevate nella scansione iniziale non risultavano più presenti nella scansione successiva.

Non è stata documentata perdita di prodotti, ordini o contenuti dell’eCommerce durante l’intervento. Il database non è stato sottoposto a cancellazioni indiscriminate perché le ricerche mirate degli indicatori individuati non hanno restituito corrispondenze.

Il tempo complessivo dell’intervento non è stato registrato in modo sufficientemente preciso per pubblicare un dato attendibile; per questo non viene indicato un tempo di risoluzione artificiale.

Rischi evitati

  • Persistenza delle backdoor individuate all’interno dell’installazione WordPress.
  • Continuazione dell’iniezione di contenuto SEO spam nelle pagine dell’eCommerce attraverso il tema compromesso.
  • Ulteriore caricamento di contenuti provenienti dal server remoto utilizzato dall’injector.
  • Alterazione non necessaria del database durante la bonifica: le verifiche sono state eseguite prima di modificare le tabelle.
  • Mantenimento di una configurazione .htaccess anomala che interferiva con le normali operazioni amministrative.
  • Chiusura prematura dell’intervento dopo la sola rimozione del primo index.php compromesso, che avrebbe lasciato attivi altri elementi dell’infezione.

Come prevenire il problema

  • Mantenere WordPress, plugin e temi aggiornati, verificando con particolare attenzione i componenti non più mantenuti o per i quali sono note vulnerabilità di sicurezza.
  • Rimuovere completamente plugin, temi e script non più utilizzati invece di lasciarne i file disponibili nell’hosting.
  • Monitorare le modifiche ai file sensibili, in particolare .htaccess, wp-config.php, file del tema e directory che normalmente non dovrebbero contenere nuovi script PHP.
  • Eseguire scansioni periodiche, senza considerare però lo scanner automatico come unico strumento di verifica: in questo caso l’analisi manuale del footer.php è stata determinante per ricostruire il meccanismo di iniezione.
  • Conservare backup esterni all’installazione e mantenere uno storico sufficiente: un backup creato dopo l’inizio della compromissione potrebbe contenere già gli stessi file malevoli.
  • Utilizzare credenziali uniche e robuste per WordPress, hosting e accessi FTP/SFTP e limitare gli account amministrativi a quelli effettivamente necessari.
  • Dopo una bonifica, monitorare il filesystem nei giorni successivi: la ricomparsa di un file eliminato può indicare che un meccanismo di persistenza è ancora attivo.

Cosa abbiamo imparato

Questo intervento mostra perché la rimozione del primo file infetto non può essere considerata automaticamente una bonifica completa. Il primo index.php compromesso era soltanto una delle evidenze: approfondendo l’analisi sono emerse una configurazione .htaccess anomala, più backdoor e un injector inserito nel tema.

Un secondo elemento importante riguarda il rapporto tra scansione automatica e analisi manuale. Lo scanner ha fornito indicazioni fondamentali sulle backdoor presenti nell’installazione, ma la ricostruzione del meccanismo di SEO spam ha richiesto l’analisi del codice del tema, dei file .dat generati e del collegamento con il server remoto. Gli strumenti automatici sono quindi parte della diagnosi, non un sostituto dell’analisi tecnica.

Infine, una bonifica dovrebbe distinguere sempre ciò che è dimostrato da ciò che è soltanto possibile. In questo caso è stato possibile documentare come veniva iniettato il contenuto spam, ma non stabilire con sufficiente certezza quale fosse stato il punto d’ingresso iniziale. Attribuire l’attacco a uno specifico plugin o a una password senza evidenze avrebbe reso il report meno attendibile, non più completo.

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.

Altri casi studio

Tecnico autore

Intervento documentato dal team WpSupporto

I casi studio WpSupporto sono ricostruiti sulla base del processo operativo seguito durante gli interventi tecnici. La documentazione viene curata dal team tecnico per garantire chiarezza, trasparenza e tutela della privacy del cliente.

Vai al profilo di Carlo Alberto Bello

Hai un problema simile su WordPress?

Se il tuo sito mostra errori, malfunzionamenti o problemi dopo un aggiornamento, puoi richiedere una prima analisi tecnica a WpSupporto.

Richiedi assistenza WordPress