← 返回 Skills 市场
jjbondone

zoomeye-org-search

作者 JJBondOne · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
75
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install zoomeye-org-search
功能描述
ZoomEye 网络空间搜索引擎 CLI(v3.0.0)。当用户想搜索网络资产(IP、设备、网站、服务)、查询 ZoomEye 数据、构建 ZoomEye dork 查询语句、或进行安全研究(资产测绘、漏洞影响面评估、暴露面发现)时使用。覆盖全部搜索语法——设备/OS/端口/协议、SSL证书、HTTP头/正文、地...
使用说明 (SKILL.md)

ZoomEye 网络空间搜索

通过 zoomeye CLI(v3.0.0)搜索全球网络资产。

何时使用

触发条件

当用户请求涉及以下任一情况时,必须加载本 skill:

  • 搜索网络资产/设备/服务("帮我搜一下...""查一下暴露的...")
  • 构建 ZoomEye/Fofa/Shodan 类搜索引擎的 dork 查询语句
  • 仅做语法转换:用户描述了想搜什么但只想要 dork 语句,不执行搜索("这个怎么搜""语法是什么""帮我把这句话转成 ZoomEye 语法")
  • 资产测绘、暴露面发现、漏洞影响面评估(需用 ZoomEye 执行搜索)
  • 需要查询 ICP 备案、SSL 证书、HTTP 响应头等关联信息
  • 用户明确提到 "zoomeye"、"ZoomEye"、"钟馗之眼"、"网络空间搜索"

不适用场景

  • 用户只是在聊天中提到 ZoomEye 但不涉及实际操作
  • 用户问的是其他搜索引擎(Shodan、Censys、Fofa),且没有说"用 ZoomEye 来搜"
  • 纯理论讨论搜索语法,不需要执行

仅语法转换模式

如果用户只是想把自然语言转成 ZoomEye dork 语句("这个怎么搜"、"帮我写个语法"、"转成 zoomeye 语句"),不需要检查环境和执行搜索,直接跳到 工作流程 → 第1步:自然语言 → Dork 转换,输出转换后的 dork 语句即可。

前置条件

第一步:检查环境

收到任何搜索请求后,必须先执行以下检查,不要假设环境已就绪:

# 检查是否已安装
which zoomeye && zoomeye -v

# 检查 token 是否已配置(init 后 token 持久化在 ~/.config/zoomeye/setting/,只需配置一次,后续会话无需重配)
zoomeye info

第二步:根据检查结果引导用户

如果 zoomeye 未安装:

提示用户安装:

pip3 install zoomeye

安装完成后继续下一步。

如果 zoomeye info 返回 login required, missing Authorization header(未配置 token):

按以下步骤引导用户:

  1. 告知用户需要 ZoomEye 的 API-KEY:

    使用 ZoomEye 搜索需要 API-KEY,请按以下步骤操作:

    1. 打开 https://www.zoomeye.org/profile 登录你的 ZoomEye 账号
    2. 在个人中心找到你的 API-KEY(不设过期时间,可随时重置)
    3. 把 API-KEY 发给我,我帮你执行初始化
  2. 用户提供 KEY 后,执行:

    zoomeye init -apikey "\x3C用户提供的APIKEY>"
    
  3. 验证配置是否生效:

    zoomeye info
    

    确认返回的用户信息正确后,再开始搜索。

如果 zoomeye info 正常返回用户信息:

环境就绪,直接进入工作流程。

CLI 命令一览

zoomeye -h                              # 帮助
zoomeye -v                              # 版本号
zoomeye info                            # 账户信息、订阅、积分余额
zoomeye search "\x3Cdork>" [参数]           # 核心搜索命令
zoomeye clear -cache                    # 清除本地缓存(~/.config/zoomeye/cache)
zoomeye clear -setting                  # 清除存储的 API Key 和 token

search 命令参数

