JSON

这个恶意软件“奇葩”的反虚拟机技巧

字号+ 作者:H5之家 来源:H5之家 2017-05-25 08:00 我要评论( )

最近,我分析到一个行为异常的恶意软件样本。由于很难发现该恶意软件的真实行为,所以我花了很多时间去调试分析。然而在分析过程中,又有多种因素会导致运行崩溃

xxx.jpg

xxx.jpg

最近,我分析到一个行为异常的恶意软件样本。由于很难发现该恶意软件的真实行为,所以我花了很多时间去调试分析。然而在分析过程中,又有多种因素会导致运行崩溃和异常。在此,我就发表了对该恶意软件反虚拟机的一些技术。

样本信息

恶意软件样本文件名为“Intelligent Software Solutions Inc.doc“,其SHA256值为:

048fc07fb94a74990d2d2b8e92c099f3f986af185c32d74c857b07f7fcce7f8e

以下是样本文件打开运行时的示例:

anti-vm-tricks-word-view.png

anti-vm-tricks-word-view.png

如果这看起来不太可疑,请看其代码视图:

anti-vm-tricks-vb-code.png

anti-vm-tricks-vb-code.png

2016-09-27_202426.jpg

2016-09-27_202426.jpg

这是一个经典的教科书式的WORD恶意软件,它没有实质内容,但包括了经过混淆的可执行代码,看上去非常简洁。

分析调查

从代码层面来看,顶部的分支程序像是程序的执行入口,很有可能是当WORD文档被打开后,点击“enable contenet” 执行Active X控件的操作,最终,程序会排错调用IuIxpP子程序。

3333333333333.jpg

3333333333333.jpg

技巧:

在子程序 IuIxpP中,分别调用了两个方法DKTxHE 和 qrNjY,并抛出不同的执行错误。

2016-09-27_203150.jpg

2016-09-27_203150.jpg

其中,DKTxHE 功能为:

2016-09-27_203455.jpg

2016-09-27_203455.jpg

RecentFiles对象表示系统最近打开过的历史文档。通常,安装了word程序的用户可能会打开超过2个或更多数量的文档。然而,当该恶意软件植入到新创建的虚拟机和word环境中后,总是状况不断,不能正常运行。每次测试时手动打开一两次,总是出现程序异常。即使是保存了虚拟机镜像状态,重启调试分析后,恶意程序仍然不能正常执行。

从DKTxHE函数功能可以看出,恶意软件以RecentFiles数量来判断是否身处VM环境中,如果在VM环境中,它将不会执行任何恶意行为,非常“聪明”。之后,我随意创建了3个不同名称的word文档,逐一打开并关闭,让历史文档数量为3,最终成功运行并检测到了恶意软件。

原因很明了,虚拟机环境一般缺乏多个Word文档,恶意程序通过探测最近打开的历史文档数量,判断是否处于VM环境中,如果在最近打开文档数量内发现只有3个以下的word文档,就会拒绝执行。

技巧:

在另一个子程序 qrNjY中,恶意软件通过探测IP信息来识别VM环境。首先,它通过向远程地址发出某种认证请求,

https://www.maxmind.com/geoip/v2.1/city/me

之后设置请求信息中的HTTP Refer属性和User-Agent值,访问链接:

https://www.maxmind.com/en/locate-my-ip-address

以此获取宿主系统的地址信息,如:

2016-09-27_124440.jpg

2016-09-27_124440.jpg

获取信息封装于JSON格式文件中,包含国家、城市、或者与IP相关的组织机构等信息。如:

{ "location": { "latitude": 30.7858, "longitude": -102.1232, "metro_code": 705, "accuracy_radius": 5, "time_zone": "America/Los_Angeles" }, "continent": { "names": { "ja": "北アメリカ", "pt-BR": "América do Norte", "de": "Nordamerika", "es": "Norteamérica", "ru": "Северная Америка", "fr": "Amérique du Nord", "zh-CN": "北美洲", "en": "North America" }, "code": "NA", "geoname_id": 6255149 }, "city": { "names": { "pt-BR": "Oakland", "de": "Oakland", "es": "Oakland", "ja": "オークランド", "en": "Oakland", "ru": "Окленд", "fr": "Oakland", "zh-CN": "奥克兰" }, "geoname_id": 5378538 }, "postal": { "code": "94619" }, "country": { "names": { "ru": "США", "fr": "états-Unis", "zh-CN": "美国", "en": "United States", "ja": "アメリカ合衆国", "es": "Estados Unidos", "pt-BR": "Estados Unidos", "de": "USA" }, "iso_code": "US", "geoname_id": 6252001 }, "traits": { "organization": "Comcast Cable", "isp": "Comcast Cable", "ip_address": "123.123.123.123", "autonomous_system_organization": "Comcast Cable Communications, LLC", "domain": "comcast.net", "autonomous_system_number": 7922 }, "registered_country": { "geoname_id": 6252001, "names": { "zh-CN": "美国", "ru": "США", "fr": "états-Unis", "en": "United States", "ja": "アメリカ合衆国", "pt-BR": "Estados Unidos", "de": "USA", "es": "Estados Unidos" }, "iso_code": "US" }, "subdivisions": [ { "geoname_id": 5332921, "names": { "ru": "Калифорния", "fr": "Californie", "zh-CN": "加利福尼亚州", "en": "California", "ja": "カリフォルニア州", "pt-BR": "Califórnia", "es": "California", "de": "Kalifornien" }, "iso_code": "CA" } ] }

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
i