shadowlnk-基于lnk劫持的权限维持及权限提升载体
字数 1527 2025-09-04 23:22:12
ShadowLnk工具使用指南:基于LNK劫持的权限维持与提权技术
一、技术背景与原理
1.1 传统权限维持手段的局限性
- 注册表、启动项和计划任务等自动化权限维持手段被安全软件严格监控
- 机器层面的自启动检测机制日趋完善,难以绕过现代安全防护
1.2 LNK劫持的优势
- 利用人类交互而非纯自动化机制实现权限维持
- 通过劫持用户常用快捷方式实现持久化
- 每次用户正常操作时自动执行恶意载荷
- 相比纯技术手段更难以被安全软件检测
二、基础LNK钓鱼技术分析
2.1 基本攻击流程
- 创建隐藏文件夹(如
__MACOSX) - 在隐藏文件夹中放置BAT脚本
- 创建指向BAT脚本的LNK快捷方式
- 用户点击看似正常的文件时触发恶意操作
2.2 典型BAT脚本内容
@echo off
cd /d %~dp0
move /Y 1.exe "C:\Users\Public\Documents\1.exe"
start "" "C:\Users\Public\Documents\1.exe"
timeout /t 1 /nobreak >nul
start "" "1.docx"
taskkill /f /im cmd.exe
2.3 基础方案的缺陷
- BAT脚本组合操作易触发杀软报警
- 执行时会出现短暂黑框(命令提示符窗口)
- 隐蔽性不足
2.4 改进方案:VBS无窗口执行
使用VBS脚本调用BAT,避免黑框出现:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run ".\__MACOSX\1.bat", 0, False
简化后的BAT脚本:
@echo off
cd /d %~dp0
start "" "1.exe"
start "" "1.docx"
taskkill /f /im cmd.exe
三、ShadowLnk工具详解
3.1 工具核心功能
- 自动化劫持现有LNK快捷方式
- 维持原始图标和外观
- 实现无感权限维持和提权
3.2 基本使用参数
| 参数 | 描述 | 示例 |
|---|---|---|
-i |
指定要劫持的LNK目标 | -i "C:\Users\user\Desktop\Chrome.lnk" |
-w |
指定可写目录(用于创建隐藏文件夹) | -w "C:\Users\Public\Documents" |
-p |
指定恶意载荷位置 | -p "C:\payload.exe" |
3.3 工具工作流程
- 解析目标LNK的原指向
- 从原PE文件提取ICO图标
- 在指定目录创建隐藏文件夹(系统+隐藏属性)
- 生成三个文件:
- ICO:从原程序剥离的图标
- VBS:用于无窗口执行BAT
- BAT:用于执行载荷
- 使用提取的ICO生成伪造LNK
- 替换原始LNK文件
3.4 高级参数
-
批量劫持模式 (
-r)- 自动替换桌面所有LNK文件
- 注意:可能触发安全软件对系统关键LNK的检测
- 建议:针对性劫持常用应用而非全部
-
权限提升模式 (
-power)- 修改VBS脚本触发UAC提权
- 利用微软程序身份降低用户警惕
- 适用场景:需要管理员权限的持久化
四、防御与检测建议
4.1 攻击特征
- 异常隐藏文件夹(特别是包含系统属性)
- LNK文件指向位置变更
- 常见应用突然请求管理员权限
- 短时间内多个LNK文件被修改
4.2 防御措施
- 禁用LNK文件自动执行(通过组策略)
- 监控关键目录LNK文件变更
- 限制普通用户对公共目录的写入权限
- 教育用户识别异常UAC请求
4.3 检测方法
- 使用
dir /a命令查看隐藏文件 - 检查LNK文件属性中的目标路径
- 监控
wscript.exe和cmd.exe的异常调用 - 审计系统日志中的文件创建/修改事件
五、项目信息与法律声明
- 项目地址:https://github.com/wackymaker/shadowlnk
- 本文仅用于安全研究与防御技术学习
- 禁止用于非法用途
六、技术总结
ShadowLnk代表了一种新型的权限维持思路,它巧妙地将技术手段与人类行为模式相结合,突破了传统自动化机制的检测限制。这种技术提醒我们:
- 安全防御需要同时考虑技术和人为因素
- 持久化攻击正向着更隐蔽、更"自然"的方向发展
- 单纯的自动化检测难以应对基于正常用户操作的攻击
- 防御体系需要从端点检测扩展到用户行为分析
安全从业者应当从这种技术中学习攻击者的创新思维,同时完善防御策略,构建更全面的安全防护体系。