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

深度剖析 LNK 参数隐藏攻击 (ZDI-CAN-25373)

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.lryc.cn/news/578205.html

相关文章:

  • 【甲方安全建设】敏感数据检测工具 Earlybird 安装使用详细教程
  • 门控循环单元(GRU):LSTM 的轻量级高效 “记忆专家”
  • Instrct-GPT 强化学习奖励模型 Reward modeling 的训练过程原理实例化详解
  • beforeRouteLeave 的触发本质
  • 2025年6月个人工作生活总结
  • 字节跳动 C++ QT PC客户端面试
  • 机器人仿真(1)Ubuntu24.04下CLion的ROS2开发环境配置
  • C++ 快速回顾(五)
  • 接口测试之接口关联
  • OpenCV CUDA模块设备层----- 正切(tangent)运算函数tan()
  • 一文讲清楚React中类组件与函数组件的区别与联系
  • C/C++ 使用rapidjson库 操作Json格式文件(创建、插入、解析、修改、删除)
  • 【2025最新】Ubuntu22.04 安装 MySQL8.0 教程
  • 零成本接入+企业级部署:2025年AI大模型实战指南
  • Linux云计算基础篇(2)
  • 对称非对称加密,https和http,https通讯原理,Charles抓包原理
  • 三态门Multisim电路仿真——硬件工程师笔记
  • 大模型在多发性硬化预测及治疗方案制定中的应用研究
  • Python 安装使用教程
  • 探索未来AI的无限可能:使用oTTomator Live Agent Studio平台上的开源AI代理!
  • JSON-LD 开发手册
  • 衡石科技chatbot分析手册--钉钉数据问答机器人配置
  • 衡石科技使用手册-企业即时通讯工具数据问答机器人用户手册
  • java中agent的作用
  • 免费文件管理 智能转换GC-Prevue:PDF 转 Word 多种格式 一键完成
  • 云手机主要是指什么?
  • 纯前端本地文件管理器(VSCode风格)(浏览器对本地文件增删改查)
  • DAY 45 Tensorboard使用介绍
  • 2 大语言模型基础-2.2 生成式预训练语言模型GPT-2.2.2 有监督下游任务微调-Instruct-GPT强化学习奖励模型的结构改造与维度转换解析
  • 高效读取文件中指定行段的两种方法