Diversity w polskim IT
Klara Trzcińska
Pentacomp Systemy Informatyczne
Klara TrzcińskaGłówny Specjalista IT ds. testów bezpieczeństwa @ Pentacomp Systemy Informatyczne

Shodan - wyszukiwarka dla hakera

Poznaj narzędzie Shodan i sprawdź, w jaki sposób pomaga w pracy testerom i zespołom bezpieczeństwa.
26.04.20217 min
Shodan - wyszukiwarka dla hakera

Szukając stron z interesującą nas treścią mamy do dyspozycji Google lub inne wyszukiwarki. Z czego jednak skorzystać, jeżeli interesują nas nie strony, ale urządzenia sieciowe dostępne z Internetu albo chcemy sprawdzić, czy przez przypadek nie wystawiliśmy do Internetu niezabezpieczonego pulpitu zdalnego lub bazy danych? Poniższy artykuł przedstawia wyszukiwarkę Shodan, która bywa nazywana Google dla urządzeń sieciowych albo wyszukiwarką dla hackerów. Poznamy możliwości wykorzystania jej do weryfikacji wystawionych do Internetu urządzeń sieciowych i ich poziomu bezpieczeństwa. Narzędzie przyda się zarówno pentesterom, jak i administratorom oraz pracownikom zespołu bezpieczeństwa.

Powstanie Shodana

Po raz pierwszy o Shodanie można było usłyszeć już ponad 10 lat temu, kiedy to 23 listopada 2009 absolwent bioinformatyki na uniwersytecie California San Diego postanowił stworzyć dostępne w Internecie przeszukiwalne repozytorium metadanych. Pierwotnie Shodan miał stanowić platformę pozwalającą monitorować trendy i statystyki wykorzystywania oprogramowania (np. gdzie najczęściej wykorzystywany jest Apache lub Nginx). Został jednak zauważony m.in. przez specjalistów bezpieczeństwa i szybko stało się powszechnie wykorzystywaną przez nich platformą. 

Obecnie Shodan posiada setki serwerów przechowujących petabajty danych, ponad 3 miliony zarejestrowanych użytkowników oraz ponad 27 milionów monitorowanych adresów IP. Crawlery Shodana (programy indeksujące zbierające informacje o strukturze, stronach i treściach znajdujących się na stronach) na okrągło indeksują i zbierają informacje o wystawionych do Internetu usługach. Skanowanie Shodana odbywa się z maszyn rozmieszczonych po całym świecie, co pozwala uniknąć wyników zależnych od lokalizacji geograficznej (np. skutków blokowania przez niektórych administratorów amerykańskich serwerów całych zakresów IP Chin).

Jak działa Shodan?

Z technicznego punktu widzenia Shodan może zostać sklasyfikowany jako skaner portów, który przeszukuje publiczne zakresy IP i indeksuje dane takie jak uzyskane banery (np. nagłówek odpowiedzi Server otrzymywany wraz z odpowiedzią na żądanie HTTP), informacje o certyfikacie SSL, lokalizację geograficzną, system operacyjny czy potencjalne podatności. Przeszukiwanie publicznych adresów IP odbywa się losowo. Adresy IP oraz porty do przeskanowania są losowane, aby uzyskać jak największe pokrycie oraz brak przewidywalnej kolejności skanowania. 

Głównymi informacjami, jakie można zobaczyć w Shodanie wyświetlając szczegóły dla interesującego adresu IP, są lokalizacja geograficzna, informacje o technologii, lista otwartych portów i dostępnych usług oraz banery dla tych usług. Każda usługa wystawiona do Internetu na urządzeniu sieciowym ma przypisany port.

Dla przypomnienia – banerem nazywane są informacje zwracane podczas nawiązywania połączenia. Przykładowo, aby wyświetlić ten artykuł przeglądarka wykonuje żądanie HTTP GET a w odpowiedzi otrzymuje stronę HTML z treścią artykułu oraz dodatkowe informacje w nagłówkach odpowiedzi HTTP. Domyślnie informacje z nagłówków HTTP nie są prezentowane przez przeglądarkę, ale są przez nią wykorzystywane np. do poprawnego wyświetlania strony albo konfiguracji zabezpieczeń podczas wyświetlania tej strony.

