Sei sulla pagina 1di 12

1

GOOGLE HACKING

Di Gabriele Romanato


dedicato a tutti i membri del Teate LUG di Chieti





















2






INTRODUZIONE


Allinizio il Web non era altro che un piccolo insieme di pochi computer collegati fra
di loro, e reperire le informazioni era una pratica estremamente semplice. Con
lespandersi della Rete e col moltiplicarsi delle pagine a ritmo vertiginoso, tale
pratica cominci a rivelarsi sempre pi ardua col passare del tempo, fino a divenire
decisamente ostica. Ed a questo punto della naturale evoluzione del Web che si
inseriscono i motori di ricerca.


Lidea che ne alla base straordinariamente semplice: tramite linserimento di
alcune parole chiave, possibile reperire informazioni sui dati inseriti tramite
lalgoritmo di ricerca dei motori, che scandagliano le pagine Web che rispondono ai
requisiti indicati dalla ricerca dellutente. In questo modo lutente non deve
necessariamente conoscere lURL esatto che gli interessa, ma ha la possibilit di
scegliere fra i risultati ottenuti quello che pi si avvicina alle sue esigenze.





IL SUCCESSO DI GOOGLE


Esistono molti motori di ricerca, ma Google attualmente quello pi famoso ed usato
al mondo, con oltre 8 miliardi di pagine indicizzate. Il successo di Google si spiega
con lapparente semplicit di utilizzo che lo contraddistingue, e il sempre maggior
numero di servizi che offre allutente (ricerca di immagini, news, gruppi di
discussione, immagini satellitari, mappe planetarie e molto altro ancora). Sembra
sufficiente inserire il termine richiesto nel suo scarno ed essenziale form di ricerca
per essere catapultati in un attimo sui siti di tutto il mondo. Google ha dalla sua anche
unestrema velocit di scansione delle pagine, grazie alle quale lutente ha subito i
risultati che gli occorrono, anche su computer con una connessione dial-up a 56K.
Google riporta nelle pagine dei risultati i link ai siti che contengono il termine
richiesto, offrendo nel contempo la possibilit di eseguire la ricerca anche su siti
correlati o nella sua cache, qualora le pagine non fossero pi disponibili ondine. Offre
altres la possibilit di visualizzare le pagine in formati diversi, ad esempio
permettendo allutente di scegliere fra un file PDF ed uno HTML, cosa molto utile
per coloro che non dispongono di una connessione ADSL ed hanno bisogno di
abbreviare i tempi di download.

3







Precisazione


A questo punto del nostro discorso occorre fare una precisazione: da quanto emerso
finora sembrerebbe che Google non sia altro che un bibliotecario che ordina
meticolosamente i dati di un immensa biblioteca, che nellimmaginario collettivo
sarebbe rappresentata dal Web. Errato: Google non un bibliotecario ed il Web
non una biblioteca, per il semplice fatto che il Web non ordinato secondo i
parametri che siamo soliti applicare ad una collezione di sapere. Google non ordina
le pagine secondo una scaffalatura virtuale, ma si limita a riportarle nelle sue
ricerche secondo una gerarchia che viene stabilita da parametri che spesso non
dipendono solo da lui. Infatti il page-ranking, meglio noto come posizionamento
allinterno del motore di ricerca nei risultati ottenuti per ogni singola voce cercata,
dipende in parte dai criteri di Google, ma dallaltra parte anche (e spesso soprattutto)
da chi scrive il codice della pagina Web. Se infatti questa pagina viene scritta con un
codice standard, che rispetta quanto stabilito dal World Wide Web Consortium
(W3C), ovvero in XHTML e CSS, e se questo codice corretto e validato, Google
tender a preferire tale pagina rispetto ad altre che presentano un codice fuori
standard ed errato (semanticamente e sintatticamente). Dunque sono da aborrire le
soluzioni fatte a colpi di tabelle e di tag proprietari (come <marquee>), e luso
improprio dei tag <meta>. Viceversa un uso corretto di tali tag facilita
lindicizzazione di Google e la scalata alla classifica del page-ranking. Un esempio
che riporto quello del sito della parrocchia dell'Incoronata di Vasto, che nel giro di
due mesi passata dalla terza alla prima pagina dei risultati di Google per
Incoronata, pur non essendo riportato fra i link di altri siti.




