Hacka med Google
Det kommer nog inte som en chock för många att Google är den mest populära sökplattformen idag. Trots det stora antalet användare är Googles fulla potential inte känd för alla.
Till skillnad från många andra sökmotorer kan en Google sökning utföras med avancerade parametrar i syfte att förfina sökningar och minska antalet oönskade resultat. Parametrarna är en del av Googles inbyggda funktioner och kräver därmed inte några externa installationer eller moduler för att fungera.
I denna artikel kommer vi ta en titt på grunderna för hur vi kan utnyttja Googles parametrar för att få fram intressanta resultat som kan användas vid penetrationstester eller säkerhetsgranskningar.
För de intresserade rekommenderas även boken Google Hacking For Penetration Testers av Johnny Long.
Vad kan vi använda Google hacking till?
Google hacking används främst inom penetrationstester där Google kan användas som ett verktyg för få fram information som annars inte är menat att exponeras ut mot internet. Inom webbapplikationstester kan Google hacking b.la användas för att visa delar av en hemsida som annars är oåtkomliga eller för att få åtkomst till filer som ligger uppladdade på hemsidan. Vid mer sofistikerade attacker kan Google hacking även användas för att identifiera delar av en hemsida som möjligtvis är sårbara för SQL eller XSS-injektioner.
Sökparametrar
Sökparametrarna i Google är strukturerade enligt formatet Parameter:Sökterm
Exempelvis skulle parametern site användas i följande format för att få fram alla underkategorier för www.simovits.com
site:www.simovits.com
Nedan följer några av de vanligaste parametrarna som används vid Google hacking.
Parameter | Förklaring |
site | Begränsar sökresultaten till en specifik hemsida |
intext | Söker efter ord eller begrepp på en hemsida |
inurl | Söker efter ord eller begrepp i en URL |
filetype | Söker efter specifika filer |
intitle | Söker efter ord eller begrepp i en hemsidas titel |
link | Söker efter länkar till en hemsida |
Utöver parametrar kan vi även använda reguljära uttryck för att sådant sätt få ännu mer specifika resultat. Några vanliga reguljära uttryck är b.la
Parameter | Förklaring |
. | Matchar en enstaka karaktär. Exempelvis skulle en sökning på .imovits bland annat kunna ge resultaten mimovits, simovits eller 8imovits |
* | Matchar noll eller fler av den tidigare karaktären. Exempelvis skulle en sökning på s*imovits kunna ge resultaten sssimovits eller simovits |
| | En ”Or”-funktion. Exempelvis skulle sökningen test|häst ge resultat med både test och häst |
[] | Skapar en lista av föremål att matcha på. Exempelvis skulle sökningen [492] ge resultat för 4, 9 och 2. I samband med detta uttryck kan även ett bindestreck användas för att expandera listan. Exempelvis skulle sökningen [A-D] matcha med alla resultat som innehåller versaler mellan A och D |
Och nu sätter vi ihop allt
Nu när vi har vi ett grundläggande hum om hur Google hacking fungerar så är det dags att pröva det i några riktiga scenarion.
I nedanstående exempel gör vi en sökning mot Microsofts hemsidor där vi letar efter exe-filer
Resultatet av sökningen indikerar att Microsoft konfigurerat de flesta av deras hemsidor inte listar de tillgängliga exe-filerna istället får vi i detta fall enbart 16 resultat. Här använder vi parametern site för att enbart söka efter hemsidor med microsoft.com i länken och använder därefter parametern file för att välja att söka efter exe-filer.
I nästa exempel gör vi en lite bredare sökning. Här letar vi efter inloggningssidor för administratörer på diverse hemsidor. Här använder vi ”OR”-funktionen för att söka efter frasen ”admin” såväl som ”administrator”. Vi letar även efter ordet ”login” i titeln för att få fram mer relevanta resultat.
Här får vi fram en hel del mer resultat men märker fort att många av resultaten är ”falsk-positiva” det vill säga att Google har snappat upp sökorden men där de används i ett sammanhang som inte är relevant för vårt ändamål, exempelvis i guider. Det finns dock även många exempel där vi lyckats identifiera inloggningssidor för administratörer.
I vårt sista exempel undersöker vi hur vi kan komma åt olika webbaserade resurser.
Som ni kommer märka är dessa sökningar ofta väldigt simpla och handlar främst om att kunna identifiera ett mönster på resursens hemsida eller gränssnitt.
Exempelvis kan vi lätt komma åt inställningsgränssnittet för SpeedStream routrar genom att använda parametern intitle:”speedstream router management” för att på sådant sätt söka efter gränssnitt som exponerats mot internet.
Vi kan också hitta öppna SQL-servrar genom att använda parametern intitle:phpmyadmin och texten ”welcome to phpmyadmin”. I båda fallen märker vi att denna typ av sökning ofta genererar förvånansvärt precisa resultat.
Det är även möjligt att filtrera ner resultaten till en specifik domän genom att använda site parametern.
Hur skyddar vi oss mot Google hacking?
Google hacking görs möjligt av det faktum att personer inte är medvetna om vilken information som exponeras mot internet därmed händer det att information läggs upp på delar av en hemsida eller server som aldrig tänkts exponeras ut mot internet men som istället fångas upp av Googles web-spindel.
Många av de tjänster som kan identifieras via Google har även svaga eller standardlösenord då tjänsten, likt ovan, aldrig var tänkt att exponeras ut mot internet.
Behandla istället all information som ligger på en server som om den skulle vara exponerad mot internet och se till att god kryptering, sunt förnuft och starka lösenord.