Il footprinting

Mattepuffo's logo
Il footprinting

Il footprinting

Ho fatto una spece di riassunto di varie info trovate in giro e vorrei riportarvele.

Il footprinting è l'attività che consente di creare un profilo sulla sicurezza di un bersaglio.

Attraverso vari strumenti e metodi è possibile arrivare a conoscere moltissime info su un determinato bersaglio (organizzazioni, privati, ecc).

E' la prima attività svolta dagli hacker quando voglio attaccare qualcuno (per qualsiasi scopo lo vogliano fare), ed è fondamentale in quanto permette di raccogliere molte info.

Gli elementi che vengono monitorati sono:

Internet Nomi di dominio
  Blocchi di reti/sottoreti
  Servizi
  IP raggiungibili
  Architettura di sistema
  ecc
Intranet Protocolli di rete
  Nomi host DNS
  ecc
Extranet Meccanismo di controllo di accesso
  Tipi di connessione
  ecc
Accesso remoto Numeri di telefonp
  VPN
  Tipo di sistema remoto
  ecc

I vari passi che vengono effettuati sono abbastanza personali, ma facendo un riassunto ne ho individuati 6.

PASSO 1: definire l'ambito di attività

Si tratta di determinare su cosa raccogliere informazioni:

  • tutta l'organizzazione o solo una parte?
  • anche i partner e le extranet?
  • consideraare anche le relazioni più "lontane"?

PASSO 2: autorizzazioni

Supponendo che stiate facendo tutto in buona fede e per testare la sicurezza della vostra organizzazione. dovete ottenere i permessi per svolgere la vostra attività.

In sostanza si tratta dei livelli 8 e 9 del modello OSI a 7 livelli: politica e finanziamenti.

PASSO 3: informazioni pubbliche

Molti di voi magari non ci pensano, ma ci sono tantissime informazioni pubblilche se sapete dove cercare:

  • pagine web
    • commenti codice sorgente pagine (HTML e CSS)
    • url per vpn, microsoft exchange
    • openconnect/java
  • organizzazioni correlate, ad esempio quando ci si rifà all'outsourcing per determinate attività, in quanto è facile che i partner non stiano attenti alla sicurezza degli altri
    • commenti codice sorgente pagine (HTML e CSS)
  • dettagli sulla sede, attraverso servizi come Google Maps o Google Earth
  • dettagli sui dipendenti, come numeri di telefono, indirizzi e email
    • paginebianche.it
  • eventi come fusioni, acquisizioni, liquidazioni, licenziamenti, che spesso, per velocizzare le operazioni, portano a trascurare la sicurezza
  • politiche di sicurezza che indicano che ci sono meccanismi di sicurezza attivi
  • informazioni archiviate non disponibili presso la fonte originale
    • webarchive.org
  • dipendenti scontenti
  • motori di ricerca e Usenet, attraverso i quali è possibile reperire molte informazioni usando le chiavi di ricerca adeguate; se andiamo qua possiamo ottenere molte di queste chiavi;
    • ad esempio cercando in Google "allinurl:tsweb/default.htm" possiamo ottenere i server Microsoft con la connessione wed desktop attiva

PASSO 4: enumerazione WHOIS

 

Prima di tutto che cos'è il WHOIS: è un protocollo che consente di determinare a quale provider appartenga un determinato indirizzo IP.

Prima di andare oltre, però, è meglio spiegare le basi sulla gestione di Internet, in modo da capire bene come funziona la procedura.

Le funzionalità centrale di Internet è gestita dall'ICANN, che è una sorta di organizzazione di coordinazione per Internet.

Nello specifico coordina l'assegnazione dei seguenti identificatori:

  • nomi di dominio
  • indirizzi IP
  • paramateri dei protocolli e numeri di porta
  • coordina l'attività del sistema root server DNS

L'ICANN è divisa in diverse parti:

  • ASO che cura le politiche relative agli indirizzi IP
  • GNSO che cura le politiche relative all'assegnazione dei nomi di dominio di primo livello; non è responsabile della registrazione, ma dei domini generici di primo livello (.com, .net, .org, ecc) che si trovano presso IANA
  • CCNSO che cura e sviluppa le politiche relative ai nomi di dominio per tutti i domini di primo con codice nazionale

Nello specifico l''ASO alloca blocchi di indirizzi IP ai registri regionali RIR che gestiscono e distribuiscono i vari IP agli ISP o ad altre organizzazioni.

Le varie regioni in cui si suddivide l'ASO sono:

  • APNIC -> Asia/Pacifico
  • ARIN -> Americhe, Africa subsahariana
  • LACNIC -> America latina e Caraibi
  • RIPE -> Europa, parti dell'Asia, Africa del nord, medio oriente
  • AfriNIC -> includerà le aree africane gestite da ARIN e RIPE

