Sito PrestaShop hackerato: il falso «verifica di essere umano» è ClickFix

Strumenti · 7 min di lettura

Sito PrestaShop hackerato: il falso «verifica di essere umano» è ClickFix

Un cliente ti scrive: entrando nel tuo negozio gli è comparso un «verifica di essere umano» che gli chiedeva di premere due tasti, incollare qualcosa e dare Invio. Tu entri e non vedi niente di strano. Se ti è successo, il tuo sito PrestaShop è stato hackerato con ClickFix: qualcuno ci ha infilato un codice che mostra quel falso captcha ai tuoi visitatori perché installino da soli un programma malevolo, di solito uno che ruba le password.

Non se ne va da solo: qualcuno è entrato nel tuo negozio e l'ha lasciato lì. Si ripulisce, ma la cosa importante è chiudere la porta da cui è entrato. E non sei l'unico: il 3 settembre Netskope ha contato più di 5.400 siti infetti da questa campagna, quasi tutti di piccole aziende. Quelli esaminati uno per uno erano soprattutto WordPress e a volte PrestaShop.

Che cos'è ClickFix e perché tu non lo vedi?

La pagina si sfoca dietro un falso captcha che chiede di premere il tasto Windows e la R, incollare e premere Invio. Quello che si incolla è un comando che la pagina ha già copiato senza avvisare, ed eseguendolo si installa il programma dell'attaccante. Un captcha vero non ti chiede mai di aprire niente sul tuo computer.

Il fatto che tu non lo veda non vuol dire che non ci sia. Il codice nel tuo negozio va a prendere la trappola altrove ogni volta che si apre una pagina, e l'attaccante decide cosa mostrare e a chi senza più toccare il negozio. Punta ai computer con Windows, e la variante che The Hacker News ha descritto il 6 ottobre nasconde il programma nel browser del visitatore prima ancora di chiedergli qualcosa.

Come capisco se il mio negozio è infetto?

  • Chiedi al cliente uno screenshot e l'ora in cui gli è comparso: così il tuo tecnico sa cosa cercare.
  • Apri il negozio da un computer con Windows, in una finestra in incognito, senza entrare nel back office e da un'altra connessione, come l'hotspot del telefono.
  • Guarda in Search Console, in Sicurezza e azioni manuali → Problemi di sicurezza. Se Google l'ha già rilevato, Chrome potrebbe già avvisare i tuoi clienti che il sito è pericoloso.

Lo screenshot del cliente basta per metterti in moto.

Cosa fare oggi, in ordine

  1. Fai un backup completo, file e database, e conservalo fuori dal server prima di toccare qualsiasi cosa. Servirà a chi pulisce.
  2. Metti il negozio in manutenzione, in Parametri Negozio → Generale → Manutenzione. Quella pagina non carica né il JavaScript del tema né i moduli dell'intestazione, quindi quasi sempre blocca il falso captcha, e a Google dice che chiudi solo per un po'. Controlla da un'altra connessione: il tuo IP continua a vedere il negozio.
  3. Cambia tutte le password: dipendenti del back office, hosting, FTP e database. In Parametri Avanzati → Dipendenti elimina chiunque non riconosci, e in Parametri Avanzati → Sicurezza chiudi tutte le sessioni del back office. Ripetilo quando il negozio sarà pulito.
  4. Cerca il codice e la backdoor con il tuo tecnico: chi entra di solito lascia dei file per tornare. Più sotto ti diciamo dove guardare.
  5. Chiudi la porta da cui sono entrati, altrimenti domani succede di nuovo.
  6. Svuota le cache prima di riaprire: quella di PrestaShop, in Parametri Avanzati → Prestazioni, e quella di Cloudflare se lo usi. Il negozio potrebbe servire una copia combinata del JavaScript del tema che continua a contenere il codice anche se pulisci l'originale. Se Google ti aveva segnalato, chiedi la revisione.
  7. Se un cliente ha incollato il comando, avvisalo perché faccia una scansione antivirus e cambi le password salvate nel browser. E se chi è entrato ha potuto vedere i dati dei clienti, parlane con chi segue la tua privacy: il GDPR dà 72 ore per notificarlo.

Dove si nasconde in PrestaShop?

