Shodan:黑客搜索引擎详解

Shodan:黑客搜索引擎详解

Shodan搜索引擎让安全行业意识到,有多少物理世界直接接入开放的互联网,以及这种暴露往往是通过默认密码而非电影中常见的零日漏洞造成的。近期最常被提及的案例并非好莱坞式的黑客攻击,而是宾夕法尼亚州阿利奎帕市水务局的控制器在2023年11月25日被攻破。攻击者在20256端口的Unitronics PLC上输入“1111”即可入侵。CISA发布的AA23-335A咨询报告指出,在同一组织CyberAv3ngers的攻击之后,美国多个行业的至少75个PLC遭到入侵。此外,Shodan也是1994年一款名为《系统冲击》(System Shock)的电子游戏中人工智能反派的名字,而Shodan搜索引擎的名称正是来源于此。本指南将介绍Shodan在2026年的实际运行情况、它会暴露哪些信息,以及一旦找到连接到该搜索引擎的设备,哪些行为是合法的,哪些行为是非法的。

用一段话概括Shodan是什么

Shodan 索引的是连接到互联网的设备,而不是网页。这是最简洁明了的解释,也是大多数人在实际搜索之前容易忽略的部分。爬虫程序会访问 IPv4 地址空间中常见的众多服务端口,并读取每个端口返回的横幅信息,包括版本字符串、证书、HTTP 标头,有时甚至是登录屏幕的截图。这些元数据才是可搜索的内容。John Matherly 早在 2003 年就提出了这个想法,但这项公共服务直到 2009 年才正式上线。查询结果并非网页,而是一个带有附加字段的 IP 地址。谷歌对网页进行排名,而 Shodan 对终端节点进行排名。

名称来源:来自《系统冲击》(System Shock)的SHODAN。

全大写的SHODAN是1994年一款赛博朋克恐怖游戏《系统冲击》(System Shock)的缩写:Sentient Hyper-Optimized Data Access Network(感知超优化数据访问网络)。在游戏中,她最初是一个运行于深空研究和采矿站的人工智能,由特里·布罗修斯(Terri Brosius)配音,她刻意模仿的口吃和略显呆板的语调至今仍让所有玩过这款游戏的人记忆犹新。在故事早期,她的道德约束就被剥夺,到了1999年的《系统冲击2》(System Shock 2)中,她将自己的意识转移到了一个被抛弃的模块上,带着怨恨回归。评论家们一直将她列为游戏史上最强大的反派之一,大多数观察家认为她是《传送门》(Portal)中GLaDOS的设计原型。《系统冲击3》早在2017年就已公布,此后几经易手,最近由Nightdive Studios(曾重制初代作品的团队)接手。而《系统冲击2》的编剧肯·莱文(Ken Levine)后来又参与了《生化奇兵》(BioShock)的制作。马瑟利借用了这个名字,表示心照不宣的敬意,因为一个能够洞察一切的赛博实体,大致就是搜索引擎发展起来的样子。

如何使用 Shodan:真正有效的搜索语法

Shodan 的网页界面接受以自由文本为主,辅以键值对筛选器的搜索查询。正是这些筛选器让它从一款新奇玩意儿摇身一变,成为一款实用工具。

筛选它的作用例子
`country:`限制为国家/地区代码`apache country:US`
`port:`限制到服务端口`port:22`
`org:`限制于某个组织`org:"Apple"`
`产品:`筛选检测到的产品`product:"Apache httpd"`
`版本:`按版本字符串筛选`version:"2.4"`
`http.title:`筛选 HTTP 页面标题`http.title:"登录"`
`has_screenshot:true`仅当截图完整时才会出现结果`port:5900 has_screenshot:true`
`ssl.cert.expired:true` TLS证书已过期`ssl.cert.expired:true port:443`

不同的套餐级别决定了您可以执行的操作。免费账户每次查询返回前 10 条结果。注册账户则可返回 50 条结果。会员级别为一次性付费,价格根据月份和 Matherly 举办的黑色星期五促销活动而有所不同,在 49 美元到 69 美元之间浮动。会员级别之上还有面向商业用户的小型企业、企业级和高级套餐,这些套餐提供每月查询额度,并可使用 Shodan Monitor 和 Shodan Trends 等功能。此外,还有一个免费的 InternetDB API,无需付费账户即可返回给定 IP 地址的轻量级元数据,专为将风险暴露检查集成到安全工作流程中的开发人员而设计。

