Windows下快捷方式攻防技巧
0x01 前言
最近在某推上看见几个大牛都在玩PowerShell,特别看见利用快捷方式执行PowerShell脚本,所以想自己来研究一下快捷方式。希望本文能够帮助到需要的人。
0x02 Lnk文件格式介绍
文件整体结构
文件头
Shell Item Id List 段
文件位置信息段
描述字符段
相对路径段
工作目录段
命令行段
图标文件段
附加信息段
文件头结构
偏移 0h :值常为0000004CH,为字符"L"
偏移 4h :GUID
偏移 14h :Flags,用来标
识快捷方式文件中有哪些可选属性
将该四字节以二进制表示
其他大家可以自己分析一下。
Shell item ID list段
从14h位置我们可知有shell item id list
从4ch开始的第一个段为shell item id list
shell item id list总长度为E7
下一段(描述字符串)的起始地址为004e+00E7=0135h
描述字符段
描述字符段长度为004A
下一段(工作路径)的起始地址为0135+004A=017F
后面大家有兴趣可以继续分析,由于考虑本文长度,不再一一介绍。
0x03 BITSAdmin
BITSAdmin is a command-line tool that you can use to create download or upload jobs and monitor their progress.
BITSAdmin是一个命令行工具,您可以使用它来创建下载或上传作业并监视其进度。
BITSAdmin命令的示例
该命令将下载位于我们服务器中的应用程序文件到Windows临时文件夹。
构建一个快捷方式
桌面右键新建快捷方式,输入下列命令
现在你可以设置最小化和改变图标
0x04 隐藏Payload
实现起来很简单,只要将payload放置在260个空字符之后,这样就无法从文件属性发现payload,只能通过分析文件格式发现。最近PowerShell很火啊,也确实很方便,我们就用它来实现一个demo吧。
直接打开powershell运行
这样就在G:\test\目录下生成了test.lnk文件
可以看见之间的空格填充,后面可以看见隐藏的参数
事实证明在Windows操作系统中一个来历不明的快捷方式都不能乱点哦。
领取专属 10元无门槛券
私享最新 技术干货