Google Dorks
Wie gebruikt er Yahoo, Bing of Ask.com? Bijna niemand toch? Nee… tegenwoordig gebruiken we allemaal op vrijwel dagelijkse basis Google. Waarom? Omdat Google snel en overzichtelijk is en ronduit de beste resultaten vindt bij onze zoekopdrachten. Maar wist je dat hackers Google ook gebruiken om jouw webserver of webpagina’s te hacken?
Google is geen geautomatiseerde hack tool maar kan een belangrijke tool zijn voor “information gathering”. Google indexeert namelijk allerlei informatie om de bezoeker het beste resultaat te geven. Helaas indexeert Google soms meer informatie dan nodig is en bevat hierdoor mogelijke informatie over de zwakke punten in je website of webserver. Hackers halen deze informatie naar boven door geavanceerde query’s uit te voeren. Deze query’s zijn een aaneenschakeling van Google Symbolen en Operators. Een korte introductie van de Google Operators:
Google search operators
Over het algemeen kun je zoeken op 1 of meerdere worden. Als woorden gescheiden zijn door een spatie betekend dit “en/of”. De resultaten laten dus pagina’s zien waarin 1 van de opgegeven woorden voorkomt of waarop meerdere woorden of woordcombinaties voorkomen.
Zoekopdracht: zonnigste vakantiebestemmingen
Resultaten: webpagina’s met “zonnigste” en/of “vakantiebestemmingen”
*good to know: Google laat ook resultaten zien die synoniem woorden gebruiken. Bij het zoeken naar “zonnigste vakantiebestemmingen” zullen er ook resultaten getoond worden met woordcombinaties als “zonzekere vakantiebestemmingen” en “zonnige vakanties”
“%woord/woorden%” (quotes)
Als je één of meerdere woorden tussen quotes plaatst dan wordt er gezocht op de exact woordcombinatie en volgorde. De spatie betekend nu niet meer “en/of” maar alleen “en”.
Zoekopdracht: “zonnigste vakantiebestemmingen”
Resultaten: webpagina’s waar de exacte woordcombinatie: “zonnigste vakantiebestemmingen” in voorkomt.
– (minus teken)
Het minus teken is om alleen de zoekresultaten te tonen die niet het woord (of woorden) achter het minus teken bevatten.
Zoekopdracht: zonnigste vakantiebestemmingen -spanje
Resultaten: webpagina’s die gaan over “zonnigste” en/of “vakantiebestemmingen” maar waarop Spanje niet vermeld wordt.
+ (plusteken)
Het plusteken is om alleen de zoekresultaten te tonen die alle woorden achter de plusteken bevatten. De volgorde is echter willekeurig.
Zoekopdracht: zonnigste vakantiebestemmingen +spanje
Resultaten: webpagina’s die gaan over “zonnigste” en/of “vakantiebestemmingen” maar waarop Spanje zeker vermeld wordt.
* (sterretje)
Het sterretje kan gebruikt worden als een jokerteken voor een onbekend woord.
Zoekopdracht: “wie de * kaatst kan hem *”
Resultaten: webpagina’s die de term “Wie de bal kaatst kan hem terug verwachten!” vermelden.
.. (2 punten)
De 2 punten worden gebruikt om een reeks aan te geven
Zoekopdracht: google logo’s 1990..2000
Resultaten: webpagina’s met Google logo’s van de jaren 1990 t/m 2000
site:
Geeft alle geïndexeerde webpagina’s van de opgegeven website
Zoekopdracht: site:jarnobaselier.nl
Resultaten: Alle geïndexeerde pagina’s van de website: jarnobaselier.nl
related:
Geeft soortgelijke / gerelateerde webpagina’s weer
Zoekopdracht: related:google.nl
Resultaten: Alle websites die gerelateerd zijn aan Google.nl. Dus overige zoekmachines zoals Zoek.nl en Bing.
OR
Geeft webpagina’s weer met 1 van de opgegeven woorden
Zoekopdracht: auto OR fiets
Resultaten: Alle pagina’s waarin de termen auto OF fiets voorkomen maar niet waar beide termen in voorkomen.
allintext:
Retourneert de pagina’s waarbij de opgegeven sleutelwoorden in de tekst voorkomen.
Zoekopdracht: allintext:Security nieuws
Resultaten: Google retourneert alle pagina’s waarbij de woorden “security” en/of “nieuws” voorkomt in de tekst van de pagina (dus niet in de links, alt teksten, meta’s etc.).
allintitle:
Retourneert de pagina’s waarbij de opgegeven sleutelwoorden in de titel voorkomen.
Zoekopdracht: allintitle:Security nieuws
Resultaten: Google retourneert alle pagina’s waarbij de woorden “security” en/of “nieuws” voorkomt in de titel van de pagina (dus niet in de links, alt teksten, tekst etc.).
allinurl:
Retourneert de pagina’s waarbij de opgegeven sleutelwoorden in de URL voorkomen.
Zoekopdracht: allinurl:Security nieuws
Resultaten: Google retourneert alle pagina’s waarbij de woorden “security” en/of “nieuws” voorkomt in de URL van de pagina (dus niet in de links, teksten, meta’s etc.).
filetype:
Google retourneert alleen resultaten van de opgegeven extentie.
Zoekopdracht: security filetype:pdf
Resultaten: Google retourneert alleen *.pdf documenten welke gaan over het onderwerp “securirty”.
AROUND(%number%)
De “AROUND” operator zoekt de opgegeven woorden in de nabije omgeving van elkaar maar niet perse naast elkaar of in de opgegeven volgorde.
Zoekopdracht: Bon-Jovi AROUND(4) concert
Resultaten: Google zoekt nu alle pagina’s waar de woorden “Bon-Jovi” en “concert” niet meer dan 4 woorden van elkaar verwijderd zijn.
Combineren
Uiteraard zijn bovenstaande operators te combineren om zo zeer specifiek en gericht te zoeken. Een 3-tal voorbeelden:
1. zoekopdracht:
site:microsoft.com +office
Resultaten:
Bovenstaande zoekterm zal alle pagina’s van “microsoft.com” retourneren welke gaan over het onderwerp “office”
2. zoekopdracht:
http://translate.google.com/translate?sl=ja&tl=en&u=http://paywebsite.com/
Resultaten:
Bovenstaande URL gebruikt geen zoekoperators maar is een slimme manier om Google als een proxy te gebruiken. Door de pagina te laten vertalen door Google kun je toegang krijgen tot sites die normaal alleen voor betaalde gebruikers zichtbaar zijn. Dit komt omdat Google de pagina cachet, vertaald en vervolgens de gecashte versie laat zien. In dit geval heeft de Google bot wel “gratis” toegang tot de website. In de URL staat “sl” voor “site language” en “tl” voor “translation language”. Zet de “tl” op de taal waarin de webpagina geschreven is. Zet “sl” op een andere taal, bijvoorbeeld “ja” welke staat voor Japans.
3. zoekopdracht:
site:amazon.com filetype:xls
Resultaten:
Bovenstaande combinatie zoekt alle *.xls bestanden op de “Amazon.com” website
Google Dorks
Google Dorks zijn net als bovenstaande een combinatie aan operators waarvan de resulterende pagina’s een (mogelijk) beveiligingslek hebben of waar de cracker een hack op kan proberen. De volgende combinatie laat b.v. al interessante resultaten zien, namelijk alle login.html pagina’s van websites.
inurl:logon.html |
De resultaten van volgende query zijn nog een stuk gevaarlijker:
intext:phpMyAdmin SQL Dump filetype:sql intext:INSERT INTO `admin` (`id`, `user`, `password`) VALUES |
Deze Google Dork bestaat uit 3 gedeeltes:
1. intext:phpMyAdmin SQL Dump
2. intext:INSERT INTO `admin` (`id`, `user`, `password`) VALUES
3. filetype:sql
In bovenstaande dork wordt gezocht naar geïndexeerde phpMyAdmin *.sql bestanden (database dumps) waarbij het dumpbestand de kolommen “id” – “user” en “password” bevat. Deze dumpbestanden bevatten dus waarschijnlijk de gebruikersnamen en wachtwoorden van de site waarop het dumpbestand geïndexeerd is. Een goede oplossing is om je wachtwoorden encrypted op te slaan in de database. Over het algemeen wil je niet dat een database dump bestand gevonden / geïndexeerd wordt.
Nog een mooie Google Dork:
intext:smtp | pop3 intext:login | logon intext:password | passcode filetype:xls | filetype:xlsx |
Bovenstaande dork bestaat uit 4 delen, namelijk:
1. intext:smtp | pop3
2. intext:login | logon
3. intext:password | passcode
4. filetype:xls | filetype:xlsx
De resultaten die gegenereerd worden bevatten “xls” of “xlsx” bestanden waarin de woorden “smtp of pop3” + “login of logon” + “password of passcode” voorkomen. De resultaten zijn dus bestanden met SMTP en POP3 referenties.
Zo zijn er honderden verschillende dorks die voor verschillende doeleinden te gebruiken zijn. Een grote database met alle Google Dorks is de Exploit Database. Hier vindt je nog veel meer voorbeelden en praktische toepassingen van alle Google Dorks.
Beveiliging tegen Google Dorks
Het is heel goed mogelijk om jezelf te beveiligen tegen de Google Dorks. Zorg er simpelweg voor dat Google niet alles kan idexeren en alleen maar de pagina’s indexeerd waarvan je wilt dat ze opgenomen worden in Google.
1. Opruimen
Zorg ervoor dat je hosting ruimte (de diskspace waar ook de bestanden van je website staan) goed opgeruimd is. Laat hier geen back-ups staan van b.v. oude SQL databases en ook geen waardevolle XLSX / DOCX bestanden. Als de bestanden er ook niet zijn dan kunnen ze ook nooit geïndexeerd worden waardoor mogelijk gevoelige informatie publiekelijk bekend wordt. Als de bestanden echt op de webserver moeten staan plaats ze dan buiten de publieke folder (voor public_html / httpdocs etc.). Als ze buiten de publieke mappen staan zal Google ze ook niet indexeren.
2. Gebruik een goed “robots.txt” bestand
Een robots.txt bestand is een TXT bestand welke in de root van je webpagina geplaatst wordt. Google en vele andere zoekmachines zullen dit bestand raadplegen alvorens ze beginnen met het indexatieproces en zullen zich aan de opgegeven regels houden. Zo kun je middels het robots.txt bestand precies vertellen wat er wel en niet geïndexeerd mag worden. De volgende regel verbied het indexeren van de hele website:
User-agent: * Disallow: / |
Deze regel verbied het indexeren van een specifieke directory:
User-agent: * Disallow: /securedate/ |
En deze regel verbied Google het indexeren van een specifiek bestand:
User-agent: Googlebot Disallow: /passwords.xlsx |
Kortom, het robots.txt bestand is een waardevolle tool tegen het indexeren van ongewenste zaken. Mocht je geen toegang hebben tot het robots.txt bestand dan kun je hetzelfde resultaat behalen met pagina specifieke meta tags.
3. Directory Listing uitschakelen
Directory Listing kan door een gebruiker gebruikt worden om de hele structuur en inhoud van een directory te bekijken. Dus alle bestanden die in de publieke mappen (public_html / httpdocs) worden hiermee zichtbaar en benaderbaar. Ook Google kan deze functie gebruiken om zo door je bestanden te lopen en bestanden te indexeren waarvan je niet wilt dat deze geïndexeerd worden. Over het algemeen is dit gedrag niet wenselijk en is het dus aan te raden om Directory Listing uit te schakelen. Je kunt Directory Listing uitschakelen via de configuratiebestanden van Apache, de command line van IIS en via het .htaccess bestand door hier de regel toe te voegen: “Options -Indexes”
4. GHH – Google Hack Honeypot gebruiken
De Google Hack Honeypot doet exact wat de naam impliceert. Er wordt een onzichtbare link in de broncode van je website geplaatst. Deze link is niet zichtbaar voor de bezoekers maar wel voor de zoekmachines. Deze link verwijst de zoekbot naar een configuratiebestand welke een duidelijke log schrijft over de bot die getriggerd is door de honeypot (ip adressen, host informatie. User agent etc.). Met deze informatie kan de administrator een duidelijk beeld scheppen van de partijen die bezig zijn met het automatisch achterhalen van verborgen informatie op de website en er een firewall ingericht worden om deze zoekbots buiten te sluiten.
Conclusie:
Hoewel het gebruik van een goed opgestelde zoekopdracht niet direct “hacken” is kan men met deze dorks erg veel informatie achterhalen over je website, de webserver en als je gevoelige bestanden op je webserver bewaard nog veel meer! Kijk uit dat gevoelige informatie nooit publiekelijk benaderbaar is en zet deze dus nooit (in de publieke folders) van je webserver. Test vooral je eigen website! Door je eigen website te testen met Google Dorks kom je er zelf vroegtijdig achter of er iets ongewenst geïndexeerd is. Hopelijk ben je er dan achter alvorens iemand anders deze informatie gevonden heeft.