恶意软件常用的感染技术

恶意软件常用的感染技术。通过“横向运动”,恶意软件可以进一步扩大其战果:从原始受感染设备传播到同一网络内的其他设备。

最近,勒索软件已经开始使用这种传播方式:包括CryptoWall [1]、CryptoFortess [2]、DMA-Locker [3]和CryptoLuck [4]在内的许多著名的勒索软件家族,不仅对受害者机器上的文件进行加密,而且对已经映射和未映射的文件共享进行了"横向运动", 对这些共享中的文件进行加密,从而造成更大的危害。当然,对于许多针对性和非针对性攻击中使用的恶意软件来说,也有许多会进行"横向运动"的。

本文将为读者深入介绍恶意软件最常见的传播技术,其中包括网络内部传播技术和网络间传播技术。

横向运动至未映射的驱动器

通过映射驱动器,软件就能读写可通过该驱动器访问的共享存储区中的文件了。映射驱动器通常分配一个盘符,可以像操作本机的其它硬盘驱动器一样使用它。要访问未映射的驱动器,需要执行以下步骤:首先,必须枚举网络以获取文件共享的列表,然后,在获得文件共享的访问凭证后,需要使用其用户名和密码来装载未映射的驱动器。一旦安装了驱动器,就可以访问来自未映射驱动器的文件了。

图1显示了用于访问未映射驱动器的代码,并且它已经被勒索软件(例如DMA-Locker,Locky和CryptoLuck)广泛用于访问未映射的文件共享中的文件了。该代码首先会调用WNetOpenEnumW [5]函数,并以无符号整数2('2u')和1('1u')作为其前两个参数。参数“2u”能够确保网络中的所有连接都在范围内,而“1u”则确保只打开磁盘资源进行枚举。

  图1:用于演示向未映射驱动器横向运动的代码

一旦连接打开,将不断调用WNetEnumResourceW以枚举这些资源。

函数WNetOpenEnumW的第四个参数是变量NetResource,它用来接收NetResource结构数组形式的枚举结果。该结构的格式如图2所示。

typedef struct _NETRESOURCE {

DWORD dwScope;

DWORD dwType;

DWORD dwDisplayType;

DWORD dwUsage;

LPTSTR lpLocalName;

LPTSTR lpRemoteName;

LPTSTR lpComment;

LPTSTR lpProvider;

} NETRESOURCE;

一旦枚举完网络,该代码就会调用指令'if(NetResource.dWUsage&2)',它用来检查该资源是否为容器资源[6]。如果是,则该函数在后续指令“sub_407919(a1,&NetResource)”中递归调用自身,以确保将lpRemoteName成员指向的名称传递给WNetOpenEnumW函数,来继续枚举容器中的资源。

如果资源是可连接的,那么就会调用函数WNetAddConnection2W,该函数可以用来建立到该网络资源的连接,同时还可以将本地设备重定向到网络文件共享。传递给函数WNetAddConnection2W的第二个和第三个参数分别是用户名和密码。如图1中的代码所示,如果第二和第三参数的值都是0,那么,它就会使用默认的密码和用户名。在WNetAddConnection2W函数之后的指令“if(NetResource.dwType)== 1”用于检查资源是否为磁盘资源。如果是的话,在下一个指令中,共享资源的名称NetResoure.lpRemoteName就会被传递给函数a1,然后生成一个线程来加密共享驱动器中的文件。

USB驱动器&映射驱动器

除了访问未映射的文件共享,恶意软件还能访问连接到受感染机器的可移动驱动器以加密这些驱动器中的文件。图3中的代码展示了如何使用GetDriveTypeW来确定驱动器的类型,随后的表达式“result == 3”可以检查驱动器是否为固定类型的,而“result == 2”用来检查驱动器是否是可移动的,最后, 'result == 6'表示它是一个RAM磁盘。对于这些类型的驱动器,只要找到其中的任何一个,就会调用“sub_402CFB”例程,然后生成一个线程来加密这些驱动器中的文件。

