Penetration test – Analisi e tools

Per iniziare col pentest è consigliabile utilizzare la metodologia OWASP che è la più utilizzata sia dai pentester di grandi società, sia dagli etical hacker o bug bounty hunter di tutto il mondo.

Come ambiente di sviluppo è consigliato utilizzare la distribuzione linux Kali che integra una serie di strumenti adatti allo scopo, tra cui importante è la suite burp.

Sarebbe opportuno utilizzare una macchina virtuale nella rete locale su cui caricare le applicazioni contro le quali eseguiremo i pentest.

Burp suite

La suite burp viene fornita in versione Community edition gratuitamente e presenta una miriade di tools per eseguire i test di vulnerabilità.
Riassumiamo le principali funzioni :

  • Target
    Permette di mappare le applicazioni web
  • Proxy
    Per intercettare le richieste al server web e modificarle manualmente
  • Spider
    Esegue il crawling, ovvero analizza i contenuti della rete che popoleranno la scheda target
  • Intruder
    Per automatizzare alcune operazioni
  • Repeater
    Per testare diversi payload contro il web server, dove per payload si intende una stringa specifica per eseguire un attacco.

Per utilizzare il browser in modo che si interfacci con burp, è necessario attivare la modalità proxy sul browser, passando magari dalla porta 8080 e installare il certificato di burp (con il proxy attivo aprire l’url http://burp) per intercettare le chiamate HTTPS.
Un comodo plugin da utilizzare per chrome o firefox è FoxyProxy.

Analisi

La fase più importante prima di eseguire un attacco è quella di ricevere maggiori informazioni possibili sull’applicazione da testare.
Prima di tutto bisogna visitare la pagina da analizzare per avere un’idea generale del suo funzionamento e identificare le prime potenziali componenti vulnerabili.

Poi bisogna informarsi e avere conoscenze sull’applicazione specifica, magari controllando la documentazione o cercando in rete specifiche vulnerabilità.

Un inizio è quello di controllare se esistono credenziali di default che magari non sono state cambiate, per esempio di potrebbe trovare un’istanza di apache tomcat sulla quale per ipotesi l’amministratore avrebbe tralasciato di cambiare le credenziali predefinite e quindi ci permetterebbe l’intrusione (su google: tomcat ver default credentials).

Google è uno dei nostri maggiori alleati, è possibile affinare le ricerche tramite operatori speciali come intitle che filtra la ricerca con le pagine che contengono la stringa nel tag HTML title.
Un caso di insicurezza è la ricerca di directory indice che è possibile ottenere con

intitle:"index of /"

Le pagine restituite sono insicure perchè espongono le applicazioni alla divulgazione di dati sensibili.

Un altro interessante operatore è inurl che restituisce una certa parola contenuta nell’indirizzo

inurl:"wp-login.php"

una lista esaustiva dei Google Dorks la troviamo su exploit-db

Fingerprint web server

Se un’applicazione è online ed è stata indicizzata è possibile utilizzare diversi tools di analisi, eccone degli esempi. Un ottimo tools è netcraft per ottenere diverse informazioni con lo scan: What’s that site running?

Oltre ad utilizzare i tools online, utilizzeremo anche burp per effettuare le analisi sulle chiamate, se per esempio abbiamo installato nella macchina locale di test l’applicazione OWASP mutillidae , noteremo tramite la scheda proxy di burp, l’attributo PHPSESSID, che ci fa capire che facilmente nel server è installato php ,

Fondamentale nella scheda proxy è intercettare anche le risposte flaggando nella scheda options l’opzione intercept responceses based on the following rules.
Una volta abilitata l’opzione analizzare le risposte cliccando nella scheda proxy/intercept il bottone forward.

Adesso l’ header del server ci segnala che in tale versione di apache se abbiamo usato quello.

Un altro strumento da utilizzare a riga di comando è nmap

nmap 192.168.0.30 -p 80 -sV

L’opzione -sV restituisce la versione del server in uso sulla porta definita con l’opzione -p.

Esamina i metafile ed elenca le applicazioni del server web per la perdita di informazioni

Molti siti web spesso utilizzano il file robots.txt che istruisce i crowling dei motori di ricerca su quali cartelle o percorsi dovrebbero ignorare nella loro indicizzazione

robots.txt 

Potrebbe capitare che vengano escluse dal robots le pagine amministrative, alcuni percorsi di aree e forme autenticative dei back office che potremmo poi testare.

Prima, con nmap, abbiamo scansionato la porta 80, ma altri server web potrebbero utilizzare altre porte, per scovarli sarà necessario effettuare una scansione su tutte le con l’opzione -p-

nmap 192.168.0.30 -p- -sV

La tattica di cambiare la porta di default di un servizio, conosciuta come Security through obscurity, per far si che non venga scovata è alquanto inefficace, come abbiamo appena visto.

In un web pentest un’ altra che richiede tempo, ma è necessario fare una volta individuata l’applicazione, è quella di controllare il codice delle pagine per vedere se nei vari commenti del codice o metadata trovassimo informazioni utili ( information leakage ). Sicuramente non scoveremo le password nei commenti HTML, ma magari collegamenti a percorsi, pagine vecchio o di sviluppo, o altri server che potrebbero presentare vulnerabilità o informazioni sul network interno aziendale.