OPERATORI E PAROLE CHIAVE


Google ha una sua sintassi con delle regole precise. Tale sintassi permette di sfruttare
al meglio le query e ci consente di trovare molti pi risultati che non seguendo il
tradizionale metodo basato sul solo inserimento di parole chiave. Tuttavia anche la
scelta di parole chiave deve essere mirata ed il meno generica possibile. Google ha un
singolare comportamento con le parole chiave: se infatti queste vengono ripetute
pi volte, il risultato della query cambia, e si hanno molti pi risultati rispetto al
singolo inserimento. Di seguito riporter gli operatori di ricerca pi comuni.


intitle: Trova le pagine contenenti nel proprio titolo la parola chiave
4
specificata. Esempio: intitle:xhtml

(NB: non ci devono essere spazi fra i due punti e la parola chiave specificata.
Google non case-sensitive, quindi indifferente rispettare le maiuscole e le
minuscole)

allintitle: Restituisce le pagine che contengono nel titolo tutte le parole
specificate. Esempio: allintitle:xhtml tutorials

inurl: Limita i risultati alle pagine contenenti una determinata parola
nellURL. Esempio: inurl:css

allinurl: Limita i risultati alle pagine contenenti tutte le parole specificate nel
proprio URL. Esempio: allinurl:css design

intext: Restituisce le pagine che contengono nel testo la parola chiave
specificata. Esempio: intext:blog

allintext: Limita i risultati alla pagine che contengono nel testo tutte le
parole specificate. Esempio: allintext:eric meyer

link: Ricerca le pagine Web che contengono collegamenti al link specificato.
Esempio: link:www.html.it

inanchor: Ricerca negli anchor dei link presenti nelle pagine.
Esempio: inanchor:linux

site: Restringe la ricerca ad un sito o ad un dominio di livello superiore.
Esempi: site:com o site:it o site:www.redhat.com

cache: Trova una copia della pagina che Google ha indicizzato nella propria
cache. Utile quando le pagine non sono pi ondine. Esempio:
cache:www.nomesito/nomepagina.htm

filetype: o ext: Limita i risultati ad un documento avente una
determinata estensione di file (.doc, .pdf, .rtf, .pl, .sh, .xls, eccetera).
Esempio: filetype:pl

define: Fornisce la descrizione di un termine ed i link ad esso correlati.
Esempio: define:worm

related: Cerca pagine simili o affini alla pagina specificata.
Esempio: related:www.html.it

info: Si ottengono ulteriori informazioni e link su un URL specificato.
Fondamentale per tale descrizione luso accorto dei metatag.
Esempio: info:www.w3.org



5








Altri operatori e metacaratteri


Accanto agli operatori principali, troviamo altri operatori con cui approfondire le
nostre query. Vi sono innanzitutto gli operatori booleani (AND, OR, NOT) che
possono essere usati in combinazione con gli operatori principali. Esempio:

intitle:index.of parent directory images OR image

(Trattasi questo di esempio complesso che capiremo meglio pi avanti)

perl (site:edu | site:com)

(Qui ho raggruppato i membri dellespressione logica tramite parentesi)


Altri operatori sono gli operatori di inclusione ed esclusione (+ e -), con i quali
includiamo o escludiamo dalla nostra ricerca una determinata espressione o
combinazione di espressioni. Esempio:

windows site:microsoft.com

(Cerco informazioni, ahim, su Windows ma ho deciso di escludere dalla ricerca il
sito della Microsoft)

Un altro operatore, spesso sottovalutato, rappresentato dalle virgolette, che spesso
Google ci consiglia di omettere al fine di ottenere maggiori risultati. Questo perch si
tratta di un operatore di specificit, che impone a Google di trovare proprio quella
espressione ed in quella successione. Esempio:

