用途:在渗透测试中系统化地利用 Shodan 进行侦察,发现互联网上暴露的服务、脆弱系统与 IoT 设备。覆盖网页界面、命令行(CLI)、REST API、搜索过滤器、按需扫描和监控能力。
前提条件:Shodan 免费或付费账号、从账户面板获取的 API Key、目标 IP/域名/网段、已安装的 Python 版 Shodan CLI,以及对目标网络侦察的书面授权。
交付物:资产清单(主机、端口、服务)、漏洞报告(CVE 与暴露的脆弱服务)、服务 banner、网络映射、截图库、JSON/CSV 导出数据。
主要能力与用法:
- 安装与配置:pip install shodan 或 easy_install shodan,BlackArch/Arch 可用 sudo pacman -S python-shodan;用 shodan init YOUR_API_KEY 初始化,shodan info 验证。
- 主机侦察:shodan host 1.1.1.1 查看单主机信息;shodan honeyscore IP 判断蜜罐概率;shodan myip 查看本机外网 IP。
- 搜索:shodan search、shodan count、shodan download、shodan parse、shodan stats 支持字段筛选与 CSV 导出。常用过滤器包括 ip、net、hostname、port、asn、country、city、org、isp、product、version、os、http.title、http.status、ssl、vuln、has_vuln、has_screenshot 等。
- 按需扫描:shodan scan submit IP,可用 --verbose、--filename,shodan scan list/status 查看,shodan scan protocols 查看协议。
- REST API:curl 调用 https://api.shodan.io/api-info、/shodan/host/ 等端点;也可用 Python 库 shodan.Shodan('YOUR_API_KEY') 做 search、host 查询。
- 监控:在网页 Monitor 面板添加 IP/网段/域名,配置邮件、Slack、webhook 通知与触发事件。
限制:速率约每秒 1 次请求;扫描结果为异步、非即时;非企业版同一 IP 24 小时内不可重扫;免费账号积分有限,部分数据需付费;数据可能为数天至数周前;过滤搜索、下载、统计、扫描均消耗积分。仅可在获得授权的目标上侦察,主动扫描须获授权并记录活动。