1、漏洞描述

ZDI-CAN-25373 是一个 Windows 快捷方式文件(.LNK)漏洞,它允许攻击者通过精心制作的恶意快捷方式文件来执行隐藏的恶意命令。攻击者通过在 .LNK 文件的 COMMAND_LINE_ARGUMENTS 结构中填充大量空白字符(如空格、水平制表符、换行符等)来隐藏恶意命令。这些填充字符使得恶意负载在 Windows UI 中不可见,从而规避了检测。

2. LNK 文件格式结构详解

Windows 快捷方式文件,也称为 Shell 链接文件(.lnk),是 Windows 操作系统使用的一种二进制文
件,用作文件、文件夹或应用程序的快捷方式。了解这些字段对于文件取证、恶意软件分析以及对 Windows 快捷方式的深入理解都非常重要。

以下是 MS-SHLLINK 文件格式的主要组成部分和关键字段介绍:

一个典型的 MS-SHLLINK 文件由以下几个主要结构组成,其中一些是必须的,一些是可选的:

  • SHELL_LINK_HEADER (必须):快捷方式文件的核心头部,包含许多重要的标志和基本信息。
  • LINKTARGET_IDLIST (可选):如果快捷方式指向一个 Shell 项(如文件、文件夹、控制面板项等),这个结构会描述其在 Shell 命名空间中的位置。
  • LINKINFO (可选):包含有关链接目标位置的详细信息,例如卷序列号、网络路径等,用于在目标移动后帮助系统找到它。
  • STRING_DATA (可选):包含各种字符串数据,如目标路径、工作目录、命令行参数、图标位置等。
  • EXTRA_DATA (可选):一个包含一个或多个额外数据块的区域,用于存储其他可选信息。

主要字段和结构详解

2.1 SHELL_LINK_HEADER

这是每个 .LNK 文件的开头部分,提供了关于快捷方式的基本属性和其后续结构的信息。

  • HeaderSize (4 字节):头的大小,通常为 0x0000004C。
  • LinkCLSID (16 字节):一个固定的 GUID,用于标识这是一个 Shell Link 文件,通常为 {00021401-0000-0000-C000-000000000046}。
  • LinkFlags (4 字节):一个位字段,包含指示文件中是否存在哪些可选结构的标志,以及快捷方式行为的各种标志。重要的标志包括:
  • HasLinkTargetIDList:指示是否存在 LINKTARGET_IDLIST 结构。
  • HasLinkInfo:指示是否存在 LINKINFO 结构。
  • HasName:指示是否存在 STRING_DATA 中的 NAME_STRING。
  • HasRelativePath:指示是否存在 STRING_DATA 中的 RELATIVE_PATH。
  • HasWorkingDir:指示是否存在 STRING_DATA 中的 WORKING_DIR。
  • HasArguments:指示是否存在 STRING_DATA 中的 COMMAND_LINE_ARGUMENTS(这在 ZDI-CAN-25373 漏洞中尤其重要)。
  • HasIconLocation:指示是否存在 STRING_DATA 中的 ICON_LOCATION。
  • IsUnicode:指示字符串数据是否为 Unicode 格式。
  • FileAttributes (4 字节):链接目标的原始文件属性(例如,只读、隐藏、系统等),与 GetFileAttributes 函数返回的值类似。
  • CreationTime (8 字节)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/912537.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912537.shtml
英文地址,请注明出处:http://en.pswp.cn/news/912537.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统笔记3

接口管理命令: ip命令 字符终端 nmcli命令 字符终端 nmtui命令 可视化终端 ip命令: 使用 ip 命令可以配置临时网络的连接信息,相关命令如下: ip link:显示网络设备运行状态 ip -s link:显示更详细的设备信…

Vue3 根据路由配置实现动态菜单

前言 最近在学习Vue3的相关语法,在阅读官方文档的时候觉得官方文档的菜单栏比较简洁美观,于是想着能不能自己实现一个类似的多级菜单。代码大部分由AI所做(感谢活在这个人工智能时代)。 设计 主要就是路由设计以及菜单设计 路…

C#中 Winform如何实现跨页面调用

设计页面 如下 其中Form2为启动项 当点击订阅消息的时候 会创建Form1页面 当 Form1页面的点击发送的时候 自动将发送的消息同步到label1中 Form2的代码如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using S…

一个完整的Python解决方案,用于使用机器学习筛选最优模型并分析纳米酶特征与Km/Vmax的相关性

以下是一个完整的Python解决方案,用于使用机器学习筛选最优模型并分析纳米酶特征与Km/Vmax的相关性。代码包含数据预处理、模型选择、特征相关性分析和结果可视化,并附带详细注释。 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn…

用python可视化南方大暴雨及洪水数据分析

