Ciao ragazzi, visto che sto studiando le slide di questo corso, stavo preparando per me una piccola sintesi/traduzione delle slide. Ho pensavo che potessero essere utili anche a voi. Se trovate errori o imprecisioni fatemelo sapere. Ciao da Alberto
Information Gathering La prima fase di accertamento della sicurezza di una web application è focalizzata sull'acquisizione di informazioni relative al target. OWASP per questa fase ha definito sei differenti task (OWASP-IG-001/006). OWASP-IG-001 (Spiders, robots, Crawlers) : Verifica del file "robots.txt" utilizzato per guidare correttamente i Crawlers per l'indicizzazione di siti web. SessionLab01. Utilizzando "Google Webmaster Tool" verificare l'errore presente nel file "robots.txt" di "www.wikipedia.com" OWASP-IG-002 : I motori di ricerca possono essere utilizzati per determinare problemi relativi alla struttura di applicazioni web o pagine di errore prodotte dall'applicazione (che sono pubblicamente esposti). Ad esempio con google è possibile restringere i risultati della ricerca di un sito (utilizzando site:example.com) oppure vedere la copia cache (utilizzando cache:example.com). OWASP-IG-003 (Identificazione entry point dell'applicazione) : Prima di effettuare test è sempre bene conoscere e capire il funzionamento dell'applicazione, avendo una visione di come l'applicazione comunica con l'utente/browser. In particolare bisogna porre attenzione a tutte le richieste HTTP (Metodi GET e POST), utilizzate per passare paramentri all'applicazione dai campi form. Il metodo GET è il più utilizzato, ma quando si scambiano informazioni sensibili spesso si usa il metodo POST. Per poter vedere ed analizzare i parametri passati con il metodo POST è necessario utilizzare tool come un intercepting proxy (p.e WebScarab di OWASP) o un plug-in per browser (p.e. Tamper Data) SessionLab02. Utilizzando "Tamper Data" analizzare il traffico dati effettuando il log-in alla propria webmail. OWASP-IG-004 (Identificazione mediante fingerprinting del Web Server) : Questo test permette di determinare il tipo e la versione del Web Server utilizzato dall'applicazione web in modo tale da determinare le sue vulnerabilità note, al fine di sfruttare possibili exploit nei test successivi. TOOL : http://www.netcraft.com - http://net-square.com/httprint/index.shtml (TOOL UTILIZZATO : HTTPPRINT). SessionLab03. Utilizzando "HTTPPRINT" testarne l'utilizzo su più target. es. ./httprint -h [IP_host] -s [file_con_firme.txt] -o [RisultatoOutput.html] -th [#thread utilizzati] -r [#retry] -P0 (per evitare il timeout) OWASP-IG-005 (Identificazione servizi di un'applicazione web) : Questo test permette di determinare quali servizi/programmi sono ospitati, attivi e accessibili su un'applicazione web. Molte applicazioni hanno vulnerabilità e strategie di attacco note. Per tale motivo possono essere utilizzate per ottenere il controllo da remoto o per prelevare dati sensibili. In più, molte applicazioni sono spesso mal configurate o non aggiornate, oppure possono dare la percezione di poter essere utilizzate solo "internamente" e che quindi non vi sono minacce esistenti. (TOOL UTILIZZATO : NMAP). SessionLab04. Utilizzare "NMAP" su più target per scoprire i servizi/applicazioni attivi sulle porte aperte. es. nmap -st (non ricordo a che serve) -p0-65535 (intervallo porte su cui effettuare lo scan) www.example.com OWASP-IG-006 (Analisi dei codici di errore) : Spesso durante un "penetration test" di una web application andiamo incontro a molti codici di errore generati da applicazioni o dai web server (a causa del opzione di debug attiva). E' possibile causare errori effettuando particolari richieste create mediante tool automatizzati oppure manualmente. Questi codici di errore sono molto utili al tester in quanto possono rivelare molte informazioni relative a database, bug e agli altri componenti direttamente collegati alla web application. In questa sezione sono analizzati i più comuni codici di errori (messaggi d'errore). Un errore comune è "HTTP 404 Not Found" che può essere generato effettuando la richiesta di una pagina non esistente. Spesso questo codice di errore restituisce informazioni utili sui componeti fondamentali del web server: Not Found The requested URL /page.html was not found on this server. Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.7g DAV/2 PHP/5.1.2 Server at localhost Port 80 Altre informazioni utili possono essere scoperte da errori di autenticazione. In questo caso, l'autenticazione fallisce fino a quando le credenziali non sono inserite. Nell'esempio è mostrato un codice di errore che sottolinea il tipo di firewall che protegge la web application. Error 407 FW1 at <firewall>: Unauthorized to access the document. Authorization is needed for FW1. The authentication required by FW1 is: unknown. Reason for failure of last attempt: no user