Contenuto articolo
- Quando il sito di un cliente ha iniziato a fare i capricci
- I 7 segnali che ti dicono che sei stato hackerato
- I primi 30 minuti: cosa fare subito (senza peggiorare le cose)
- Dove si nascondono i backdoor (i 5 posti classici)
- La pulizia vera: gli strumenti che uso io
- Il caso reale: 47 backdoor in un plugin piratato
- Dopo la pulizia: l'hardening in 6 punti
- Quando ha senso chiamare un professionista
- Cosa NON fare assolutamente (gli errori che peggiorano tutto)
- La checklist finale per chi è stato hackerato
Quando il sito di un cliente ha iniziato a fare i capricci
Era un martedì mattina di novembre. Un cliente con un sito B2B da 12 anni mi scrive alle 8:40: "il sito mi rimanda a un casinò, e Google mi ha sospeso la Search Console". Apro il sito dal mio telefono e, guarda caso, da mobile parte un redirect verso un portale di gioco d'azzardo. Da desktop niente. Era il classico malware "geolocalizzato": colpisce solo certi device e certi referrer, così il proprietario non se ne accorge subito.

Quel giorno ho passato sei ore a ripulire tutto. Alla fine: 47 backdoor trovate, 3.200 file modificati, e una porta d'ingresso che non avrei mai sospettato. Te la racconto alla fine, perché è la parte che ti evita di rifare lo stesso errore.
Da allora il ripristino di siti compromessi è diventato uno degli interventi di assistenza WordPress che faccio con più frequenza: ogni mese mi arrivano almeno 3-4 siti infetti, e quasi sempre la storia è la stessa. Utente che non aggiorna, plugin piratato, password debole, backup inesistente. Questa guida è la procedura che applico, con gli stessi comandi e gli stessi controlli. Niente fuffa: solo passi concreti.
I 7 segnali che ti dicono che sei stato hackerato
Il problema degli attacchi a WordPress è che non fanno rumore. Quasi mai il sito "si rompe": spesso continua a funzionare, mentre qualcuno ci guadagna alle tue spalle. Questi sono i segnali che controllo quando un cliente mi chiama in preda al panico:
- Redirect strani, soprattutto da mobile o da social: il sito apre ma dopo 5 secondi salta da un'altra parte
- Warning di Google in Search Console: "This site may be hacked" o "Deceptive site ahead"
- Utenti admin che non conosci nella lista utenti di wp-admin
- File .php sospetti in
wp-content/uploads(lì non dovrebbe esserci codice) - Email di spam che partono dal tuo dominio, con il tuo indirizzo come mittente
- Pagine indicizzate su Google che non hai mai scritto: "viagra", "casinò", "payday loans"
- Errori 500 improvvisi che poi spariscono da soli
Se ne hai anche solo uno, non aspettare. Il malware non sta fermo: nel caso del mio cliente, tra il primo sintomo e il blocco totale erano passati 11 giorni, e in quel lasso di tempo il sito aveva inviato circa 40mila email di spam usando il suo server.
I primi 30 minuti: cosa fare subito (senza peggiorare le cose)
La regola d'oro quando sospetti un attacco è: non toccare tutto alla cieca. Più modifiche fai nel panico, più difficile è capire dopo cosa era malware e cosa era tuo. Questa è la sequenza che seguo io, e che consiglio a chiunque:
1. Fai un backup forense PRIMA di cambiare qualsiasi cosa
Devi fotografare lo stato compromesso così com'è. Quel backup "sporco" è l'unico modo per analizzare l'attacco dopo, e a volte contiene l'indizio su come sei stato violato.
wp db export backup_$(date +%F).sql
wp plugin list --status=active
wp user list --role=administrator
2. Cambia TUTTE le password, non solo quella di wp-admin
Password dell'hosting, del pannello di controllo, del database, dell'FTP/SFTP, delle email del dominio. Se l'attaccante è entrato da lì, cambiare solo quella di WordPress è come cambiare la serratura della porta ma lasciare la finestra aperta.
3. Metti il sito in manutenzione
Così smette di fare danni (e di mandare spam) mentre lavori. Un plugin di maintenance mode va benissimo, oppure:
# comando WordPress
wp maintenance-mode activate
4. Revoca le chiavi API e i token
SMTP, Stripe, servizi di terze parti: se un plugin compromesso aveva accesso, rigenera tutto.
5. Non dire a nessuno, tranne a chi ti aiuta
Sembra una sciocchezza, ma gli attaccanti spesso monitorano i tuoi canali: forum, social, persino le email di supporto. Se annunci in pubblico che stai ripulendo il sito, il malware "prepara le valigie" e si nasconde più in profondità. Lavora in silenzio, o affida la diagnosi a un servizio di assistenza WordPress professionale che ha già visto decine di casi come il tuo.
Dove si nascondono i backdoor (i 5 posti classici)
Quando apro un sito infetto, controllo sempre questi cinque punti, in quest'ordine. Nel 90% dei casi il malware sta lì:
- WPGUTENBERGBLOCKPLACEHOLDER0X: file .php con nomi innocui tipo
o1x.php,wp-news.phpositemap.xml.php - WPGUTENBERGBLOCKPLACEHOLDER0X: i "must-use plugin" non compaiono nella lista plugin di wp-admin, quindi nessuno li vede
- WPGUTENBERGBLOCKPLACEHOLDER0X del tema: codice iniettato in fondo al file, spesso offuscato
- WPGUTENBERGBLOCKPLACEHOLDER0X: righe aggiunte dopo la chiusura
?>o dentro le definizioni - Il database: utenti admin fantasma e opzioni modificate (per esempio la
siteurl)
Il comando che uso per scovare i file più sospetti è questo:
find wp-content/uploads -name "*.php" -mtime -90
find wp-content -name "*.php" -newer wp-config.php -not -path "*/cache/*"
E per cercare i pattern di offuscamento classici (che in un file legittimo non dovrebbero mai esserci):
grep -rl "eval(base64_decode" wp-content/
grep -rl "gzinflate" wp-content/
grep -rl "x65x76x61x6c" wp-content/
La pulizia vera: gli strumenti che uso io
Sui siti seri non basta "cancellare i file che si vedono". E non basta nemmeno rifare il sito da zero: se l'attacco è passato da una vulnerabilità di un plugin o di un tema, la ricostruzione ti costa tempo e soldi senza risolvere il problema. Uso una combinazione di strumenti, perché nessuno da solo trova tutto:
- WPScan per la scansione delle vulnerabilità note di temi e plugin
- Wordfence CLI (quello da terminale, non il plugin) per la scansione del filesystem
- WPGUTENBERGBLOCKPLACEHOLDER0X per confrontare i file del core di WordPress con gli originali: qualsiasi differenza è sospetta
wp core verify-checksums
wp plugin verify-checksums --all
Il checksum è il passaggio che la maggior parte dei "tutorial fai da te" salta, ed è invece il più potente: se il file wp-settings.php non corrisponde all'hash ufficiale, qualcuno l'ha toccato. Punto.
Quando la scansione è finita, prima di toccare qualsiasi file faccio sempre la stessa domanda al cliente: "quando è stato l'ultimo backup pulito?" Nel 70% dei casi la risposta è "non lo so" oppure "mai". E lì capisco subito che l'intervento durerà più a lungo del previsto, perché senza un punto di riferimento pulito la pulizia si fa a tappeto, file per file. Se non hai mai impostato una strategia di backup, fermati e leggiti la guida al backup remoto criptato prima di continuare: ti serve più di qualsiasi strumento di scansione.
E quando il sito è pulito e tornato online, il lavoro vero comincia dopo: ricostruire la fiducia degli utenti e di Google non è automatico. Se l'attacco ti ha fatto perdere posizioni e traffico, la strategia web marketing e le regole base della SEO sono il punto da cui ripartire per recuperare terreno.
Il caso reale: 47 backdoor in un plugin piratato
Torno al cliente di novembre, perché la fine della storia è istruttiva. Dopo la pulizia dei file, ho scoperto che la porta d'ingresso era un plugin di page builder "sbloccato" da un sito di plugin piratati. Il cliente l'aveva installato due anni prima per risparmiare 59 euro. Quel risparmio è costato: 6 ore di lavoro di ripristino, 2 settimane di deindicizzazione parziale su Google, e un danno di reputazione difficile da quantificare.
Il plugin piratato conteneva una backdoor nascosta che si auto-aggiornava: ogni volta che ripulivo un file, il plugin lo riscriveva. Ho capito solo dopo averlo disattivato e rimosso definitivamente. Se ti interessa, ho scritto un approfondimento su come riconoscere i plugin piratati e perché non vanno mai installati, nemmeno "tanto per provare".
La lezione è semplice: finché la porta d'ingresso resta aperta, la pulizia è inutile. Prima si chiude la falla, poi si pulisce. È l'ordine che sbagliano quasi tutti.
Dopo la pulizia: l'hardening in 6 punti
Una volta ripulito e ripristinato il backup pulito, il lavoro non è finito. Se non chiudi le falle, il malware torna entro settimane. Questi sono i 6 interventi che applico a ogni sito dopo un attacco:
- Aggiornamenti automatici per il core e per i plugin (almeno per quelli minori): i siti violati che apro sono quasi sempre siti fermi a versioni vecchie, e su questo ho scritto una guida pratica all'aggiornamento di WordPress che vale la pena leggere
- Autenticazione a due fattori su tutti gli account admin
- Limitazione dei tentativi di login: 5 tentativi, poi blocco temporaneo dell'IP
- Permessi file corretti: directory a 755, file a 644, niente 777
- WPGUTENBERGBLOCKPLACEHOLDER0X in wp-config.php per impedire l'editing di file da wp-admin
- Backup remoti e versionati: se il sito viene di nuovo compromesso, il ripristino è questione di minuti, non di giorni
Sui backup ho scritto una guida completa su come impostare backup criptati su server remoto, perché è il punto 6 che ti salva quando tutto il resto fallisce.
Quando ha senso chiamare un professionista
Sono onesto: se il sito è il tuo business, e non hai mai visto un terminale, fare da soli la pulizia post-attacco è rischioso. Si rischia di pulire la punta dell'iceberg e lasciare dentro la backdoor che ti risveglierà tra tre mesi. Nel mio servizio di assistenza WordPress il ripristino di siti con malware o hackerati è uno degli interventi più frequenti: parto dal backup forense, analizzo come sei entrato, pulisco file e database, ripristino il backup pulito e poi applico l'hardening.
I tempi reali che gestisco: siti piccoli in 2-4 ore, siti complessi (e-commerce, multilingua) in 1-2 giorni. Il costo varia dai 150 ai 500 euro a seconda della gravità, ma è sempre meno del danno che un sito infetto fa in una settimana di spam e deindicizzazione.
Se invece il sito è nato da poco o è stato trascurato per anni, prima di parlare di attacchi conviene mettere in ordine le basi: un sito costruito bene e un server configurato a regola d'arte sono già metà della sicurezza. E se il tuo sito è già in manutenzione continuativa, il monitoraggio cattura questi problemi prima che diventino emergenze: vedo i file modificati, i login sospetti e i cambi di checksum mentre accadono, non quando Google ti sospende la Search Console.
Cosa NON fare assolutamente (gli errori che peggiorano tutto)
Nel corso degli anni ho visto gli stessi errori ripetersi. Evitali, perché trasformano un attacco gestibile in un disastro da settimane:
- Non pagare il riscatto se ti chiedono bitcoin per "sbloccare" il sito: nel 90% dei casi non ti ridanno niente, e i pagamenti confermano solo che sei un bersaglio pagante
- Non reinstallare WordPress da zero senza aver capito la falla: se la vulnerabilità era in un plugin, la ricostruzione pulita viene infettata di nuovo alla prima installazione
- Non tenere il sito offline per giorni interi mentre "pensi": ogni giorno di downtime pesa sul ranking e sulla fiducia. Meglio una manutenzione temporanea con messaggio chiaro
- Non cancellare i log e i file infetti prima dell'analisi: sono la prova di come sei entrato. Conserva tutto finché non hai chiuso la falla
- Non fidarti del primo plugin "one-click fix": se esiste una bacchetta magica, non l'ho mai vista. I fix automatici superficiali puliscono i sintomi, non la causa
Se non sei sicuro di cosa stai facendo, il ripristino da malware e hackeraggio è un intervento che faccio ogni settimana: analisi dell'intrusione, pulizia profonda di file e database, ripristino e hardening. Costa meno dell'errore che rischi di fare da solo.
La checklist finale per chi è stato hackerato
Chiudo con la sequenza completa, così hai tutto in un punto solo:
- Backup forense dello stato compromesso
- Cambio di tutte le password e revoca token
- Sito in manutenzione
- Scansione con WPScan + Wordfence CLI + verify-checksums
- Rimozione dei file malevoli e dei plugin/theme piratati (chiudi la porta d'ingresso!)
- Pulizia del database: utenti admin fantasma, opzioni modificate, contenuti spam
- Ripristino del backup pulito e riattivazione
- Hardening in 6 punti + backup remoti
- Verifica in Search Console: richiesta di riesame a Google, e poi ricominci a lavorare sulla visibilità organica che l'attacco ti ha fatto perdere
Se segui questa sequenza, il sito torna in piedi. Se la salti, o la fai a metà, il malware torna. Nel mio lavoro l'ho visto succedere decine di volte: la differenza tra chi risolve e chi ricasca è quasi sempre la porta d'ingresso lasciata aperta.
Se nel frattempo il sito è ancora infetto e hai bisogno di una mano, il ripristino da malware è uno dei servizi che faccio ogni settimana: mi mandi l'accesso, ti dico subito se è recuperabile e quanto costa, senza giri di parole. L'ho detto all'inizio e lo ripeto alla fine, perché è il consiglio che avrei dato al mio cliente di novembre prima che perdesse due settimane di indicizzazioni: non aspettare che il problema diventi più grosso di te.




Lascia un commento