php.bkdr.obf: backdoor offuscata, a volte travestita da immagine
php.bkdr.obf è la firma di una backdoor il cui codice è offuscato, cioè trasformato in modo da non essere leggibile né dalle persone né dai filtri più semplici: catene di base64_decode, gzinflate, str_rot13, stringhe spezzate e ricomposte. php.gif.bkdr e php.bkdr.cloaked.png sono la stessa idea con un camuffamento in più: il codice sta in un file che si presenta come immagine. Nel corpus di misura di WPsec.it dell'agosto 2026 le tre firme insieme compaiono su 13 domini e 6 server; fra le estensioni rilevate ci sono .webp, .gif e .phar accanto a .php.
Famiglia: Backdoor offuscata o nascosta in un'immagine · Anche noto come: bkdr.obf, mlw.obf, gif.bkdr, cloaked.png · Aggiornato il 1 settembre 2026
Le stringhe esatte
Se hai trovato una di queste stringhe sul tuo sito, sei nella pagina giusta.
php.bkdr.obfSMW-BLKH-SA-CLOUDAV-php.bkdr.obfmlw.obfphp.gif.bkdrphp.bkdr.cloaked.png
Dove si trova
- Fuori dalle cartelle di WordPress nel 94% dei casi
- In file con estensione da immagine, .webp o .gif, che il server esegue solo perché un altro file li include o perché una regola di .htaccess lo dice
- In wp-content/uploads quando il vettore è stato un upload non filtrato: l'immagine caricata era un file PHP con intestazione grafica
Cosa fa
- Fa ciò che fa ogni backdoor, ma con un codice che una lettura veloce non riconosce: chi cerca eval o system a occhio non lo trova.
- Nella variante immagine supera i filtri di upload che controllano solo l'estensione o i primi byte del file.
- Nel corpus era quasi sempre integra: solo l'1% dei file era stato svuotato dall'antivirus, contro il 71% dei finti plugin. L'offuscamento funziona anche contro la quarantena.
Come verificare
Comandi di sola lettura: non modificano nulla. Sostituisci ESEMPIO.it con il tuo dominio ed esegui dalla radice del sito.
Cerca le catene di decodifica tipiche dell'offuscamento
grep -rn --include='*.php' -E '(base64_decode|gzinflate|gzuncompress|gzdecode|str_rot13|strrev|convert_uu)\s*\(' . | grep -vE 'wp-(admin|includes)/|plugins/(akismet|jetpack|woocommerce)/' | head -30Cerca file immagine che contengono codice PHP
find . -type f \( -iname '*.gif' -o -iname '*.png' -o -iname '*.jpg' -o -iname '*.webp' -o -iname '*.ico' \) -size -200k -exec grep -lI -m1 '<?php' {} + 2>/dev/null | headCerca chi include file con estensione da immagine
grep -rn --include='*.php' -E '(include|require)(_once)?\s*\(?\s*[^;]*\.(gif|png|jpg|webp|ico)' . | head -20
Cosa non basta fare
- Leggere il file per capire cosa fa: è offuscato apposta, e decodificarlo a mano è lento e rischioso. Il verdetto dell'antivirus basta per trattarlo come backdoor.
- Cancellare l'immagine sospetta: va trovato il file PHP che la include, altrimenti ne arriva un'altra.
- Contare sul filtro di upload del plugin: la variante immagine è nata per superarlo.
Cosa fare
- Salva una copia del file fuori dal sito e rimuovilo insieme a chi lo include.
- Cerca gli upload non filtrati: moduli, gallerie, importatori. È il vettore tipico della variante immagine.
- Se hai accesso alla configurazione, impedisci l'esecuzione di PHP in wp-content/uploads con una regola dedicata.
- Chiudi il vettore di ingresso e ripeti la scansione dopo qualche giorno.