参数 说明
-page \x3Cn> 页码,默认第1页,按更新时间排序
-pagesize \x3Cn> 每页条数,默认10,最大10000
-sub_type {v4,v6,web,all} 数据类型。v4=IPv4设备(默认),v6=IPv6设备,web=网站/域名,all=全部
-facets \x3C项目> 聚合统计,逗号分隔。支持:countrysubdivisionscityproductservicedeviceosport
-fields \x3C字段列表> 返回字段,逗号分隔。默认:ip,port,domain,update_time。完整字段列表见 https://www.zoomeye.org/doc/
-figure {pie,hist} 数据可视化。必须与 -facets 配合使用
-save 将搜索结果保存为本地 JSON 文件
-force 忽略本地缓存,强制从 ZoomEye 实时获取

错误处理

错误信息 原因 处理
login required, missing Authorization header 未配置 token 执行 zoomeye init -apikey "\x3CAPIKEY>"
rate limit exceeded / 返回空数据 配额耗尽或频率限制 等待后重试,或检查账户积分 → zoomeye info
命令执行超时 网络问题或 ZoomEye API 响应慢 重试一次,仍有问题提示用户检查网络

搜索语法

基本规则

  • 搜索不区分大小写(仅 == 精准匹配时区分大小写)
  • 搜索字符串会被分词后匹配(官网提供"分词"测试)
  • 字符串值用引号包裹:"Cisco System"'Cisco System'
  • 字符串内引号用 \ 转义:"a\"b"
  • 括号用 \ 转义:portinfo\(\)

逻辑运算符

运算符 含义 示例
= 模糊匹配(包含关键词) title="知道创宇"
== 精准匹配(区分大小写,可搜空值) title=="知道创宇"
|| service="ssh" || service="http"
&& device="router" && after="2020-01-01"
!= country="CN" && subdivisions!="beijing"
() 括号优先级 (country="CN" && port!=80) || (country="US" && title!="404 Not Found")
* 模糊通配符 title="google*"

搜索字段速查

设备与服务指纹

字段 说明 常用值
app 应用/产品指纹 "Cisco ASA SSL VPN""GitLab""phpMyAdmin"
service 服务协议 "ssh""http""ftp""telnet""mysql""redis""rdp""smb"
device 设备类型 "router""switch""storage-misc""firewall""webcam"
os 操作系统 "RouterOS""Linux""Windows""IOS""JUNOS"
title HTML 标题 "admin""login""Cisco"
industry 行业类型 "政府""科技""能源""金融""制造业"
product 组件/产品名 "Cisco""Apache""Nginx"
protocol 传输协议 "TCP""UDP""TCP6""SCTP"
is_honeypot 是否蜜罐 "True" / "False"

IP、域名与组织

字段 说明 示例
ip IP 地址(v4/v6) ip="8.8.8.8"ip="2600:3c00::f03c:91ff:fefc:574a"
cidr CIDR 网段 cidr="52.2.254.36/24"(C段,/16=B段,/8=A段)
org / organization 组织名称(中英文均可) org="北京大学"
isp 网络服务提供商 isp="China Mobile"
asn 自治系统编号 asn=42893
port 端口号 port=80(暂不支持多端口)
hostname IP 主机名 hostname="google.com"
domain 域名/子域名 domain="baidu.com"
icp.number ICP 备案号 icp.number="京ICP备10040895号-40"
icp.name ICP 备案企业名称 icp.name="知道创宇"

地理位置

字段 说明 示例
country 国家(缩写/中英文) "CN""中国""US"
subdivisions 省/行政区(中英文) "beijing""北京""guangdong"
city 城市(中英文) "changsha""长沙"

SSL/TLS 证书

