Request Support  | Contact Sales

Diventa Autore per CoreTech | Scopri di più





Introduzione alle web shell - parte 1

03/07/20 CoreTech Blog

Una shell Web è uno script dannoso utilizzato da un utente malintenzionato con l'intento di intensificare e mantenere l'accesso persistente su un'applicazione Web già compromessa. Una web shell in sé non può attaccare o sfruttare una vulnerabilità remota, quindi è sempre il secondo passaggio di un attacco (questa fase viene anche definita post-sfruttamento).

Un utente malintenzionato può sfruttare le vulnerabilità comuni delle pagine Web come iniezione SQL , inclusione di file remoti (RFI) o persino utilizzare lo scripting cross-site (XSS) come parte di un attacco di ingegneria sociale al fine di raggiungere le capacità di caricamento dei file e trasferire i malware File. La funzionalità comune include ma non è limitata all'esecuzione dei comandi della shell (accesso a cmd / riga comandi), all'esecuzione del codice, all'enumerazione del database e alla gestione dei file.    

Le web shell potrebbero essere scritte in molti linguaggi web, ad esempio le web shell PHP sono molto comuni. Possono interessarti indipendentemente dal fatto che il tuo sistema sia basato su software personalizzato o su un comune sistema di gestione dei contenuti come WordPress con plugin. Le shell Web potrebbero inoltre non essere rilevate da software antivirus o antimalware perché non utilizzano tipi di file eseguibili tipici. Allo stesso tempo, sono facilmente accessibili al pubblico, ad esempio tramite diversi progetti GitHub.

In questa breve serie, vogliamo spiegarti in dettaglio come funzionano le web shell (usando un esempio di shell PHP) e come puoi rilevare web shell e proteggere le tue risorse.

Accesso remoto persistente

Uno script della shell Web di solito contiene una backdoor, che consente a un utente malintenzionato di accedere in remoto e possibilmente controllare un server con accesso a Internet in qualsiasi momento. Ciò eviterebbe all'attaccante l'inconveniente di dover sfruttare una vulnerabilità ogni volta che è richiesto l'accesso al server compromesso.

Un utente malintenzionato potrebbe anche scegliere di correggere la vulnerabilità in modo da garantire che nessun altro possa sfruttare tale vulnerabilità. In questo modo l'attaccante può mantenere un profilo basso ed evitare qualsiasi interazione con un amministratore, ottenendo comunque lo stesso risultato.

Vale anche la pena ricordare che molte popolari shell Web utilizzano l'autenticazione con password e altre tecniche per garantire che solo l'attaccante che carica la shell Web abbia accesso ad essa. Tali tecniche includono il blocco dello script su un'intestazione HTTP personalizzata specifica, valori di cookie specifici, indirizzi IP specifici o una combinazione di queste tecniche. La maggior parte delle shell Web contiene anche codice per identificare e impedire ai motori di ricerca di elencare la shell e, di conseguenza, inserire nella blacklist l'intero dominio o server su cui è ospitata l'applicazione Web - in altre parole, offuscamento e invisibilità sono fondamentali.

Aumento dei privilegi

A meno che un server non sia configurato in modo errato, la shell Web verrà eseguita con le autorizzazioni utente del software del server Web, che sono (o almeno dovrebbero essere) limitate. Utilizzando una shell Web, un utente malintenzionato può tentare di eseguire attacchi di escalation di privilegi sfruttando le vulnerabilità locali sul sistema al fine di assumere i privilegi di root, che in Linux e altri sistemi operativi basati su UNIX è il superutente.  

Con l'accesso all'account di root, l'utente malintenzionato può essenzialmente fare qualsiasi cosa sul sistema, compresa la gestione di file locali, l'installazione di software, la modifica delle autorizzazioni, l'aggiunta e la rimozione di utenti, il furto di password, la lettura di e-mail e altro ancora.

Attivare e lanciare attacchi

Una web shell può essere utilizzata per ruotare all'interno o all'esterno di una rete. L'utente malintenzionato potrebbe voler monitorare (annusare) il traffico di rete sul sistema, scansionare la rete interna per rilevare host dal vivo ed enumerare firewall e router all'interno della rete.

