Una web shell è un'interfaccia simile a una shell che consente l'accesso remoto a un server web, spesso utilizzata nell'ambito di attacchi informatici.[1
Una web shell è un'interfaccia simile a una shell che consente l'accesso remoto a un server web, spesso utilizzata nell'ambito di attacchi informatici.[1] Ciò che distingue una web shell è l'interazione attraverso un browser web.[2][3]
Una web shell può essere programmata in qualsiasi linguaggio di programmazione supportato dal server. Il linguaggio più comunemente utilizzato è PHP, in quanto ampiamente diffuso nello sviluppo di applicazioni web. Tuttavia, vengono utilizzati anche Active Server Pages, ASP.NET, Python, Perl, Ruby e script di shell Unix.[1][2][4]
Utilizzando strumenti di monitoraggio della rete, un attaccante può individuare vulnerabilità che potrebbero consentire l'installazione di una web shell. Queste vulnerabilità sono spesso presenti nelle applicazioni eseguite su un server web.[2]
Un attaccante può utilizzare una web shell per eseguire comandi shell, effettuare la privilege escalation sul server web e caricare, eliminare, scaricare ed eseguire file da e sul server web.[2]
Le web shell vengono utilizzate negli attacchi soprattutto perché offrono molteplici funzionalità e sono difficili da rilevare.[5] Sono comunemente utilizzate per:
Le web shell consentono agli hacker di rubare informazioni, corrompere dati e installare malware altamente dannosi per il sistema. Il problema si aggrava quando gli hacker sfruttano server compromessi per infiltrarsi in un sistema e compromettere altre macchine. Le web shell rappresentano inoltre uno strumento attraverso cui i malintenzionati prendono di mira diversi settori, tra cui quello governativo, finanziario e della difesa, attraverso lo spionaggio informatico. Una delle web shell più note utilizzate in questo contesto è “China Chopper”.[7]
Le web shell vengono installate sfruttando vulnerabilità nelle applicazioni web o configurazioni di sicurezza del server deboli, tra cui:[2][5]
Un attaccante può anche modificare (contraffare) l'intestazione Content-Type inviata durante il caricamento di un file per aggirare una validazione inadeguata basata sul tipo MIME fornito dal client, consentendo così il caricamento della shell dell'attaccante.
Di seguito è riportato un semplice esempio di una web shell scritta in PHP che esegue e restituisce il risultato di un comando shell:
<?=`$_GET[x]`?>
Supponendo che il nome del file sia example.php, di seguito è riportato un esempio che restituirebbe il contenuto del file /etc/passwd:
https://example.com/example.php?x=cat%20%2Fetc%2Fpasswd
La richiesta sopra riportata prenderà il valore del parametro x della stringa di ricerca, inviando il seguente comando shell:
cat /etc/passwd
Ciò avrebbe potuto essere evitato disabilitando le funzioni di shell di PHP, impedendo così l'esecuzione di comandi shell arbitrari dal codice PHP.
Di solito una web shell viene installata sfruttando le vulnerabilità presenti nel software del server web. Per questo motivo, è importante correggere queste vulnerabilità per evitare il rischio di compromissione del server web.
Di seguito sono elencate alcune misure di sicurezza per prevenire l'installazione di una web shell:[2][3]
Le web shell possono essere facilmente modificate, rendendo difficile la loro individuazione; inoltre, i software antivirus spesso non sono in grado di rilevarle.[2][10]
Di seguito sono riportati alcuni indicatori comuni della presenza di una web shell su un server web.[2][3]
cmd.exe o alla funzione eval;Le shell Web possono anche includere un modulo di login, spesso mascherato da pagina di errore.[2][11][14][15]
Attraverso le web shell, gli attaccanti possono modificare il file .htaccess (nei server che utilizzano il software Apache HTTP Server) per reindirizzare le richieste proveniente dai motori di ricerca verso pagine contenenti malware o spam. Spesso le web shell rilevano lo user agent, mostrando contenuti diversi ai crawler dei motori di ricerca rispetto a quelli presentati al browser dell'utente. Per individuare una web shell, è solitamente necessario modificare lo user agent del crawler bot. Una volta identificata, può essere rimossa facilmente.[2]
L’analisi dei log del server web può aiutare a individuare la posizione esatta di una web shell. Gli utenti o visitatori legittimi presentano generalmente user agent e referer differenti; al contrario, una web shell viene solitamente visitata solo dall'attaccante, mostrando quindi un numero molto limitato di varianti nella stringa user agent.[2]
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.