前言
Shodan 是一個專門針對網際網路上各種連網設備的搜尋引擎,它透過定期地掃描網際網路上的開放連接埠來蒐集資料並存入資料庫中。由於可以幫助識別那些暴露在網際網路上卻未受保護的設備,因此幾乎是資安人員的必備工具之一。
安裝 Shodan 函數庫
我們可以使用官方提供的 Shodan Python 函數庫來進行相關操作,包括依賴該函數庫進行程式開發,或者是透過命令行進行操作。使用 pip
進行安裝的命令如下:
Bash
$ pip install shodan
使用 Shodan 命令行
帳號授權
由於 Shodan 的部分功能是需要付費使用的,因此在開始之前,需要先取得帳號的 API_KEY
並初始化。首先我們需要登入到 Shodan 的帳號後台,取得我們的授權金鑰:
接著使用 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