Aby zobaczyć jakie informacje kryją się w nagłówkach http, można wykorzystać dowolną przeglądarkę. Umożliwiają one wyświetlenie pełnej treści nagłówków odpowiedzi z wykorzystaniem narzędzi deweloperskich. Na przykład w przeglądarce Chrome należy w tym celu przejść do Chrome menu (trzy kropki w prawym rogu), a następnie wybrać Więcej narzędzi > Narzędzia dla deweloperów.   

Poniżej widzimy nagłówki odpowiedzi dla przykładowego żądania HTTP wyświetlenia szczegółów profilu. Nagłówki odpowiedzi można zobaczyć po zaznaczeniu żądania, w zakładce Response Headers. Nagłówki często zawierają ciekawe informacje, np. o wersji wykorzystywanego oprogramowania (nagłówek Server) a w skrajnych przypadkach nawet informacje o hasłach czy wykorzystaniu domyślnych haseł dla danej usługi. Na poniższym zrzucie ekranu widzimy tylko standardowe nagłówki, bez nagłówków będących zagrożeniem bezpieczeństwa ☺.


To właśnie na podstawie informacji z tych nagłówków Shodan określa, jaka usługa i jakie oprogramowanie jest wystawione na danym porcie. 

Wyświetlając w Shodanie informacje na temat interesującej nas domeny, na przykład Google, można zobaczyć między innymi wystawioną do Internetu na porcie 443/tcp usługę http. Po kliknięciu w port 443 w szczegółach będą widoczne właśnie nagłówki odpowiedzi na żądanie HTTP, czyli podobne do tych, które można zobaczyć w narzędziach deweloperskich przeglądarki. Aby wyszukać wyniki dla google.pl, możemy w polu wyszukiwania podać adres IP lub filtr ip:<adres-ip> i wejść w szczegóły wyników. 


Shodan umożliwia wyszukiwanie takich wyników z wykorzystaniem szeregu filtrów i operatorów logicznych. Wyniki możemy filtrować m. in. po adresie ip (np. ip:8.8.8.8), lokalizacji (np. country:PL), porcie (port:443). Wyszukiwane z wykorzystaniem filtrów jest dostępne tylko dla zalogowanych użytkowników. Konto z dostępem do podstawowych funkcjonalności można założyć bezpłatnie. 

Filtry i operatory logiczne pozwalają przygotować ciekawe zapytania zwracające np. niezabezpieczone pulpity zdalne, wystawione do Internetu bazy danych, nagłówki zawierające hasła czy też nagłówki informujące o wykorzystaniu podatnego oprogramowania. 

Shodan jest przydatny zarówno dla administratorów jak i pentesterów. Może być również wykorzystany w celach prywatnych, np. do sprawdzenia, czy obraz z naszej kamery do monitoringu nie jest dostępny dla każdego w Internecie.

Shodan dla pentestera

Shodan jest narzędziem często wykorzystywanym podczas rekonesansu, czyli pierwszej fazy testów penetracyjnych. Wykonując testy penetracyjne, zapytania można zawęzić do testowanych adresów IP (adresów IP organizacji, dla której wykonywane są testy). W ten sposób można uzyskać narzędzie do pasywnego rekonesansu, które pozwoli na wyznaczenie otwartych portów, dostępnych usług, wykorzystywanych technologii oraz potencjalnych podatności. Wszystkie te informacje można uzyskać bez nawiązywania bezpośredniego kontaktu z testowanymi systemami, czyli m.in. bez pozostawienia jakichkolwiek śladów w logach. W pierwszej fazie testów penetracyjnych istotne są wszystkie informacje.

Ciekawe wyniki wyszukiwania można znaleźć dla zapytań wyszukujących niezabezpieczone pulpity zdalne. Na przykład dla zapytania port:5901 authentication disabled w wynikach zwrócone zostaną pulpity zdalne VNC dostępne bez zalogowania.

Poniżej widzimy przykładowy panel sterowania udostępniony przez niezabezpieczoną usługę VNC.


Możemy również wyszukiwać pulpity zdalne usługi RDP. Korzystając z filtra port:3389 można uzyskać listę pulpitów zdalnych udostępnionych do Internetu, co daje możliwość np. wyświetlenia dostępnych loginów i ułatwia potencjalnemu atakującemu próby odgadnięcia czy bruteforce’u hasła.

Wykorzystując wspomniany filtr oraz przechodząc do zakładki Images, można wyświetlić zrzuty ekranów z udostępnionych pulpitów zdalnych.