GetDriveTypeW函数也可用于访问远程映射网络驱动器。如果函数GetDriveTypeW返回的值为4,则表示这是一个远程映射驱动器。

  图3:利用GetDriveType函数进行横向运动的代码

基于电子邮件的横向运动

电子邮件早已成为恶意软件广泛使用的传播手段了。图3展示的VBA代码,就是由蠕虫病毒通过Outlook进行传播的。如图4所示,指令'loc_00402FB0'调用了CreateObject函数,以便作为对象访问Outlook应用程序。在创建对象之后,指令'loc_00403021'会调用AddressLists函数,从该对象中获得地址列表,随后指令'loc_004030CC'调用了AddressEntries函数,这样就能访问该列表中的内容了。在访问所有列表项之后,指令'loc_005032D2'会调用AddressEntry.Address来提取确切的电子邮件地址。一旦提取了电子邮件地址,指令“loc_004032BA”会调用Application.CreateItem函数来创建新的电子邮件。之后,指令'loc_0040345B'将恶意文件作为附件添加到电子邮件中,并通过指令'loc_0040353D'来发送电子邮件。当受害者收到电子邮件并打开附件时,就会被感染。

  图4:使用电子邮件作为传播手段

使用文件感染器作为传播手段

除了使用SMB、电子邮件和驱动器之外,攻击者还可以通过感染机器上的其他文件进行横向运动。图5显示了HTML文件被感染后由Ramnit插入的代码。被感染的HTML文件含有一个VBScript代码,它会创建一个名为svchost.exe的文件。该代码首先会调用CreateObject(“Scripting.FileSystemObject”),它在变量FSO中返回一个TextStream对象,该对象可以进行读取或写入操作。然后,对象FSO会调用CreateTextFile方法,创建一个文件,并在其中写入变量WriteData的内容,即恶意代码。然后,会调用Close方法来刷新缓冲区并关闭该恶意文件。文件关闭后,该函数会调用WSHshell.Run来执行恶意文件。

  图5:使用文件感染器作为传播手段

结束语

一旦恶意软件绕过了边界或内联设备,它就可以通过各种方法渗入到内部系统。其中,未映射的驱动器、映射驱动器、电子邮件和感染其他文件是最常用的手段。检测恶意软件的确很重要,与此同时,防止恶意软件的扩散以限制其破坏范围同样也很重要。

本文转自d1net(转载)

时间: 2024-09-13 09:41:53

恶意软件常用的感染技术的相关文章

四种恶意软件常用的逃避技术

恶意软件逃避技术总是在不断演变,上个月的RSA大会上安全公司Lastline的联合创始人讲述了逃避技术发展的图景.这篇名为"逃避型恶意软件的揭露和解构"的报告,进进一步验证了一个观点:"杀毒软件没死,只是跟不上时代". 报告指出,在2014年,只有一小部分恶意软件显示出了逃避的特性,但到了现在,相当大的一部分恶意软件会利用500种逃避技术进行任意组合,以避免被检测和分析. Lastline指出,单个的恶意软件样本通常只具有10种逃避行为.不过研究表明,其中的四种是最

隐藏恶意软件的三大黑客技术

"道高一尺,魔高一丈",检测恶意软件的新战术和技术正在兴起,但高级黑客也正在使用高级的掩盖方法避免他们的恶意软件被发现.     1. 反-反汇编和调试器(保护器) 恶意软件作者知道恶意软件研究人员的工作路数,以及他们用以狩猎威胁的工具.比如说,研究人员和程序员通常会用反汇编程序和调试器,来找出某段代码的作用. 有很多工具和技术都可以检测反汇编程序和调试器,包括内置的Windows功能.此类技术的设计目的,大多是辅助对抗盗版--盗版商会用这些工具破解版权保护的软件. 不幸的是,恶意软件

恶意软件每天至少30万个变种 杀毒软件捉襟见肘 来看4种恶意软件反查杀技术

