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....