Information Gathering – Raccolta informazioni

L’ information Gathering, ovvero la raccolta di informazioni è sicuramente una delle fasi essenziali prima di iniziare la fase di penetration testing. Prima di effettuare qualsiasi analisi è buona cosa sapere che cosa va analizzato e sopratutto conoscerlo bene.

L’ Information Gathering è proprio questo, studiare il nostro target sotto tutti i punti di vista e reperire più informazioni possibili, questo ci permetterà nelle fasi successive di avere molto materiale a disposizione. Il concetto da cui partire è quello della Black Box, ovvero la non conoscenza dell’applicativo / sistema su cui verranno effettuati i test.

Iniziamo la raccolta di informazioni

Il nostro target può essere sia una semplice URL, un IP e nient’altro, una misera informazione dal quale dobbiamo ricavare più informazioni possibili.

I modi per reperire informazioni sono moltissimi e di certo la nostra fantasia / curiosità ci potranno aiutare sicuramente, e analizzarli tutti è praticamente impossibile, quindi prenderemo in esame sono un paio di modi e qualche tool, ma non è detto che sia sempre l’approccio giusto.

Prendiamo in esame il caso in cui ci venga data una semplice URL e non conosciamo nient’altro. Quindi dobbiamo lavorare interamente da remoto e iniziare a creare il nostro book di “appunti”.

Iniziano con l’individuare URL a quale ip corrisponde tramite il comando host:

l’output restituito ci permette di conoscere, attraverso una query hai nostri DNS, l’IP della macchina associato all’URL (il comando host può essere usato anche al contrario, ovvero immettendo l’ip e come ritorno otterremo il nome associato alla macchina).

Avendo una URL, vediamo a chi è registrato il dominio e quale ISP detiene la delega DNS, tramite il comando whois:

questo comando ci permette di interrogare i database ufficiali e ricevere i dati di registrazione del nome a dominio (e nel caso di ip, a chi appartiene IP e relativa classe).

Ottenute queste informazioni, sappiamo a chi appartiene il nome a domino che stiamo interrogando e se è ospitato presso un Provider o su un server “privato”.

Vediamo se il web continua ad aiutarci a reperire informazioni, ma stavolta a carattere social, ovvero cerchiamo indirizzi e-mail, altri hostname, url o quant’altro possa essere utile per la nostra analisi di penetration testing. Per fare questo ci viene incontro il tool theharvester che tramite alcuni parametri si occupa di cercare attraverso i motori di ricerca risultati attinenti la nostra URL di analisi. L’esempio sotto riportato effettua una ricerca per i primi 200 risultati, sul motore di ricerca google per il dominio host.it:

il comando sopra riportato è quello essenziale, ma oltre ad usare diversi motori di ricerca è possibile anche interrogazioni attiver (DNS Brute Force, DNS reverse lookup,DNS TDL expansion)

Abbiamo qualche informazione maggiore sul nostro target, quindi iniziamo ad effettuare un analisi sulla macchina individuata e se necessario sulla relativa classe (ci potrebbe essere anche qualche altro nodo interessante per la nostra analisi di penetration testing). Personalmente mi affido a due tool in questo passaggio, nmap e openvas.

Nel caso di openvas, inserisco host target ed avvio l’analisi, ed attendo la reportistica finale ;), mentre per nmap uso i seguenti comandi:

nel dettaglio:

-sS utilizza la tecnica di scansione TCP SYN

-F fast mode, ovvero cerca le porte associati hai servizi standard

-o outfile, scrive il risultato nel file indicato (l’output può essere in diversi formati, per esempio XML)

-O attivata l’opzione OS detection

Nel caso vogliamo effettuare la scansione sull’intera classe facente parte all’URL <host.it> basta aggiungere l’opzione in notazione CIDR, nel caso di una classe C:

Altro tool interessante per la raccolta di informazioni è “whatweb” e il suo utilizzo è molto semplice:

ci restituirà il tipo di server che fa da hosting alla web application, non chè informazioni sulla stessa, nel caso di CMS è molto utile.

Altri tool utili, ma non meno importanti sono:

  • arping: invia una richiesta ARP agli host di una specifica network;
  • arp-scan: invia una richiesta arp ad un determinato ip, e restituisce tutte le informazioni dell’host nonchè fingerprint e simili;
  • nbtscan: tool utile per effetture scansioni NetBIOS all’ interno di una network;
  • knockpy:  tool per elencare tutti i sotto-domini facenti parte del nome a dominio passato come parametro;

Adesso, nel caso in cui il nostro target per il penetration testing sia un URL e quindi un sito web, una web application, o servizio in una determinata macchina, abbiamo le informazioni basi su:

  • a chi appartiene l’URL, ovvero a chi è registrato il nome a dominio;
  • se il dominio è ospitato presso un ISP, un servizio di hosting, o presso un’altro ente o meglio facente parte di una classe ip associata allo stesso intestatario del nome a domino;
  • informazioni inerenti la macchina server ospitante;
  • se vi sono altri server nella stessa network, gli altri servizi attivi e relative fingerprint;
  • una prima analisi dei bug, exploiet utilizzabili (grazie ad openvas, e all’interrogazione dei database contenente Exploits e 0day Exploits)

OK, adesso è arrivato il momento di procedere con i test veri e propri, passiamo alla fase di Vulnerability Assessment.

Curioso e con tanta voglia di sapere, fui attratto dal mondo dell'informatica, in cui mi ci buttai a capofitto. Dal 2005, ho fatto della mia passione principale, il Networking associato al mondo dei sistemi in ambiente Gnu/Linux, il mio lavoro quotidiano.

Comments are closed.