CriticoFamiglia antivirus

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.wshll
  • SMW-BLKH-SA-CLOUDAV-php.bkdr.wshll
  • php.bkdr.wshll.obf
  • php.bkdr.wshll.img
  • php.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.

  1. 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/*' -ls
  2. Controlla quali estensioni il server esegue come PHP

    grep -rn --include=.htaccess -iE 'AddHandler|AddType|SetHandler|FilesMatch' . | head -20
  3. Cerca 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.

FAQ

Domande frequenti

  • Perché la configurazione dell'hosting associa quelle estensioni all'interprete PHP, per compatibilità con versioni diverse del linguaggio. È una scelta comune sui pannelli condivisi. L'attaccante la sfrutta perché i filtri di upload e le ricerche manuali guardano quasi sempre solo .php.

Se il sito è compromesso

Trovare la firma è il primo passo, chiudere la via di ingresso è quello che conta

Rimuovere l'artefatto senza chiudere il punto da cui è entrato porta alla reinfezione. La scansione gratuita è il modo più rapido per capire cosa è osservabile dall'esterno del tuo sito.

Questa pagina pubblica firme di rilevamento, non codice sfruttabile. I casi citati sono descritti in forma anonima.