Saturday, July 26, 2008

Penetration testing di siti web - Primo stadio

Su Hackerscenter.com, ho deciso di fare una carrellata di tools necessari per il penetration testing in ambiente web application.
Ho intenzione di fornire piccole review dei tool open source che personalmente utilizzo nel mio lavoro quotidiano, dividendoli per categoria di appartenenza e ordine sequenziale di utilizzo.
Per motivi di spazio, ho scelto solo i principali per step:

  • Information gathering (recupero di informazioni sul target)
  • Vunerability Assessment (ricognizione delle vulnerabilità presenti sul target)
  • Penetration/attacking (tool che effettivamente sfruttano le vulnerabilità)
Prima di iniziare a parlare dei tool, vorrei soffermarmi su queste categorie per permettere almeno ai principianti di avere ben chiari gli obiettivi di ogni step.



La parte di information gathering è la più importante. C'è sempre la tentazione, soprattutto nei meno esperti, di andare subito al sodo.

Ma non siamo hacker, siamo professionisti di sicurezza che DEVONO trovare tutte le vulnerabilità di un sistema. Non solo una.

Questo lavoro è una guerra ad armi impari tra l'hacker e l'ethical hacker o auditor.
All'hacker basta trovarne una per aver vinto. A noi serve trovarle tutte.


Proprio per questo la parte di information gathering è la più delicata ed è volta ad esporre tutte le informazioni che un hacker potrebbe ottenere mediante la semplice osservazione di alcuni elementi dell'applicazione target visibili "ad occhio nudo" (o con dei tool) .
Scopo dell'information gathering è:
  • conoscere il web server (tipo, versione, patch installate...)
  • conoscere (fingerprint) il sistema operativo utilizzato sul server
  • script commerciali installati (tipo, versione...)
  • sottodomini
  • directory nascoste
  • file residenti sul server
  • file di log lasciati sul server
  • file di backup lasciati sul server
  • gestione delle sessioni/cookie
  • presenza o meno di IDS/filtri/Web application firewall
Alla lista precedente si potrebbero aggiungere tanti altri elementi, ma se già siamo capaci di verificare tutti quelli listati siamo a buon punto direi.

C'è da dire che molte volte un attaccante può fermarsi a questo stadio ed aver già raggiunto il suo scopo. Scoprire un file di backup contenente il database o il codice sorgente, può significare aver raggiunto il proprio scopo. E questo succede più spesso di quanto si immagini.

I principali tool di information gathering (in ambito di web application security) sono:

Nei prossimi post mi concentrerò su Dirbuster, wfuzz e Nikto.