Capita tutta questa suddivisione possiamo fare un esempio reale cominciando con le ricerche relative ai domini.

Prima di tutto dobbiamo identificare qyale server WHOIS contiene le info che vogliamo.

Per farlo si usano le cosi dette tre R del WHOIS: si identifica il Registry per un dato dominio (tipo .com) che contiene info sul Registrar che è colui che ha registrato il dominio bersaglio; infine identifichiamo il Registrant corrispondente allo specifico nome di dominio.

Per fare tutto ciò possiamo usare uno dei tant siti dedicati ale ricerche WHOIS, oppure fare tutto "a mano".

Vediamo un possibile procedimento.

Ci colleghiamo a WHOIS IANA e cerchiamo il registry per il dominio .it (ad esempio).

In fondo vediamo che http://www.nic.it/; ci colleghiamo e clicchiamo su WHOIS a destra e cerchiamo orangeneration.it.

Vediamo che è stato registrato da Aruba; sulla sinistra clicchiamo sul link Whois per vedere tutte le info del sito (alcuni provider hanno servizi di WHOIS specifici ma su Aruba non l'ho trovato).

Così facendo abbiamo molti dettagli non trascurabili, ed aumentano nel caso di alcuni provider..

Volendo possiamo effettuare le stesse ricerche comodamente dal terminale (esempio di un libro):

$ whois com -h whois.iana.org

$ whois keyhole.com -h whois.verisign-grs.com

$ whois keyhole.com -h whois.omnis.com

Inoltre come detto prima potete usare uno dei tatissimi siti online (basta cge cercate whois su Google).

Volendo possiamo fare le ricerche per IP invece che per dominio.

Andate sul sito dell'ARIN e mettete l'IP nella casella in alto a destra.

Proviamo con 217.200.200.42.

L'indirizzo è allocato presso RIPE; andiamo quindi presso il sito RIPE e mettete l'IP in RIPE database.

Scopriamo che è gestito dalla Telecom.

Questa procedura può essere usate per tracciare qualsiasi indirizzo; al massimo combiareanno i gestori dell'IP.

Tenendo però conto che è sempre possibile mascherare il proprio indirizzo......

PASSO 5: interrogazione dei DNS

A questo punto passiamo all'interrogazione dei DNS.

Il metodo più usato è il cosidetto "trasferimento di zona", tenendo però in considerazione che ad oggi i sistemi di sicurezza sono molto migliorati e non è sempre possibile usare questa metodologia.

Il modo classico è quello di usare nslookup, un semplice programma da riga di comando.

Se date solo il comando nslookup si avvierà una spece di sessione interattiva.

All'avvio dovrebbe indicare il server DNS di default.

Se però il nostro server DNS non è autorizzato per il dominio bersaglio non conterrà tutti i record DNs che stiamo cercando, e quindi dovremmo indicare manualmente quale interrogare.

Vi posto un esempio trovato su u file pdf (scaricato chissà dove):

$ nslookup

Defualt Server : ns1.example.com

Address: 10.10.20.2

> 192.168.1.1

Defualt Server : ns1.example.com

Address: 10.10.20.2

Name: gate.esempio.com

Address: 191.168.1.1

> set type=any

> ls -d esempio.com. >\> /tmp/zone_out

In questo caso utiliziamo il server primario per il dominio esempio.com (192.168.1.1).

Come tipo di record impostiamo any per lavorare su qualsiasi record DNS.

Con ls elenchiamo tutti i record associati a un dominio, e con l'opzione -d elenchiamo tutti i record del dominio.

Il risultato lo salviamo dentro /tmp/zone_out in modo da poterlo leggere con calma.

Ci sono varie voci di cui alcune di particolare interesse.

Ad esempio il record A che contiene l'IP del nome del sistema operativo in esecuzione

Altro record importante è HINFO che indica il sistema operativo in uso.

Ovviamene possiamo estrapolare tutte le info che vogliamo con i soliti programmi da shell (tipo grep, awk, sed, ....).

Sennò possiamo agire usando l'utility host (sempre da riga di comando) che ci leva un pò di lavoro:

$ host -l sito.it

$ host -lvt any sito.it

Se vi servono solo gli IP:

$ host -l sito.it | cut -f 4 -d"" "" >/> /tmp/ip

Infine con host possiamo anche identificare dov'è gestita la posta:

$ host orangeneration.it
orangeneration.it has address 62.149.128.157
orangeneration.it has address 62.149.128.160
orangeneration.it has address 62.149.128.163
orangeneration.it has address 62.149.128.166
orangeneration.it has address 62.149.128.72
orangeneration.it has address 62.149.128.74
orangeneration.it has address 62.149.128.151
orangeneration.it has address 62.149.128.154
orangeneration.it mail is handled by 10 mx.orangeneration.it.

Altro comando molto utilizzato è dig, che può svolgere in automatico molte operazioni descritte:

$ dig orangeneration.it type any

; <<>> DiG 9.6.0-APPLE-P2 <<>> orangeneration.it type any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4803
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;orangeneration.it.        IN    A

;; ANSWER SECTION:
orangeneration.it.    21600    IN    A    62.149.128.157
orangeneration.it.    21600    IN    A    62.149.128.160
orangeneration.it.    21600    IN    A    62.149.128.163
orangeneration.it.    21600    IN    A    62.149.128.166
orangeneration.it.    21600    IN    A    62.149.128.72
orangeneration.it.    21600    IN    A    62.149.128.74
orangeneration.it.    21600    IN    A    62.149.128.151
orangeneration.it.    21600    IN    A    62.149.128.154

;; AUTHORITY SECTION:
orangeneration.it.    86400    IN    NS    dns.technorail.com.
orangeneration.it.    86400    IN    NS    dns2.technorail.com.

;; ADDITIONAL SECTION:
dns.technorail.com.    23478    IN    A    62.149.128.2
dns2.technorail.com.    2501    IN    A    62.149.132.2

;; Query time: 2008 msec
;; SERVER: 213.230.129.10#53(213.230.129.10)
;; WHEN: Fri Mar 18 10:08:57 2011
;; MSG SIZE  rcvd: 246

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 44630
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;type.                IN    ANY

;; AUTHORITY SECTION:
.            10800    IN    SOA    a.root-servers.net. nstld.verisign-grs.com. 2011031800 1800 900 604800 86400

;; Query time: 237 msec
;; SERVER: 213.230.155.10#53(213.230.155.10)
;; WHEN: Fri Mar 18 10:08:57 2011
;; MSG SIZE  rcvd: 97

Infine c'è anche axfr che però in questo momento non ho.

PASSO 6: riconoscimento della rete

Ottenute tutte queste info possiamo provare a identificare le tipologie di rete e i potenzili punti di ingresso.

Il modo migliore è usare il comando traceroute:

$ traceroute orangeneration.it
traceroute: Warning: orangeneration.it has multiple addresses; using 62.149.128.157
traceroute to orangeneration.it (62.149.128.157), 64 hops max, 52 byte packets
1  172.20.10.1 (172.20.10.1)  2.389 ms  1.178 ms  1.191 ms
2  10.207.89.26 (10.207.89.26)  158.299 ms  151.273 ms  159.978 ms
3  10.207.91.65 (10.207.91.65)  159.665 ms  158.655 ms  157.949 ms
4  host5-246-static.80-94-b.business.telecomitalia.it (94.80.246.5)  160.251 ms  146.336 ms  160.087 ms
5  r-ve34-vl11.opb.interbusiness.it (217.141.109.196)  159.732 ms  159.493 ms  168.155 ms
6  172.17.5.153 (172.17.5.153)  160.115 ms  175.316 ms  158.068 ms
7  151.99.75.163 (151.99.75.163)  159.717 ms  151.522 ms  159.554 ms
8  151.6.0.17 (151.6.0.17)  169.733 ms  169.761 ms  169.314 ms
9  151.6.0.177 (151.6.0.177)  149.862 ms  148.010 ms  160.740 ms
10  fiar-b01-miot-t02-po01.wind.it (151.6.7.18)  169.203 ms  161.174 ms  159.811 ms
11  151.6.65.203 (151.6.65.203)  159.809 ms  199.387 ms  159.655 ms
12  151.5.151.98 (151.5.151.98)  158.165 ms  159.803 ms  157.642 ms
13  msfc3px.aruba.it (62.149.190.22)  158.014 ms  175.233 ms  163.700 ms
14  mxd8.aruba.it (62.149.128.157)  158.685 ms  166.756 ms  161.575 ms

Possiamo vedere il percorso dei pacchetti attraverso vari hop senza essere bloccati.

Di default traceroute usa pacchetti UDP, ma possiamo specificare l'opzione -I per usare pacchetti ICMP (default per Windows).

Inoltra possiamo usare l'opzione -p n per specificare un numero di porta UDP incrementato di uno dopo l'avvio.

Se vogliamo bloccare questo comportamento usaimo il flag -S.

Se no volete usare il terminale potete trovare in rete diversi strumenti grafici.

 

Direi che tutto ciò può bastare.

Non sono andato troppo nello specifico, ma magari ho acceso la vostra cursioità.

In rete trovate moltissime guide e articoli per approfondire.

Come ultima nota vi dico che la maggior parte dei programmi citati sono presenti sia per Unix che per Windows.

Ciauz!!


Condividi

Commentami!