Intruder in Burp Suite
L'Intruder è uno strumento per focalizzare un attacco su dei parametri precisi. La complessità e diversità delle web applications e web services ci vedono costretti ad usare tool flessibili e dinamici per riuscire ad ottenere dei risultati concreti in un assessment. L'intruder è perfetto in questo genere di lavori.
Applicazioni di utilizzo:
- Fuzzing – Identificare i principali vettori d'attacco come SQL Injection, XSS, BoF etc;
- Enumerazione – Attacchi mirati ad identificare account validi sul sistema;
- Brute force – Fissando un username e scorrendo la password usando un dizionario o viceversa;
- Exploiting dei bug – Attacchi alle ACLs ed information leakage possono essere automatizzati grazie all'intruder;
- Crawling – Dato un dizionario di path/file possiamo effettuare un crawling come farebbero software come Dirbuster o Hoppy;
- Richieste concorrenziali – È possibile effettuare stress test sul server inviando richieste in parallelo.
In questo esempio vediamo come effettuare un'enumerazione di un parametro all'interno di una struttura XML (Web service). Stiamo utilizzando in questo caso l'Intruder perché i comuni software automatizzati non saprebbero dove andare ad effettuare fuzzing essendo una struttura XML personalizzata. Effettuiamo una richiesta base al webservice per ottenere un'informazione valida (passando un valore intero che sia presente in database). Selezioniamo la richiesta da Burp e clicchiamo su “Send to Intruder”:
Spostiamoci nella Tab dell'intruder e cominciamo ad impostare manualmente i valori. In questa prima sotto-tab “Target” troviamo l'hostname e la porta che andremo ad utilizzare. La maggior parte delle volte non necessita modifiche:
Nella sotto-tab “Positions” dobbiamo specificare qual è il parametro da enumerare. Clicchiamo quindi su “Clear” per pulire tutto ed evidenziamo il valore di “weat:ZIP”. Clicchiamo poi su “Add”. Questo specificherà che solo quel valore verrà enumerato.
Nella tab “Payloads” impostiamo il “Payload type” su “Numbers”. Specifichiamo da dove vogliamo iniziare “00500” e dove vogliamo finire “00599” con passo 1 (uno alla volta sequenzialmente). Specifichiamo poi che il tipo di dato è decimale e che deve avere una lunghezza di 5 caratteri senza virgola.
Facciamo partire l'enumerazione andando su “Intruders - Start attack” nella barra dei menu.
Quello che ci interessa è la lunghezza della risposta. Sappiamo che nel nostro caso 858 caratteri sono contenuti in un messaggio di errore. Abbiamo quindi scoperto che il valore 00544 è valido e contiene una risposta di 2951 caratteri.
Per approfondire sugli altri Attack option e Payload type è possibile fare riferimento alla documentazione.
Extender2>
Come ogni buon software che si rispetti anche Burp ha la possibilità di installare moduli aggiuntivi. Questa è la funzione dell'extender.
Con un App store interno possiamo facilmente installare nuovi moduli (alcuni richiedono la versione pro) come ad esempio l'utilissimo “WSDL Wizard” che ci semplifica, non di poco, la vita sugli assessment ai web services. Le estensioni non ufficiali si possono installare tramite la Tab “Extensions - Add” e passandogli il file .jar/.py/.rb La maggior parte dei moduli aggiuntivi si vanno ad integrare direttamente nel menu delle Tab principali.