杀毒(AV)和反恶意软件产品是最古老.最成熟的网络攻击防护,但似乎每天都有新的恶意软件样本能够绕过传统的杀毒软件的恶意软件查杀方案.在 WannaCry 出现当日,即便是顶级的杀毒引擎,大多数也都错过了第一批样本,但在随后数小时.数天.数周内都逐渐更新了特征库.这就是是基于特征的检测解决方案的延迟性和被动性的最好示例. 基于特征的杀毒软件还会错过知名威胁.业内每天都会发现30万至100万个新的 恶意软件 变种.然而,罪犯分子并没有制造出数百万个新的蠕虫.木马或病毒.即便没有几十万个恶意软件族,至

新恶意软件iWorm已感染全球1.7万台Mac电脑

iWorm的传播范围北京时间10月4日早间消息,信息安全研究人员近期发现,全球超过1.7万台 Mac电脑已经感染了一种名为iWorm的新的OS X恶意软件.这种恶意软件曾使用Reddit网站作为传播媒介,能窃取用户数据,触发多种系统操作,并执行Lua脚本.俄罗斯信息安全研究公司Dr. Web在病毒库中将这一恶意软件标记为Mac.BackDoor.iWorm.这是一种复杂的后门软件,能在被感染的Mac电脑上执行多种命令,从而实现窃取用户数据,以及远程遥控系统等目的.在iWorm被装入Mac电脑后,

PHP中常用的缓存技术介绍

数据缓存 这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结 果序列化后保存到文件 中,以后同样的查询结果就直接从缓存文件中获得.  代码如下 复制代码 <?php $sql = 'SELECT * FROM users'; $key = md5($sql);   //memcached 对象标识符 if ( !($datas = $mc->get($key)) ) {     //    在 memcac

常用宽带无线接入技术综合比较

宽带无线接入技术有很多值得学习的地方,这里我们主要介绍各种宽带无线接入技术及其比较,包括介绍MMDS接入技术.LMDS接入技术等方面.100多年以来,电信网技术已发生了翻天覆地的变化,无论是交换还是传输,大约每隔10-20年就会有 新的技术和系统诞生.然而这种迅速更新和变化只发生在电信网的核心,即长途网和中继网部分.而电信网的边缘部分,即从本地交换机到用户之间的接入网一直是电信网领域中技术变化最慢.耗资最大.成本最敏感.法规影响最大和运行环境最恶劣的老大难领域.国际电联标准部(ITU-T)根据近

PHP常用的缓存技术汇总_php技巧

一.数据缓存 这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得. 用的最广的例子看Discuz的搜索功能,把结果ID缓存到一个表中,下次搜索相同关键字时先搜索缓存表.举个常用的方法,多表关联的时候,把附表中的内容生成数组保存到主表的一个字段中,需要的时候数组分解一下,这样的好处是只读一个表,坏处就是两个数据同步会多不少步骤,数据库永远是瓶颈

恶意软件感染千万部安卓机 每月获利200万元

美媒称,网络安全研究人员表示,恶意软件HummingBad已感染了至少1000万部安卓设备. 据美国<时代>周刊网站7月5日报道,网络安全软件制造商检查点软件技术有限公司发布了关于这款恶意软件的分析报告,该公司从这款恶意软件今年2月被发现以来一直在进行追踪.HummingBad能够让网络罪犯获得受感染安卓设备的管理员权限.据CNET科技资讯网报道,这款恶意软件会在用户不知情的情况下下载应用和广告,每个月获得最多30万美元(约合200万元人民币)虚假广告收入. 报告称,感染这款恶意软件的主要受害

4种恶意软件反查杀高级技术 反病毒软件和APT解决方案都在为此头疼

在8月末,安全加报道了 恶意软件每天至少30万个变种,这些恶意软件的作者通常使用4种恶意软件反查杀技术 ,对抗各种检测扫描,今天我们接续来说更高级的 混淆技术 以及可用于检测回避式 恶意软件 的新方法和技术. 对抗反汇编和调试工具(防护程序) 恶意软件作者对恶意软件研究员的工作了如指掌且了解他们采用哪些工具定位威胁.例如,研究员和程序员经常采用反汇编程序和调试工具检测代码行为.多种工具和技术均可检测反汇编程序和调试工具,如Windows内置功能.很多此类技术旨在对攻击者进行防御,因为攻击者可能会