php.bkdr.wshll: una webshell, spesso con estensione .phar o .php8
php.bkdr.wshll è il nome che l'antivirus lato server dà a una webshell: un file che espone via browser un'interfaccia per eseguire comandi, leggere e scrivere file, interrogare il database. Nel corpus di misura di WPsec.it dell'agosto 2026 compare su 19 domini e 7 server, e solo il 35% dei file ha estensione .php: il resto usa .phar, .php8, .php7 e .pht, estensioni che molti hosting eseguono come PHP ma che una ricerca per *.php non trova.
Famiglia: Webshell · Anche noto come: wshll, bkdr.wshll, webshell · Aggiornato il 1 settembre 2026
Le stringhe esatte
Se hai trovato una di queste stringhe sul tuo sito, sei nella pagina giusta.
php.bkdr.wshllSMW-BLKH-SA-CLOUDAV-php.bkdr.wshllphp.bkdr.wshll.obfphp.bkdr.wshll.imgphp.bkdr.wshll.remote
Dove si trova
- Fuori dalle cartelle di WordPress nel 96% dei casi, dove nessun plugin di sicurezza guarda
- Con estensioni alternative: .phar, .php8, .php7, .pht e .phtml compaiono in due file su tre
- Con nomi casuali nel 72% dei casi; quando il nome è una parola, imita un file di sistema del tema o del core
Cosa fa
- Espone un pannello o un endpoint che esegue ciò che riceve: comandi di sistema, operazioni sui file, query al database.
- Consente di raggiungere gli altri siti dello stesso account hosting, che non sono isolati fra loro.
- Serve da punto di rientro: dopo una pulizia parziale è la porta da cui l'attaccante rimette tutto a posto.
Come verificare
Comandi di sola lettura: non modificano nulla. Sostituisci ESEMPIO.it con il tuo dominio ed esegui dalla radice del sito.
Trova i file con estensioni alternative eseguite come PHP
find . -type f \( -name '*.phar' -o -name '*.php7' -o -name '*.php8' -o -name '*.pht' -o -name '*.phtml' -o -name '*.php5' \) -not -path '*/node_modules/*' -lsControlla quali estensioni il server esegue come PHP
grep -rn --include=.htaccess -iE 'AddHandler|AddType|SetHandler|FilesMatch' . | head -20Cerca le funzioni tipiche di una shell nei file fuori dal core
grep -rn -E '\b(system|exec|shell_exec|passthru|proc_open|popen)\s*\(' --include='*.php' --include='*.phar' --include='*.php7' --include='*.php8' --include='*.pht' . | grep -vE 'wp-(admin|includes)/' | head -30
Cosa non basta fare
- Cercare solo i file .php: in questa famiglia due file su tre hanno un'altra estensione.
- Cancellare la shell e considerare chiuso il caso: chi l'ha usata ha avuto accesso completo e ha quasi sempre lasciato un secondo ingresso.
- Cambiare solo la password di WordPress: con una shell si leggono wp-config.php e quindi le credenziali del database, e spesso anche quelle FTP salvate nel pannello.
Cosa fare
- Tratta tutte le credenziali raggiungibili dal sito come compromesse: database, FTP, chiavi API nei plugin, SMTP.
- Verifica ogni sito dello stesso account hosting, perché la shell li raggiunge tutti.
- Chiedi all'hosting i log di accesso al percorso della shell: mostrano da quando è stata usata e da dove.
- Chiudi la via di ingresso e ripeti la scansione a distanza di giorni, non subito dopo la pulizia.