Shodan 命令行(CLI)使用
摘要:ShodanCLI是Shodan搜索引擎的命令行工具,支持批量搜索、漏洞查询等操作。本文介绍了从安装到实战的全流程:1)通过pip安装并配置API Key;2)基础命令如shodancount统计结果、shodansearch查询设备;3)进阶功能包括批量下载(shodandownload)、离线解析(shodanparse)、漏洞查询(shodanvuln)等;4)强调仅限授权使用,禁止非

Shodan CLI 是 Shodan 网络搜索引擎的官方命令行工具,支持批量搜索、资产探测、漏洞查询、离线分析等高频操作,比网页版更灵活、更适合自动化脚本与批量场景。以下是从安装初始化、核心命令到进阶实战的全流程使用说明。
一、环境安装与初始化
1. 安装 Shodan CLI
Shodan CLI 基于 Python 开发,支持 Windows/macOS/Linux,需提前安装 Python 3.6+,终端执行以下命令:
# 安装/升级最新版 Shodan CLI
pip install shodan --upgrade
# 国内用户可使用清华源加速安装
pip install shodan --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后,执行 shodan --help 可查看全量命令列表,验证安装是否成功。
2. 配置 API Key
所有 CLI 功能都依赖 Shodan API Key,无 Key 无法使用:
- 注册 / 登录 Shodan 官网账户:https://account.shodan.io/
- 复制页面中的 API Key(免费注册即可获取基础查询额度)
- 终端执行初始化命令,完成全局配置:
shodan init 你的API_Key
# 示例:shodan init ABCDEFG1234567890
配置成功会提示 Successfully initialized。
3. 验证配置与账户信息
执行以下命令查看账户状态、API 剩余额度、权限范围,避免超额使用:
shodan info
可查看查询限额、扫描限额、告警限额等核心信息,免费版额度有限,建议每次查询前先确认余量。
二、高频核心基础命令
1. shodan count - 结果数量统计
功能:统计符合搜索语法的结果总数,不消耗 API 查询额度,适合先评估搜索范围,避免浪费配额。
语法:
shodan count <搜索语法>
实用示例:
# 统计全球开放22端口(SSH)的设备总数
shodan count port:22
# 统计中国境内 Nginx 服务器的数量
shodan count product:nginx country:CN
# 统计存在 Log4j RCE 漏洞的设备数量
shodan count vuln:CVE-2021-44228
2. shodan search - 核心搜索命令
功能:按搜索语法查询互联网设备详情,消耗 API 额度(1 次查询 = 100 条结果),是最常用的核心命令。
核心常用参数

实用示例
# 基础搜索:查找开放3389端口的Windows远程桌面,仅显示IP、端口、城市、所属组织
shodan search --fields ip_str,port,city,org port:3389
# 限定范围:查找中国境内、开放8080端口的Tomcat服务器,限制返回50条
shodan search --fields ip_str,port,product,version country:CN port:8080 product:Tomcat --limit 50
# 导出CSV:将中国境内Redis服务的搜索结果导出为本地文件
shodan search --csv country:CN product:Redis port:6379 > redis_cn.csv
3. shodan host - 单个 IP 详情查询
功能:查询指定 IP 的全量信息,包括开放端口、运行服务、版本、地理位置、操作系统、关联漏洞、历史扫描记录,每 IP 消耗 1 次查询额度。
核心参数
--history:查看该 IP 的历史扫描记录,追踪资产变化--nmap:输出兼容 Nmap 格式的结果
语法与示例
# 基础查询:查看指定IP的全量资产信息
shodan host 1.1.1.1
# 查看IP的历史扫描记录
shodan host --history 8.8.8.8
4. 其他高频基础命令

三、进阶实用命令
1. shodan download + shodan parse - 批量下载与离线解析
核心优势:一次性下载搜索结果到本地(JSON.GZ 格式),后续离线解析不消耗额外 API 额度,是批量分析的最优方案。
步骤 1:下载搜索结果到本地
# 语法:shodan download <保存文件名> <搜索语法> --limit <条数>
# 示例:下载中国境内Redis未授权访问的设备数据,最多1000条,保存为redis_cn.json.gz
shodan download redis_cn "port:6379 country:CN product:Redis" --limit 1000
步骤 2:离线解析本地文件,提取所需字段
# 示例1:解析文件,提取IP、端口、版本、操作系统,输出到终端
shodan parse --fields ip_str,port,product,version,os redis_cn.json.gz
# 示例2:解析并导出为CSV文件,适配Excel分析
shodan parse --fields ip_str,port,country,city,org,version --separator , redis_cn.json.gz > redis_cn_result.csv
# 示例3:仅提取所有IP地址,保存到ip_list.txt,用于批量测试
shodan parse --fields ip_str redis_cn.json.gz > ip_list.txt
2. shodan domain - 域名资产反向查询
功能:查询指定域名的 DNS 记录、关联 IP、子域名、反向解析信息,是渗透测试、资产收集的高频命令。
语法与示例:
# 查询域名的全量DNS与IP关联信息
shodan domain baidu.com
3. 漏洞相关命令
shodan vuln - 漏洞资产查询
搜索存在指定 CVE 漏洞的互联网设备,适配漏洞应急与风险排查:
# 统计中国境内存在Log4j2 RCE漏洞的设备数量
shodan count vuln:CVE-2021-44228 country:CN
# 搜索存在该漏洞的设备详情
shodan search --fields ip_str,port,org,country vuln:CVE-2021-44228
shodan exploit - 漏洞利用代码查询
搜索对应 CVE 编号的漏洞利用代码、POC/EXP,适配漏洞验证场景:
# 搜索指定CVE的漏洞利用代码
shodan exploit CVE-2021-44228
4. 资产监控与扫描命令
shodan alert - 资产变化告警
针对指定 IP / 网段设置告警,当 Shodan 扫描到资产的端口、服务、漏洞发生变化时自动推送通知,适合企业资产常态化监控。
# 创建告警,监控指定网段的资产变化
shodan alert create "我的服务器资产" 192.168.1.0/24
# 查看已创建的告警列表
shodan alert list
shodan scan - 主动端口扫描
仅付费账户可用,主动扫描指定 IP / 网段的端口与服务信息。
合规警告:仅可扫描自己拥有所有权、或已获得书面正式授权的资产,未经授权扫描他人资产属于违法行为。
# 提交扫描任务,扫描单个IP/网段
shodan scan submit 192.168.1.1
# 查看扫描任务状态
shodan scan list
四、核心搜索语法

未经授权对他人的网络资产进行扫描、探测、访问,违反《中华人民共和国网络安全法》《刑法》等相关法律法规,属于违法行为。Shodan CLI 仅可用于自己拥有所有权的资产,或已获得书面正式授权的安全测试,严禁用于任何非法用途。
更多推荐


所有评论(0)