Penetration test – Mappatura applicazione
Per eseguire un buon pentest è necessario conoscere a fondo l’applicazione da testare e i linguaggi e le tecnologie utilizzati.
Di fondamentale importanza è mappare i percorsi di esecuzione attraverso l’applicazione,
Target
Per fare ciò è necessario aggiungere lo scope sulla porta 80 nella scheda target di burp suite, disattivando dapprima l’intercettazione del proxy che avevamo abilitato nella precedente lezione.
La scheda target verrà ora popolata dai siti visitati come anche da siti esterni che contengono dalle librerie inclue nelle applicazioni, come jQuery, font, add on…
Molti di questi siti possono essere fuori scope, basterà cliccare col tasto destro del mouse sul nome del sito da analizzare e aggiungerlo allo scope con add to scope. Ora filtriamo i risultati cliccando sulla barra grigia filter e scegliendo l’opzione Show only in-scope item in modo da visualizzare solo il record interessato.
Spider
Per popolare il sitemap in modo esauriente dovremo effettuare lo spider delle applicazioni, per prima cosa ridurre il numero di threads dello spider andando in speder / options e su spider engine portiamo il numero a 5 threads.
Eliminiamo l’ elaborazione del forms per alleggerire le richieste.
Torniamo su target e clicchiamo su spider this host col tasto destro del mouse.
Verranno popolati diversi records, anche se lo spider troverà quei files e directory che collegano le pagine tra loro, le risorse nascoste dovranno essere scovate col dirbusting.
Fingerprint web applications o framework
Carpire le tecnologie utilizzate da un’applicazione specifica o di uno specifico framework permette di conoscerla e verificare se esistono vulnerabilità note a seconda della loro versione. Potrebbe essere utile analizzare i cookie di sessione. Per questo è possibile analizzare il codice HTML specifico, ispezionare le richieste o le risposte oppure utilizzare altri strumenti come ad esempio whatweb.
whatweb http://192.168.0.30/wordpress
Una volta identificato il framework è possibile cercarne le vulnerabilità su siti come cvedetails, se la versione corrisponde, allora molto probabilmente è vulnerabile.
Dirbusting
Per trovare i percorsi nascosti è possibile utilizzare lo strumento di dirbusting utilizzando una wordlist e visitando le pagine o cartelle con le stringhe della lista.
dirb ha diverse opzioni, con -S silent non mostra le stringhe testate, -w non si ferma sui warning, -r evita la ricerca ricorsiva, -o salva l’output su disco.
Ecco un esempio del comando:
dirb http://192.168.0.30/mutillidae /usr/share/dirb/wordlists/common.txt -S -w -o dirb_mutillidae.txt
Il comando potrebbe restituire dei percorsi che con burp non verrebbero trovati, qualora ci fossero, andrebbero testati ampliando le possibilità di successo dell’attacco.
Mappatura dell’architettura dell’applicazione
In molti contesti di server, non abbiamo un semplice apache sulla porta 80 e 443, ma potremmo incontrare dei reverse proxy, firewall per applicazioni web o load balanced.
In questi casi le cose si complicano parecchio, e risulta alquanto facile che il pentest vada fuori scope, si potrebbe riconoscere un firewall o un reverse proxy se l’applicazione restituisce un tipo di errore o risposta molto diversi dalla normalità quando andiamo a manomettere le richieste.
Cerca revisioni vecchie, files di backup non referenziati per informazioni sensibili
Se il server web è configurato correttamente, l’apertura di una pagina php restituirà una pagina bianca. Magari inizialmente lo sviluppatore avrebbe potuto utilizzare perl per poi cambiare con php, quindi ootremmo per esempio trovare un precedente file config.inc.pl che magari contiene informazioni sensibili.
Sarà quindi necessario effettuare una ricerca nel server per cercare tutti quei tipi di files che potenzialmente potrebbero rivelarci informazioni. Quindi potremmo utilizzare dirb per cercare files con estensioni:
txt , pl , pdf , zip …
Allo stesso modo dovremmo cercare files di backup dal momento che potrebbero contenere il sorgente dell’intera applicazione. Sarà quindi necessario cercare estensioni .tar , .gz , .tar.gz2 , ,bz …
L’opzione -X di dirb cercherà le estensioni specificate e se scovate potranno essere analizzate
dirb http://192.168.0.30/mutillidae /usr/share/dirb/wordlists/common.txt -S -X .zip