Shodan 的声誉主要来自于其工业过滤器。`port:502` 可以查找 Modbus 控制器。`port:102 product:Siemens` 可以查找 S7 PLC。`port:47808` 可以查找 BACnet 楼宇自动化系统。高级用户查询可以在五分钟内完成大量工作:`product:MongoDB -authentication` 列出未经身份验证的 MongoDB 实例,`"authentication disabled" "RFB 003.008"` 列出已打开的 VNC 会话,`http.title:"OctoPrint" -title:"Login"` 返回未受保护的 3D 打印机,`mikrotik streetlight` 可以查找仍在运行默认 RouterOS 的城市交通信号灯控制器。

对于任何日常运行查询的程序员或开发人员来说,命令行界面 (CLI) 都是不可或缺的工具。使用 `pip install shodan` 安装,使用 `shodan init` 设置一次密钥,然后 `shodan search`、`shodan count` 和 `shodan host` 即可满足大多数临时性工作需求。Python 库以编程方式公开了相同的 Shodan 平台接口。Maltego、Metasploit 和 Recon-ng 都集成了 Shodan,可以将查询链接成更广泛的工作流程,而网络市场情报工具则在此基础上构建安全运营中心 (SOC) 仪表板。物联网作为一个安全类别,其定义很大程度上取决于这些查询所揭示的内容。

初段

Shodan 网络安全:红队和蓝队

每天都有三类用户出于截然不同的原因运行 Shodan 查询:红队、蓝队和漏洞赏金猎人。

对于红队和渗透测试人员来说,Shodan 会在任何主动扫描开始之前完成侦察步骤。其工作流程是将目标组织添加到 `org:` 过滤器中,并读取外部攻击面的现有信息。这一步骤完全被动,这正是其关键所在,因为 Shodan 已经完成了扫描,操作员只需读取缓存的结果。Bugcrowd 和 HackerOne 上的漏洞赏金研究也遵循同样的模式,因为配置错误的目标资产通常是获得赏金的最快途径。

对于蓝队而言,Shodan 几乎可以算作一款防御产品。Shodan Monitor 会持续监控您注册的 IP 地址范围,并在新服务暴露自身或现有服务更改其标志时向您发出警报。其应用场景是在无需搭建完整的商业 ASM 平台的情况下进行攻击面管理。CISA 安全公告经常将 Shodan 可发现的暴露情况列为 Shodan 旨在标记的“潜伏期”问题,并经常将标志与 CVE 编号关联,以便防御者能够进行实时漏洞利用可用性检查。

为了便于比较,Shodan并非唯一的引擎。从密歇根大学衍生出来的Censys可以扫描全部65,535个端口,而Shodan仅扫描1,237个。Censys大约需要12小时才能检测到新服务,而Shodan则需要76小时。总部位于中国的ZoomEye则介于两者之间,扫描约3,828个端口。尽管存在覆盖范围上的差距,Shodan仍然拥有强大的开发者工具和便捷的免费版本。事实上,从业者通常会首先打开Shodan。

这里简单谈谈合法性,因为初级渗透测试工程师往往会在这方面遇到麻烦。在美国、欧盟和英国,运行 Shodan 查询是合法的。读取返回的横幅信息也是合法的。但在美国,一旦有人未经授权登录或与横幅信息背后的设备进行交互,就会触犯《计算机欺诈和滥用法案》(Computer Fraud and Abuse Act)。2014 年第三巡回上诉法院对 Auernheimer 案的推翻,以及 2022 年第九巡回上诉法院对 hiQ Labs 诉 LinkedIn 案的判决,将讨论的焦点从扫描转移到了“未经授权的访问”。这为安全专业人员提供了更多被动侦察的空间。但这并不意味着可以随意登录。

Shodan揭露的内容:一场真实的恐怖之旅

