
Sito malevolo a causa di un malware!
Trovare il sito WordPress hackerato è ciò che ogni amministratore di un sito WordPress non vorrebbe mai.
In questa pagina ti propongo un piano pratico, passo-passo, per identificare l’attacco, rimuovere il malware, ripristinare il sito e ridurre il rischio che succeda di nuovo.
Indice
- Checklist di recupero rapido (sintetica)
- Mantieni la calma
- Isola il sito
- Scansione rapida (file e database)
- Forza il reset password
- Rimuovi utenti sospetti
- Scansione manuale
- Controlla i log e ricostruisci la timeline
- Rimuovi backdoor e file sospetti
- Ripristina core, plugin e temi da sorgenti pulite
- Pulisci il database
- Resetta credenziali
- Cambia le chiavi di sicurezza (salts)
- Aggiorna tutto
- Hardening
- Contatta l’assistenza dell’hosting
- Riporta online con cautela
- Monitora
- Controlla Il Google Search Console
- Comunicazione e obblighi legali / reputazionali
- Quando chiamare aiuto professionale
- Cos’è il Malware
Checklist di recupero rapido (sintetica)
- Backup completo (file + DB).
- Metti il sito offline / maintenance.
- Cambia tutte le password sensibili.
- Elimina utenti sospetti.
- Scansiona e identifica file malevoli.
- Reinstalla core, plugin e temi da sorgenti pulite.
- Pulisci il database da script/iframe.
- Aggiorna sali (keys) in wp-config.php.
- Controlla e correggi permessi file.
- Abilita 2FA e limiti di login.
- Ripristina online e monitora.
- Implementa backup esterni e scansioni automatiche.
Mantieni la calma
Prima di tutto, mantieni la calma.
Crea subito una copia di backup di tutto il sito, pur sapendo che è infetto.
Installa ed attiva il plugin UpdraftPlus.
Vai su UpdraftPlus e clicca su Esegui backup adesso.

Il backup potrebbe contenere il malware ma serve come “fotografia” dello stato attuale.
Operazioni affrettate possono eliminare tracce utili per capire cosa è successo o rendere il recupero più difficile.
Isola il sito
Metti il sito in modalità manutenzione.
Puoi usare il plugin Under Contruction.
Scansione rapida (file e database)
Usa strumenti di scansione malware per WordPres.
Installa ed attiva il plugin Wordfence.
Vai su Wordfence > Scan.
Clicca sul pulsante Start new scan per avviare una scansione del sito.

Terminata la scansione del sito a fondo pagina troverai i problemi rilevati.

Questo registro mostra tutti i problemi rilevati in ordine di priorità, a seconda di quanto sono gravi.
Oltre a Wordfence ci sono altri plugin di sicurezza che permettono di limitare al minimo questi attacchi da parte degli hacker.
Forza il reset password
Forza il reset password degli utenti amministratori.
Puoi usare il plugin Emergency Password Reset che invia a tutti gli utenti un link per resettare la password o forza il reset.
Rimuovi utenti sospetti
Vai su Utenti > Tutti gli utenti.
Controlla se sono stati creati nuovi utenti, specialmente utenti amministratore.
Elimina gli utenti che non ti aspetti di avere.
Scansione manuale
Cerca file PHP o file con timestamp insoliti nelle cartelle wp-content/uploads/.
Nel database, tramite phpMyAdmin, cerca script o iframe nelle tabelle wp_posts:
SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%<iframe%' OR post_content LIKE '%<script%';
Controlla i log e ricostruisci la timeline
Analizza i log server (access.log, error.log) per capire come e quando è avvenuta l’intrusione.
Dovresti cercare:
- IP sospetti
- User agent insoliti
- Richieste POST verso wp-login.php o admin-ajax.php
Questa analisi aiuta a capire il vettore d’attacco (brute force, plugin vulnerabile, credenziali compromesse), così da capire dove si trova la falla di sicurezza e capire come chiuderla.
Rimuovi backdoor e file sospetti
Ricontrolla se sono presenti file sospetti.
Rimuovi file .php in wp-content/uploads/.
Controlla file .htaccess se ha qualche redirect non impostato da te o se ha delle regole malevole.
Ripristina core, plugin e temi da sorgenti pulite
Sostituisci i file con copie ufficiali pulite.
Reinstalla i plugin e i temi da repository ufficiali o da backup puliti (sei sicuro che siano puliti?).
Ma soprattutto, non usare copie pirata o nulled, che spesso contengono malware.
Per il core di WordPress:
- Elimina le cartelle
wp-admin,wp-includese i file presenti nella root di WP dal server. - Non eliminare
wp-config.phpe.htaccess. - Scarica una copia pulita di WordPress (core).
- Copia e sovrascrivi i file core, escludendo escludendo
wp-content.
Conserva la cartella wp-content/uploads/ ma scansionala a fondo per file PHP o file sospetti.
Normalmente in dovrebbero esserci solo immagini, PDF e media.wp-content/uploads/
Per il tema:
- Elimina la cartella del tema
- Scarica una copia pulita del tema
- Installa questa copia pulita
Per i plugin:
- Segnati i plugin attivi
- Elimina le cartelle dei plugin
- Scarica una copia pulita dei plugin
- Installa queste copie pulite
Elimina i plugin che non usi.
Pulisci il database
Cerca ed elimina opzioni sospette nella tabella wp_options (voci con nomi strani o contenuti di script).
SELECT option_name, option_value FROM wp_options WHERE option_value LIKE '%<script%' OR option_value LIKE '%<iframe%' LIMIT 50;
Resetta credenziali
Cambia tutte le password sensibili:
- account hosting
- FTP/SFTP
- database
- account FTP
- pannello di controllo
Cambia le chiavi di sicurezza (salts)
Nel wp-config.php genera nuove AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY e sostituiscile.
Per generare nuove chiavi, usa il servizio ufficiale di WordPress.
Copia le chiavi ed incollale nel wp-config.php al posto di quelle vecchie.
Aggiorna tutto
Ora aggiorna WordPress, plugin e temi all’ultima versione.
Hardening
Riduci le superfici di vulnerabilità con questi passaggi.
Guarda come migliorare la sicurezza in WordPress.
Disabilita plugin non necessari
Disabilita plugin non necessari e poi eliminali.
Permessi dei file
Imposta permessi file corretti (es. 644 per file, 755 per cartelle).
Limitazioni di accesso cartella uploads
Considera limitazioni di accesso: impedisci l’esecuzione php nella cartella via wp-content/uploads/.htaccess o tramite configurazione server.
Esempio .htaccess (diverso da quello della root) per bloccare PHP in :wp-content/uploads/
# blocca l'esecuzione di file php nella cartella uploads
<FilesMatch "\.php$">
Order allow,deny
Deny from all
</FilesMatch>
Attenzione: assicurati che il file .htaccess sia nella directory wp-content/uploads/ e non nella root del sito.
Autenticazione a due fattori
Abilita autenticazione a due fattori (2FA) per account admin. Si può fare con il plugin Wordfence > Login security.