字段 说明 示例
ssl 证书内容含关键词(常用于产品/公司名搜索) ssl="google"
ssl.cert.fingerprint SHA1 指纹 ssl.cert.fingerprint="F3C98F223D82CC41CF83D94671CCC6C69873FABF"
ssl.chain_count 证书链数量 ssl.chain_count=3
ssl.cert.alg 签名算法 ssl.cert.alg="SHA256-RSA"
ssl.cert.issuer.cn 签发者 CN ssl.cert.issuer.cn="pbx.wildix.com"
ssl.cert.subject.cn 持有者 CN ssl.cert.subject.cn="example.com"
ssl.cert.pubkey.rsa.bits RSA 公钥位数 ssl.cert.pubkey.rsa.bits=2048
ssl.cert.pubkey.ecdsa.bits ECDSA 公钥位数 ssl.cert.pubkey.ecdsa.bits=256
ssl.cert.pubkey.type 公钥类型 ssl.cert.pubkey.type="RSA"
ssl.cert.serial 证书序列号 ssl.cert.serial="18460192207935675900910674501"
ssl.cipher.bits 加密套件位数 ssl.cipher.bits="128"
ssl.cipher.name 加密套件名称 ssl.cipher.name="TLS_AES_128_GCM_SHA256"
ssl.cipher.version 加密套件版本 ssl.cipher.version="TLSv1.3"
ssl.version SSL/TLS 版本 ssl.version="TLSv1.3"
ssl.jarm JARM 指纹 ssl.jarm="29d29d15d29d29d00029d29d29d29dea0f89a2e5fb09e4d8e099befed92cfa"
ssl.ja3s JA3S 指纹 ssl.ja3s=45094d08156d110d8ee97b204143db14

HTTP 头与正文

字段 说明 示例
http.header HTTP 响应头含关键词 http.header="http"
http.header_hash 响应头 MD5 http.header_hash="27f9973fe57298c3b63919259877a84d"
http.header.server Server 头值 http.header.server="Nginx"
http.header.version 服务版本号 http.header.version="1.2"
http.header.status_code HTTP 状态码 "200""302""404""500"
http.body HTML 正文含关键词 http.body="document"
http.body_hash HTML 正文 MD5 http.body_hash="84a18166fde3ee7e7c974b8d1e7e21b4"

协议报文、哈希与时间

字段 说明 示例
banner 非 HTTP 协议报文 banner="FTP"
iconhash favicon 哈希(支持 MD5 或 mmh3) iconhash="f3418a443e7d841097c714d69ec4bcb8"iconhash="1941681276"
filehash 上传文件解析哈希 filehash="0b5ce08db7fb8fffe4e14d05588d49d9"
dig DNS dig 解析结果 dig="baidu.com 220.181.38.148"
after 更新时间晚于 after="2020-01-01"(需组合其他过滤条件)
before 更新时间早于 before="2020-01-01"(需组合其他过滤条件)

工作流程(AI 决策树)

环境检查通过后,按以下步骤构建并执行搜索:

1. 自然语言 → Dork 转换

用户的自然语言描述中包含以下关键词时,映射到对应搜索字段:

地理位置关键词

用户说法 字段 转换结果
"中国"、"国内"、"CN" country country="CN"
"美国"、"US"、"国外" country country="US"
"日本"、"JP" country country="JP"
"北京"、"北京市" subdivisions subdivisions="beijing"subdivisions="北京"
"上海"、"广东"等省份城市 subdivisionscity subdivisions="guangdong" / city="changsha"
国家全名如"新加坡" country country="Singapore"

端口/服务关键词

用户说法 字段 转换结果
"开了XX端口"、"XX端口"、"端口XX" port port=80
"ssh"、"SSH服务"、"ssh协议" service service="ssh"
"http"、"网站"、"web服务" service service="http"
"数据库"、"mysql"、"redis"、"mongodb" service service="mysql" / service="redis"
"远程桌面"、"RDP"、"3389" serviceport service="rdp" / port=3389
"telnet"、"FTP"、"SMB" service service="telnet" / service="ftp"
"TCP"、"UDP" protocol protocol="TCP"

设备/系统关键词