google hacking site:it

(Cerco delle info su questespressione ma ho deciso di snobbare i siti italiani)


Infine vengono i metacaratteri, o nel caso di Google il metacarattere asterisco (*),
che sostituisce una parola completa (due asterischi sostituiranno due parole e cos
via). Utile quando non conosciamo una frase precisa ma solo parti di essa. Esempio:

three * mice

(Consente di trovare three blind mice, three blue mice, three green mice,
eccetera)
6









Combinare operatori e parole chiave



Un buon metodo per ottenere il maggior numero di risultati possibili in una ricerca
quello di combinare gli operatori con le parole chiave. Si dovrebbero usare come
parole chiave termini che caratterizzino in modo sufficiente largomento ricercato e
non riguardino molti altri argomenti. Tornando allesempio lasciato in sospeso:


intitle:index.of parent directory images OR image


notiamo che qui sono state usate due espressioni chiave ben precise:
- index of
- parent directory

le quali si riferiscono alla terminologia con cui sui server si denominano le directory
genitrici che spesso, per motivi vari o semplicemente per distrazione, vengono
lasciate scoperte e quindi facilmente rintracciabili tramite Google. Il fatto che
Google, se non viene espressamente richiesto il contrario, indicizza lintero sito, con
tutte le directory annesse e connesse. Altre parole chiave di uso corrente che risultano
particolarmente utili sono ad esempio:

- whats new
- whats cool
- directory
- categories

Per cercare fra i blog scriveremo invece:

- powered by blogger
- powered by bloxom
- powered by greymatter
- a manila site
- site:livejournal.com
- site:blogspot.com
- intitle:radio weblog
- site:radio.weblogs.com


7






Come si evince chiaramente da quanto riportato sopra, abbiamo una gamma
vastissima di combinazioni possibili. Il limite solo la nostra fantasia e soprattutto la
nostra capacit di andare a cercare nei siti quelle parole che li accomunano. Per
esempio, avrei bisogno di cercare del buon codice XHTML e CSS con cui sviluppare
il mio sito e necessito di esempi pratici. Sapendo che spesso (ma non sempre), le
parole che li accomunano sono valid xhtml 1.1 e valid css (le famose inconcine
del W3C, spesso usate anche dove la validazione dice il contrario), scriver:

valid xhtml 1.1 site:edu
valid css site:edu
intext:valid xhtml 1.1 site:it
intext:valid css site:com


E cos via. Ma ora ci siamo addentrati in quel punto di confine che separa la semplice
ricerca da qualcosa di pi. Ora tempo di parlare dellhacking di Google.





HACKING


Se per hacking intendiamo un uso diverso della tecnologia alla quale ci riferiamo,
quanto detto sinora in perfetto spirito hacker. Lhacker colui al quale piace
esplorare i dettagli di una tecnologia, a differenza degli utenti comuni che si
accontentano del minimo necessario. Google una tecnologia che offre molto a chi sa
cercare. Ma come in tutte le ricerche, c una via normale ed una via oscura. La via
normale quella che ho deciso di illustrare in questo breve scritto, quella che passa
dalla API di Google e rispetta i criteri duso del motore di ricerca; laltra, quella
oscura, rappresentata dal non usare la API di Google, cercando direttamente nel
contenuto delle pagine tramite script creati appositamente. Tale via prende il
nome di scraping, che viola i termini duso di Google e, se portata al limite,
comporta il blocco dellIP da parte di Google. Ora vedremo in breve le due vie. In
seguito sarete voi a decidere.




La prima via: il vero Google hacking


8
http://johnny.ihackstuff.com/ lURL del sito nel quale si trova il Google Hacking
Database, unenciclopedica raccolta di stringhe di ricerca di Google del tutto simili a
quelle viste in precedenza, con ununica, fondamentale differenza: queste stringhe
permettono di mettere in luce bug dei siti o dei forum di tali siti, di trovare




