Come effettuare un PenTest – Parte 2: Information Gathering

Abbiamo visto nel precedente articolo cos’è il Penetration Testing o PenTest.

In questo capitolo cercheremo di affrontare la seconda fase di un PenTest, basata su esempi reali e spiegazione di alcuni tools utilizzabili. L’information Gathering può essere distinto in due metodologie: attivo o passivo.

L’obiettivo principale di questa fase è quello di raccogliere più informazioni possibili che possano essere utili nell’attività di PenTest: alcuni dati possono essere ricavati dal DNS, hostname, IP, tecnologie hardware usate, username, documenti sensibili, informazioni di password reset, informazioni di contatto, SOCIAL NETWORK vari ed altro ancora.

Tale attività risulta essere nevralgica e molto importante. Più informazioni riuscirò a carpire, più accurata sarà la mia ricerca.

Nella ricerca delle informazioni ATTIVA cercheremo di ottenere le informazioni, ad esempio, nel traffico di rete dove si trova il nostro target; nella modalità PASSIVA utilizzeremo servizi di terze parti come Google/Linkedin/Shodan ecc.

Nella Information Gathering che stiamo descrivendo non esiste una tecnica o approcci standard: vince chi ha più creatività ed inventiva.

I motori di ricerca possono essere i vostri migliori amici…

È importante aggiungere che, per una raccolta di informazioni meno intrusiva e anonima ma con più difficoltà nel reperire dati, l’approccio PASSIVO è preferibile. L’approccio ATTIVO, restituirà all’attaccante molte info ma il rischio di essere scoperto e bloccato potrebbe essere alto.

La tipologia di approccio può essere scelto dal cliente al momento della redazione del Test PLAN.

Passiamo ai fatti…

Immaginiamo di voler raccogliere più info possibili da un Sito Web sfruttando l’approccio Ibrido (ATTIVO + PASSIVO).

Dove potremmo reperire un numero adeguato di Info?

Siti Web pubblici (affacciati su Internet) possono essere considerati la vetrina di una vittima. Sono molto utili per mostrare ai clienti i loro servizi e prodotti, ma possono essere sfruttati per carpire informazioni di varia natura e successivamente sfruttate a proprio vantaggio.

NOTA: Se un sito web è hostato su un provider esterno, raccogliere informazioni può essere difficoltosa, se il sito è hostato in server proprietari la faccenda potrebbe diventare più interessante…

Risorse Pubbliche alla portata di tutti

Esistono nel web numerose applicazioni che permettono di ottenere alcune info importanti per il proseguimento del PenTest.

Facciamo alcuni esempi:

https://archive.org/ : Permette di avere uno storico dei siti web. Dalla versione più recente alla più vecchia;

http://whois.domaintools.com/: Permette, tramite protocollo whois, di avere molte informazioni utili;

https://centralops.net/co/: simile al secondo link, con il vantaggio di poter fare un port scan semplice via web. (attività anonima a danno del target)

L’utilizzo di risorse pubbliche disponibili su Web, è sempre da preferire in quanto permette di mantenere un certo anonimato. A discapito di ciò, vi è una difficoltà di adeguare i tool via web alle nostre esigenze.

Tools in Linux

WHOIS

In alcune distro Linux è possibile adoperare il protocollo di rete Whois direttamente da terminare di comando.

#whois ictpower.it

Whois permette di effettuare delle query al fine di ottenere informazioni riguardo la registrazione del dominio. È possibile avere informazioni riguardo DNS server e contatti di colui che ha registrato il dominio. Con un pizzico di malizia e una spolverata di “linkedin” è possibile divertirsi un pò.

Ripasso di alcuni record DNS:

SOA: Informazioni autorevoli sulla zona DNS, incluso server DNS principale.

NS: Delega una zona DNS ad essere gestita da un server DNS autorevole per quel dominio.

A: Indirizzo IPv4 dell’host.

MX: Collega un nome di dominio ad una lista di server di posta autorevoli per quel dominio.