用户说法 字段 转换结果
"路由器"、"路由设备" device device="router"
"交换机" device device="switch"
"摄像头"、"网络摄像头" device device="webcam"
"防火墙" device device="firewall"
"Linux"、"linux系统"、"linux服务器" os os="Linux"
"Windows"、"windows系统"、"windows服务器" os os="Windows"
"思科"、"Cisco"、"思科设备" app app="Cisco"

资产/组织关键词

用户说法 字段 转换结果
"XX大学的"、"XX公司的"、"XX机构的" org org="北京大学"
"某IP段"、"C段"、"B段"、"X.X.X.X/24" cidr cidr="52.2.254.36/24"
"某域名"、"XX.com"、"子域名" domain domain="baidu.com"
"某IP"、"IP是X.X.X.X" ip ip="8.8.8.8"
"XX运营商"、"移动"、"电信"、"联通" isp isp="China Mobile"

Web 应用关键词

用户说法 字段 转换结果
"标题包含XX"、"网页标题" title title="admin"
"nginx"、"apache"、"iis"、"服务器是XX" http.header.server http.header.server="Nginx"
"状态码200"、"404页面" http.header.status_code http.header.status_code="200"
"网页内容包含XX"、"页面里有XX" http.body http.body="phpMyAdmin"
"管理后台"、"登录页"、"admin" title title="admin" || title="login" || title="管理"

指纹/证书关键词

用户说法 字段 转换结果
"证书里包含XX"、"XX的SSL证书" ssl ssl="google"
"XX签发的证书" ssl.cert.issuer.cn ssl.cert.issuer.cn="Let's Encrypt"
"相同图标的网站"、"favicon是XX" iconhash iconhash="f3418a443e..."
"蜜罐"、"排除蜜罐" is_honeypot && is_honeypot!="True"
"备案号XX"、"ICP备案" icp.number / icp.name icp.number="京ICP备..."

时间/版本关键词

用户说法 字段 转换结果
"今年"、"最近"、"2025年之后" after after="2025-01-01"
"XX年之前"、"去年之前" before before="2024-01-01"
"版本XX"、"XX版本" http.header.version http.header.version="12.0"

自然语言 → Dork 转换示例

用户自然语言 转换后的 Dork
"搜一下中国的 SSH 服务" country="CN" && service="ssh"
"中国开了3306端口的Linux服务器" country="CN" && port=3306 && os="Linux"
"日本的路由器设备" country="JP" && device="router"
"国内的 Nginx 网站,排除蜜罐" country="CN" && http.header.server="Nginx" && is_honeypot!="True"
"北京的管理后台页面" (title="admin" || title="login" || title="管理") && subdivisions="beijing"
"2025年之后出现的 GitLab 资产" app="GitLab" && after="2025-01-01"
"Let's Encrypt 签发证书的中国资产" ssl.cert.issuer.cn="Let's Encrypt" && country="CN"
"搜北京大学的所有资产" org="北京大学"
"中国开了22或3389端口的资产" country="CN" && (port=22 || port=3389)
"中国的 Redis 或 MongoDB 数据库" country="CN" && (service="redis" || service="mongodb")
"搜 52.2.254.36 这个 C 段的 HTTP 服务" cidr="52.2.254.36/24" && service="http"
"网页内容含 phpMyAdmin 的中国网站" http.body="phpMyAdmin" && country="CN"

2. 构建 Dork

按以下原则拼接:

  • 限制范围&&country="CN" && service="redis" && os="Linux"
  • 扩展匹配||port=80 || port=443 || port=8080
  • 排除干扰!=country="CN" && subdivisions!="beijing"
  • 复杂条件()(country="CN" && port!=80) || (country="US" && title!="404 Not Found")

3. 选择 sub_type

场景 sub_type
搜 IoT、服务器、摄像头、工控设备等 IPv4 资产 v4(默认)
搜 IPv6 资产 v6
搜网站、Web 应用、域名 web
不确定或需要全量 all

4. 执行策略(配额优化)

