Wyszukiwarka Google jest zdecydowanie najpopularniejszą wyszukiwarką internetową na świecie, codziennie kieruje się do niej miliony zapytań z całego świata, miesięcznie obsługuje średnio 2,5 biliona zapytań co daje około 49 % ogółu zapytań w całej sieci. W Polsce wyszukiwarka Google ma około 9 milionów użytkowników miesięcznie, co robi z niej najpopularniejszą wyszukiwarkę internetową, oraz najczęściej odwiedzaną witryną w kraju.
Google takie wyniki zawdzięcza przedewszystkim swojej skuteczności, w poszukiwaniu informacji. Dzięki Google możemy odnaleźć nie tylko informacje ogólnodostępne, lecz także miejsca, o których nie powinniśmy wogóle wiedzieć: pliki z hasłami oraz nazwami userów, witryny zawierające luki, informacje na temat serwera, i wiele wiele więcej. Wymienione wcześniej rzeczy to jedynie garstka możliwości wyszukiwarki o której mowa. Cała sztuka wyszukiwania polega na odpowiednim zapytaniu. Otóż aby otrzymać interesujący nas wynik będziemy musieli dobrać odpowiednie operatory pytające wyszukiwarki, to właśnie w nich tkwi cała siła wyszukiwarki.
----------------------
inurl - operator ten powoduje wyszukanie zapytania w adresach URL stron, wyszukiwarka pomija wyrazy umieszczone w treści strony, skupia się wyłącznie na adresie URL.
allinurl - operator ten powoduje wyszukanie wszystkich zapytań w adresach URL stron, operator ten nie nadaje się do łączenia z innymi elementami składni.
site - funkcja ta przydatna jest jeśli wyszukiwarka ma przeszukać określoną grupę domen lub stronę, pytając np. stie:pl skupia się wyłącznie na strona z końcówką .pl.
filetype - operator pozwalający nam na wyszukanie plików z określonym rozszeżeniem.
inanchor - operator, który zwraca dokumenty zawierające odnośniki, które zawierają w treści linki zawierające wyszukiwane wyrazy.
link - operator którego zadaniem jest wyszukanie odnośników do danej strony. Wpisując ( link:www.strona.eu) otrzymamy listę witryn na, których zawarty jest odnośnik do www.strona.eu.
cache - funkcja cache znajduje kopię jakiegoś dokumentu, który nie koniecznie musi już istnieć lecz wyszukiwarka google go zaindeksowała.
intitle - operator, który pozwoli nam na wyszukanie słów znajdujących się w tytule jakiegoś dokumentu, wyszukuje choćby jeden wyraz z podanego ciągu wyazów, zawarty w tytule.
allintitle - operator, który pozwoli nam na wyszukanie słów znajdujących się w tytule jakiegoś dokumentu, wyszukuje wszystkie podane wyrazy zapytania, które zawiera tytuł, jednak należy unikać tego operatora, ponieważ nie nadaje się do łączenia z innymi elementami składni.
cache - funkcja cache znajduje kopię jakiegoś dokumentu, który nie koniecznie musi już istnieć lecz google ją zaindeksowało.
info - funkcja która pokazuje nam informacje o danej stronie np. ( info:www.strona.eu ) ukaże nam podstawowe wiadomości o danej stronie: jej kopię zrobioną przez google, strony podobne do niej, zawierające linki, podstorny, przeszukanie strony.
related - operator, który zwraca nam listę stron powiązanych tematycznie z daną witryną.
daterange - operator, który ogranicza wyszukiwanie od określonej daty lub przedziału czasowego, w którym strona została zaindeksowana przez wyszukiwarkę google, należy jednak pamiętać o tym, że google często indeksuje strony, oraz o tym, że operator daterange ogranicza wyszukiwania od daty zaindeksowania, a nie od daty powstania danego dokumentu, ważną rzeczą o której warto wspomnieć jest to, że daterange korzysta z kalandarza juliańskiego a nie gregoriańskiego.
numrange - operator, który zwraca nam strony zawierające podaną wartość liczbową, funkcja pomocna przy szukaniu określonej wersji oprogramowania np. zapytanie (numrange:3-4 program) zwróci nam strony, w których znajduje się wyraz "program" wraz z wartością liczbową w tym przypadku od 3 do 4.
+ (plus) - podane wyrażenie [wyraz] musi znaleźć się na stronie, nawet w przypadku ignorowania przez google takiego słowa ze względu na powszechność.
- (minus) - z rezultatów wyszukiwania zostaną odjęte strony zawierające podane słowo.
" " - w wynikach wyszukiwania uwzględnia całe podane frazy, nie tylko pojedyńcze wyrazy zawarte w wyszukiwanych frazach.
. (kropka) - po ułożeniu takiej komendy [wyraz1].[wyraz2], google odszuka nam [wyraz1]-[wyraz2], [wyraz1] [wyraz2], [wyraz1]1[wyraz2], itp. wyniki.
| (OR) - po ułożeniu zapytania [wyraz1].[wyraz2], google odszuka nam [wyraz1]-[wyraz2], [wyraz1] [wyraz2], [wyraz1]1[wyraz2], itp. wyniki.
* - po ułożeniu zapytania [wyraz1]*[wyraz2], google odszuka nam [wyraz1]lub[wyraz2], [wyraz1]i[wyraz2], [wyraz1]w[wyraz2], [wyraz1]in[wyraz2], [wyraz1]the[wyraz2], itp. wyniki.
----------------------
Przed korzystaniem z google weźmy pod uwagę kilka dodatkowych czynników, algorytm google wprowadza ograniczenie do 10 słów podanych jednocześnie, wchodzą w to również operatory logiczne, jeżeli liczba operatorów wraz z wyrazami przekroczy liczbę 10, nie będą one brane pod uwagę. W tym przypadku przydatny staje się operator * (wykorzystywanie słów zastępczych), który nie jest brany pod uwagę. W wyszukiwaniu posługuj się wieloma językami, dzięki temu nie ograniczysz się tylko do polskich stron, dajmy na przykład słowo "hasło", to przecież to samo co "password", "pass", "passwort", "passe" itd. Kolejnym czynnikiem jest kolejność wpisywanych słów, oraz ilość wpisywania tych samych słów, zmiana kolejności wpisywanych jak i ilość tych samych wyrazów może, choć nie musi mieć znaczenia na ilość oraz kolejność wyprowadzanych wyników przez wyszukiwarkę. Jeżeli znalazłeś coś interesującego, lecz strona ta już nie istnieje, kliknij na kopię tego dokumentu, na około 95% google umożliwi ci jej przeglądnięcie.
---------------------
Na samym początku skupmy się na plikach. Jak już wiecie, google pozwala na odszukanie plików o danym rozszeżeniu za pomocą operatora filetype lub ext, dzięki temu możliwe staje się odszukanie interesujących nas plików, takich jak:
*.db, *.mdb - rozszeżenia plików baz danych, mogą zawierać hasła, spis oraz dane użytkowników, itp. *.sql - plik zawierający kod SQL *.inc - plik includowany, częstym błędem a raczej niedopatrzeniem jest nieumieszczenie przez administratora pliku konfiguracyjnego serwera, który uniemożliwia patrzenie na kod pliku inc. *.ini - plik konfiguracyjny, zwykle zawiera ustawienia programów. *.cfg, *.conf - przykładowe rozszerzenia plików konfiguracyjnych różnych aplikacji. *.bak - plik zawierający poprzednią wersję pliku o takiej samej nazwie (kopia zapasowa), lecz innym rozszeżeniu, czyli tzw backup, może zawierać hasła, listy użytkowników, dane, itp. *.js, *.jsp - plik, który zawiera kod JavaScript *.log - plik, w którym zapisywane są logi, wydarzenia, które zostały zarajestrowane przez system operacyjny najczęściej są to: przebieg instalacji, monitorowanie ruchu na stronie, itp. *.xls - arkusz programu excel, może zawierać dane statystyczne, wykresy, zestawienia, dane pracowników itp. *.txt - plik zawierający czysty tekst z podstawowymi elementami formatowania, może zawierać kontakty telefoniczne oraz z komunikatorów, notatki, itp. *.doc - plik dokumentu, format charakterystyczny dla programu MS Word, przeważnie możemy z nich uzyskac CV, podania, życiorysy, informacje dot. danych osobowych. *.vcf - plik vcf(ang. vCard File), vCard może zawierać inf. o personaliach, kontaktach, telefonach.
Choć nie jest to z góry ustalone, co kryją pliki z danymi rozszerzeniami, można im jednak przypisać pewne informacje jakie mogą zawierać. Teraz w grę wchodzi wyłącznie twórczość samej osoby szukającej, nie ma bowiem konkretnej zasady jak szukać hasła, dane osobowe, kontakty telefoniczne lub kontakty komunikatorów internetowych, które nie powinny być ogólnodostępne. Metod jest naprawdę wiele, na wyszukanie tych informacji, które wogóle nie powinny być ujawniane.
## poszukiwanie danych osobowych Jeśli mowa o danych osobowych, to w sieci można znaleźć ich naprawdę sporo. Poprzez Google możemy uzyskać dokumenty jakiejś osoby, w których doszukamy się: jego imienia i nazwiska, jego adres zamieszkania, numer PESEL, telefon kontaktowy, adres email, skończone szkoły, miejsce pracy, odbyte kursy, posiadane kat. prawa jazdy, itp. rzeczy. Takie dane możemy uzyskać za pomocą wyszukiwania np. dokumentów Curriculum Vitae czyli, w skrócie CV. Jak wspomnieliśmy wcześniej metod szukania jest sporo, skuteczność szukania będzie zależała wyłącznie od was. Zatem przed szukaniem, abyście nie szukali w ciemno, pomyślcie gdzie mogą znajdować się choćby takie dokumenty CV ? Grupa osób, która najczęściej pisze swoje CV to z pewnością ci, którzy szukają pracy. Chyba najliczniejsza taką grupą osób szukających dobrej posady są absolwenci wyższych uczelni. Niektóre uczelnie udostępniają swoim uczniom miejsce na serwerze, które mogą w dowolnym celu wykorzystać, choćby do przechowywania swoich dokumentów, prac, kontaktów itp. serwery te przeważnie są zaparkowane w domenach .edu i/lub .edu.pl jeśli chodzi o polskie uczelnie, choć nie koniecznie tak musi być, dlatego też nie zalecam ograniczania się tylko do domen z końcówką .edu czy też do .edu.pl.
przykłady najprostszych zapytań: cv intitle:index.of site:edu.pl - curriculum vitae kontakty.txt intitle:index.of - domyślny plik zaw. kontakty komunikatora GG *.vcf intitle:index.of - pliki vCard, które mogą zawierać inf. o danych osobowych. inurl:kontakty filetype:txt site:pl - różne kontakty inurl:"contacts" filetype:xls - różne kontakty inurl:"addresses" filetype:xls - różne kontakty
## poszukiwania określonych serwerów Google pozwala także na znajdowanie serwerów o określonym oprogramowaniu, oraz ich poinstalacyjne strony, taka metoda została opisana np. w hakin9 Nr 3/2005, e-book w pełni po polsku, dostępny w dziale download, zatem nie widzę potrzeby przetwarzania tego artykułu. Mogę tylko wspomnieć, że metoda polega na wklepaniu ciągu wyrazów czy znaków charakterystycznych dla danego serwera. Takim zapytaniem może być choćby "charakterystyczny ciąg znaków dla danego serwera" intitle:index.of, choć nie koniecznie musi mieć taką strukturę. Czyli np. chcemy odszukać serwery Apache 2.0 działające np. na Fedorze, wpisujemy "(Fedora) Server at" intitle:index.of, jeśli zaś serwer Novell NetWare wpisujemy "Netware * Home" inurl:nav.html, itd. polecam także http://johnny.ihackstuff.com/index.php?module=prodreviews&func=reviewsbycat&reviewsel=7, gdzie znajdziecie pełną listę zapytań o dany serwer.
## poszukiwanie stron narażonych na błędy Wielu początkujących użytkowników używa gotowych, darmowych skryptów na swoje strony. Najczęściej są to fora dyskusyjne, systemy dodawania newsów, sondy, czy nawet całe systemy CMS (ang. Content Management System), wszystkie wcześniej wymienione skrypty posiadają otwarte źródło, zatem odkrycie luki jest o wiele prostsze. Aby wyszukać takową aplikację podatną na atak, w pierwszej kolejności należy odszukać na co jest ona podatna. Zatem możemy skorzystać ze strony http://www.securityfocus.com/archive/1 , gdzie na gorąco pojawiają się luki wykryte w różnych aplikacjach, w tym również w popularnych skryptach. Przykład: pisząc ten artykuł najświeższą luką była dziura dot. aplikacji Phpprobid ( profesjonalny system aukcyjny przeznaczony na www), w wersji niższej od 5.24, możliwe było przeprowadzenie na tej aplikacji ataku SQL Injection oraz Cross Site Scripting (XSS), wystarczyło wklepanie, w okienko przeglądarki http://strona_z_systemem_aukcyjnym.xx/auctionsearch.php?start=1&advsrc="><script>alert(/tekst/)</script> Aby odszukać te systemy aukcyjne wystarczy wpisać w wyszukiwarce inurl:auctionsearch filetype:php, administratorzy domów aukcyjnych, którzy nie poprawili błędu, byli narażeni na atak SQL Injection, oraz XSS. Jak już korzystacie z takich ogólnodostępnych systemów postarajcie się ukryć ich nazwy, ciągi znaków dla nich charakterystyczne, o ile to możliwe zmienić nazwy plików, zwiększy to niewątpliwie bezpieczeństwo waszej witryny internetowej.
## poszukiwanie komunikatów o błędach Poszukiwanie komunikatów o błędach także może przynieść potencjalnemu włamywaczowi wiele potrzebnych danych, które w późniejszym czasie wykorzysta. Błędy wyrzucane na ekran komputera mogą zawierać: nazwy plików oraz informacjie dot. ich rozmieszczenia, nazwy funkcji, hasła, wersję oprogramowania, oraz wiele innych przydatnych rzeczy. Oczywiście aby odnaleźć takie strony, będzie musiał pytać wyszukiwarkę danymi frazami jakie występują w typowym błędzie, przytoczmy np. błąd autoryzacji przy połączeniu z bazą danych "warning: mysql_connect();" "access denied for user". Wyszukiwarka ukaże nam wyniki, dokumenty, które wyrzucają na ekran komputera błędy. Jeżeli chcecie posiadać większą wiedzę na ten temat polecam: http://johnny.ihackstuff.com/index.php?module=prodreviews&func=reviewsbycat&reviewsel=10 znajdziecie tam przykłady dot. różnych błędów.
---------------------
Przedstawione powyżej przykłady pytań to naprawdę tyko garstka sposobów na uzyskanie informacji, które nie powinny być ogólnodostępne. Takie informacje można uzyskać na kilka sposobów, wszystko zależy jednak od twórczości zapytania samego pytającego.
---------------------
Bibliografia: Oreilly - Google Hack http://johnny.ihackstuff.com Magazyn internetowy hakin9 Nr 3/2005 Internet
|