section

Shodan - prohlížeč internetu

24.07.2022 | Tag Bezpečnost

Shodan je projekt Johna Matherlyho představený v roce 2009. Jednoduše řečeno jde o skener všech zařízení veřejně dostupných na internetu, který skenovaná data zpracuje a dá uživatelům k dispozici formou vyhledávače.

Sám sobě říká Search Engine for the Internet of Everything :). Má velkou historii a neustále se rozvíjí do nových služeb. Někdy se dá narazit na otázku legálnosti Shodanu, nicméně je důležité říct, že Shodan nijak na prvky neútočí. Jeho jediná funkce je oťukávání už tak veřejně vystavených serverů, služeb a zařízení. Tj. při cíleném útoku by ta zařízení byla tak jako tak odhalena a i kdyby Shodan neexistoval, nic to na stavu věci nemění.

Výhoda, kterou Shodan dává uživateli, je důkladné zpracování a otagování naskenovaných dat a jejich předání v ucelené formě přes vyhledávač. Co má uživatel k dispozici velmi záleží na tom, zda má jeho účet zakoupené členství a případně dále na zakoupené subskripci. V úplném základu lze Shodan použít bez účtu. Jeho vyhledávací schopnosti jsou pak omezené na konkrétní IP adresu a počet hledání je omezen přibližně na 10 adres za den. Další úroveň je založit si účet bez členství. Tady popravdě nevím, jak se možnosti hledání rozšíří. Co si pamatuju ze své zkušenosti, tak účet bez členství zase takový rozdíl oproti nepřihlášenému uživateli nebyl.

Každopádně pro nějaké jednoduché prověření konkrétní IP adresy, případně pro prověření stavu našich vlastních vystavených služeb Shodan krásně stačí i anonymně.

Pravé rozšíření schopností Shodanu přináší členství – membership. Jde o jednorázový poplatek, který účet povýší a odemkne mu už pěknou řádku funkcí, které Shodan má. Běžně členství stojí cca 50 dolarů (podotýkám jednorázově), nicméně Shodan čas od času pořádá akce, kdy členství po velmi omezenou dobu uvolní třeba za 5 dolarů. Takto jsem ke členství přišla i já při poslední slevové akci. Pokud o členství stojíte, vyplatí se sledovat Twitter Shodanu, kde se akce předem oznamují. Dovolila bych si menší poznámku na základě zkušenosti z této akce – platba nemusí projít napoprvé. Dokonce ani na pátý pokus, když máte smůlu. Platební brána Shodanu je kapitola sama pro sebe a tyhle slevové akce jí zjevně nedělají dobře. Pokud si tedy jste jistí, že s vaší bankou problém není, prostě to zkoušejte průběžně a doufejte, že platba nakonec projde. Bohužel, problém se posledně řešil i na Twitteru vícero lidmi, ale podpora Shodanu je v tomhle docela nepřívětivá. Některým se nakonec zadařilo, pár lidem bohužel ne.

SHOD2

Za sebe musím říct, že mít koupené členství je opravdu fajn. Odemkne mimo jiné hledání pomocí filtrů, umožní procházet obrázky a mapy a limit hledání se znatelně zvětší. Podrobně bych dostupné funkce probrala dále v článku. Další odemknutí funkcí a navýšení limitů už je na základě měsíčních plateb odstupňovaných dle tabulky níže. Řekla bych, že jednotlivci i malému podniku stačí členství samotné.

SHOD1

Zdroj: shodan.io

Funkce, které Shodan nabízí, vezmu ze svého uživatelského pohledu, ať píšu ze zkušenosti. Vynechám tedy pluginy do prohlížečů, rozhraní API a CLI nástroj.

Úplný základ je webový vyhledávač, který je dostupný každému. Zde se pomocí hledání přistupuje k datům, která systém nasbíral. Rozhraní umí vytvářet reporty a nechá data stáhnout, to už jsou ale funkce, ke kterým bez členství přístup není. Také vyhledávací filtry a počet hledání jsou omezené podle úrovně uživatele.

Jak je vidět na screenu níže, v horní části obrazovky je vyhledávací lišta, pod níž se zobrazí výsledky buďto formou seznamu adres, nebo rovnou formou detailu konkrétní adresy. Filtry a dotazování bych popsala dále v textu. V rámci výsledků je možné se rovnou proklikat na další nástroje. Pro zajímavost, Shodan si pamatuje výsledky skenů za celou historii nalezené IP adresy, během hledání však dává k dispozici stav za posledních 30 dní. Skenují se IPv4 i IPv6 rozsahy. V rámci jakéhokoliv nalezeného objektu je tedy možné podívat se zpětně na jeho vývoj, myslím, až do roku 2017.

SHOD3

Základní vyhledávač rozšiřují funkce, které už jsou dostupné pouze uživatelům s členstvím. Jde o Maps, Images, Trends a Monitor. Dále existují i jiné funkce, tyto čtyři zmíněné bych však brala jako hlavní.

Maps berou data Shodanu, překreslují je do mapy světa a výsledky shlukují podle lokace.

SHOD5

Mapy jsou zajímavý nástroj, zajímavější jsou však dle mého Images. Ty také vycházejí z dat Shodanu, konkrétně je to vyhledávací prostředí zaměřené na has_screenshot filtr. Shodan si ukládá screeny vybraných služeb, pokud na ně při skenu narazí. Jde o RDP, VNC, X Windows, webové kamery (ty jsou v hledání velmi populární) a RTSP. Tyto screeny jsou pak vidět pod adresou, ke které patří, případně se dají procházet právě přes Images. V rozhraní Images se dá také vyhledávat. Místo surových dat se však filtrují obrázky.