password e username, chiavi di ingresso a canali IRC, di testare vulnerabilit e molto
altro ancora, fermo restando che lo scopo quello di segnalare e di porre rimedio a
tutti questi bug. Google come strumento di ricerca e di protezione, dunque, e non
come strumento di offesa. Ora vedremo alcune stringhe particolari e le
commenteremo assieme:

- Directory scoperte

intitle:index.of parent directory

Come gi detto in precedenza, se non si pongono limiti a Google il risultato sar
quello di vedere il nostro sito completamente scoperto dalla prima allultima
directory. Una buona regola quella di reindirizzare la navigazione verso la home
page del sito o, in alternativa, porre una password apposita.


intitle:index.of parent directory images OR image

Stesso discorso del precedente esempio, con laggiunta di una directory specifica.


index of /backup
index of /css

In questo caso vengono colpite altre due directory sensibilissime, col rischio di
vedere barbaramente copiati i nostri layouts o altri file riservati. Una buona
protezione consiste nellagire direttamente sul file robots.txt:

User-Agent: Googlebot
Disallow: /backup
Disallow: /css


- Password e username

filetype:htpasswd htpasswd
Intitle:index of passwd passwd.bak


Ecco due tipi di file che gli utenti Unix/Linux conoscono molto bene. Questi due
hack forniscono lelenco di siti che hanno lasciato scoperti questi due tipi di file. Per
porre rimedio occorre andare ancora una volta sul file robots.txt ed aggiungere
ad esempio una stringa come:
9