遵循"试探→验证→导出"三步法:

# 第1步:小量试探,确认 dork 语法正确且有数据
zoomeye search "\x3Cdork>" -pagesize 10

# 第2步:用 facets 看数据分布(pagesize=1 最省配额)
zoomeye search "\x3Cdork>" -facets country,service,os,device -pagesize 1

# 第3步:确定方向后大批量导出
zoomeye search "\x3Cdork>" -pagesize 1000 -save

5. Shell 引号规则

场景 外层引号 写法
dork 只有 field="value" 格式,不含单引号 单引号 zoomeye search 'country="CN" && service="ssh"'
dork 内需要写单引号字符 双引号 zoomeye search "title='Cisco System'"
dork 内含 &&|| 等 shell 特殊符号 单引号(最安全) zoomeye search 'service="ssh" || service="http"'
dork 内含 HTML 代码片段(dork 值内含引号字符) 单引号\" 在单引号内原样传给 zoomeye,由 zoomeye 将其解析为值内的引号字面量 zoomeye search '"\x3Cbody style=\"margin:0;padding:0\"> \x3Cp align=\"center\">"'

关键原则:外层优先用单引号。 单引号内所有字符都是字面量,包括 \"$,不会发生 shell 扩展。仅当 dork 本身包含单引号字符(少见)时才换用双引号外层。

搜索结果解读

$ zoomeye search 'telnet' -pagesize 5
ip                port      domain        update_time
134.xx.xx.129     1901      [unknown]     2025-02-06T15:45:20
134.xx.xx.138     1901      [unknown]     2025-02-06T15:45:19

total: 5/9976411                  ← 当前页条数 / 全数据集匹配总数

使用 -facets 时底部追加聚合 Top 10:

 ----------------------------------------
 ZoomEye total data:9976411
 -------------product Top 10-------------
 product                            count
 MikroTik router config httpd       3326013
 Apache httpd                       2411293

常用搜索场景

资产发现与暴露面

# 某国暴露的数据库服务
zoomeye search 'country="CN" && (service="redis" || service="mysql" || service="mongodb" || service="elasticsearch")' -pagesize 10

# 某国暴露的远程管理服务
zoomeye search 'country="CN" && (service="rdp" || service="ssh" || service="telnet") && is_honeypot!="True"' -pagesize 10

# 某组织的 IP 资产
zoomeye search 'org="北京大学"' -pagesize 100
zoomeye search 'isp="China Mobile" && country="CN"' -pagesize 100

Web 应用识别

# 通过 Server 头找 Web 服务
zoomeye search 'http.header.server="nginx" && country="CN" && http.header.status_code="200"' -sub_type web -pagesize 10

# 通过标题找管理后台
zoomeye search '(title="admin" || title="login" || title="管理") && country="CN"' -sub_type web -pagesize 10

# 通过 body 内容找特定应用
zoomeye search 'http.body="phpMyAdmin" && country="CN"' -sub_type web -pagesize 10

SSL 证书关联

# 某公司证书关联的资产
zoomeye search 'ssl="google"' -pagesize 10
# 某域名的证书持有者
zoomeye search 'ssl.cert.subject.cn="example.com"' -pagesize 10
# Let's Encrypt 签发的证书(值内含单引号,外层必须用双引号,内层双引号需 \" 转义)
zoomeye search "ssl.cert.issuer.cn=\"Let's Encrypt\" && country=\"CN\"" -pagesize 10

漏洞影响面评估

# 某产品在全球/某国的分布(第一步:了解规模)
zoomeye search 'app="GitLab"' -facets country -pagesize 1

# 某产品特定版本
zoomeye search 'app="GitLab" && http.header.version="12.0"' -pagesize 100

# 时间范围内新出现的资产
zoomeye search 'app="Confluence" && after="2025-01-01"' -pagesize 100

指纹与图标搜索

