Sito WordPress Hackerato: Guida al Recupero Passo per Passo

Professionista che lavora su laptop in piedi per recuperare un sito WordPress hackerato

Sito WordPress hackerato: il browser mostra un avviso rosso, il tuo dominio rimanda a pagine di scommesse o farmaci, il provider hosting ha bloccato l'account. Ogni minuto che passa, gli utenti vedono il danno e Google indicizza le pagine compromesse. La prima reazione è il panico, e il panico porta a mosse sbagliate che complicano il recupero.

Questa guida è un protocollo di emergenza, non un articolo teorico sulle vulnerabilità di WordPress. Ogni sezione corrisponde a un'azione concreta da eseguire in un ordine preciso. Se salti passaggi o agisci fuori sequenza, rischi di pulire il sito mentre l'attaccante è ancora dentro, o di cancellare dati utili per capire cosa riparare.

Segui gli step nell'ordine indicato. In poche ore puoi avere il sito ripristinato e più sicuro di prima.

Come riconoscere un sito WordPress hackerato

Prima di agire, accertati che si tratti davvero di un hack e non di un errore tecnico o un falso positivo.

Segnali visibili agli utenti: redirect, pagine sconosciute, avvisi browser

I segnali più certi sono quelli che vedono anche i tuoi visitatori:

  • Il sito reindirizza automaticamente su siti di scommesse, farmaci o contenuti per adulti
  • Il browser mostra un avviso in rosso ("Sito pericoloso", "Deceptive site ahead")
  • Compaiono pagine o post che non hai mai creato, spesso con testo in giapponese o cinese (il cosiddetto Japanese keyword hack)
  • Il logo o il layout sono stati modificati da qualcuno che non sei tu
  • Il sito è completamente offline e restituisce errori 500 anche al tuo accesso

Avvisi tecnici: Google Search Console e notifiche dal provider hosting

Meno visibili all'utente finale, ma ugualmente certi come indicatori:

  • Google Search Console mostra avvisi nella sezione "Problemi di sicurezza"
  • Il provider hosting ha bloccato l'account con una notifica di malware rilevato
  • Ricevi email dal provider con log di attività sospette o avvisi di risorse server abnormi
  • Il traffico organico è crollato improvvisamente senza spiegazione nelle ultime 24-48 ore

Se noti almeno uno di questi segnali, procedi. Non perdere tempo a cercare conferme ulteriori: ogni minuto di inattività espone i tuoi utenti e peggiora il posizionamento organico.

I primi 30 minuti: isola il sito ed evita danni ulteriori

Due azioni prioritarie da fare subito, prima di qualsiasi altra cosa.

Attivare la modalità manutenzione WordPress

Se hai ancora accesso alla dashboard, installa un plugin come WP Maintenance Mode: bastano due minuti per mostrare una pagina neutra a tutti i visitatori mentre lavori.

Se non riesci ad accedere alla dashboard, crea un file vuoto chiamato .maintenance nella root del sito via FTP: WordPress lo rileva automaticamente e mostra la pagina di manutenzione. In alternativa, contatta il provider per mettere l'account offline.

Contattare il provider hosting: cosa chiedere e perché

