尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Anthropic-Cybersecurity-Skills 实战指南:LNK 快捷方式与 Jump List 跳转列表取证分析

Anthropic-Cybersecurity-Skills 实战指南:LNK 快捷方式与 Jump List 跳转列表取证分析 Anthropic-Cybersecurity-Skills 实战指南LNK 快捷方式与 Jump List 跳转列表取证分析【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-SkillsLNKWindows 快捷方式文件与 Jump List跳转列表是 Windows 取证中最具价值的用户活动痕迹之一无论用户是打开文档、运行程序还是访问网络共享系统都会在幕后自动生成对应的 LNK 记录即便目标文件已被彻底删除这些痕迹依然保留着目标路径、时间戳、卷序列号乃至主机 MAC 地址等关键元数据。本文以 analyzing-lnk-file-and-jump-list-artifacts 技能文档为骨架系统讲解 LNK 与 Jump List 的存储位置、Shell Link 二进制结构、LECmd/JLECmd 取证工具链操作、Python 手工解析实现以及文件访问、可移动介质、网络共享三类实战调查场景并补充仓库内 process.py 与 agent.py 的源码级实现细节。读者完成后将掌握一套目标已删除仍可还原访问证据的完整取证与时间线重建能力。概述为什么 LNK 与 Jump List 是取证金矿Windows LNK快捷方式文件和 Jump List 是重建文件访问、程序执行与用户行为的核心取证工件。当用户通过 Windows 资源管理器或打开/另存为对话框访问文件时系统会自动创建对应的 LNK 文件其中存储了目标文件的原始路径、时间戳、卷序列号、NetBIOS 主机名以及主机 MAC 地址等元数据。Windows 7 引入的 Jump List 在此基础上进一步扩展按应用程序维护最近访问与高频使用文件清单。这些痕迹在目标文件被删除后依然保留是证明某用户在特定时间访问了特定文件的最有力证据。该技能在当前仓库中被归类于digital-forensics数字取证子域并映射到 NIST CSF 2.0 的RS.AN-03分析、DE.AE-02事件分析与RS.MA-01事件影响评估能力项对应 MITRE ATTCK 中的T1547.009快捷方式修改、T1204.002用户执行恶意文件与T1059.001PowerShell等攻击技术既可用于事后调查也可用于检测规则开发与威胁狩猎。适用场景与前置条件何时使用本技能调查安全事件时需要分析 LNK 文件与 Jump List 工件为这一领域构建检测规则或威胁狩猎查询SOC 分析师需要针对此类分析的结构化标准流程验证与相关攻击技术对应的安全监控覆盖是否完备。前置工具链工具用途LECmdEric ZimmermanLNK 文件解析器JLECmdEric ZimmermanJump List 解析器Python 3.8pylnk3 或 LnkParse3跨平台手工解析Timeline Explorer对导出 CSV 做时间线分析取证镜像或 Windows 系统的 triage 采集数据分析数据来源LNK 文件的典型存储位置位置描述%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\最近访问的文件%USERPROFILE%\Desktop\用户自建快捷方式%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\开始菜单快捷方式%USERPROFILE%\AppData\Roaming\Microsoft\Office\Recent\Office 最近文档Shell Link 二进制格式MS-SHLLINK剖析理解 LNK 的二进制结构是手工取证与脚本开发的基础。agent.py中的parse_lnk_header_raw()函数直接按字节偏移读取头部字段与微软公开规范 MS-SHLLINK 完全对应。Shell Link Header76 字节偏移大小字段0x004HeaderSize恒为 0x0000004C0x0416LinkCLSID恒为 00021401-0000-0000-C000-0000000000460x144LinkFlags0x184FileAttributes0x1C8CreationTimeFILETIME0x248AccessTimeFILETIME0x2C8WriteTimeFILETIME0x344目标文件大小0x384IconIndex0x3C4ShowCommand0x402HotKeyLNK 中的关键取证字段目标文件时间戳目标文件的创建、访问、修改时间注意这三组时间描述的是目标文件而非 LNK 本身卷信息序列号、驱动器类型、卷标网络共享信息UNC 路径、共享名机器标识NetBIOS 名称、MAC 地址来自 TrackerDataBlock分布式链接跟踪Distributed Link TrackingMachine ID 与对象 GUID。仓库的agent.py提供了一个比文档更完整的 LinkFlags 解码表decode_link_flags()除文档已列出的低 7 位标志外还覆盖了IsUnicode (0x80)、ForceNoLinkInfo (0x100)、RunAsUser (0x2000)、PreferEnvironmentPath (0x80000)等高位标志。其中RunAsUser与RunInSeparateProcess在恶意 LNK 检测中尤其值得关注——攻击者常利用这些标志让快捷方式以提权或独立进程方式启动载荷。FILETIME 转换原理FILETIME 是自 1601-01-01 起以 100 纳秒为间隔计数的 64 位整数。process.py 中的实现如下FILETIME_EPOCH datetime(1601, 1, 1) def filetime_to_datetime(ft_bytes: bytes): ft struct.unpack(Q, ft_bytes)[0] if ft 0: return None try: return FILETIME_EPOCH timedelta(microsecondsft // 10) except (OverflowError, OSError): return None注意ft // 10的换算100 纳秒除以 10 得到微秒。agent.py中的对应函数filetime_to_datetime()还额外处理了ft 0返回N/A与溢出异常返回Invalid两种边界情形这正是实际取证数据中常见的脏数据场景。实战操作EZ Tools 分析工作流LECmd —— LNK 文件解析器# 解析 Recent 文件夹中的所有 LNK 文件 LECmd.exe -d C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent --csv C:\Output --csvf lnk_analysis.csv # 解析单个 LNK 文件并输出完整细节JSON 格式 LECmd.exe -f C:\Evidence\Users\suspect\Desktop\Confidential.docx.lnk --json C:\Output # 附加更多细节级别解析 LECmd.exe -d C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent --csv C:\Output --csvf lnk_all.csv --all从 api-reference.md 可补充更多高频选项-q静默模式适合脚本批量调用、-r仅筛选可移动磁盘相关的 LNK、--json导出 JSON 结构便于程序化处理。其输出字段包括SourceFile、TargetCreated/TargetModified/TargetAccessed、FileSize、RelativePath、WorkingDirectory、Arguments、LocalPath、VolumeSerialNumber、DriveType、MachineID与MacAddress——后两者正是定位主机与设备的关键。JLECmd —— Jump List 解析器# 解析自动跳转列表AutomaticDestinations JLECmd.exe -d C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations --csv C:\Output --csvf jumplists_auto.csv # 解析自定义跳转列表CustomDestinations JLECmd.exe -d C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations --csv C:\Output --csvf jumplists_custom.csv # 解析全部跳转列表并输出详细 LNK 内容 JLECmd.exe -d C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations --csv C:\Output --csvf jumplists_auto.csv --ldJLECmd 还支持--fd输出完整 LNK 细节与--dumpTo dir把跳转列表中内嵌的 LNK 文件提取导出便于对单个条目做二次深挖。Jump List 结构解析AutomaticDestinationsautomaticDestinations-ms自动跳转列表是 OLE 复合文档Structured Storage文件名中的哈希即对应应用标识AppID常用映射表如下AppID Hash应用程序5f7b5f1e01b83767Windows Explorer Pinned/Frequent1b4dd67f29cb1962Windows Explorer Recent9b9cdc69c1c24e2bNotepada7bd71699cd38d1cNotepad12dc1ea8e34b5a6Microsoft Paint7e4dca80246863e3Control Panel1cf97c38a5881255Microsoft Edgef01b4d95cf55d32aWindows Explorer9d1f905ce5044aeeMicrosoft Excela4a5324453625195Microsoft Wordd00655d2aa12ff6dMicrosoft PowerPointbc03160ee1a59fc1Outlook仓库 agent.py 的JUMP_LIST_APP_IDS字典进一步扩充了这份映射表覆盖 Google Chrome5d696d521de238c3、Firefoxecd21b58c2f65a4f、mstsc 远程桌面1bc392b8e104a00e、PuTTYcfb56c56fa0f0478、WinSCPb74736c2bd8cc8a5、WinRARb91050d8b077a4e8等 20 应用。对取证与威胁狩猎而言这份扩充版映射的价值在于PuTTY、WinSCP、mstsc 等远程访问工具出现在跳转列表中往往意味着用户或入侵者正在进行远程管理或数据迁移活动。CustomDestinationscustomDestinations-ms当用户将项目固定pin到应用程序跳转列表时生成文件内是顺序排列的 LNK 条目。自定义跳转列表因为是用户主动固定而非系统自动记录其语义更强——固定行为反映长期或高频的使用意图。Python 手工解析从字节到证据当取证环境无法运行 Windows 工具时Python 手工解析是可靠的替代方案。以下代码来自 SKILL.md 的核心示例import struct import os from datetime import datetime, timedelta FILETIME_EPOCH datetime(1601, 1, 1) def filetime_to_datetime(filetime_bytes: bytes) - datetime: Convert Windows FILETIME (100-ns intervals since 1601) to datetime. ft struct.unpack(Q, filetime_bytes)[0] if ft 0: return None return FILETIME_EPOCH timedelta(microsecondsft // 10) def parse_lnk_header(lnk_path: str) - dict: Parse the Shell Link header from an LNK file. with open(lnk_path, rb) as f: header f.read(76) header_size struct.unpack(I, header[0:4])[0] if header_size ! 0x4C: return {error: Invalid LNK header} link_flags struct.unpack(I, header[0x14:0x18])[0] file_attrs struct.unpack(I, header[0x18:0x1C])[0] result { header_size: header_size, link_flags: hex(link_flags), file_attributes: hex(file_attrs), creation_time: filetime_to_datetime(header[0x1C:0x24]), access_time: filetime_to_datetime(header[0x24:0x2C]), write_time: filetime_to_datetime(header[0x2C:0x34]), file_size: struct.unpack(I, header[0x34:0x38])[0], has_target_id_list: bool(link_flags 0x01), has_link_info: bool(link_flags 0x02), has_name: bool(link_flags 0x04), has_relative_path: bool(link_flags 0x08), has_working_dir: bool(link_flags 0x10), has_arguments: bool(link_flags 0x20), has_icon_location: bool(link_flags 0x40), } return result仓库配套脚本process.py 与 agent.py仓库为该技能提供了两个可直接运行的配套脚本将上文的手工解析扩展为完整的取证工作台1. process.py —— 批量扫描与报告生成python process.py lnk_directory output_dirparse_lnk_file()在头部解析之外还解码了FileAttributes的 5 个关键位readonly (0x01)、hidden (0x02)、system (0x04)、directory (0x10)、archive (0x20)。scan_directory()通过os.walk递归遍历目录仅采集.lnk后缀文件最终输出包含analysis_timestamp、source_directory、total_lnk_files与逐文件结果的lnk_analysis_report.json报告。2. agent.py —— 双模式解析与可疑检测代理python agent.py file.lnk # 分析单个 LNK python agent.py directory # 扫描目录中的 LNK 与 Jump List该脚本的核心设计是双解析后端若环境安装了 LnkParse3pip install LnkParse3则调用parse_lnk_with_lnkparse3()走库解析可提取target_path、working_dir、arguments、volume_serial、machine_id、mac_address等完整字段否则回退到parse_lnk_header_raw()的手工字节解析。其最有价值的创新是detect_suspicious_lnk()可疑特征检测内置正则规则覆盖了大量真实恶意 LNK 载荷模式检测模式关注点powershell通过快捷方式执行脚本cmd.exe /c命令执行链mshtaHTA 载荷执行certutil -decode文件下载/解码bitsadmin transferBitsAdmin 下载regsvr32 scrobjCOM 脚本组件执行wscript/cscript脚本宿主执行\\IP\UNC 指向 IP基于网络的载荷投递http(s)://LNK 参数中出现 URL-enc 长 Base64混淆的 PowerShell 命令DRIVE_REMOTE目标网络驱动器上的目标配合 api-reference.md 的可疑 LNK 指示器表这些规则可直接移植到 SIEM 检测规则或 YARA 规则中。同时脚本对每个文件计算 SHA-256 哈希compute_hash()64KB 分块读取方便与威胁情报交叉关联。典型调查场景场景一文件访问证据重建解析 Recent 文件夹中的 LNK 文件识别被访问的文档与 MFT 时间戳、USN Journal 记录交叉比对关键点目标文件被删除后 LNK 文件依然保留可用于还原曾访问过该文件的事实。场景二可移动介质访问指向 E:、F:、G: 等盘符的 LNK 文件表明可移动介质使用痕迹LNK 中的卷序列号用于锁定具体设备TrackerDataBlock 中的 MAC 地址用于识别源机器。该场景在 workflows.md 中有标准流程筛选盘符 → 提取卷序列号 → 与 SYSTEM 注册表 USBSTOR 条目比对 → 锁定具体 USB 设备 → 构建用户-设备-文件时间线。场景三网络共享活动含 UNC 路径\\server\share的 LNK 表示网络文件访问NetBIOS 名称用于识别远程服务器时间戳确定访问发生的时间窗口。Windows 10 与 Windows 11 的差异2025 年研究近年研究IEEE 2025表明 Windows 11 产生的 LNK 与 Jump List 工件存在差异取证人员需注意版本适配某些文件类型生成的自动 LNK 文件数量减少现代应用UWP/MSIX的 Jump List 行为发生变化UWP/MSIX 应用可能不再生成传统 Jump ListWindows 11 的 Quick Access 取代了部分 Recent 功能。这意味着基于路径枚举的取证脚本在 Windows 11 上可能遗漏部分痕迹建议结合具体 OS 版本校准采集与解析策略。输出分析示例以下为文档中 LECmd/JLECmd 的典型运行输出展示了从 LNK 到结论的完整链路$ LECmd.exe -d C:\Evidence\Users\jsmith\AppData\Roaming\Microsoft\Windows\Recent --csv /analysis/lnk_output LECmd v1.11.0 - LNK File Parser Processing 47 LNK files... --- LNK File: Q4_Report.xlsx.lnk --- Source: C:\Evidence\Users\jsmith\Recent\Q4_Report.xlsx.lnk Target Path: C:\Users\jsmith\Downloads\Q4_Report.xlsm Target Created: 2024-01-15 14:33:45 UTC Target Modified: 2024-01-15 14:33:45 UTC Target Accessed: 2024-01-15 14:35:12 UTC File Size: 251,904 bytes Drive Type: Fixed (C:) Volume Serial: A4E7-3F21 Machine ID: DESKTOP-J5M1TH MAC Address: 48:2A:E3:5C:9B:01 --- LNK File: update_client.exe.lnk --- Source: C:\Evidence\Users\jsmith\Recent\update_client.exe.lnk Target Path: C:\ProgramData\Updates\update_client.exe Target Created: 2024-01-15 14:34:02 UTC Target Modified: 2024-01-15 14:34:02 UTC Target Accessed: 2024-01-15 14:36:30 UTC File Size: 1,258,496 bytes Drive Type: Fixed (C:) Volume Serial: A4E7-3F21 Machine ID: DESKTOP-J5M1TH Working Dir: C:\ProgramData\Updates Arguments: --silent --no-update-check Run Window: Hidden $ JLECmd.exe -d C:\Evidence\Users\jsmith\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations --csv /analysis/jumplist_output JLECmd v1.5.0 - Jump List Parser Processing 23 AutomaticDestinations files... --- Application: Microsoft Excel (AppID: 12dc1ea8e34b5a6) --- Entries: 15 Most Recent: Entry 0: C:\Users\jsmith\Downloads\Q4_Report.xlsm (2024-01-15 14:35:12 UTC) Entry 1: \\FILESERV01\Finance\Budget_2024.xlsx (2024-01-14 09:22:30 UTC) Entry 2: C:\Users\jsmith\Documents\Expenses\Dec2023.xlsx (2024-01-10 16:45:00 UTC) --- Application: Windows Explorer (AppID: f01b4d95cf55d32a) --- Entries: 28 Most Recent: Entry 0: C:\ProgramData\Updates\ (2024-01-15 14:36:25 UTC) Entry 1: E:\Backup\ (2024-01-15 15:30:00 UTC) Entry 2: \\FILESERV01\HR\Employees\ (2024-01-15 16:12:45 UTC) --- Application: cmd.exe (AppID: 9b9cdc69c1c24e2b) --- Entries: 5 Most Recent: Entry 0: C:\Windows\System32\cmd.exe (2024-01-15 14:36:00 UTC) Summary: Total LNK files processed: 47 Total Jump List entries: 156 Suspicious artifacts: 3 (hidden window execution, USB drive access, network shares) CSV exported to: /analysis/lnk_output/ and /analysis/jumplist_output/该示例中Run Window: Hidden、E:\Backup\可移动盘与\\FILESERV01\网络共享同时出现正是文档可疑工件判定隐藏窗口执行、USB 访问、网络共享的判定依据可与agent.py的可疑检测逻辑相互印证。报告模板与标准依据分析完成后可使用仓库提供的 template.md 报告模板整理交付物其结构包括案件信息Case Number / Examiner / Evidence Source、LNK 摘要表、Jump List 摘要表、可移动介质引用表与 Findings 结论。模板表头与 LECmd/JLECmd 的 CSV 输出字段一一对应可直接粘贴填充。本技能遵循的标准与依据见 standards.mdMS-SHLLINKShell Link 二进制格式规范、NIST SP 800-86取证技术集成指南、SWGDE 计算机取证最佳实践对应 MITRE ATTCK 的T1547.009与T1204.002用于检测规则建设与监控覆盖验证。小结LNK 文件与 Jump List 为用户是否访问过某文件、运行过某程序、使用过某设备提供了独立于目标文件存活的持久证据链。本技能给出了从工件位置、二进制结构、工具链操作到 Python 源码级实现的完整路径LECmd/JLECmd 适合快速批量产出process.py适合离线批处理生成结构化报告agent.py的内置可疑模式检测则直接服务于恶意快捷方式的威胁狩猎。结合仓库的映射表与报告模板分析人员可以在目标文件早已删除的情况下依然重建出可信的用户活动时间线。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表