Cos'è una web shell?
Una web shell è uno script che viene caricato su un server con lo scopo di dare a un hacker il controllo remoto di una macchina. I server Web che si infettano possono essere interni alla rete o a Internet, mentre la shell è utilizzata per far ruotare ulteriormente gli host interni del server . (Alert (TA15-314A)).
Un hacker può utilizzare qualsiasi linguaggio per scrivere la shell web a condizione che sia supportata dal server web di destinazione. Alcune delle connessioni web più comuni sono in lingue ampiamente supportate, ad esempio, PHP. L'hacker può individuare le debolezze e installare un tipo di web shell utilizzando strumenti di scansione di rete.
Ad esempio, le maggiori vulnerabilità si verificano nei software del server web o nei sistemi CMS o di gestione dei contenuti. Una volta che sono stati caricati con successo, un hacker può quindi utilizzare le shell per sfruttare altre tecniche di sfruttamento per emettere comandi e incrementare i privilegi in remoto. I controlli sono connessi alla funzionalità o all'opportunità a disposizione del server e possono includere la capacità di eliminare, aggiungere e eseguire i file, oltre alla possibilità di eseguire ulteriori eseguibili, comandi o script. (Alert (TA15-314A)).
Le Web shell possono anche essere utilizzate deliberatamente e legittimamente da un amministratore di un sistema per eseguire azioni sul server, ad esempio, la lettura dei registri di sistema, la creazione di un utente e il riavvio di un servizio. A differenza di altri tipi di shell che necessitano di un programma secondario per operare sulla macchina di una vittima, una shell web non necessita di socket per la comunicazione e viene spesso eseguita su HTTP. (Paganini, 2016).
Sono backdoors che funzionano dal browser. In quanto tali, sono considerati strumenti di sfruttamento.
Prima che possano essere utilizzati per vittimizzare un utente, è necessario trovare una debolezza nell'applicazione di destinazione.
Un modo eccellente per gli hacker è quello di caricare la minaccia attraverso una pagina per il caricamento di file, ad esempio un modulo di invio sul sito web di un'organizzazione e quindi utilizzando la vulnerabilità nell'applicazione LFI o Local File Include nell'applicazione per includere la shell nelle sue pagine. (Paganini , 2016).
Un esempio eccellente di una web shell è la variante c99, che è un malware PHP spesso caricato in un'applicazione web vulnerabile per fornire agli hacker un'interfaccia. La shell c99 consente all'attaccante di prendere il controllo dei processi del server Internet, consentendogli di dare comandi sul server come account in cui è in funzione la minaccia. Permette all'hacker di caricare, navigare nel file system, modificare e visualizzare i file, oltre a eliminarli, spostarli e modificare le autorizzazioni.
Trovare una shell c99 è un ottimo modo per identificare un sito compromesso su un sistema. La shell c99 è lunga circa 1500 righe e alcuni dei suoi tratti includono l'indicazione di misure di sicurezza che il server web può utilizzare, un visualizzatore di file che dispone di autorizzazioni, un luogo in cui l'utente malintenzionato può utilizzare il codice PHP personalizzato (malware PHP c99 shell).
Ci sono diverse varianti di c99 che vengono utilizzate oggi.
- —