Questo processo può richiedere giorni, anche mesi, principalmente perché un utente malintenzionato cerca in genere di mantenere un profilo basso e attirare la minima attenzione possibile. Una volta che un utente malintenzionato ha accesso persistente, può pazientemente muovere le proprie mosse.

Il sistema compromesso può anche essere utilizzato per attaccare o scansionare obiettivi che risiedono al di fuori della rete. Ciò aggiunge un ulteriore livello di anonimato per l'attaccante poiché stanno utilizzando un sistema di terze parti per lanciare un attacco. Un ulteriore passo sarebbe quello di ruotare (tunnel) attraverso più sistemi per rendere quasi impossibile rintracciare un attacco alla sua fonte.

Zombie

Un altro uso delle shell Web è rendere i server parte di una botnet. Una botnet è una rete di sistemi compromessi che un utente malintenzionato controllerebbe, sia per utilizzarsi che per noleggiare altri criminali. La web shell o backdoor è connessa a un server di comando e controllo (C&C) da cui può prendere i comandi su quali istruzioni eseguire.

Banner

Questa configurazione viene comunemente utilizzata negli attacchi DDoS (Distributed Denial of Service), che richiedono ampie quantità di larghezza di banda. In questo caso, l'attaccante non ha alcun interesse a danneggiare o rubare qualcosa dal sistema su cui è stata distribuita la shell web. Invece, useranno semplicemente le sue risorse.


Articoli su Acunetix

Trovare le vulnerabilità dei siti web prima degli HackerL'importanza della convalida delle correzioni: lezioni da GoogleSDLC agile e sicuro - Best practiceIn che misura le aziende gestiscono la sicurezza delle applicazioni Web?Cross-Origin Resource Sharing (CORS) e intestazione Access-Control-Allow-OriginCosa sono i reindirizzamenti aperti?DevSecOps: come arrivarci da DevOpsIl bigino su SQL Injection per sviluppatoriSfruttare SSTI in ThymeleafSicurezza nginx: come proteggere la configurazione del serverRafforzamento del sistema Web in 5 semplici passaggiCos'è la sicurezza del sito Web - Come proteggere il tuo sito Web dall'hackingRapporto sulle vulnerabilità delle applicazioni Web Acunetix 2020Perché l'elenco delle directory è pericoloso?Cosa sono gli hack di Google?Cosa è l'attacco BEASTWeb Shells in Action - Rilevazione e prevenzione - parte 5Web Shells in Action - parte 4Mantenere le Web Shells sotto copertura - parte 3Introduzione alle web shell - parte 2: 101 Uso di PHPIntroduzione alle web shell - parte 1Debunking 5 miti sulla postura della sicurezza informaticaIniezioni di NoSQL e come evitarleConfigurazione passo passo di Acunetix con JenkinsCosa sono i riferimenti a oggetti diretti non sicuriAnche il più forte cade: un'iniezione SQL in Sophos XG FirewallAcunetix rilascia Business Logic RecorderCome recuperare un sito Web compromessoCome difendersi dagli hacker Black Hat durante la pandemia COVID-19Che cos'è l'inclusione remota dei file (RFI)?Apache Security - 10 consigli per un'installazione sicuraUn nuovo sguardo sugli attacchi correlati al proxy inversoVulnerabilità delle password comuni e come evitarleTutto quello che devi sapere sugli attacchi Man-in-the-MiddleChe cosa sono le iniezioni HTMLRed Teaming – 5 consigli su come farlo in modo sicuroTesta le tue competenze XSS utilizzando siti vulnerabiliPerché hacker malintenzionati hanno messo gli occhi sugli ospedaliPratiche di codifica sicura – I tre principi chiaveLa maledizione delle vecchie librerie JavaMutation XSS nella ricerca GoogleIgnorare SOP utilizzando la cache del browserCome e perché evitare reindirizzamenti e inoltri non convalidati?Dirottamento di sessione e altri attacchi di sessioneCome abbiamo trovato un altro XSS in Google con AcunetixChe cos'è un buffer overflowChe cos'è l'overflow di IntegerChe cos'è HSTS e perché dovrei usarlo?Che cosa è OS Command InjectionVulnerabilità delle entità esterne XML in Internet ExplorerCoreTech assicura protezione dei siti Web con AcunetixCoreTech distributore Acunetix a fianco dei partner per la CyberSecurityCyberSecurity applicativa, nuova opportunità per voi!