Shodan CLI
Scanningstjänsten Shodan har sedan tidigare ett command line interface som är lätt och enkelt att använda. Shodan har sökt igenom stora delar av Internet och har gjort resultatet tillgänglig för vem som helst att ladda ner och analysera.
Och för den som inte gillar webbgränssnittet som tillhandahålls så går det även att använda cli:t.
Vi installerar verktyget via pip genom att skriva följande kommando:
$ pip install shodan
Sedan kan vi bara skriva shodan för att se möjliga argument:
$ shodan Usage: shodan [OPTIONS] COMMAND [ARGS]...
Options: -h, --help Show this message and exit. Commands: alert convert Convert the given input data file into a... count Returns the number of results for a search download Download search results and save them in a... host View all available information for an IP... info Shows general information about your account init Initialize the Shodan command-line myip Print your external IP address parse Extract information out of compressed JSON... scan Scan an IP/ netblock using Shodan. search Search the Shodan database stats Provide summary information about a search... stream Stream data in real-time.
Säg exempelvis att vi vill hitta alla webbservrar som agerar som Docker-registrys (docker är en DevOps/container tjänst). Vi ansluter först till en tjänst där vi vet att vi har ett registry:
$ curl -I https://docker-registry HTTP/1.1 404 Not Found Content-Type: text/plain; charset=utf-8 Docker-Distribution-Api-Version: registry/2.0 Date: Tue, 03 Nov 2015 07:22:25 GMT Content-Length: 19
Här kan vi lätt och enkelt se att http-headern Docker-Distribution-Api-Version skickas med. Vi kan nyttja denna unika information för att sedan söka i Shodans register.
Statistik:
$ shodan stats Docker-Distribution-Api-Version Top 10 Results for Facet: country US 557 CN 77 DE 64 IE 54 FR 36 NL 32 GB 26 RU 10 AU 9 JP 7
Top 10 Results for Facet: org E.I. du Pont de Nemours and Co. 228 Amazon.com 179 Amazon 82 Digital Ocean 38 DigitalOcean 29 Aliyun Computing Co., LTD 13 OVH SAS 12 Microsoft Hosting 11 Google Cloud 11 Internet Service Provider in China 8
Det var enkelt. Nu kan vi erhålla en lista på exakt vilka IP-adresser som innehar Docker-register med följande kommando:
$ shodan search --fields ip_str,port,org,hostnames Docker-Distribution-Api-Version
Men vill vi ha rå data så går det att ladda ner direkt till en local json-fil:
$ shodan download docker-registry Docker-Distribution-Api-Version
För att sedan parsas direkt med shodan eller eget verktyg:
$ shodan parse docker-registry.json.gz
eller
$ gzcat docker-registry.json.gz|jq .
Gillar du Shodan? Titta då även på den data som Censys.io tillhandahåller.