Nel database, in un campo che il negozio stampa su tutte le pagine, oppure nei file: Netskope l'ha trovato aggiunto in fondo a file JavaScript legittimi e in cartelle che imitano un'estensione vera. Il commerciante francese che l'ha raccontato il 5 ottobre sul forum di PrestaShop, con un negozio 1.7.8, non ha trovato niente nel database, e le backdoor erano in file sparsi in varie cartelle.

  • I campi di codice personalizzato. Molti temi e moduli di analisi hanno una casella per incollare codice nell'intestazione; nel tema Warehouse è in Design → IqitThemeEditor, nella scheda dei codici. Qualsiasi codice di cui non sai chi l'ha messo va tolto, anche se somiglia a uno strumento noto: uno di quelli di questa campagna si spacciava per Microsoft Clarity.
  • Le pagine e le schede. Le pagine CMS e le descrizioni di prodotti e categorie accettano HTML, e lì ci sta uno script.
  • I moduli. In Moduli → Gestione Moduli, qualsiasi modulo che non hai installato tu.
  • I file isolati. In un PrestaShop pulito, le cartelle di immagini, upload e download non hanno altro PHP che index.php. Uno in più, o uno il cui nome inizia con un punto e che il tuo programma FTP nasconde, è una backdoor.

Il controllo in Parametri Avanzati → Informazioni → Lista dei files cambiati guarda solo se sono cambiati i file del core: non il tema, non i moduli, non le immagini e non i file aggiunti. Una lista vuota non vuol dire un negozio pulito.

Da dove sono entrati e come chiudo la porta?

Netskope non sa ancora come siano stati compromessi quei siti. Su PrestaShop le porte abituali sono un modulo con una falla nota mai aggiornato, una password del back office rubata o troppo facile, e i moduli «nulled», quelli a pagamento scaricati gratis da siti pirata, che spesso arrivano con la backdoor già installata.

  • Aggiorna i moduli, a partire dalla ricerca a faccette. Il 3 giugno PrestaShop ha segnalato una falla grave in ps_facetedsearch, il modulo dei filtri del catalogo incluso di serie in PrestaShop: chiunque, senza account, poteva eseguire codice sul tuo server. È corretta nella 4.0.4; se avevi una versione precedente, considera che potrebbe essere stata l'ingresso. E cancella i moduli che non usi.
  • Proteggi il back office. Una password lunga e diversa per ogni dipendente, account non condivisi e un indirizzo del back office che non sia /admin. Il secondo passaggio con un codice sul telefono non è incluso di serie, ma si aggiunge con un modulo.
  • Metti un firewall davanti, come Cloudflare: ferma molti attacchi automatici prima che arrivino al negozio, come raccontavamo in come limitare le richieste per IP senza bloccare Google. PrestaShop stesso ricorda che è uno strato in più, non un sostituto degli aggiornamenti.
  • Lascia la 1.7. PrestaShop ha smesso di mantenerla quando ha pubblicato la 9.0, a giugno 2025. Era la versione del negozio del forum.

Per il tuo team tecnico

Query di sola lettura; sostituisci ps_ con il prefisso del negozio. Warehouse salva i suoi campi di codice con l'escape, quindi bisogna cercare anche <script.

SELECT name, LEFT(value, 120)
  FROM ps_configuration
 WHERE value LIKE '%<script%'
    OR value LIKE '%&lt;script%'
    OR value LIKE '%eth_call%'
    OR name LIKE '%codes_js';
SELECT id_cms, id_lang
  FROM ps_cms_lang
 WHERE content LIKE '%<script%';
SELECT id_employee, email,
       id_profile, active,
       last_connection_date
  FROM ps_employee
 ORDER BY id_employee DESC;

Nei file, dalla radice del negozio:

find img upload download \
  -name '*.php' ! -name index.php
find . -name '.*.php'
find . -type f -mtime -30 \
  \( -name '*.php' -o -name '*.js' \) \
  -not -path './var/cache/*'
grep -rl -e eth_call -e prebsc \
  -e bsc-testnet -e claritydelivr \
  --include=*.js --include=*.php \
  --include=*.tpl .

Gli indicatori della campagna sono nella lista di Netskope. Meglio reinstallare core e moduli da pacchetti puliti della stessa versione che cancellare file per file; poi svuotare var/cache e themes/*/assets/cache. PrestaShop 9 include un .htaccess che impedisce di eseguire PHP in img, upload, download, js, vendor e modules: verificare che ci siano ancora e, con Nginx, che non li legge, portare quelle regole nella configurazione del server.

Quando chiedere aiuto?

Se hai trovato qualcosa e non hai nessuno che lo pulisca, se è tornato dopo la pulizia o se non sai da dove cominciare. Fa parte del nostro servizio di assistenza e manutenzione: puliamo il negozio, cerchiamo da dove sono entrati e chiudiamo la porta. Mandaci lo screenshot del tuo cliente e la tua versione di PrestaShop, e lo guardiamo in giornata o il giorno dopo.

Raccontaci cosa ha visto il tuo cliente

Come possiamo aiutarti

Vedi tutti i servizi →

Continua a leggere

Ti diamo una mano con il tuo progetto? Parliamone

Raccontaci di cosa ha bisogno la tua attività

Un modulo, un’app, un server che dà problemi o solo un parere. La prima consulenza non costa nulla, e da lì esce un preventivo chiuso con prezzo e data.