从恶意程序对LNK格式的利用方法看防护趋势

目录

1LNK文件简介

2LNK在恶意程序中的利用方式

2.1曾经的LNK漏洞
2.2隐藏链接真实对象
2.3辅助恶意程序运行

3博弈趋势

利用移动存储设备进行传播的恶意程序与杀软博弈趋势分析:

  1. 障眼法伪装文件夹.以及附加GUID到文件后.
  2. 逐渐脱离PE文件向脚本发展以期绕过安全软件的防护.
  3. 可能的其它利用,模拟键盘,鼠标.

正文

1LNK文件

文件快捷方式又称为Shell links,从Win95被微软引进.它是Windows资源管理器的扩展.用于链接到本地文件(夹)或者URL指向的网络内容.
由于默认的注册表设置,即使“隐藏扩展名已知文件类型”未选中的文件类型选项,仍然不会显其扩展名.
更多关于LNK的细节和历史变动你可以参看:

https://en.wikipedia.org/wiki/File_shortcut

文件格式请参看这里:

快捷方式文件格式详解中文版
http://xcf007.blog.51cto.com/471707/367275/

LNK格式解析-恶意利用关键
http://wenku.baidu.com/link?url=KD0Ua8LmtJx6NUqDv7eRgLMAOPD6U40Q4FmYxlANXR6WVr0grzLeM4v_j0EOOB5c_OOzQmQZysuuIvZQ3EnXIXjV6nHWuR0tnY_2Sx9IqLe

2LNK文件在恶意程序中的利用方式

2.1曾经的LNK漏洞

漏洞曝光:
2010年7月16日,Windows快捷方式自动执行0day漏洞[CVE-2010-2568](微软安全知识库编号:2286198)被披露,很快网上已经可以找到利用这个漏洞攻击的样本。利用Windows快捷方式自动执行0day漏洞可以做到:看一眼恶意软件就中毒,而根本不需要去执行它。

触发原理:

Shell32.dll在处理lnk文件的时候要把它的图标显示出来,对于一般文件应该是从Icon filename string里面解析,但对于文件后面没有Icon filename string结构的控制面板快捷方式,是直接从0x7A那里的iconindex来解析。当这个iconindex是0的时候,会去加载cpl文件,调用CPlApplet接口,这样就存在执行DLL中代码的问题.-LNK快捷方式漏洞利用方式 exp制作教程

当Shell32.dll解析到这串编码的时候,会认为这个“快捷方式”依赖一个系统控件(dll文件),于是将这个“系统控件”加载到内存中执行。如果这个“系统控件”是病毒,那么Windows在解析这个lnk(快捷方式)文件时,相当于把潜伏的病毒激活.-LNK快捷方式漏洞利用方式 exp制作教程

2.2隐藏链接真实对象

我见到这种方式是源自于一种游戏保护.通过构建自己的LNK文件达到实际指向目标与”打开文件位置”不同.以期望达到误导游戏破解者的目的.

这种方式最早被应用在病毒对LNK文件的修改.即使拥有一定计算机知识的用户也难以从快捷方式发现病毒的执行流程.通常此种病毒会在运行病毒体后,继续运行LNK所指向的原始文件,以达到掩人耳目的目的.

.lnk 文件格式
+—————————+
| lnk file header |
+—————————+ >——.
| Shell Item Id List | |
+—————————+ |
| File location info | |
+—————————+ |
| Description string | |
+—————————+ —
| Relative path string | |
+—————————+ —
| Working directory string | |
+—————————+ |
| Command line string | |
+—————————+ |
| Icon filename string | |
+—————————+ >——.
| Extra stuff |
+—————————+
来自于:LNK文件格式解析

2.3辅助恶意程序运行

前段时间从友友的U盘中发现的样本.特点是:
1. 原移动磁盘中的文件被隐藏.存在同名LNK文件.
2. LNK文件运行后,被隐藏的文件被执行.

让我们看一下这个快捷方式是如何执行恶意程序和执行原文件的:

样本

位置

我们使用利器C32ASM观察该LNK文件的16进制形式,如图:

LNK文件

上面的内容等同于:

C:\windows\system32\cmd.exe /c start uzgbtymhqo.vbs&start OD-VM.zip&exit

我们看到,如果打开这个LNK会触发以下操作:

  1. 隐藏方式执行cmd
  2. 借助cmd执行名为:uzgbtymhqo.vbs的脚本文件.
  3. 打开被隐藏的原文件:OD-VM.zip
  4. 退出cmd.

按图索骥,移动硬盘下面的vbs脚本被翻找出来:

vbs脚本解密前

这真是令人纠结的事情,看着超长的函数名和变量名.
让我们沉下心来不能中了恶意程序作者的圈套,大量形如”Jw==#PA==#”的字符串意味着恶意程序作者似乎使用了一种Base64加密的算法.

vbs文件后面的几个函数正是Base64标准解密的过程,通过将”#”相互隔离的字符放在数组中.循环对此数组进行解密并拼装.然后executeGlobal执行.

经过一番解密,我们得到了如下内容:

未经混淆的代码

具有良好注释的脚本病毒已经被还原了出来,在这个463行代码的vbs中,可以看出脚本病毒的威力丝毫不逊于二进制恶意程序.

解密后全部的内容限于篇幅放在了样本包中.

本小节所涉及的所有样本文件已经被打包.
下载链接:
http://download.csdn.net/detail/dalerkd/9044907

密码:infected

3博弈趋势

利用移动存储设备进行传播的恶意程序与杀软博弈趋势分析:

  1. 障眼法伪装文件夹.以及附加GUID到文件后.
    通过以相同文件名等方式欺骗用户点击.
  2. 逐渐脱离PE文件向脚本发展以期绕过安全软件的防护.
    由于当今绝大多数安全软件对Autorun.inf启动方式的拦截.以及对由可移动磁盘发起的进程请求的严密监视.致使恶意程序开始利用其它低敏感程序和各种漏洞作为执行体的先头部队.来达到感染新机器的目的.
  3. 脚本恶意程序及其他建立在运行库上的高级语言程序在感染体的传播和伪装上有着传统PE恶意程序不具有优势.

作者希望看到您的留言,关于文章涉及技术的讨论和看法:
您可以点顶对作者进行鼓励:统计
顶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值