Wykonując testy penetracyjne lub po prostu szukając ciekawych znalezisk, warto również przeszukać standardowe porty usług wchodzących w skład stosu ELK (zestaw narzędzi umożliwiających gromadzenie, przeszukiwanie, grupowanie oraz filtrowanie ogromnych zbiorów danych) np. wyszukując instancje Elasticsearch (centralny serwer indeksowania i wyszukiwania danych) czy Kibany (narzędzie do prezentowania i wizualizacji danych z Elasticsearch). 

Niejeden wyciek danych był spowodowany wystawieniem do Internetu bazy Elasticsearch. Przykładem może być wyciek 19 milionów rekordów z logów serwisu webowego i mobilnego AVON (https://www.safetydetectives.com/blog/avon-leak-report/). 

Z wykorzystaniem filtra port:9200 json (domyślny port Elasticsearch i format JSON) można znaleźć ponad 35 tysięcy wyników, a dla filtra port:5601 kibana (domyślny port Kibany) ponad 13 tysięcy wyników. Bardzo prawdopodobne, że nie w każdym przypadku są one wystawione celowo.


Oczywiście takich filtrów wyszukiwania może być bardzo wiele. Inne ciekawe zapytania można znaleźć na liście najbardziej popularnych zapytań Shodana https://www.shodan.io/explore/popular. Wiele spośród nich to próby wyszukania kamer internetowych po standardowych nagłówkach. Na przykład wybierając zapytanie z kategorii i przechodząc do zakładki Images otrzymujemy obrazy z ponad 3 tysięcy kamer ze sklepów, parkingów, a nawet mieszkań.  


Należy pamiętać, że bez zgody właściciela serwera nie należy wchodzić do takich niezabezpieczonych systemów. Nie można łączyć się przez niezabezpieczony pulpit zdalny, czy próbować pobierać danych z bazy danych.

Poniżej krótkie podsumowanie i kroki do wykonania przez pentestera.

  1. Założenie darmowego konta i zalogowanie.
  2. Podanie zakresu IP (filtr net) lub poszczególnych adresów IP (filtr ip) do weryfikacji, najlepiej pełen zakres adresów danej organizacji. Można również podać nazwy hostów i domen (filtr hostname). 
  3. Jeśli organizacja posiada bardzo wiele adresów IP i weryfikacja wszystkich wyników byłaby zbyt czasochłonna, dodanie do zapytania takich fraz jak „unauthorized”, „default password”, „camera” czy innych wcześniej opisywanych.
  4. Analiza wyników i zebranie informacji o testowanej organizacji np. niezabezpieczonych pulpitach zdalnych, nieaktualnych i podatnych wersjach usług.

Shodan dla administratora lub pracownika zespołu bezpieczeństwa

Do weryfikacji wystawionych do Internetu usług Shodan mogą wykorzystać również administratorzy i pracownicy zespołu bezpieczeństwa. Kroki do wykonania będę takie same jak w przypadku pentestera.  Wynikiem weryfikacji będzie lista usług/portów niepotrzebnie dostępnych z Internetu, które należy wyłączyć lub np. zablokować na firewallu. 

W przypadku administratorów Shodan może być przydatny również jako alternatywa dla regularnego skanowania wystawianych do Internetu zasobów. Cykliczne skanowanie można zastąpić usługą Shodan Monitor, ustawiając wysyłanie powiadomień o wykrytych zmianach na kanał Slack lub maila. W przypadku pojawienia się nowego dostępnego portu lub podatności dla naszej wersji oprogramowania zostaje wysłane powiadomienie. 

Usługa Shodan Monitor jest dostępna po rozszerzeniu konta do poziomu członkostwa czyli Shodan Membership. Opłata jest jednorazowa i wynosi 49$, ale zazwyczaj w Black Friday organizowana jest promocja, podczas której konto można kupić za 5$.  

Poniżej podsumowanie informacji w formie kroków do wykonania przez administratora lub pracownika zespołu bezpieczeństwa.

  1. Założenie konta, wykupienie Shodan Membership i zalogowanie.
  2. Podanie zakresu IP do monitorowania, najlepiej pełen zakres adresów IP organizacji.
  3. Wybranie kanału komunikacji dla powiadomień np. e-maile.

Shodan 2000

Shodan można wykorzystać również do rozrywki. Przeglądając ciekawe wyniki na stronie https://2000.shodan.io/ można nawet włączyć muzykę. Wśród prezentowanych wyników znajdują się bazy danych, kamery czy niezabezpieczone pulpity zdalne.

<p>Loading...</p>