用python可视化南方大暴雨及洪水数据分析 截至20250621,南方地区(特别是广东、广西、湖南等地)遭遇的极端暴雨和洪水灾害,斑点鱼将使用Python进行数据分析和可视化,展示洪水影响区域、雨势强度以及经济损失等情况。 数据搜集如下: import …

DeepSPV:一个用于从二维超声图像进行三维脾脏体积估算的深度学习流程|文献速递-最新论文分享

Title 题目 DeepSPV: A deep learning pipeline for 3D spleen volume estimation from 2D ultrasound images DeepSPV:一个用于从二维超声图像进行三维脾脏体积估算的深度学习流程 01 文献速递介绍 1.1 临床背景 脾肿大,即脾脏增大,是…

PHP在做爬虫时的解决方案

爬虫不是一个小众的场景,所以无论是哪个语言,都有很多相应的生态库.这里介绍一下PHP的技术方案和代码量。 关键能力 对页面的解析能力 PHP的官方扩展中有Dom扩展,但是我建议使用electrolinux/phpquery这个库,他相当于一个PHP版的JQ. 算上加载文件,只要三行就能获取title标签…

zookeeper Curator(2):Curator的节点操作

文章目录 zookeeper 的安装Curator 介绍Curator API 常用操作本章必要的相关依赖和配置建立连接第一种方式第二种方式 关闭连接添加节点创建节点创建节点并设置值和类型创建多级节点 查询节点查询数据查询所有子节点查询节点信息 修改节点修改节点数据修改节点(乐观锁修改&…

计算机视觉的定义及应用方向

近两年来,机器学习、深度学习、人工智能等方向逐步成为很多同学最关注的研究和就业方向。不可否认,计算机视觉作为深度学习的应用领域之一,在工业界取得了蓬勃的发展,也是目前最热门的方向之一。 计算机视觉是什么 计算机视觉主要…

低代码开发实战:使用活字格快速创建 Java Web API

引言 在当今快速发展的软件开发领域,低代码平台因其高效性和易用性而备受关注。Java Web API作为企业级应用开发的重要组成部分,与低代码平台的结合能够显著提升开发效率。本文将以葡萄城活字格平台为例,详细介绍如何利用其低代码特性快速创…

当后端接口返回格式不是easyui默认的格式,怎么办

方法:可以增加一个数据过滤方法对后端的接口结构进行转换。 分析:easyui默认情况下,只能接收如下格式的接口: {"total": 1,"rows": [{"id": 1,"userName": "jiao","unionId": 1,"phone": "2…

第一弹 AC Module: 和编程语言无关以AI为中心的自包含模块化理念和实现

背景和问题 说起模块/包,几乎是大部分语言都有的概念,因为一个项目会很庞大,如果单纯只用文件做隔离,文件可能几千上万个,所以需要在项目和文件之间获得一个平衡,这个时候就有包和模块的概念。比如python 你…

Edge(chrome)右键插件的右键菜单怎么设置

主要使用 contextMenus 右键菜单功能,正常用它给页面设置右键菜单,其实它也可以给插件还有其它功能设置右键菜单,是根据 contexts 选项来设置给哪个功能设置右键菜单。 首先添加权限 "permissions": ["contextMenus"], …

后端设计笔记13 FM

1.理论 2.实践 LAB 报错以后可以双击错误,便可以定位到错误,或者打开pattern查看 还可以analyse

闲庭信步使用SV搭建图像测试平台:第十九课——YCbCr图像转RGB图像

(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注…

C++(智能指针)

智能指针 1.基础: 1.1 概念 智能指针是用于自动管理动态分配内存的RAII(Resource Acquisition Is Initialization)对象。它们通过自动释放内存来防止内存泄漏,是替代裸指针的安全工具。 1.2 解析 众所周知,堆内存对象…

Sentinel 授权规则详解与自定义异常处理

Sentinel 授权规则详解与自定义异常处理 在微服务系统中,权限控制和访问保护是至关重要的一环。本文将详细介绍如何通过 Sentinel 的 授权规则(AuthorityRule) 控制资源访问权限,并结合实际案例说明如何设置白名单与黑名单&#…

LeetCode Hot 100 最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: 输入:nums [-2,1,-3,4,-1,2,1,-5,4] 输出:6…

Python UI自动化演进格局:从传统库到AI驱动的智能代理

引言 UI自动化的持久需求 在现代软件工程和业务流程管理中,图形用户界面(GUI)自动化扮演着至关重要的角色。它不仅仅局限于软件测试领域,更是机器人流程自动化(RPA)、自动化数据录入、遗留系统集成以及在AP…

【Java面试】如何解决MQ死信队列?

如何解决MQ死信队列? 一、预防死信产生(从源头减少死信) 消费者端健壮性优化 捕获所有可能的异常,区分可恢复异常(如网络超时)和不可恢复异常(如数据格式错误)。对可恢复异常实现自…