Catalogo pubblico
Segnali di compromissione WordPress: le firme, una per una
Quando un sito viene compromesso, la prima cosa che si ha in mano non è una diagnosi: è una stringa. Il nome di un file che non conosci, una riga di codice nel sorgente, il nome di una famiglia scritto nell'email dell'hosting. Questo catalogo parte da lì.
41 voci, ognuna con la stringa esatta, i comandi di verifica e le mosse che sembrano risolutive ma non lo sono. Le firme vengono dagli interventi di bonifica di WPsec.it e dal corpus di misura del nostro scanner, che nell'agosto 2026 copriva 22 server e 5.127 domini. Pubblichiamo firme di rilevamento, mai codice sfruttabile.
Ultimo aggiornamento: 1 settembre 2026
Famiglia antivirus
I nomi che l'hosting scrive nell'email quando il suo antivirus rileva qualcosa. Se sei arrivato qui incollando uno di questi, l'email diceva il vero.
- MedioSMW-INJ, SMW-SA, SMW-BLKH, CLOUDAV: come si legge il nome di un rilevamentoL'email dell'hosting dice SMW-BLKH-SA-CLOUDAV-php.bkdr.wpplugin.mal-WPPLUGIN1-0. Cosa vuol dire ogni segmento, cosa dicono i dati su INJ, SA e BLKH, e come si passa dal nome alla verifica.
SMW-INJ - Criticophp.bkdr.fakeplugin.wp: cosa ha trovato il tuo hostingL'hosting ti ha scritto che ha rilevato php.bkdr.fakeplugin.wp. È il nome che l'antivirus dà a una backdoor camuffata da plugin WordPress. Cosa comporta davvero.
php.bkdr.fakeplugin.wp - Criticophp.webshell.eval: una shell che esegue comandi sul tuo hostingphp.webshell.eval indica un file che esegue codice arbitrario inviato via web. Cosa può fare chi lo controlla e quali verifiche servono subito.
php.webshell.eval - Criticophp.bkdr.wpcore.mal: un file del core di WordPress modificatoIl rilevamento indica codice ostile dentro un file del core di WordPress. È il caso più semplice da verificare, perché i file del core hanno checksum pubblici.
php.bkdr.wpcore.mal - Criticophp.dropper: il file che scarica e installa gli altriUn dropper non fa danni da solo: scarica e installa il resto. È il motivo per cui un sito ripulito a metà torna infetto in poche ore.
php.dropper.file - Criticophp.bkdr.wpplugin.mal: il plugin WordPress che è una backdoorphp.bkdr.wpplugin.mal è la firma più diffusa nel nostro corpus: 40 siti WordPress su 7 server. Un plugin dal nome normale che in realtà è una backdoor. Cosa verificare.
php.bkdr.wpplugin.mal - Criticophp.bkdr.drpr: la backdoor che scrive altri filephp.bkdr.drpr indica una backdoor con funzione di dropper: scrive altri file sul sito. Nel corpus compare su 36 domini e 11 server, quasi sempre con nomi casuali e senza estensione.
php.bkdr.drpr - Criticophp.bkdr.wshll: una webshell, spesso con estensione .phar o .php8php.bkdr.wshll è la firma di una webshell. Nel corpus: 19 domini, 7 server, e un dettaglio che sfugge alle pulizie manuali: solo un file su tre finisce in .php, gli altri in .phar, .php8 o .pht.
php.bkdr.wshll - Criticophp.bkdr.exec: codice che esegue comandi sul serverphp.bkdr.exec segnala codice PHP che esegue comandi di sistema. Nel corpus: 4 domini, 4 server, sempre con nome casuale e senza estensione, il profilo del file richiamato da un altro.
php.bkdr.exec - Criticophp.bkdr: la backdoor senza altra specificazionephp.bkdr senza suffisso è la famiglia generica delle backdoor PHP. Nel corpus: 19 domini su 10 server, nomi di file normali nel 64% dei casi. Cosa fare quando l'hosting scrive solo questo.
php.bkdr - Criticophp.bkdr.remote: la backdoor che prende ordini da fuoriphp.bkdr.remote segnala una backdoor che scarica codice o comandi da un server esterno. Nel corpus: 10 domini, 6 server, il 96% dei file con nome casuale e quasi tutti fuori da WordPress.
php.bkdr.remote - Criticophp.bkdr.obf: backdoor offuscata, a volte travestita da immaginephp.bkdr.obf è una backdoor con codice offuscato; php.gif.bkdr la stessa cosa dentro un file che finge di essere un'immagine. Nel corpus: 13 domini, 6 server, file .webp e .gif fra i rilevamenti.
php.bkdr.obf - Altophp.bkdr.gen: firma generica, e i falsi positivi documentatiphp.bkdr.gen è una firma generica con identificativo AUTO: nella maggioranza dei casi è una backdoor, ma esistono falsi positivi documentati su file legittimi. Come distinguere i due casi.
php.bkdr.gen - Criticophp.bkdr.wp: la backdoor iniettata in un file legittimo di WordPressphp.bkdr.wp con prefisso SMW-INJ indica codice malevolo iniettato in un file vero di WordPress: nel corpus il 97% sta dentro l'installazione, il 78% in un plugin, e il file ha un nome normale.
php.bkdr.wp - Criticophp.bkdr.incl: una riga di include che carica la backdoor da un altro filephp.bkdr.incl segnala una backdoor in due pezzi: una riga di include in un file legittimo e il carico in un file a parte. Nel corpus: 7 domini, 4 server, un file su quattro dentro il tema.
php.bkdr.incl - Criticophp.bkdr.upld: l'uploader che carica file sul tuo sitophp.bkdr.upld e php.bkdr.upldr indicano un uploader: un modulo web che carica file sul server. Nel corpus: 11 domini, 6 server, il 93% dei file fuori dalle cartelle di WordPress.
php.bkdr.upld - Altophp.tool.misc: lo strumento da attaccante che l'antivirus svuota e lascia lìphp.tool.misc classifica uno strumento da attaccante non meglio specificato. Nel corpus: 7 siti WordPress su 4 server, e nel 95% dei casi il file era svuotato dall'antivirus ma non rimosso.
php.tool.misc - Altophp.admin.tool.db.adminer: Adminer sul sito, e perché l'antivirus lo segnalaphp.admin.tool.db.adminer segnala Adminer, un pannello per il database in un solo file PHP. Non è malware in sé: è la console del database esposta a chiunque. Nel corpus: 6 domini, 5 server.
php.admin.tool.db.adminer - Criticophp.admin.tool.fm: un file manager via browser sul tuo sitophp.admin.tool.fm e php.bkdr.fm segnalano un file manager in PHP: sfoglia, modifica, carica e cancella file dal browser. Nel corpus: 9 domini, 7 server, un file su quattro dentro un plugin.
php.admin.tool.fm - Criticophp.tool.phish: il tuo sito ospita una pagina di phishingphp.tool.phish segnala un kit di phishing ospitato sul sito: una finta pagina di login di una banca, di un corriere o di un servizio email. Cosa comporta, anche legalmente, e cosa fare subito.
php.tool.phish - Altophp.tool.seo.wp: lo strumento di spam SEO dentro il temaphp.tool.seo.wp segnala uno strumento di spam SEO: inietta link o pagine invisibili ai visitatori e visibili a Google. Nel corpus: 7 siti WordPress su 3 server, sempre nel tema o nella radice.
php.tool.seo.wp - Altohtml.spam.gambling: pagine di casinò e scommesse nascoste nel tuo sitohtml.spam.gambling segnala pagine HTML di spam per casinò, slot e scommesse caricate sul sito per posizionarsi su Google col tuo dominio. Nel corpus: 11 domini, 5 server, 83% dentro wp-content.
html.spam.gambling - Criticophp.bkdr.spam: il tuo sito manda spam via emailphp.bkdr.spam segnala un mailer: codice che usa il tuo sito per inviare email di spam o phishing. È la causa più comune di sospensione dell'hosting. Nel corpus: 13 domini, 6 server.
php.bkdr.spam - Criticojs.skimmer.b64: lo script che copia le carte di credito al checkoutjs.skimmer.b64 segnala uno skimmer JavaScript in base64: legge i dati della carta nel modulo di pagamento e li invia altrove. Nel corpus: 3 e-commerce, con i file travestiti da immagini .png.
js.skimmer.b64
Backdoor
- Critico.htaccess con FilesMatch e lista di file consentitiUn .htaccess con un blocco FilesMatch che elenca nomi di file sconosciuti e li apre a tutti non è una regola di sicurezza: è il router di una backdoor. Come riconoscerlo.
<FilesMatch "lock360.php|wp-l0gin.php|jp.php|ext.php"> - CriticoBackdoor a cookie magico: login da amministratore senza passwordPoche righe in functions.php che leggono un cookie e chiamano wp_set_auth_cookie trasformano una visita anonima in una sessione da amministratore. Come si riconosce questa classe di backdoor.
$_COOKIE['_auth'] - CriticoIl plugin che si cancella dall'elenco dei pluginUn filtro su all_plugins con unset e plugin_basename rimuove un plugin dalla lista in dashboard senza disattivarlo. Continua a funzionare, ma non lo vedi. Come trovarlo.
all_plugins - AltoUn file che si chiama sucuri- e non l'ha messo SucuriAlcune backdoor prendono il nome di un prodotto di sicurezza noto per non essere cancellate. Come distinguere un file lasciato da Sucuri da uno che ne usa solo il nome.
sucuri- - CriticoUn file PHP che include un .txt, un .ico o un .logIl payload non è nel file PHP: sta in un file dall'estensione innocua che nessun antivirus guarda. Come si riconosce questo schema di occultamento.
include
Webshell
- Criticowp-l0gin.php: il file che imita wp-login.phpwp-l0gin.php non fa parte di WordPress. È il nome di una webshell che imita wp-login.php sostituendo la i con uno zero. Cosa fa, come verificarlo, cosa fare.
wp-l0gin.php - AltoBDKR28_ e gli altri nomi di file generati a casoNomi come BDKR28_ seguito da caratteri casuali sono generati per sito, quindi non compaiono in nessuna lista pubblica. Perché i cataloghi di firme non bastano.
BDKR28_
Cloaking e spam SEO
- Criticowpmbchik: il commento HTML che segna una pagina iniettataSe nel sorgente della tua pagina compare un commento HTML con la parola wpmbchik, il sito serve codice iniettato. Cosa marca quel commento e come si verifica.
<!-- wpmbchik --> - Criticonew Function con TextDecoder: il caricatore che si decodifica da soloUn blocco JavaScript che costruisce codice a runtime con new Function e TextDecoder non è offuscamento di un builder: è il caricatore di una famiglia di iniezioni. Come riconoscerlo.
new Function(new TextDecoder() - Criticoeth_call verso un nodo Polygon: comando e controllo su blockchainQuando il codice iniettato chiama un nodo RPC di una blockchain, l'indirizzo del server di comando non esiste: le istruzioni stanno in un contratto che non si può sequestrare. Come si riconosce.
eth_call - CriticoRedirect verso domini in stile giapponese solo per chi arriva da GoogleIl sito funziona quando lo apri tu e reindirizza a pagine di spam quando ci arrivi da un motore di ricerca. È cloaking, e si verifica in un modo preciso.
rakuten18jp.click - AltoCartelle e file rinominati con un suffisso casualePlugin e cartelle che compaiono con un suffisso aggiunto al nome, per esempio due underscore e sei caratteri, indicano che qualcosa ha preso il posto dell'originale.
__303f600 - CriticoUn file HTML incluso solo quando passa GooglebotQuando un file viene incluso nella pagina solo se il visitatore si dichiara Googlebot, il sito sta mostrando al motore qualcosa che agli umani non mostra. Come verificarlo.
wp-comments-post-loader.html
Non è malware
File che sembrano malware e non lo sono. Nella nostra misura advanced-cache.php compariva su 18 siti sani su 86: cancellarlo per prudenza è un errore comune.
- Falso allarmeadvanced-cache.php: non è malware, è un drop-in di WordPressadvanced-cache.php in wp-content non è un file infetto: è il drop-in che WordPress carica per la cache. Compare su un sito sano su cinque. Quando invece va guardato con attenzione.
advanced-cache.php - Falso allarmedb.php in wp-content: drop-in legittimo o file da controllaredb.php in wp-content è un drop-in previsto da WordPress e usato da diversi plugin di database. Come distinguerlo in un minuto da un file che ne usa solo il nome.
wp-content/db.php - Falso allarmeobject-cache.php: il terzo drop-in che fa sospettare senza motivoobject-cache.php è il drop-in che collega WordPress a Redis o Memcached. Compare senza che nessuno lo abbia messo consapevolmente, e viene scambiato per malware.
wp-content/object-cache.php
Come nasce questo catalogo
Ogni voce viene da un caso reale o da una misura, non da un feed
Le firme statiche sono allineate al motore del nostro scanner e validate contro un corpus di file legittimi prima di essere ammesse: la soglia di ammissione è zero falsi positivi. È il motivo per cui in questo catalogo trovi anche tre file che non sono malware: erano candidati scartati proprio da quella verifica.
I casi citati sono descritti in forma anonima: nessun nome di cliente, nessun dominio di vittima.