当入侵者想要闯入某个机构时,他们会寻找入口。开放端口就是黑客或威胁行为者为访问数字网络而寻找的入口之一。这个开放端口可能位于防火墙、服务器或任何与网络相连的计算设备上。就像一扇没有上锁的门可能会危及你的隐私并让人获得进入实体建筑的权限一样,一个开放端口也可能成为黑客入侵你系统的切入点,从而使你暴露在他们的恶意意图之下。
在下文中,我们将分享最容易遭受攻击的端口以及用于防护它们的关键安全策略。
开放端口漏洞概览
网络中的开放端口是一种漏洞。它为未经授权的访问提供了潜在入口,攻击者可能绕过防火墙或其他安全措施并进入您的网络。进入之后,他们可以实施所需的攻击,或进行侦察以进一步了解您的组织以及如何加以利用。开放端口带来重大的 安全风险 因此应成为安全管理的高优先级事项。
确保开放端口的重要性
要降低受到攻击的脆弱性,必须减少攻击面。您可以通过减少系统中开放端口的数量来做到这一点。例如,允许来自外部的 Remote Desktop Protocol (RDP, port 3389) 连接,可以为合法用户提供对企业网络的非现场访问。即便如此,这仍然为威胁参与者提供了机会,让他们寻找并主动利用开放的 RDP 端口。
端口(Ports)是什么?
定义与用途
端口可以看作是一个虚拟入口,用于承载指向特定服务和应用程序的网络流量。每个端口都有一个独特的编号来加以区分。这些端口可以由指定的管理员进行管理,他们可以通过打开或关闭端口来允许或阻止某些类型的流量。例如,Web 流量依赖于端口 80 和 443。如果你有一台服务器为外部用户托管 Web 应用程序,你需要打开这些端口以授予他们访问权限。所有未使用的端口都应保持关闭。
端口类型:TCP 和 UDP
最常见、并使用端口号的传输协议是传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User Datagram Protocol,UDP)。软件和服务被设计为使用 TCP 或 UDP,并分配了相应的端口号。
- TCP 是一种面向连接的协议,内置了重传和错误恢复机制。TCP 通常是更可靠的协议。
- UDP 是一种无连接协议,不会恢复或纠正消息错误。它被称为“尽力而为(best effort)”协议。
端口状态
TCP 和 UDP 端口会根据你的需求处于以下三种状态之一:
- 开放 — 端口会响应连接请求。
- 已关闭 — 端口不可达,表示没有对应的服务在运行。
- 已过滤 — 防火墙会监控流量,并阻止对特定端口的连接请求。
与开放端口相关的安全风险
威胁行为者会使用开放端口来实施攻击并利用漏洞。下面,我们将分享恶意攻击者常用的一些常见漏洞利用方式与攻击手法,然后进一步详细介绍两起通过开放端口漏洞实施的著名攻击。
常见的漏洞利用方式与攻击手法
- 开放的 RDP 连接 可用于发起凭据填充(credential-stuffing)攻击,以访问服务器或投递勒索软件负载。
- 拒绝服务(DoS)攻击 会从多台机器向特定服务发送大量连接请求,以扰乱该服务。一个典型例子是针对 Web 服务器的 Web 端口进行攻击,消耗其带宽和资源,从而阻止合法用户访问该服务。
- Web 服务端口 通常用作攻击的入口点,用于发起 SQL 注入和跨站请求伪造等攻击,以利用应用程序本身中的漏洞。
- 中间人(Man-in-the-middle)攻击 可用于监听已知端口的未加密数据流量,以收集敏感信息。一个示例是将数据流量重新路由以拦截电子邮件流量。
案例研究:WannaCry,RDP Pipe Plumbing
最著名的攻击之一是 WannaCry Ransomware attack 于 2017 年发起的攻击。该攻击在全球范围内实施,影响了 150 个国家/地区超过 300,000 台计算机。攻击利用了 445 端口上的 SMB 协议中的漏洞。一旦攻击者渗透到组织内部,他们就会加密其文件,并要求支付赎金。
RDP Pipe Plumbing 是一种存在于 Remote Desktop Protocol 中的漏洞,可利用 Windows 命名管道(Windows-named pipes)。攻击者会针对 RDP 的 3389 端口,创建与合法管道同名的伪造管道服务器实例。随后,他们使用这些伪造管道来拦截 RDP 客户端与服务器之间的通信。这种中间人攻击(man-in-the-middle)可实现对敏感数据的未授权访问,包括剪贴板内容和文件传输。
易受攻击的端口及其风险
以下是开放端口漏洞列表。阅读以了解哪些最容易被利用。
21 端口漏洞(FTP)
文件传输协议(File Transfer Protocol,FTP)分配使用端口 21。FTP 使用户能够通过未加密的传输方式在服务器之间发送和接收文件。FTP 被认为已经过时且不安全,不应在任何文件传输中使用,尤其是涉及任何敏感数据的传输,因为它可能很容易通过以下任一方法被利用:
- 暴力破解密码
- 匿名认证(可以使用“anonymous”作为用户名和密码登录到 FTP 端口)
- 跨站脚本攻击
- 目录遍历攻击
- 中间人攻击(Man-in-the-middle)
22端口漏洞(SSH)
22端口通常用于 Secure Shell 连接。由于连接已加密,因此相比 Telnet 更受青睐。22端口常用于远程管理,是用于确保 安全的远程访问 的 TCP 端口。尽管其安全性有所增强,但仍存在一些基础漏洞:
- 泄露的 SSH 密钥。如果没有正确保护 SSH 密钥,攻击者可能会访问这些密钥,从而在不需要具备所需密码的情况下进入系统。
- 暴力破解凭据。开放的 SSH 端口很容易被发现,从而使攻击者能够猜测用户名和密码组合。
端口 23 漏洞(Telnet)
Telnet 是一种使用端口 23 的 TCP 协议。它连接到使用命令行界面的远程设备,例如交换机、路由器和服务器。与 FTP 类似,Telnet 不进行加密,已过时且被认为不安全。它已被 SSH 取代。其常见的漏洞包括:
- 凭据暴力破解。攻击者利用开放端口的漏洞,针对暴露的服务发起反复的登录尝试,试图通过猜测凭据来获得未授权访问。
- 欺骗与凭据窃听。开放端口可能使服务暴露给攻击者;攻击者会利用这些端口来拦截并窃取凭据,通常是在数据传输过程中假冒为合法实体。
端口 25 漏洞(SMTP)
端口 25 由 Simple Mail Transfer Protocol (SMTP) 用于发送和接收电子邮件。SMTP是在网络安全并非主要关注点的时期开发的,因此如果没有第三方安全解决方案,它很容易被利用。若未进行适当配置和保护,此 TCP 端口可能遭受诸如:
- 欺骗(Spoofing)。攻击者可以伪造电子邮件头,使消息看起来仿佛来自受信任的来源。
- 垃圾邮件(Spamming)。未受保护的 SMTP 服务器可能被利用来发送大量未经请求的电子邮件,通常会使系统不堪重负并传播恶意软件。
- 中间人攻击(Man-in-the-middle),尤其是在电子邮件以明文发送时。
端口 53 漏洞
端口 53 用于域名系统(Domain Name System,DNS),它会将 facebook.com 或 linkedin.com 这类人类可读的域名解析为 IP 地址。DNS 对互联网流量至关重要,并分别使用 UDP 和 TCP 来处理查询与传输。这一端口特别容易受到分布式拒绝服务(Distributed Denial of Service,DDoS)攻击:攻击者会以海量请求淹没 DNS 服务器,从而可能导致服务中断。
- DDoS 攻击。这类攻击很常见,攻击者会尝试通过向服务器发送大量数据包来使其不堪重负,从而造成服务中断。这种攻击手段有多种变体,包括 dDoS(distributed denial of service,分布式拒绝服务)以及 DNS 放大攻击。
端口 137 和 139(NetBIOS over TCP)以及 445(SMB)漏洞
端口 137 和 139(NetBIOS over TCP)以及 445(SMB)在 Windows 环境中通常与文件共享和网络通信相关。然而,它们也已知会暴露于多种安全威胁之下:
- EternalBlue 漏洞利用程序(exploit)。该攻击利用了旧版 Microsoft 计算机中的 SMBv1 漏洞。它在 2017 年全球范围爆发的 WannaCry 挺赝(ransomware)攻击之后广为人知。
- 捕获 NTLM 哈希。攻击者可以拦截并捕获 NTLM 哈希,然后使用它们以合法用户身份进行认证。
- 暴力破解 SMB 登录凭据。攻击者可能会通过系统性地尝试不同的用户名和密码组合,直到找到正确的凭据为止,从而尝试获取访问权限。
端口 80、443、8080 和 8443 的漏洞(HTTP 和 HTTPS)
任何访问过网页的人都在其网络浏览器中使用了 HTTP 或 HTTPS 协议。正如前面提到的,网络端口通常会被攻击者针对,用于多种类型的攻击,包括:
- 跨站脚本攻击。 攻击者会向网页和应用程序中注入恶意脚本,以窃取 Cookie、令牌或数据。
- SQL 注入。攻击者将恶意 SQL 代码插入输入字段,以操纵数据库。
- 跨站请求伪造。攻击者利用用户的网络浏览器与 Web 应用程序之间的信任关系,诱骗用户在不知情或未经同意的情况下,在网站上执行操作。
- DDoS 攻击
1433、1434 和 3306 端口的漏洞(被数据库使用)
这些是 SQL Server 和 MySQL 的默认端口。它们用于执行各种恶意行为,包括:
- 分发恶意软件。攻击者使用开放端口渗透网络,并分发恶意软件,从而可能破坏系统、窃取数据或损坏基础设施。
- DDoS 场景。 在分布式拒绝服务(Distributed Denial of Service,DDoS)攻击中,利用开放端口漏洞以海量流量淹没服务,导致系统无法使用。
- 查找具有可被利用的默认配置、且未受保护的数据库。开放端口可能会暴露使用较弱或默认设置的数据库,使攻击者能够高效利用它们来获取未授权访问,并篡改或窃取敏感信息。
端口 3389 漏洞(远程桌面)
- 远程桌面协议(Remote Desktop Protocol)的漏洞会使 RDP 暴露于暴力破解攻击和中间人攻击。
• BlueKeep 漏洞(CVE-2019-0708)是一种存在于较旧的 Microsoft 操作系统中的 RDP 漏洞,例如 Windows 7 和 Windows Server 2008。攻击者可利用 BlueKeep 在无需用户介入的情况下,将恶意软件传播到整个组织。
保护开放端口的步骤
优先选择加密端口,而不是未加密端口
在基于 IP 的环境中使用的多数常规服务现在都提供了对旧版纯文本(原始)协议的加密版本。一个良好做法是切换到加密版本,以避免在信息通过线路传输时发生任何数据泄露。
定期打补丁和更新
打补丁可让你的系统和防火墙保持最新。供应商会定期发布补丁,用于修复其产品中的漏洞和缺陷,而网络犯罪分子可能会利用这些问题来获得对你系统和数据的完全访问权限。
端口扫描工具
你还应该定期扫描并检查端口。主要有三种方法可以做到这一点:
- 命令行工具。 如果你有时间手动扫描和检查端口,可以使用命令行工具来发现并扫描开放端口。示例包括 Netstat 和 Network Mapper,你可以在包括 Windows 和 Linux 在内的各种操作系统上安装它们。
- 端口扫描器。 如果你希望获得更快的结果,可以考虑使用端口扫描器。计算机程序会检查端口是开放、关闭还是被过滤。流程很简单:扫描器会向特定端口发送用于建立连接的网络请求,并捕获返回的响应。
- 漏洞扫描工具。 漏洞扫描工具是自动化应用程序,用于识别并盘点 IT 资产(例如服务器、桌面终端和网络设备),以发现安全弱点。它们会扫描因配置错误或代码缺陷而产生的已知漏洞。此类扫描结果能够为组织的风险水平提供宝贵洞见,并可用于推荐有效的缓解策略。
监控服务配置变更
及时了解对服务器、防火墙、交换机、路由器以及其他网络设备所做的任何配置变更非常重要,因为这些变更可能会引入漏洞。这类修改可能是意外发生的,也可能是有意为之。使用 Netwrix Change Tracker,您可以通过跟踪未授权的变更以及其他可疑活动来加固系统。尤其是,它提供以下功能:
- 关于配置变更的可执行告警
- 自动记录、分析、验证并核查每一次变更
- 实时变更监控
- 持续的应用程序漏洞监控
使用入侵检测与防御系统(IDP 和 IPS)
IDS 会监控网络流量,寻找可疑活动或已知威胁的迹象;而 IPS 则更进一步,对检测到的威胁进行阻断。两者都能防止以开放端口为目标的常见漏洞利用,包括 SQL 注入、DDoS 攻击以及其他网络威胁。
实施 SSH 密钥
SSH 密钥不太容易遭受暴力破解攻击、网络钓鱼和人为错误。这些加密密钥消除了用户记住并输入密码的需求,从而降低通过开放端口发生未授权访问的可能性。SSH 密钥有两种类型:
- 私钥或身份密钥,用于识别用户并授予其访问权限
- 公钥或授权密钥,用于确定谁可以访问你的系统
开展渗透测试和漏洞评估
渗透测试和漏洞评估都应用于发现 IT 基础设施中的漏洞,尽管两者采用的方法不同。渗透测试(又称 pen test)由安全专业人员执行:他们会在计算机系统或网络上模拟网络攻击,以识别并利用漏洞。它可以展示攻击可能如何主动渗入你的网络。另一方面,漏洞评估是一种自动化扫描,用于识别并对已知漏洞进行排序。二者结合起来,能够对你的端口漏洞提供全面的总结。
端口安全最佳实践
- 评估外部攻击面。 应通过识别并保护攻击者可能利用的开放端口,定期评估网络暴露于外部威胁的程度。确保每个开放端口都是必需的。与已弃用应用或服务相关的端口请立即关闭。
- 持续监控新出现的风险。 实施持续的并且 全面监控 以发现与开放端口相关的新的漏洞和威胁。必要时,及时响应并采取缓解措施。
- 对开放端口的性能进行分级。 定期审查并评估所有开放端口的安全性和功能。确保开放端口已充分映射到其指定的内部目标,并对所有适用资源应用最小权限原则。
- 遵循一致的补丁计划。 定期打补丁可以带来显著的安全收益。确保所有与安全相关的补丁在发布后立即部署。
- 配置错误、未修补且存在漏洞的服务。 未修补或配置错误的系统可能导致系统被攻破。请验证所有配置均遵循最佳安全实践。实施监控系统,以便在发生配置变更时及时提醒网络支持人员。
结论
开放端口就像一把双刃剑。一方面,它们对业务运营至关重要,可用于启用网页、应用程序和服务。另一方面,它们也为威胁行为者提供了渗透并利用你网络的机会。因此,管理和监控开放端口是网络安全的关键环节,绝不能低估。组织应制定一项策略,明确所有开放端口的加固/保护流程,并确保所有系统和软件定期更新。像 Telnet 和 FTP 这类不安全的端口应逐步淘汰,并用采用现代安全技术的解决方案替换。定期开展评估,确保所有开放端口都是必要的,并确认配置符合最佳实践。请记住,随着技术的发展,你的端口需求也会发生变化。在合适的策略与关注下,开放端口可以继续成为可用的资产,而不是使业务面临更大风险的漏洞。
常见问题
分享到
了解更多
关于作者
Dirk Schrader
安全研究高级副总裁(VP)
Dirk Schrader 是 Netwrix 的常驻 CISO(EMEA)以及安全研究高级副总裁(VP)。他拥有 CISSP(ISC²)和 CISM(ISACA)等资质,是一位在 IT 安全领域拥有 25 年经验的老兵。Dirk 致力于以现代化的方式应对网络威胁,从而推动网络韧性的发展。Dirk 曾参与全球范围内的网络安全项目:职业初期从技术与支持岗位做起,随后在大型跨国公司和小型初创企业中分别担任销售、市场与产品管理等职务。他已发表大量文章,强调为实现网络韧性,需要重视变更管理与漏洞管理。