SHOD4

Shodan Trends vykleslují nasbíraná data z pohledu dlouhodobé perspektivy. Ukazují, jak se v čase mění popularita různých nástrojů, jak se časem zjevují a mizí různé služby, či obecně jak se objevují nová zařízení. Je to zajímavý statistický nástroj poukazující na vývoj internetu. V rámci Trends je možné zavolat většinu Shodan filtrů.

SHOD6

Grafy je možné rozebrat podle různých ukazatelů jako organizace, země, porty a tak dále podle aktuálně zobrazované query. Níže je rozpad grafu vystaveného RDP podle jednotlivých organizací. Peak způsobila jedna z nich. Důvod těžko říct, ale podobných zajímavostí se dá nalézt spousta.

SHOD7

Poslední probíraná funkce bude Monitor. Shodan ve zkratce dovolí hlídat určitý počet adres nebo rozsahů a bude uživatele jím zvoleným způsobem upozorňovat na změny, které zaznamenal. Prozatím tuto funkci nepoužívám, nicméně jde o velmi zajímavou možnost. Uživatel může takto monitorovat maximálně 16 adres.

Hledání na Shodanu je myslím jedna z nejčastějších otázek kolem tohoto nástroje :). Sám tvůrce píše, že projekt nebyl původně myšlený pro běžné smrtelníky, a proto v rámci hledání přes filtry musíte chápat, jak Shodan data zpracovává, a tedy jak dotaz správně poskládat. Vřele doporučuji blog Shodanu, kde je na toho téma mnoho zajímavých článků, a kromě help centra je to dobrý zdroj informací. Také jsou k dispozici sdílené query, tedy dotazy, které už někdo poskládal a nasdílel ostatním buďto přímo na stránkách Shodanu, či přes Github.

Když vezmeme například query, kterou jsem použila pro tento článek:

city:Prague has_screenshot:yes product:"Remote Desktop Protocol" ssl.cert.issuer.cn:WIN

Ta říká, že mě zajímají adresy z Prahy, které mají screenshot, vystavují službu RDP a vydavatel certifikátu obsahuje slovo WIN (tím jsem se chtěla chytit na self sign cert pro Windows RDP).

Další příklady mohou být:

country:CZ port:>3388

Ta říká země CZ a porty vyšší než 3388. Jde spíše o ukázku toho, že lze hledat i rozsahy hodnot.

country:CZ product:"MikroTik Winbox"

Země CZ a produkt Mikrotik Winbox. Routery Mikrotik lze najít různými způsoby, například podle jimi používaných portů, pomocí filtru os, přímým zadáním fráze Mikrotik atd.

Vrátím se k původní query, tedy RDP z Prahy. K této query mimochodem patří i screeny z Images, Maps a Trends výše. Dále jsou screeny detailu jedné z adres z výsledného seznamu. Každý detail adresy má k dispozici tři záložky: Regular view, Raw Data a History. Regular view je výchozí zobrazení dat, které Shodan našel. Je zde detail k IP adrese, nalezené porty a služby, certifikáty, screenshoty (pokud existují) a další informace roztříděné podle portů, pod které patří. Vlevo jsou obecné informace o IP adrese, vpravo informace o službách. Mimochodem, raději jsem pro článek data anonymizovala, proto je vše rozmazané, v reálu jsou veškerá data čitelná.

SHOD8

Raw Data jsou pak čistá data, která Shodan našel. Jde v podstatě o základ pro Regular view. Tato záložka se podle mého velmi hodí pro skládání dalších query a použití nových filtrů. Dá se tam zjistit, jak Shodan data třídí, a vzít si inspiraci pro další dotazy.

SHOD9

A konečně history je dle očekávání historie adresy. Ukazuje vývoj nalezených a zaniklých služeb pod vybranou IP adresou v průběhu času.

SHOD10

Samozřejmě jsem během hraní zkusila do Shodanu zadat i „svou“ veřejnou IP adresu, za kterou žije Networkcat. Výsledek se zprvu může jevit špatně, protože pod adresou je vystaveno mnoho portů, z nichž některé patří zastaralým a nebezpečným službám. Na tomto příkladu chci ukázat jeden jev, který může u nalezených IP adres nastat – honeypot. Spousta hračiček a výzkumníků vystavuje do internetu falešné služby, které zkoumají postupy a metody útočníka. Čím lákavěji služba vypadá, tím spíš se útočník chytí a zkusí se do honeypotu připojit. O honeypotech a jedné z možných implementací jsem psala v článku Honeypot s Opencanary. Když poodkryji karty, náš honeypot dělá Turris Shield, který je v naší síti předsazený firewallu, a který právě dovoluje funkci honeypotu. Jsou z toho pak zajímavá data a statistiky.

Jako poslední odstavec napíšu menší polemiku. Nemá cenu hanit Shodan a jeho funkci, pokud vás náhodou vyhmátne. Znamená to pouze, že vaše služba je dohledatelná veřejně a Shodan tedy není jediný nástroj, který o ní ví. Čím více ukazuje Shodan, tím více vidí i ostatní uživatelé internetu. A ti mohou mít na rozdíl od Shodanu opravdu nedobré úmysly. Zabezpečení služby musí řešit hlavně její správce a musí to řešit dobře. Opravdu nepomáhá vystavit nechráněnou službu na netypický port. Pomáhá omezit přístup k ní a dobře nastavit ověření (ideálně vícefaktorové). Pomáhá mít systémy co nejvíc aktuální, držet se best practices výrobce už od prvotního nasazení, pokud možno předsazovat před veřejné služby nějaký bezpečnostní prvek (firewall, waf…) a hlavně nevystavovat do internetu každou hovadinu.