User-Agent: Googlebot
Disallow: /*.bak$





Con la stringa di sopra impediamo a Google di indicizzare una determinata estensione
di file, come nel primo caso avevamo impedito lindicizzazione delle directory
specificate. Ancora:


filetype:dat password.dat
filetype:log inurl:password.log

Qui si ricercano informazioni riservate di sistema. Cambiando le estensioni o
specificando un dominio particolare possibile andare incontro ad alcune gradite
sorprese.


- Chiavi di ingresso ai canali IRC

sets mode: +k


Questa query viene usata per cercare allinterno dei file di log le password di
protezione dei canali IRC. Lattributo +k indica la modalit dei canali di chat che
avvisa lutente della restrizione delle impostazioni. Qui meglio di altrove ci si rende
conto dellimportanza fondamentale della scelta della parole chiave e del bisogno che
questi file di log siano opportunamente protetti.



- Documenti

filetype:xls username password
filetype:xls private OR reserved
filetype:doc site:mil +classified


Il formato di questi file risulter certamente pi familiare agli utenti Windows.
Nellultimo caso presente quella restrizione di campo in un dominio specifico di cui
parlavo pocanzi. Vale sempre la regola della protezione mediante password e della
modifica del file robots.txt.





10









- Applicazioni vulnerabili in PHP

allinurl:install/install.php
There are no Administrators Accounts inurl:admin.php
mysql_fetch-row

La prima query restituisce tutti quei siti in cui i webmaster hanno dimenticato un file
di installazione fra le loro pagine, chiamato in genere install.php o config.php. Da
tutto ci consegue che spesso una pratica assai semplice quella di cambiare le
propriet del sito, come i dati di login. La seconda vale per quei webmaster che non
hanno provveduto a creare un account di administrator dopo aver installato
PHPNuke. Per difendersi buona norma tenersi informati delle debolezze delle
proprie applicazioni di sviluppo su siti appositi, come http://www.secunia.com/,
scaricando alloccorrenza tutte le patch del caso.

Con queste ultime due query ci siamo (ahim) avvicinati al lato oscuro di Google.
Passiamo dunque a trattare di tale rovescio della medaglia, fermo restando il fatto che
se si in cerca di nuove stringhe si pu sempre tornare sul sito
http://johnny.ihackstuff.com/. Buona ricerca!






La seconda via: lo scraping e Santy



Il 21 dicembre 2004 il worm Santy fece la sua comparsa in Internet, attaccando
migliaia di siti Web e defacciandoli con la scritta rossa su sfondo nero:

This site is defaced!
NeverEverNoSanity WebWorm generation 7.

La particolarit di questo worm che faceva uso di un hack di Google per rintracciare
quei siti che erano affetti da una particolare vulnerabilit della piattaforma PHP
Bulletin Board (phpBB), interrogando Google in modo automatico ed utilizzando
quindi quella particolare tecnica di ricerca meglio nota come scraping, ovverosia
una ricerca che non fa uso della API di Google ma che si riallaccia direttamente al
codice delle pagine, violando i termini duso del motore di ricerca, come abbiamo gi
avuto modo di vedere in precedenza. Google da allora ha deciso di rispondere
11
allhacking in maniera perentoria, rispondendo a volte con pagine come questa:







Were sorry.

but we cant process your request right now. A computer virus or spyware
application is sending us automated request, and it appears that your computer
or network has been infected. ()


Qualera lhack in questione? Si pu risalire ad esso analizzando direttamente il
codice sorgente di Santy, usando lhack filetype:pl Santy worm per
cercarlo sul Web (nel momento in cui scrivo reperibile unicamente nella cache di
Google):



Sub GoGoogle() {
my @urls;
my @ts = qw/t p topic/;
my $startURL = http://www.google.com/search?num=100&
lr=&as_qdr=all . &q=allinurl%3+%22viewtopic.php%22+
%22. ()



Lhack allinurl:viewtopic.php, come abbiamo visto, delimita la ricerca
delle parole solo allinterno dellURL del sito, indirizzando il worm verso lobiettivo
specifico, quello appunto del forum phpBB. Lo scraping in questione viene fatto
utilizzando un semplice script in Perl. Esempi di tali script possono essere rintracciati
sul libro Google. Trucchi e segreti per hacker di Tali Calishain e Rael
Dornfest, edito in Italia da HOPS Tecniche Nuove. Tuttavia da notare che la
maggior parte degli script presenti su tale volume fa uso della API di Google, per la
quale necessario essere in possesso di una regolare chiave per sviluppatori di
Google, rilasciata in modo assolutamente gratuito. Con tale chiave possibile
effettuare quotidianamente un numero massimo di 1000 query. Oltre tale numero
scatta automaticamente il blocco imposto da Google, oltre il quale si entra nel campo
dellabuso degli strumenti in questione. Esistono diversi programmi disponibili sul
Web per eseguire (in modo legale o no) query automatizzate. Fra tutti citer quello di
Johnny Long, autore del Google Hacking Database e massimo esperto in materia di
Google hacking. Il software si chiama Gooscan (per Linux), gratuito, ed esegue
hack scelti dallutente che possono essere salvati e successivamente analizzati. Il
software pu incorporare il Google Hacking Database.



12










CONCLUSIONI


In realt questa non una conclusione ma un inizio, linizio di una ricerca nei
meandri della Rete al fine di aumentare le nostre conoscenze in materia di sicurezza.
Molti sottovalutano il Google hacking perch lo considerano roba da ragazzini, e
preferiscono concentrarsi su problemi pi elevati, quali lo studio dei protocolli e
delle vulnerabilit annesse e connesse. Ma se pensiamo che con Google possiamo
testare direttamente queste vulnerabilit, o pi praticamente possiamo verificare se il
sito che abbiamo tanto faticosamente costruito regge allurto di un hack di Google,
allora tutto il discorso sulle priorit della sicurezza va riformulato. Il worm Santy la
dimostrazione che il Google hacking pu costituire una fonte di serio pericolo,
qualora esso venisse utilizzato per loschi fini. La speranza di questo scritto sta nella
possibilit di aver condiviso con voi la bellezza della ricerca e lamore per il Web,
che oggi come ieri affratella e unisce le persone di tutto il mondo.




Vasto, 14 ottobre 2005

Gabriele Romanato