Usa Google Authenticator per scansionare il QR Code, leggere il codice ed immetterlo nel campo codice a destra.
Poi clicca su Activate per attivare il login a due fattori per il tuo utente (admin).
Cambia URL di login
Cambia URL di login.
Ad esempio puoi impostare come url di accesso /login invece del classico /wp-login.php.
Puoi usare il plugin WPS Hide Login.

Limita tentativi di login
Limita i tentativi di login (rate limiting) usando Wordfence.
Vai su Wordfence > All options e alla sezione Brute force protection puoi impostare dopo quanti tentativi di login l’utente verrà bloccato temporaneamente:

Usa HTTPS
Installa un certificato SSL per usare il protocollo HTTPS sul sito.
Normalmente il certificato è disponibile gratuitamente con Let’s Encrypt.
Guarda dal pannello di controllo del tuo hosting.

Contatta l’assistenza dell’hosting
Contatta l’assistenza dell’hosting per chiedere una verifica.
Riporta online con cautela
Quando sei convinto che il sito sia stato pulito al 100%, puoi riportare il sito online togliendo la modalità manutenzione.
Monitora
Vai su Sucuri Check per fare un controllo del sito.

Inserisci il tuo sito e clicca su Submit.
Sucuri farà un controllo per i malware conosciuti, virus, errori del sito, codice malevolo e l’eventuale stato di blacklist.
Poi attiva le scansioni periodiche del plugin Wordfence andando su Wordfence > Scan > Scan Options and Scheduling e seleziona Enabled.

Imposta anche dei backup periodici di tutto il sito.
Controlla Il Google Search Console
Accedi al tuo Google Search Console e vai alla sezione Problemi di sicurezza della proprietà del sito.
Dovresti avere Nessun problema rilevato.

Se invece ti segnala qualche problema, dovrai controllare i problemi uno per uno e correggerli.
Quando tutti i problemi elencati nel report saranno corretti in tutte le pagine, seleziona Richiedi esame nel report Problemi di sicurezza.
Nella richiesta di riconsiderazione, descrivi le correzioni apportate.
La maggior parte degli esami per la riconsiderazione può richiedere diversi giorni o settimane.
Comunicazione e obblighi legali / reputazionali
Se l’attacco riguarda informazioni personali, valuta la necessità di avvisare utenti interessati subito (in base a obblighi legali, PR, GDPR).
Prepara un breve messaggio per utenti/clienti: cosa è successo, quali dati potrebbero essere interessati, cosa state facendo e cosa dovrebbero fare (es. cambiare password).
Esempio breve per utenti:
Abbiamo rilevato un accesso non autorizzato al nostro sito il [data].
Abbiamo isolato il problema, rimosso il contenuto malevolo e stiamo rafforzando la sicurezza.
Ti consigliamo di cambiare la password associata al tuo account.
Quando chiamare aiuto professionale
Probabilmente chiamare un aiuto professionale è sempre la scelta migliore.
Più che altro per assicurarsi che siano state chiuse tutte le backdoor e ridurre al massimo le probabilità che l’evento si ripeta.
Cos’è il Malware
Il malware (abbreviazione di malicious software, cioè “software dannoso”) è qualsiasi programma o codice creato con l’obiettivo di danneggiare, infettare o sfruttare computer, server, reti o siti web.
Per eliminare il malware, basta eliminare il codice che è stato aggiunto.
Anni fa, in un mio sito ho trovato questo malware:

Nel mio caso l’ho trovato sulle pagine header.php e footer.php del tema.