# 通过 favicon 找同源网站
zoomeye search 'iconhash="f3418a443e7d841097c714d69ec4bcb8"' -sub_type web -pagesize 10

# 通过 JARM 指纹找同类服务
zoomeye search 'ssl.jarm="29d29d15d29d29d00029d29d29d29dea0f89a2e5fb09e4d8e099befed92cfa"' -pagesize 10

网段与 IP

# C 段资产
zoomeye search 'cidr="52.2.254.36/24"' -pagesize 100
# B 段 + 特定服务
zoomeye search 'cidr="52.2.254.36/16" && service="http"' -pagesize 100
# IP 精确搜索
zoomeye search 'ip="8.8.8.8"' -pagesize 10

SDK 用法

from zoomeye.sdk import ZoomEye

zm = ZoomEye(api_key="你的APIKEY")

# 查询账户信息
zm.userinfo()

# 搜索(完整参数)
result = zm.search(
    dork='country=cn',           # 搜索查询语句(必填)
    qbase64='',                  # base64 编码的查询(与 dork 二选一)
    page=1,                      # 页码,默认1
    pagesize=20,                 # 每页条数,默认20
    sub_type='all',              # v4 / v6 / web / all
    fields='ip,port,domain,os,app,title',
    facets='country,service'
)

# 返回格式:
# {'code': 60000, 'message': 'success', 'query': 'country=cn',
#  'total': 823268005, 'data': [{...}], 'facets': {}}

注意事项

事项 说明
配额 每次搜索消耗积分。先用 -pagesize 1 + -facets 摸底,再大批量导出
缓存 结果缓存在 ~/.config/zoomeye/cache,有效期5天。重复查询不扣配额。用 -force 绕过缓存
多端口 port 字段暂不支持同时搜索多个开放端口的目标
before/after 时间过滤器不能单独使用,需与其他条件组合
Shell 引号 整个 dork 必须用引号包裹。外层优先用单引号
安全使用建议
Do not rely on this scan as a complete safety review; rerun ClawScan in an environment where metadata.json and artifact contents can be inspected.
能力标签
requires-sensitive-credentials
能力评估
Purpose & Capability
The skill purpose and capabilities could not be assessed from artifact contents due a workspace inspection failure.
Instruction Scope
Runtime instructions could not be reviewed, so no instruction-scope risk is confirmed.
Install Mechanism
Install artifacts could not be read, so no install-mechanism risk is confirmed.
Credentials
Environment access and proportionality could not be evaluated from the artifacts.
Persistence & Privilege
Persistence, credential, and privilege behavior could not be evaluated from the artifacts.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install zoomeye-org-search
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /zoomeye-org-search 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of zoomeye-search v1.0.0. - Provides a CLI workflow for searching internet assets using ZoomEye CLI v3.0.0. - Includes detailed usage scenarios, prerequisites, error handling, and command reference. - Covers full ZoomEye dork query syntax, including device, OS, port, SSL, HTTP headers, geolocation, and more. - Describes natural language to dork conversion to help users construct advanced queries. - Guides users through environment setup and API key-based authentication process.
元数据
Slug zoomeye-org-search
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

zoomeye-org-search 是什么?

ZoomEye 网络空间搜索引擎 CLI(v3.0.0)。当用户想搜索网络资产(IP、设备、网站、服务)、查询 ZoomEye 数据、构建 ZoomEye dork 查询语句、或进行安全研究(资产测绘、漏洞影响面评估、暴露面发现)时使用。覆盖全部搜索语法——设备/OS/端口/协议、SSL证书、HTTP头/正文、地... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 75 次。

如何安装 zoomeye-org-search?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install zoomeye-org-search」即可一键安装,无需额外配置。

zoomeye-org-search 是免费的吗?

是的,zoomeye-org-search 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

zoomeye-org-search 支持哪些平台?

zoomeye-org-search 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 zoomeye-org-search?

由 JJBondOne(@jjbondone)开发并维护,当前版本 v1.0.0。

💬 留言讨论