AAAA: Indirizzo Ipv6 dell’host.

CNAME: Collega un nome DNS ad un altro.

DIG

Altri tools che possono essere molto utili per poter raccogliere alcune informazioni sono:

Dig permette di fare query DNS; il solo comando DIG restituirà solo record di tipo A. Per poter ottenere tutti i record basterà digitare:

#dig ictpower.it any

Il fattore vincente in DIG può essere quello che permette di eseguire query salvate in un file di testo.

DNSENUM

Una valida alternativa a DIG, può essere dnsenum che permette di restituire i record DNS sfruttando alcune implementazioni aggiuntive:

  • Permette di ottenere nomi e sottodomini aggiuntivi utilizzando Google;
  • Scoprire sottodomini utilizzando tecniche di brute forcing da file di testo;
  • Utilizzare thread per elaborare diverse query…
  • Etc…

#dnsenum ictpower.it

Utilizzando il semplice comando dnsenum, otterremo informazioni riguardo IP dell’host, nome server e IP del server di posta.

Altri tools che permettono un’analisi più automatizzata sono Fierce o DMitry che approcciano l’information gathering in maniera più aggressiva e approfondita.

DA USARE CON MODERAZIONE…

Network Routing Information

Altre informazioni che possiamo ricavare, sono quelle inerenti al “network routing information”; conoscere tali dati permette ad un PenTester di comprendere la rete nella quale si trova il proprio target ed evitare di essere scoperto. In questa fase è possibile anche osservare se vi è un firewall a protezione del target.

TCPtraceroute

Il primo per importanza è sicuramente TCPtraceroute.

Come si evince dal nome, sfrutta il comando traceroute che, combinato ad una serie di migliorie, permette di ottenere risultati sicuramente più efficaci.

Il traceroute packet, nonché “UDP o ICMP
echo
request” con TTL variabile, molto spesso sono filtrati da un firewall; TCPtraceroute sfrutta il TCP SYN (stealth Scan) nonchè pacchetti legittimi e difficilmente bloccabili.

Se TCPtraceroute riceve in risposta del TCP SYN, un SYN/ACK significa che la porta è aperta, se il flag viene settato con RST significa che la porta è chiusa.

Tctrace

Strumento alternativo a TCPtraceroute è tctrace, che sfrutta la stessa tecnica.

TheHarvester

Ladies and gentlemen, inchinatevi davanti al tool per eccellenza per information Gathering.

Uno dei tool più malvagi ed utili che siano stati mai creati è TheHarvester (Tradotto “Il raccoglitore”).

Tale strumento è utilizzato per raccogliere domini, indirizzi email e documenti con metadata inerenti il target. Esso si basa su un suo algoritmo di ricerca in grado di interrogare i maggiori motori di ricerca conosciuti, facendo sì che l’attaccante non visiti direttamente il target. Dunque il target sarà ignaro delle nostre attività.

Riprendendo dalla descrizione nella pagina Github <<https://github.com/laramies/theHarvester>>, elenco alcuni motori di ricerca che interroga:

  • Google
  • Yahoo
  • Baidu
  • Shodan
  • Twitter
  • Etc…

Come ultimo, ma non per importanza, abbiamo Metagoofil.

Cercate documenti inerenti un possibile target? Questo tool fa per voi.

Esso si basa sul fantastico Google, andando a ricercare tutti i documenti con metadati del dominio target.

Possiamo ricercare documenti word, excel, presentazioni powerpoint, PDF

I suoi passi sono fondamentalmente 4:

  1. Cerca tutti i documenti presenti nel web tramite Google, con le estensioni specificate;
  2. Scarica i documenti trovati in locale;
  3. Estrae i metadati dai documenti scaricati;
  4. Salva i dati in un file HTML.

I metadati possono essere username, Versioni software, nomi macchina. Facile No?

Nel prossimo articolo affronteremo il cosiddetto processo di Target Discover nella rete.