深度剖析 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.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死信隊列? 一、預防死信產生(從源頭減少死信) 消費者端健壯性優化 捕獲所有可能的異常,區分可恢復異常(如網絡超時)和不可恢復異常(如數據格式錯誤)。對可恢復異常實現自…