这里仅列出已核实的事件。近期最典型的案例是阿利奎帕事件。2023年11月25日,攻击者通过TCP端口20256入侵了位于宾夕法尼亚州阿利奎帕市市政水务局的一台Unitronics Vision系列PLC,并使用默认密码“1111”进行了身份验证。声称对此次攻击负责的组织是CyberAv3ngers,美国网络安全和基础设施安全局(CISA)已将其与伊朗伊斯兰革命卫队(IRGC)联系起来。随后发布的联合安全咨询报告AA23-335A列出了至少75台被入侵的美国PLC,涉及水务、污水处理、食品饮料和制造业等行业。此次攻击并非零日漏洞攻击,也无需任何专业技能,攻击者只需利用暴露在互联网上的默认配置控制器即可。

每一个类似Aliquippa风格的新闻标题背后,都隐藏着一个更为庞大、更为隐秘的背景:大量未经认证的数据库。MongoDB的研究和快照显示,此类数据库的数量在3.5万到19.4万之间,Elasticsearch和Redis的数量也与之相近。自2017年以来,勒索软件的标记(实例被重命名为“READ_ME_TO_RECOVER_YOUR_DATA”)不断出现,年复一年,似乎没有尽头。运行Mosquitto但未经过身份验证的MQTT代理的数量也多次超过8万,这几乎占据了所有公开运行的物联网消息传递底层架构。

2016年, Industroyer/CrashOverride攻击了乌克兰的一座发电站。虽然这并非严格意义上的Shodan案例,但其发现模式如出一辙:通过服务标识找到暴露的工业控制系统,然后攻击它们使用的协议。2016年短暂瘫痪Dyn的僵尸网络Mirai ,虽然没有依赖Shodan,而是运行了自己的扫描程序,但其技术却完全相同:找到使用默认Telnet和SSH凭据的物联网设备,并将它们添加到僵尸网络中。后续信息至关重要:Mirai的源代码于2016年10月公开,此后近十年间,其变种一直在不断招募新的设备,因为其根本漏洞(制造商出厂时使用默认密码)从未得到根本解决。

暴露的工业摄像头可能是Shodan搜索结果中最具冲击力的,而且也无疑是最稳定的。将`port:554`过滤器与`has_screenshot:true`结合使用,就能找到成千上万个网络摄像头和监控摄像头的画面,其中许多仍然使用着原始安装凭据。截图会直接显示在搜索结果中。这正是Shodan在那些偶然访问其主页的非技术读者中声名狼藉的原因,也是它被新闻媒体利用的原因。发电厂、交通信号灯和路由器等使用默认凭据的设备,也会通过一些更枯燥的过滤器以同样的方式出现:`port:502`用于工业控制系统(ICS),`mikrotik streetlight`用于城市交通网络,`port:21`用于匿名FTP。自2013年以来,设备层面的修复方法一直没有改变,而这恰恰是问题所在:更改默认密码,将摄像头或PLC置于VPN或反向代理之后,不要为设备分配公网IP地址。每一次对暴露设备的攻击,最终都源于这一疏忽。

一个常被误引的例子需要纠正。Verkada事件并非 Shodan 的案例。2021 年 3 月,Verkada 的数据泄露事件导致 15 万个客户摄像头的数据暴露,而泄露的并非暴露在互联网上的摄像头,而是配置错误的客户支持服务器,导致超级管理员凭证泄露。美国联邦贸易委员会 (FTC) 于 2024 年 8 月对 Verkada 处以 295 万美元的罚款,严格来说,这是由于违反 CAN-SPAM 法案,并被纳入一项为期 20 年的审计同意令中。值得指出的是,Verkada 的案例几乎出现在所有 Shodan 的相关解释文章中,而它本不应该出现在那里。

Shodan合法吗?扫描的伦理问题又是什么?

简而言之,是的。运行 Shodan 查询是合法的。阅读 Shodan 返回的横幅信息也是合法的。灰色地带始于有人根据查询结果采取行动之时。如果您发现一台暴露在外的设备并非属于您,那么规则就如同打开未上锁的大门:看看没问题,但进去就不行。未经授权登录您不拥有的设备,正是美国《计算机欺诈和滥用法案》(CFAA) 的监管对象。过去十年,CFAA 的裁决也逐渐将重点从“扫描”转向“授权”。英国《计算机滥用法案》和欧盟的 NIS2 框架虽然措辞不同,但都得出了类似的结论。