Il tuo provider ha strumenti che tu non hai: log di accesso al server, snapshot pre-hack, firewall lato server. Contattalo subito e chiedi tre cose specifiche:

  1. I log di accesso delle ultime 48-72 ore (aiutano a capire il timestamp esatto dell'intrusione)
  2. Se hanno rilevato attività sospette a livello di server o account
  3. Se possono bloccare temporaneamente gli accessi FTP esterni all'account mentre lavori

Molti provider (SiteGround, Kinsta, WP Engine) offrono assistenza emergenziale per siti compromessi, spesso inclusa nel piano. È un canale da usare: gratuito e potenzialmente in grado di farti risparmiare ore di lavoro.

Cambia tutte le password: hosting, FTP, database e WordPress admin

Con il sito in manutenzione, la priorità assoluta è chiudere tutti i punti di accesso. Se cambi le password in ordine sbagliato, l'attaccante che ha ancora accesso FTP può semplicemente sovrascrivere wp-config.php con le proprie credenziali, annullando il tuo lavoro.

L'ordine corretto: quale credenziale cambiare prima e perché

  1. Pannello hosting (cPanel, Plesk o il pannello del tuo provider): è l'accesso più privilegiato, va cambiato per primo
  2. FTP/SFTP: disabilita o rigenera le credenziali FTP esistenti. Se il tuo provider supporta SFTP, passa a quello
  3. Database MySQL: cambia la password dell'utente del database tramite phpMyAdmin o il pannello hosting, poi aggiorna wp-config.php
  4. Account admin WordPress: cambia la password di tutti gli account con ruolo Amministratore
  5. Email associate agli account admin: l'indirizzo email usato per il recupero password è un vettore di re-entry spesso dimenticato. Cambia anche quella password

Dove trovare le credenziali: wp-config.php, cPanel e pannello hosting

Le credenziali del database si trovano in wp-config.php, nella root del sito. Aprilo via FTP o file manager e cerca queste righe:

define('DB_USER', 'nome_utente_db');
define('DB_PASSWORD', 'password_db');
define('DB_HOST', 'localhost');

Dopo aver cambiato la password del database in phpMyAdmin, aggiorna questi valori in wp-config.php con le nuove credenziali. Se salti questo passaggio, WordPress non riuscirà più a connettersi al database e vedrai un errore di connessione bianca alla prossima apertura del sito.

Workspace professionale visto dall'alto con laptop per cambiare le password dopo un hack WordPress
Cambiare le password nell'ordine corretto è il primo scudo contro un re-ingresso dell'attaccante: ogni accesso non chiuso rimane una vulnerabilità aperta.

Scansione malware: valuta i danni prima di pulire

Con le credenziali cambiate e il sito in manutenzione, hai contenuto il danno. Prima di scegliere come procedere, devi capire l'entità dell'infezione.

Scanner integrati: Wordfence e Sucuri

Wordfence confronta ogni file del tuo sito con i file originali di WordPress, plugin e temi. Qualsiasi differenza viene segnalata come potenziale infezione. La scansione completa dura 10-30 minuti su siti di medie dimensioni e produce un elenco dettagliato dei file sospetti.

Sucuri Security lavora in modo complementare: analizza anche dal lato server, individua backdoor e file nascosti che uno scanner esterno non vede. Usare entrambi non è ridondante: coprono angoli diversi della stessa infezione.

Pochi file sospetti indicano un'infezione puntuale; decine di file modificati segnalano un'infezione sistemica. Questa distinzione determina quale percorso seguire.

Strumenti di scansione esterni: verifica dall'esterno del sito

Gli scanner integrati guardano dall'interno del server. Gli strumenti esterni simulano quello che vede un visitatore, e soprattutto quello che vede Google:

  • Google Safe Browsing Transparency Report: verifica se il sito è già stato segnalato da Google come pericoloso (la rimozione dalla blacklist è trattata in una sezione dedicata più avanti in questa guida)
  • Sucuri SiteCheck: analisi gratuita che rileva malware, blacklist attive e codice iniettato visibile dall'esterno

Con la valutazione completata, scegli il percorso giusto per la tua situazione: se hai un backup pulito e datato prima dell'hack, usalo (sezione successiva). Se non hai backup utilizzabili, procedi con la pulizia manuale (due sezioni avanti).

Hai un backup pulito? Ripristinalo prima di tutto

Il ripristino da backup è il percorso più rapido e affidabile, a condizione che il backup sia effettivamente pulito, ovvero precedente all'hack. Ripristinare un backup già compromesso è peggio che non ripristinare nulla.

Come verificare che il backup sia precedente all'hack

Prima di avviare qualsiasi ripristino, verifica tre cose:

  1. Data del backup: deve essere antecedente al primo avviso ricevuto o alla prima anomalia nei log di accesso
  2. Confronto visivo: apri il backup in un ambiente locale o staging e controlla che le pagine siano quelle originali, senza redirect o contenuto estraneo
  3. Incrocio con i log: se il provider ti ha fornito i log, cerca il timestamp del primo accesso sospetto. Il backup deve essere precedente a quella data

Se hai dubbi sulla data esatta dell'hack, scegli il backup più vecchio disponibile che sia ancora utilizzabile. Meglio perdere qualche giorno di contenuti che ripristinare un backup già infetto. Per costruire una strategia di backup solida che eviti questo problema in futuro, la guida al backup WordPress completo copre frequenza, storage off-site e strumenti consigliati.

Procedura di ripristino da backup: passi concreti

  1. Scarica il backup sul tuo computer come copia locale
  2. Via FTP o file manager, elimina i file presenti nella root (escluso wp-config.php con le credenziali aggiornate)
  3. Carica i file del backup
  4. Importa il database pulito tramite phpMyAdmin (Importa > seleziona il file .sql)
  5. Verifica che wp-config.php abbia le credenziali aggiornate, poi disattiva la manutenzione e testa il sito in incognito

Dopo il ripristino, vai direttamente alla sezione "Reinstalla il core WordPress" per aggiornare tutto prima di rimettere online il sito.

Nessun backup disponibile: pulizia manuale del sito

Se non hai un backup utilizzabile, il recupero richiede più tempo ma è percorribile. Lavori su tre fronti in parallelo: file di sistema, account utenti e database.

File PHP sospetti e .htaccess alterato: dove cercare

Gli attaccanti nascondono i loro file in posizioni specifiche e prevedibili. Concentra la ricerca su:

  • wp-content/uploads/: questa cartella non dovrebbe contenere file .php in nessun caso. Se ne trovi, sono quasi certamente malware o backdoor
  • .htaccess: aprilo dalla root e confrontalo con il contenuto standard (disponibile su wordpress.org). Qualsiasi aggiunta che non riconosci, specialmente righe con RewriteRule verso domini esterni, va rimossa
  • wp-includes e wp-admin: devono contenere solo i file originali di WordPress. File aggiuntivi con nomi generici come db-functions.php o wp-feed.php sono segnali certi di backdoor

Per trovare i file modificati di recente, dal terminale del server o via SSH puoi usare:

find . -name "*.php" -newer wp-config.php -type f

Elenca tutti i file PHP modificati dopo wp-config.php. Non è un indicatore assoluto, ma aiuta a prioritizzare la ricerca.

Utenti WordPress non autorizzati: come identificarli e rimuoverli

Vai in WordPress > Utenti e cerca account admin che non hai creato. Gli attaccanti lasciano quasi sempre un utente amministratore backdoor per rientrare anche dopo la pulizia dei file.

Segnali da cercare:

  • Username generici o casuali (es. admin2, wp_user123)
  • Email con domini sconosciuti o temporanei
  • Account con ruolo Amministratore che non riconosci
  • Data di registrazione corrispondente al periodo dell'hack

Elimina questi account. Prima di farlo, annota l'email e il nome utente: possono aiutarti a tracciare il vettore di ingresso. Se non riesci ad accedere alla dashboard, puoi rimuovere gli utenti non autorizzati direttamente tramite phpMyAdmin nella tabella wp_users.

Database WordPress: trovare e rimuovere codice iniettato

Un sito può sembrare pulito nei file ma continuare a distribuire malware tramite codice iniettato nel database. Apri phpMyAdmin e controlla:

  • wp_options: cerca valori anomali nelle chiavi siteurl, home e active_plugins. URL modificati o plugin attivi che non riconosci sono segnali certi
  • wp_posts: cerca post con titoli in lingue straniere, script JavaScript nascosti nel contenuto o link a domini sconosciuti
  • wp_users: verifica che gli account corrispondano a quelli che hai già controllato nella dashboard
💡 Tip Professionale:

Cerca nel database le stringhe base64_decode, eval( e gzinflate. Sono pattern tipici del codice malware iniettato: normalmente non dovresti trovarli in un database WordPress pulito. Usa la funzione di ricerca di phpMyAdmin per scansionare tutte le tabelle in un colpo solo.

Prima di modificare qualsiasi record, esporta un dump completo del database come backup di emergenza.

Reinstalla il core WordPress e aggiorna tutto

Mani che lavorano su laptop minimal per reinstallare il core di un sito WordPress hackerato

Reinstallare solo i file core senza toccare wp-content

Un malinteso comune: la reinstallazione del core WordPress NON cancella contenuti, plugin o temi. Il core include solo i file in wp-admin e wp-includes, più i file PHP nella root. La cartella wp-content non viene toccata.

Il metodo più rapido: dalla dashboard WordPress vai in Dashboard > Aggiornamenti > "Reinstalla versione X.X.X". WordPress scarica i file originali e sovrascrive quelli esistenti, eliminando qualsiasi modifica fatta dall'attaccante ai file core.

In alternativa, scarica il pacchetto da wordpress.org, estrai wp-admin e wp-includes (escluso wp-content e wp-config.php) e caricali via FTP.

Verificare i file modificati di recente con FTP o file manager

Dopo la reinstallazione, nel file manager o via FTP ordina i file per data di modifica e controlla gli ultimi 30-60 giorni. File in wp-content modificati durante il periodo dell'hack e non sovrascritti dalla reinstallazione vanno esaminati o eliminati.

Infine, aggiorna tutto senza eccezioni:

  • Tutti i plugin attivi (disinstalla quelli non più mantenuti o non usati)
  • Tutti i temi (elimina i temi inattivi: anche disabilitati, possono essere sfruttati se contengono vulnerabilità)
  • Il core WordPress all'ultima versione disponibile

Rimozione dalla blacklist Google: recupera la visibilità

Questa sezione è quasi sempre assente nelle guide al recupero WordPress, ma è fondamentale: puoi avere il sito tecnicamente pulito e continuare a perdere traffico perché Google mostra ancora l'avviso di sicurezza a chiunque clicchi sul tuo risultato. Il ripristino tecnico e il ripristino della visibilità sono due operazioni separate.

Verificare lo stato con Google Safe Browsing

Vai al Google Safe Browsing Transparency Report e inserisci l'URL del tuo sito. Se è ancora nella blacklist, vedrai lo stato "Non sicuro" con i dettagli del problema rilevato.

Il Transparency Report si aggiorna ogni 24-72 ore, quindi non usarlo come indicatore in tempo reale dello stato dell'infezione: è uno specchio di ciò che Google ha rilevato nel suo ultimo crawl. Usalo solo per sapere se la rimozione dalla blacklist è ancora in attesa.

Richiedere la revisione in Google Search Console

Entra in Google Search Console, vai in "Sicurezza e azioni manuali" > "Problemi di sicurezza". Trovi qui l'elenco delle URL segnalate da Google come pericolose, con la tipologia di problema rilevato.

Clicca su "Richiedi revisione" e descrivi dettagliatamente cosa hai fatto:

  • Quali file sospetti hai rimosso
  • Come hai ripristinato o pulito il sito
  • Quali misure di sicurezza hai implementato per prevenire recidive

Google raccomanda descrizioni specifiche: una richiesta vaga viene rigettata. Scrivi almeno 2-3 paragrafi con le azioni concrete eseguite. I tempi variano: nella maggior parte dei casi bastano 24-72 ore; per phishing attivo o malware grave possono volerci fino a due settimane. Una richiesta rigettata significa che il sito non è ancora completamente pulito.

Notificare gli utenti: quando è necessario e come farlo

Devi notificare se l'attacco ha esposto dati personali degli utenti registrati: email, indirizzi, dati di pagamento, credenziali memorizzate. Il messaggio deve essere chiaro, senza tecnicismi: cosa è successo, quali dati sono stati potenzialmente esposti e cosa hai fatto per rimediare.

Non devi notificare se l'hack ha riguardato solo i file del sito (redirect automatici, SEO spam, pagine malware) senza accedere al database degli utenti o a credenziali memorizzate. Un sito vetrina senza utenti registrati che reindirizzava a siti di scommesse non richiede notifiche formali.

In caso di dubbio, notifica. Un'email onesta che spiega cosa è successo e cosa hai fatto per risolvere vale molto più del silenzio, sia in termini di fiducia che di gestione del rischio a lungo termine.

Hardening post-recovery: le azioni base per non ricominciare da capo

Diagramma a flusso con quattro fasi di sicurezza per proteggere un sito WordPress dopo un attacco
Le quattro azioni base dell'hardening post-recovery: autenticazione a due fattori, limite tentativi di login, backup automatici off-site e rinnovo delle chiavi segrete WordPress.

Il recupero è tecnicamente completato, ma senza intervenire sulle cause, il rischio di una ricaduta è alto. Quattro azioni che puoi completare in meno di un'ora e che chiudono le vulnerabilità più comuni:

  1. Autenticazione a due fattori (2FA): abilita il 2FA per tutti gli account admin. Wordfence include questa funzione nella versione gratuita. Con il 2FA attivo, le credenziali rubate non bastano più per entrare
  2. Limitazione tentativi di login: configura il blocco automatico degli IP dopo un certo numero di tentativi falliti, tramite Wordfence o un plugin dedicato
  3. Backup automatici: imposta un sistema di backup automatico off-site con plugin come UpdraftPlus o BlogVault. Senza backup recenti non puoi fare recovery rapido, come hai appena sperimentato
  4. Rigenera le chiavi segrete WordPress: aggiorna le AUTH KEYS in wp-config.php usando il generatore ufficiale di chiavi segrete WordPress. Questo invalida tutte le sessioni attive, incluse eventuali sessioni aperte dall'attaccante

Per un hardening completo — firewall applicativo, protezione wp-login.php, file permissions corrette, disabilitazione XML-RPC — la guida dedicata alla sicurezza WordPress copre ogni aspetto in dettaglio.

Conclusione

Hai seguito il protocollo completo: isolato il sito, cambiato tutte le credenziali, valutato i danni con la scansione, ripristinato o pulito manualmente, reinstallato il core, rimosso dalla blacklist Google e notificato gli utenti se necessario. Il sito è di nuovo online su una base pulita.

Il passo successivo è strutturale: imposta il backup automatico se non lo hai già e segui la guida all'hardening WordPress per chiudere le vulnerabilità che hanno reso possibile questo attacco. Un sito hackerato due volte è quasi sempre un sito su cui non si è intervenuti correttamente dopo il primo incidente.

Hai domande o vuoi collaborare?

Scrivimi un messaggio, ti risponderò entro 24 ore.