透過 Shodan CLI 使用 Shodan

前言

Shodan 是一個專門針對網際網路上各種連網設備的搜尋引擎,它透過定期地掃描網際網路上的開放連接埠來蒐集資料並存入資料庫中。由於可以幫助識別那些暴露在網際網路上卻未受保護的設備,因此幾乎是資安人員的必備工具之一。

安裝 Shodan 函數庫

我們可以使用官方提供的 Shodan Python 函數庫來進行相關操作,包括依賴該函數庫進行程式開發,或者是透過命令行進行操作。使用 pip 進行安裝的命令如下:

Bash
$ pip install shodan

使用 Shodan 命令行

帳號授權

由於 Shodan 的部分功能是需要付費使用的,因此在開始之前,需要先取得帳號的 API_KEY 並初始化。首先我們需要登入到 Shodan 的帳號後台,取得我們的授權金鑰:

如圖所示,點擊頁面中的 “Show” 即可取得授權金鑰

接著使用 shodan init 命令進行授權:

Bash
$ shodan init [API_KEY]
Successfully initialized

命令說明

命令說明備註
shodan alert管理目前帳號的網路告警事件付費
shodan convert將輸入檔案轉換成其他格式免費
shodan count輸入查詢目標,回傳查詢結果數量免費
shodan data大量存取 Shodan 資料企業
shodan domain輸入查詢網域,列出網域下的 IP 資訊企業
shodan download輸入查詢目標,儲存查詢結果到檔案免費
shodan honeyscore輸入查詢位址,返回蜜罐(honeypot)判斷分數免費
shodan host輸入查詢位址,顯示位址資料(即 nmap 掃描結果)免費
shodan info顯示目前帳號的下載點數與掃描點數資訊免費
shodan init初始化帳號資料免費
shodan myip顯示幕前位址免費
shodan org管理組織內部的 Shodan 帳號企業
shodan parse解析提取壓縮的 JSON 格式資訊免費
shodan radar即時呈現 Shodan 掃描狀態企業
shodan scan掃描指定的位址或網段付費
shodan search輸入查詢目標,返回查詢詳細結果免費
shodan stats提供搜索結果的總結資料免費
shodan stream即時顯示 Shodan 掃描資料付費

使用範例

Bash
# 查詢資料
$ shodan search --fields ip_str,port,org,hostnames microsoft iis 6.0

# 下載資料
# [SYNTAX] shodan download <FILE_NAME> <SEARCH_CRITERIA>
$ shodan download microsoft-data microsoft iis 6.0

# 轉換資料
# [SYNTAX] shodan convert <FILE_NAME> <OUTPUT_FORMAT>
$ shodan convert microsoft-data.json.gz csv