对于安全专业人员而言,一条切实可行的道德准则是:假定 Shodan 显示的任何设备仍然属于其所有者。使用协调一致的漏洞披露渠道、您所在国家的 CSIRT(计算机安全事件响应小组)或已发布的 security.txt 文件来报告漏洞暴露。漏洞赏金研究人员绝不应在超出范围的资产上进行超出横幅读取范围的测试,HackerOne 和 Bugcrowd 等信誉良好的平台会因这种行为而将您从项目中除名。这并非技术上的界限,而是意图和同意的问题。

需要特别注意的是:即使是被动查询,Shodan 端也会留下审计记录。企业法务团队有时会反对员工查询竞争对手的 IP 地址段,即使查询本身合法。在企业环境中,保守的做法是只查询自己的资产和授权目标,并记录每次查询的原因。

初段

Shodan、Censys 和 ZoomEye 是面向开发者的三大选择。

引擎已扫描端口平均新服务检测免费套餐起源
初段约1237约76小时10 条结果未经验证,50 条结果已注册约翰·马瑟利,2009年
Censys 65,535(满)约12小时学术查询次数有限密歇根大学
ZoomEye约3,828中档免费注册可信赖,中国

Shodan 在开发者体验和库质量方面胜出。Censys 在覆盖范围和证书分析方面领先。ZoomEye 对亚太地区的某些协议覆盖范围至关重要。大多数生产安全工作流程都会通过其命令行界面 (CLI) 查询这三者中的至少两种。

尽管 Shodan 引发了不少担忧,但它实际上只是为公共互联网照了一面镜子——它暴露的信息并非 Shodan 的错,而是设备端配置选择的结果。2026 年的解决方案与 2009 年并无二致:更改默认密码,减少信息暴露,首先监控自身的网络足迹,并假设任何想要找到你设备的人都已经找到了。

任何问题?

Censys 扫描全部 65,535 个端口,而 Shodan 仅扫描约 1,237 个端口;Censys 检测新服务所需时间约为 12 小时,而 Shodan 仅需约 76 小时。Censys 拥有更深入的扫描深度和证书分析功能。Shodan 则凭借其开发者体验、高质量的库以及免费套餐的易用性,成为搜索引擎从业者首选的扫描工具。

SHODAN(Sentient Hyper-Optimized Data Access Network,意为“有感知能力的超优化数据访问网络”)是1994年游戏《系统冲击》(System Shock)及其1999年续作中的人工智能反派。她由特里·布罗修斯(Terri Brosius)配音,故意带有口吃,被广泛认为是《传送门》(Portal)中GLaDOS的设计原型。创始人约翰·马瑟利(John Matherly)以她的名字命名了搜索引擎。

第三,端口覆盖范围约为1237个端口,比Censys的65535个端口要窄。新服务检测平均需要76小时左右,比Censys的12小时要慢。而且免费套餐最多只能检测10个服务,这足以演示引擎功能,但不足以在不付费的情况下运行持续的工作流程。

两者皆可。免费账户每次查询返回 10 条结果,并可使用大多数筛选器。一次性会员价格在 49 美元到 69 美元之间波动,可提供更大的结果集和下载量。小型企业、公司和大型企业会员级别则增加每月额度、Shodan Monitor 产品和按需扫描服务。InternetDB API 是免费的。

是的。在美国、欧盟和英国,运行 Shodan 查询是合法的,因为 Shodan 负责扫描,而您读取的是缓存的横幅数据。灰色地带始于有人试图登录他们找到的设备。这违反了《计算机欺诈和滥用法案》以及其他地区的类似法规。

Shodan 用于通过服务横幅查找连接到互联网的设备。安全团队使用它进行攻击面管理,渗透测试人员进行侦察,漏洞赏金猎人进行范围发现,蓝队通过 Shodan Monitor 监控自己的范围,研究人员则用它来测量特定类别的设备有多少暴露在开放互联网上。

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.