www.scruch.com/docs

Transcript

www.scruch.com/docs
www.scruch.com/docs
INFORMATION GATHERING
Versione: 1.1
Data di creazione: 21 aprile 03
Ultima modifica: 24 aprile 03
Gabriele Barni (Scruch)
[email protected], Uin: 50921134, Web: www.scruch.com
INTRO:
Ciao a tutti, ormai sono iniziate le vacanze di pasqua, e così abbiamo deciso di fare una
vacanza su un isola sperduta chissa dove nel mar tirreno, chiamata “Dugi Otok” , poco
più lunga di 60 km e larga circa 4, noi allogiamo proprio nel faro all'estremità del isola,
l'unico posto dotato di radio dove si può chiamare la terraferma in caso di necessità. Tutti
gli altri paesini sono privi di telefono, radio e in un alcuni casi anche di elettricità. L'isola il
giorno stesso che sono arrivato, in auto me la sono perlustrata tutta, ah qui non c'e' la
polizia perciò mi sono permesso di tirare un “filino” nell'invano tentativo di trovare qualcosa
di “interessante” (ragazze, pub, gente....) unica cosa trovata sono un paio di anziani
pescatori, e due ragazze, che non parlano nemmeno una parola di italiano tanto meno di
inglese, ma solo la lingua del luogo (nei prossimi giorni tenterò di rintracciarle, erano molto
carine). Sono circa le 11 e mezza di mattina e fuori piovigina, il paessaggio è stupendo e
l'acqua è praticamente incontaminata, ci sono dei fondali spettacolari, dove nei prossimi
giorni ci farò sicuramente il bagno.
Ah due note sulla licenza di questo documento:
2002/2003 < G a b r i e l e B a r n i >
GNU / FDL Licenses
Questo articolo può essere riprodotto anche integralmente, senza
violare nessuna legge, in quanto è rilasciato sotto GNU Free
Documentation Licenses. (www.gnu.org)
www.spaghettihacker.com
Questa guida che tra poco inizierò a scrivere vuole fungere da piccolo how-to sui comandi
shell più utilizzati nella tecnica del INFORMATION GATHERING (raccolta di
informazioni) affinche un attacco abbia esito positivo è fondamentale raccogliere il
maggior numero di informazioni sulla vittima.
E' impressionante quante informazioni si possono ottenere attraverso i canali standard
ovvero: vari database del NIC, whois record, tracerout, ping, DNS e portscan. Al termine
di questa accurata e lunga fase l'attacker è quasi sempre in possesso di informazioni sui
nomi di dominio, conosce inoltre le funzioni principali dei singoli server, gli indirizzi IP
delle varie macchine, indirizzi email, e molte altre informzioni utili riguardanti connettività
internet spesso si riesce anche ad ottenere una precisa mappa della rete, tutte
informazioni utili anche per effettuare approcci di tipo “Social Engignering”.
Per scoprire tutto ciò bastano veramente pochi comandi ma spesso quando non si fa uso
quotidiano di questi strumenti è facile dimenticarsi la corretta sintassi perciò vediamone
insieme un elenco suddiviso per applicazione:
1) Whois
2) Tracerout
3) Host
4) Nmap
5) Porte TCP/UDP
- Conclusioni
1) WHOIS
Indagare sul Registar:
Tutte le versioni di whois con l'utilizzo di @ oppure -a permettono di specificare un
database alternativo a quello standard.
Uno dei caratteri più utilizzati nelle ricerche trammite whois è il . In quanto permette di
elencare dopo il nome tutti i domini che sono registrati e contengono la parola ricercata (in
questo caso “tin”), invece di bloccarsi esattamente ai domini che corrispondono alla
stringa nome. Facciamo un esempio:
[root@book scruch]# whois "tin."@whois.crsnic.net
Whois Server Version 1.1
TIN.COM
TINTELEFONIA.COM
TINTIM.COM
TINS.COM
TIN.NET
TINCIAO.NET
TININ.COM
TIN.ORG
TIN.NET
TIN-CIAO.COM
TIN.IT
Se invece abbiamo bisogno di fare indagini più dirette ad esempio indagare su un unico
registar:
[root@book scruch]# whois "tin.com"@whois.crsnic.net
Whois Server Version 1.1
Domain Name: TIN.COM
Registar: Telecom Italia
Whois Server: whois.telecomitalia.com
Referral URL: www.telecomitalia.com
Name Server: DNS1.tin.it
Name Server: DNS2.tin.it
Indagare sull'organizazzione:
Per approfondire ulteriormente e scoprire informazioni su una data organizazzione si può
una volta identificato il registar (in questo caso whois.telecomitalia.com , si può fare
richiesta di informazioni su una data organizazzione, per farlo bisogna utilizzare il
comando name :
[root@book scruch]# whois "nameTin"@whois.telecomitalia.com
Sarà possibile consultare un elenco dei domini registrati da tin, tuttavia non sempre si
trattano di domini associati a delle reti, molto probabilmente in quel elenco compaiono
anche domini per usi futuri.
Indagare sui domini:
Il più delle volte è proprio questa fase dell'indagine che interessa più l'hacker, perchè
spesso si possono trovare nomi, cognomi, numeri di telefono delle organizazzioni o di
privati. Molti venditori di domini come ad esempio aruba, inseriscono nei dati richiamabili
dal whois molte informazioni personali.
Registrant: il soggetto registrato
Domain name: Il nome del dominio.
Administrative contact: il contatto amministrativo
Created, Updated: la data di creazione e l'ultima modifica del record.
Dns Server: i server dns primari e secondari (da tenere molto conto, perchè se la data di
aggiornamento risale a tanto tempo fa, l'identità del contatto potrebbero risultare obsolete.
Potete richiamare queste informazioni con il comando:
[root@book scruch]# whois [email protected]
Indagare su altro:
E' possibile inoltre richiamare tutte le email inserite nei dati di registrazione attraverso
questo comando:
[root@book scruch]# whois "@tin.com"@whois.telecomitalia.com
Per riuscire a tracciare una fisionomia della rete su cui si basa il dominio è utile anche
utilizzare il database Arin, non soggetto a vari limiti dei altri sui simili e con una semplice
interfaccia web presso l'indirizzo: http://www.arin.net/whois
Per maggiori informazioni sull'utilizzo di whois leggere il man.
2) TRACEROUT
Con il comando tracerout possiamo ricostruire perfino l'intera mappa della rete, di default
utilizza come protocollo quello UDP, però si può utilizzare anche con il protocollo ICMP
con l'opzione -I .
Tuttavia anche un semplice firewall è in grado di bloccare i pacchetti UDP di un tracerout,
( [root@book scruch]# traceroute 212.212.112.112 ) perciò bisogna ricorrere
a definire opzioni che permettono di sorpassare ai più semplici firewall. Si potrebbe
iniziare con il provare un trace sulla porta 53 quella di solito utilizzata per l'interrogazione
dei DNS, perciò difficilmente chiusa dal firewall, con l'opzione -p : [root@book
scruch]# traceroute -p 53 212.212.112.112.
Vi sono anche diversi trace grafici che tracciano su una cartina, i percorsi che fanno i
vostri pacchetti, sono davvero belli da vedere, ma non sono quasi mai molto utili, i migliori
senza dubbio sono xtracerout e visualroute.
Per ulteriori informazioni consultare le pagine di man inerenti tracerout.
3) HOST
E' una semplice utilitie usata per interrogare il proprio DNS e convertire nomi in indirizzi IP
e viceversa esempio:
[root@book src]# host www.baudnet.com
www.baudnet.com A 200.200.1.2
(Purtroppo non ricordo l'indirizzo IP, e qui sul isola è impossibile connettersi a internet
perciò tutti i miei risultati prendeteli con le pinzette, perchè sono inventati).
Si può interrogare il nameserver attraverso questo comando:
[root@book src]# host -t ns baudnet.com
Trammite questo comando si può conoscere il mail exchanger che utilizza il server:
[root@book src]# host -t mx baudnet.com
E' possibile utilizzare il comando HOST anche per ottenere informazioni su tutti gli
hostname registrati sotto un dominio:
[root@book src]# host -l baudnet.com
baudnet.com
NS
dns.baudnet.com
baudnet.com
NS
dns2.baudnet.com
baudnet.com
MX
mail.baudnet.com
www.baudnet.com
A 200.200.1.2
mail.baudnet.com A 200.200.1.3
dns.baudnet.com
A 200.200.1.4
dns2.baudnet.com A 200.200.1.5
wardriving.baudnet.com A 200.200.1.6
rx7.baudnet.com
A 200.200.1.7
Come potete vedere si possono ottenere molte informazioni su tutte le macchine di una
rete, per poi indagare una per una e scoprire in quale modo ottenere accesso. Si possono
anche tentare di scoprire ulteriori macchine magari online senza un dns, utilizzando come
vedremo nel prossimo capitolo nmap.
4) NMAP
Una della funzioni più amate di nmap è il tcp ping scan, ovvero impostando le opzioni -PT
e generalmente la porta 80 (porta non bloccata dalla maggior parte dei router di frontiera e
spesso nemmeno dai firewall interni. Vengono così spediti alla rete pacchetti TCP ACK, e
si riceve una risposta RST che ci permette di capire se l'host è attivo. (La funzione è molto
utile perchè spesso le aziende quando si affacciano su internet sono solite comprare uno
spazio di indirizzi consecutivi tipo da 200.200.1.1 a 200.200.1.11, usando nmap su un
range di questo tipo ci permetterà di capire quali macchine sono in funzione e quali no.)
[root@book scruch]# nmap -sP -PT80 127.0.0.1/22
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Host localhost.localdomain (127.0.0.1) appears to be up.
Host (127.0.0.2) appears to be up.
Host (127.0.0.3) appears to be up.
Host (127.0.0.5) appears to be up.
Host (127.0.0.6) appears to be up.
Nmap run completed (5 host up) scanned in 6 seconds.
Inoltre Nmap è in grado di supportare veramente molti tipi di scan:
– TCP connect scan, (scansione TCP con connessione) è una procedura lunga, a tre
fasi, il client invia un pacchetto SYN alla vittima, la vittima risponde con un pacchetto
SYN/ACK, e il client rimanda un pacchetto ACK al server, questa procedura viene
facilmente intercettata dai firewall. ( SYN > < SYN/ACK ACK > ) nmap -sT
– TCP SYN scan (scansione Tcp via SYN) Questo metodo è molto più discreto della
tecnica tcp con connessione, infatti manda un pacchetto SYN , se la vittima risponde
con un pacchetto SYN/ACK significa che la porta è in stato LISTENING, se risponde
con un RST/ACK significa che la porta non è in ascolto e non è in grado di completare
in nessun caso una connessione tcp. nmap -sS
– TCP FIN scan (scansione tcp via Fin) prevede l'invio di un pacchetto FIN sulla porta
della vittima, e il sistema vittima dovrebbe rispondere con una RST su tutte le porte
chiuse. nmap -sF
– TCP Xmas Tree scan (scansione tcp ad albero di natale) manda un pacchetto FIN,
URG e PUSH alla vittima e anche qui dovrebbe rispondere con RST su tutte le porte
chiuse. nmap -sX
– TCP Null scan (scansione Tcp nulla) disattiva tutti i flag perciò il sistema dovrebbe
sempre rispondere con una RST per tutte le porte chiuse nmap -sN
– UDP scan (scansione UDP) prevedere l'invio di pacchetti UDP, se la risposta è un
pacchetto “ICMP port unreachable” la porta allora è chiusa. Non è molto affidabile
come tecnica perchè UDP è un protocollo conectionless, ovvero non necessita di
effettuare una connessione per restituirvi dei risultati. nmap -sU
E' possibile anche indirizzare l'output di nmap verso un file ad esempio con questo
comando:
[root@book scruch]# nmap -sF 192.168.1.9/28 -oN file
I risultati verranno tutti salvati nel documento chiamato file, e consultabili in un secondo
tempo oppure passarli attraverso particolari programmi per il controllo dei log.
Un utile opzione di nmap è il decoy, ovvero per aumentare il grado di cammufamento,
l'opzione attivabile con -D innonda la vittima di informazioni superflue, ad esempio lancia
una serie di scansioni fasulle insieme a quella vera, creando in certi casi anche dei veri e
propri attacchi Denial of Service.
[root@book scruch]# nmap -sS 192.168.1.9 -D 10.1.1.1
In certi casi è possibile anche scoprire l'utente di una specifica connessione,
communicando con la porta 113, il comando da utilizzare in questo caso è : [root@book
scruch]# nmap -I -sT 192.168.1.9
Indagare il sistema operativo
Nmap permette anche di ispezionare il fingerprint attivo dello stack, ovvero tutti i sistemi
operativi differiscono per piccoli dettagli, legati alla diversa interpretazione delle direttive
RFC da parte dei rispettivi sviluppatori durante la realizzazione dello stack TCP/IP, grazie
a questo si può riconoscere con elevata precisione il sistema operativo su un host. Per
indagare lo stack però bisogna almeno avere una porta in ascolto, in caso contrario nmap
tenterà di ipotizzare il sistema operativo.
Trammite l'opzione -O esaminiamo la rete bersaglio:
[root@book scruch]# nmap -O 127.0.0.1
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1598 ports scanned but not shown below are in state: closed)
Port
State
Service
22/tcp
open
ssh
631/tcp
open
ipp
6000/tcp
open
X11
Remote operating system guess: Linux Kernel 2.4.0 - 2.5.20
Uptime 0.008 days (since Tue Apr 22 12:57:15 2003)
Nmap run completed -- 1 IP address (1 host up) scanned in 7
seconds
Può succedere anche che le porte per la rilevazione OS siano chiuse, perciò si può
tentare di utilizzare nmap con una porta “standard” tipo la 80 solitamente lasciata aperta
per i server web.
[root@book scruch]# nmap -p80 -O 127.0.0.1
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Warning: OS detection will be MUCH less reliable because we did
not find at least 1 open and 1 closed TCP port
The 1 scanned port on localhost.localdomain (127.0.0.1) is: closed
Remote OS guesses: Linux Kernel 2.4.0 - 2.5.20, Linux 2.4.19-pre4
on Alpha, Linux Kernel 2.4.0 - 2.5.20 w/o tcp_timestamps, Gentoo
1.2 linux (Kernel 2.4.19-gentoo-rc5), Linux 2.5.25 or Gentoo 1.2
Linux 2.4.19 rc1-rc7), Linux 2.4.7 (X86)
Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
Se anche tutte le porte standard sono chiuse, come vedere nmap è riuscito a formulare
una valida ipotesi, riconoscendo che la macchina è un os linux. Ricordo anche che è
molto importante avere sempre una versione aggiornata di nmap, perchè a ogni release
viene sempre aggiornato il contenuto del file nmap-os-fingerprints, ovvero il file che
contiene tutti gli elementi per identificare i vari sistemi operativi.
Oltre a Nmap
Molti altri programmi riescono a effettuare scansioni accurate, ad esempio strobe
strumento per le scansioni TCP, in assoluto uno dei più veloci ed'affidabili da tempo in
circolazione incui è possibile anche ottimizzare il controllo di risorse del sistema per
effettuare scansioni mirate ed'efficenti. Strobe inoltre permette anche di catturare i
“banner” di un dato demone connesso a una porta, e identificarlo. Per quanto riguarda gli
scan UDP il migliore in assoluto è udp_scan, (tempo fa inserito nel kit SATAN ovvero
Security Administrator Tool for Analyzing) oggi invece si chiama SAINT, unico problema è
dovuto alla sua grande popolarità infatti, molti IDS hanno imparato a riconoscerlo e
segnalano i tentativi di scansione da parte di SATAN rendendo lo strumento un po' poco
discreto. Trammite un interfaccia web può essere configurato per eseguire controlli
leggeri, medi o pesanti su una macchina o una rete. È una buona idea usare SATAN sulla
vostra rete e sistemare i problemi che trova. Assicuratevi però di avere una copia di
SATAN da metalab o da una fonte affidabile. È stata distribuita in rete una copia trojan di
SATAN. http://www.trouble.org/~zen/satan/satan.htm. Si sta facendo anche strada
Nessus uno scanner di sicurezza libero. Ha una interfaccia grafica GTK per semplicità
d'uso. Inoltre è basato su una struttura a plug-in per aggiungere nuovi test.
5) PORTE
Questo a seguito un elenco delle principali porte in uso e dei loro rispettivi demoni, con
difianco il livello di vulnerabilità.
21 TCP -FTP- Rischio : ELEVATO , perchè il protocollo FTP non implementa la
cifratura del traffico, quindi è possibile intercettare sessioni attive. Consente anche una
forma di amministrazione remota dei file rischiosa se non si possiedono adeguate policy di
firewalling. E ricordarsi di tenere sempre aggiornato il demone FTP dato che molte
versione vecchie sono afflitte da vari bug.
22 TCP -SSH- Rischio: MEDIO, perchè anche qui molte vecchie versioni di ssh1, ssh2,
openssh, sono state afflitte da gravi bug, tuttavia il traffico è cifrato, ricordarsi però di
mantenere una rigorosa policitca di gestione delle credenziali degli utenti, magari
cambiando spesso password con numeri e lettere insieme.
25 TCP -SMTP- Rischio: ELEVATO perchè il protocollo SMTP non implementa la
cifratura del traffico, è molto facile configurarlo in maniera errata e così un attacker
sfruttando i comandi VRFY e EXPN può individuare nomi utenti e utenze di un sistema, e
può anche inviare anonimamente email in tutto il mondo a nome vostro.
53 TCP / UDP -DNS- Rischio: ELEVATO il servizio di DNS se proprio non è
indispensabile consiglio di evitare il suo utilizzo troppe versioni sono afflitte da vari bug,
bisogna tenere il demone (utilizzando l'espressione di un mio amico “il boso”) “come un
orologio svizzero” nel senso che se non lo si aggiorna constantemente è pericoloso.
79 TCP -FINGER- Rischio: BASSO consente a un attacker di individuare le utentenze su
un certo sistema per poi poter lanciare un attacco di brute force.
80 TCP -WEB- Rischio: ALTO, il protocollo HTTP non implementa alcuna forma di
cifratura, un attacker potrebbe intercettare la sessione. Da tenere anch'esso come un
orologio svizzero perchè molte versioni sono afflitte da vari bug, alcuni perfino talmente
gravi da permettere a un attacker di acquisire privilegi root sul proprio computer.
110 TCP -POP3- Rischio: MEDIO , non prevede alcuna forma di cifratura perciò un
attacker potrebbe intercettare anche LOGIN e PASSWORD in chiaro.
161 UDP -SNMP- Rischio: ALTO, nemmeno questo protocollo implementa cifratura, e
dato che è un protocollo UDP è soggetto ad attacchi di tipo spoofing o hijacking, se le
policy di firewalling non sono ben configurate permettono una forma di amministrazione
remota del sistema.
443 TCP -HTTPS- Rischio: BASSO , da tenere sempre aggiornato perchè molte versioni
hanno sofferto problemi di sicurezza.
3306 TCP -MYSQL- Rischio: BASSO, alcuni di questi database non includono cifratura e
spesso le versioni sono afflitte da qualche bug.
CONCLUSIONI
Qui è la spiaggia dove si fa il bagno, mentre in lontananza il faro dove alloggio, proprio
nessuno in giro, son ormai cinque giorni che giro qua attorno e delle ragazze di cui vi
parlavo nemmeno l'ombra.
Ahhh, ecco il mio studio, se il tutorial vi ha fatto schifo, non prendetevela con me, ero
intento a meditare profondamente, con questo grande mare qui davanti e poco
concentrato su cosa sto scrivendo in questa guida....