Windows快捷方式利用技巧

invoker 企业安全实践 2024-01-03 19:44

Windows快捷方式利用技巧

一. 引言

LNK是Microsoft Windows用于指向可执行文件或应用程序的快捷方式文件的文件扩展名,用于提升用户交互体验,能够点击快捷方式来快速打开应用。LNK文件通常用于创建开始菜单和桌面快捷方式。但是LNK文件也可以被恶意代码的利用,常用于网络鱼叉的载荷投递。

二. LNK文件结构

2.1文件属性

查看LNK文件的基本属性,关注的地方主要是快捷方式的目标位置,运行方式,图标等,如下图所示:

Image

2.2文件结构解析

选取一个恶意的快捷方式查看其文件结构,如下图:

Image

通过010编辑器打开

Image

可以关注的几个字段COMMAND_LINE_ARGUMENTSICON_LOCATIONWORKING_DIR,通过修改这几个字段可以提升恶意快捷方式的欺骗性,提升点击的成功率。

三. LNK文件利用

3.1 LNK文件欺骗

3.1.1诱导性文件名构建

首先我们可以通过powershell命令来快速生成快捷方式,如下图的命令:

Image

WScript.Shell组件属性含义如下图:

Image

并且我们通过修改IconLocation字段,可以自动化配合后续要投放网络鱼叉中的真实文件名后缀来实现指定文件的图标。例如要生成word诱导文件,只需将IconLocation字段写成“1.docx”即可,自动生成效果如下图:

Image

3.1.2隐藏COMMAND_LINE_ARGUMENTS字段

鼠标右键创建快捷方式,可以在目标中输入执行的命令,但是字符串最长为260字节,即“目标”窗口长度为260字节。我们通过修改快捷方式设定值并在目标插入大量空格字符串,使其超出该长度之后窗口便不再显示,将恶意指令藏在260字节之后,在一定程度上隐藏自身。

测试powershell代码:

Image

test.txt文件写入调用计算器 /c start calc.exe

生成的快捷方式从图形窗口上看不到COMMAND_LINE_ARGUMENTS字段,执行效果如下图:

Image

3.2 LNK文件执行恶意代码

3.2.1单文件执行恶意代码

只通过单个LNK执行恶意代码,有两种方式,第一种是直接将恶意代码写入到LNK文件;第二种需要LNK执行远程下载并执行的动作。

首先来看一下第一种恶意代码如何绑定LNK文件实现单文件执行恶意代码。通过构建一个加载器,加载器的主要功能将exe附加写入LNK文件末尾,然后通过LNK定位exeLNK文件的偏移位置,异或解密exe文件,释放到temp目录并执行exe

完整的LNK绑定的powershell命令如下图:

Image

第二种方式可以通过远程下载并执行,如下图下载命令:

Image

接着再执行命令来实现下载文件执行,如下图:

Image

3.2.2多文件执行恶意代码

通过多文件来执行恶意代码,只需要保证LNK指向木马的情况就能完成简易的网络鱼叉制作。将LNK文件和木马置于同一个压缩包,同时将木马设置成系统属性,在不勾选显示系统文件和隐藏文件的时候,木马默认是不可见的。实现效果如下:

Image

勾选显示隐藏文件和显示系统文件之后:

Image

并且能够搭配释放出迷惑性的正常文档文件来让用户点击后无感知,降低被取证分析的概率。

四. LNK文件免杀

大多数杀软针对LNK绑定了危险的命令会直接拦截,例如cmd或者powershell。所以单文件以及多文件想要绕过杀软的话,此处需要引入一个“LOLBINS”,即Living-Off-the-Land Binaries,是在目标操作系统上运行受信任的合法进程来执行恶意活动,例如横向移动、权限提升和远程控制等。换句话说即大家所熟知的“白名单”免杀技术。比如常见的Powershell.exeCertutil.exeMshta.exe等程序,属于微软自带的白名单程序。

那么我们所选取的白名单程序通常需要具备执行的动作,再者高级一点就是还具备远程下载的动作。可以参考“LOLBAS”,站点上面罗列了windows操作系统上自带的白程序,并且标注了具备怎样的功能,是具备执行还是下载以及拷贝的功能。当然杀软也注意到这个层面,具体的免杀白程序还需要读者自己尝试。

Image

多文件一般情况之下,如果LNK指向的木马文件免杀,那么快捷方式一般不会别拦截,但是LNK如果只是执行木马的话而没有其他效果的话会显得比较突兀,可能会引起用户怀疑,此处我们选取一个例子作为说明,示范一下多文件的情况之下如何提高隐蔽性。 

Image

Image

通过FTP执行文件中的命令。文件命令完成执行木马,修改释放诱导性文件属性并打开诱导性文件,如下图:

Image

当然这里也并非一定要用可执行文件,也可以搭配侧加载(白加黑),或者直接rundll32直接执行黑dll,甚至进程注入等,并且还能搭配自删除的bat文件来控制进程注入后母体样本的删除,已确保文件母体功能不容易被取证分析。需要多种手段搭配使用才能实现更好的效果。

五. LNK攻击防御

基本防御方法:

1.面对网络鱼叉中的附件文件(包括但不限于快捷方式、可执行文件等)不要随意点击。

2.主机安装杀软,杀软能有效拦截快捷方式点击后执行的动作,包括联网请求和可执行文件执行的动作。如下图所示:

Image3.通过使用 URL 信誉工具进行分析,以确认 LNK 文件打开了恶意链接。如下图所示:

Image4.查看快捷方式的文件大小,大于 4 KB 的文件应被视为可疑文件,通过快捷方式属性查看是否指向可疑的可执行文件或者绑定了可疑的命令执行参数。

参考链接

https://www.x86matthew.com/view_post?id=embed_exe_lnk

https://lolbas-project.github.io/


蓝军 · 目录
上一篇高价值漏洞利用手法分享下一篇windows权限维持几种方式

Scan to Follow