Shodan, czyli Google dla urządzeń sieciowych

18 lutego 2013, 08:29 | Narzędzia | 0 komentarzy
: zin o bezpieczeństwie - pobierz w pdf/epub/mobi.
Przypominamy, że opisane poniżej metody należy stosować tylko w legalnych celach (np. podczas realizacji testów penetracyjnych własnych systemów).

Shodan to bardzo interesujący projekt zapoczątkowany przez Johna Matherly’ego, w ramach którego powstała nietypowa wyszukiwarka. W przeciwieństwie do zwykłych wyszukiwarek treści internetowych, takich jak Google, Shodan pozwala na wyszukiwanie komputerów, rozmaitych urządzeń sieciowych, a nawet pracujących na nich specyficznych wersji oprogramowania. Brzmi jak opis świetnego narzędzia dla pentesterów oraz wszystkich zainteresowanych tematyką bezpieczeństwa informatycznego? Dokładnie! Spójrzmy więc na praktyczne zastosowania tego unikalnego serwisu.

Z technicznego punktu widzenia Shodan jest skanerem portów (obecnie są to porty TCP 21, 22, 23 oraz 80), który permanentnie przeczesuje kolejne zakresy adresów IP i indeksuje zawartość wyłuskanych w ten sposób banerów. Banery to zazwyczaj pewne metadane, które urządzenie lub usługa sieciowa prezentuje klientowi w trakcie nawiązywania połączenia. Banery mogą zawierać wiele zaskakujących informacji. Oprócz typowych, czyli np. wiadomości powitalnej i wersji oprogramowania/serwera, mogą nawet zawierać… hasła dostępowe.

Tym zagadnieniem zajmiemy się później, najpierw spójrzmy na przykładowy banner FTP.

Z powyższego zapisu możemy wywnioskować nazwę serwera (xxxx.jp), rodzaj serwera FTP oraz jego wersję (6.00LS). Całkiem sporo interesujących informacji.

Oprócz standardowych operatorów logicznych (‚+’ i ‚-‚) Shodan wspiera szereg filtrów (Uwaga, korzystanie z niektórych filtrów wymaga zalogowania do serwisu.) pozwalających na zawężanie zwracanych wyników. Najważniejsze z nich to:

  • city (wyniki tylko dla konkretnego miasta): aby wyszukać np. serwery Apache zlokalizowane w Warszawie, należy wpisać frazę: apache city:”Warsaw”;
  • country (wyniki tylko dla konkretnego kraju), aby wyszukać np. serwery Nginx zlokalizowane w Niemczech, należy wpisać frazę: nginx country:DE;
  • geo (wyniki z okolicy określonej długości i szerokości geograficznej), np.: apache geo:42.9694,-74.1225;
  • hostname (wyniki nazw hostów lub domen zawierających określony ciąg), np.: nginx hostname:google;
  • net (wyniki tylko dla specyficznych adresów IP lub podsieci), np.: net:216.219.143.12, net:216.219.143.0/24 lub net:216.0.0.0/8;
  • os (wyniki tylko dla określonych systemów operacyjnych, np. windows, linux, cisco), np. Jboss działający na Linuksie: JBoss os:linux;
  • port (wyniki dla określonych portów), np.: proftpd port:21;
  • before /after (wyniki zebrane przez Shodana przed lub po zadanej dacie), np.: nginx before:01/01/2010.

Już na tym etapie wielu czytelników zauważy zapewne ogromny potencjał tej wyszukiwarki. Przyjrzyjmy się jednak kolejnym praktycznym przykładom jej zastosowań.

Wiemy, że Shodan może odnaleźć serwery Apache. Świetnie. Co jednak, jeśli interesuje nas konkretna wersja popularnego serwera HTTP? Nic prostszego, wystarczy tylko wpisać frazę: apache 2.2.3. W tej chwili otrzymamy 323.1977 wyników. Można również wypróbować np. frazę: „iis/1.0”. Robi się ciekawie? To dopiero początek…

Większość banerów zindeksowanych przez Shodana to banery HTTP. Aby bardziej świadomie wykorzystać zindeksowane informacje, przeanalizujmy niektóre kody odpowiedzi http:

  • 200 OK – poprawnie otrzymano żądaną zawartość,
  • 401 Unauthorized – żądanie zasobu, który wymaga uwierzytelnienia,
  • 403 Forbidden – serwer zrozumiał zapytanie, lecz konfiguracja zabrania mu zwrócić żądany zasób (niezależnie od uwierzytelnienia).

Wykorzystując tą wiedzę, możemy dodatkowo precyzować zapytania, otrzymując na przykład wyłącznie wyniki dostępne i nie wymagające uwierzytelnienia. Chcąc np. wyszukać dostępne (co najmniej pierwsza otwarta lokacja będzie dostępna bez uwierzytelnienia) webowe interfejsy dysków NAS, możemy skorzystać z frazy: NAShttpd „200 ok”.

 Sun-StorEdge-NAS-Web-Admin

Spróbujmy tego samego tricku użyć do wyszukania otwartych webowych interfejsów do urządzeń sieciowych Cisco: „cisco-ios” „200 ok”. W tej chwili otrzymamy ponad 16 tys. wyników. Analizując dokładnie różnice w banerach urządzeń Cisco, można dojść do wniosku, że najdokładniejsze wyniki dla otwartych interfejsów otrzymamy jednak dla zapytania: „cisco-ios” „last-modified”. Ogólnie rzecz biorąc, używając Shodana, właśnie na podstawie znajomości oczekiwanej zawartości banerów będziemy w stanie najdokładniej odnaleźć interesujące nas systemy.

Catalyst 3560 Series Device Manager

Co więcej: Shodan pozwala nawet na znalezienie domyślnych haseł dostępowych do wielu zasobów.

Spróbujmy przeszukać zawartość banerów na frazę „default password”. W wyniku otrzymamy wiele banerów zawierających następujące informacje:

W żadnym razie nie polecamy jednak sprawdzania, czy domyślne hasła z banerów rzeczywiście pozwalają na uzyskanie dostępu czy też zostały zmienione.

Sporo innych interesujących zapytań, które mogą dawać wiele często nieoczekiwanych rezultatów, znajdziemy dodatkowo na publikowanej przez sam serwis liście najpopularniejszych zapytań. Oczywiście za każdym razem możemy dodatkowo skorzystać z dowolnych filtrów, tak by zawęzić wyniki tylko do interesujących nas kryteriów (np. określonego zakresu adresów IP lub nazw hostów i domen).

Jak mogliśmy się więc przekonać, Shodan zdołał zindeksować ogromną ilość bardzo specyficznych informacji, które nie są dostępne w żaden inny sposób. Biorąc pod uwagę powyższe przykłady zastosowań, serwis nadaje się świetnie do całkowicie pasywnej analizy potencjalnych podatności. Reasumując, Shodan może stanowić dla pentestera nieocenioną pomoc na etapie zbierania informacji o testowanych systemach.

Na koniec zachęcam też do sprawdzenia dostępnych informacji o swoich zakresach adresów oraz hostów. Zanim zrobi to potencjalny intruz!

Wojciech Smol, (wojciech.smol<at>sekurak.pl)

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz