CriticoFamiglia antivirus

php.webshell.eval: una shell che esegue comandi sul tuo hosting

php.webshell.eval è il nome che l'antivirus assegna a un file PHP che esegue codice arbitrario ricevuto da una richiesta web: chi conosce l'URL può leggere, scrivere ed eseguire sul tuo spazio hosting con i permessi del sito. È fra le famiglie più frequenti nel corpus di misura di WPsec.it, e va trattata come un accesso completo già avvenuto, non come un file da cancellare.

Famiglia: Webshell · Aggiornato il 1 settembre 2026

Le stringhe esatte

Se hai trovato una di queste stringhe sul tuo sito, sei nella pagina giusta.

  • php.webshell.eval
  • php.webshell
  • php.bkdr.eval

Dove si trova

  • Ovunque nello spazio web, spesso in wp-content/uploads/ o in una cartella di plugin
  • Con nomi generici oppure con nomi casuali generati per quel sito
  • In file dall'estensione insolita quando il server le esegue comunque, per esempio .phar o .php7

Cosa fa

  • Esegue il codice che riceve nella richiesta, quindi può fare tutto ciò che l'utente del sito può fare.
  • Consente di leggere wp-config.php e quindi le credenziali del database.
  • Consente di raggiungere gli altri siti ospitati sullo stesso account, che non sono isolati fra loro.

Come verificare

Comandi di sola lettura: non modificano nulla. Sostituisci ESEMPIO.it con il tuo dominio ed esegui dalla radice del sito.

  1. Chiedi all'hosting percorso e data del rilevamento

    Nel pannello antivirus apri il rilevamento e annota percorso completo e data
  2. Cerca esecuzione dinamica di codice nei file del sito

    grep -rn --include='*.php' -E '(eval|assert|preg_replace\s*\(.*/e|create_function)\s*\(' wp-content/ | head -30
  3. Cerca file eseguibili con estensioni insolite

    find . -type f \( -name '*.phar' -o -name '*.php7' -o -name '*.php8' -o -name '*.pht' -o -name '*.phtml' \) -ls

Cosa non basta fare

  • Cancellare il file e riprendere il lavoro: chi ha avuto accesso ha quasi sempre lasciato più di un punto di rientro.
  • Cambiare solo la password di WordPress: vanno considerate compromesse anche le credenziali del database, quelle FTP e quelle del pannello.

Cosa fare

  • Tratta le credenziali contenute in wp-config.php come compromesse e cambiale, database incluso.
  • Verifica tutti i siti sullo stesso account hosting, non solo quello segnalato.
  • Cerca file con estensioni alternative, che spesso sfuggono ai controlli impostati solo su .php.
  • Conserva i log di accesso prima che vengano ruotati: sono l'unico modo per ricostruire cosa è stato fatto.

FAQ

Domande frequenti

  • Nel caso peggiore tutto ciò che il sito può fare: leggere il database e quindi i dati dei clienti, inviare email dal dominio, modificare pagine, caricare altri file, raggiungere gli altri siti dello stesso account. Senza i log non è determinabile cosa sia effettivamente avvenuto, ed è il motivo per cui i log vanno messi al sicuro prima di ogni altra operazione.

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.