导语:FortiGuard实验室的研究人员日前发现了一个名为“Netbounce”的攻击组织正尝试使用进入白名单的方法尝试逃避安全检查,受影响的平台包括Windows,Linux,MacOS。
FortiGuard实验室的研究人员日前发现了一个名为“Netbounce”的攻击组织正尝试使用进入白名单的方法尝试逃避安全检查,受影响的平台包括Windows,Linux,MacOS。 目前研究人员已将其威胁严重性划分到“严重”级别。
2月12日,FortiGuard实验室收到了一封来自Packity Networks公司的电子邮件请求,要求将他们的程序列入白名单。发件人声称FortiGuard的安全程序误将其程序排除在黑名单之外,对他们的业务造成了重大影响。
当时,只有Fortinet和Dr.Web sandbox将链接中的文件列为恶意文件。
收到电子邮件时VirusTotal对setup.exe的检测
尽管乍一看,将其标记为恶意程序似乎是无辜的,而且几乎没有其他安全供应商标记过该文件,但FortiGuard总是在响应之前彻底调查此类请求。经过细致地调查,FortiGuard安全研究人员发现了一个名为“Netbounce”的新型攻击组织,目前研究人员已经发现了该组织所传播的恶意程序的基础结构,以及其脱颖而出的独特的工具和技术组合。目前研究人员已经找到该组织开发的几种变体,每种变体都有不同的功能。
在此文中,研究人员将介绍Netbounce组织采取的各种尝试逃避攻击的措施。
技术分析
在开始分析样本之前,首先要注意的是,来自电子邮件的链接(hxxps://packity.com/setup.exe)没有提到Packity Networks公司的网站,包括没有可见的超链接,也没有提到文件或类似的名称等等。此外,可以通过网站上的另一个URL找到“官方”安装程序:hxxps://www.packity.com/pub/desktop/Packity-latest.exe。
从下表可以看出,这些安装程序是完全不同的。
通过链接可以看到官方安装程序和setup.exe之间的主要区别
但是,这本身并不是一个非常可靠的指标,因为可能有合理的原因会导致差异,例如,已安装的应用程序随后会下载并使用该setup.exe文件。此外,这两个可执行文件均未表现出任何明显的恶意行为,并且均已使用颁发给“安全网络堆栈”的同一证书进行了有效签名。
但是,研究人员在Secured Network Stack和Packity Networks Inc.上进行的背景调查没有得到任何结果。没有注册公司或这些实体的官方参考,研究人员也无法在网上找到任何员工资料。但是,基于Twitter帐户,Packity似乎已经在其网站上拥有至少两年的在线业务,并且研究人员发现了对该程序的评论。
来自VirusTotal的setup.exe数字签名信息
可疑代码签名
尽管可执行文件是用相同的证书签名的,但研究人员注意到该证书是用一个不相关的电子邮件地址[email protected]颁发的。证书是在2020年9月2日颁发的,所以研究人员搜索Packity使用的旧证书,并找到了一个更旧的安装程序。对比旧的签名确认了联系信息确实与公司无关。
用于对可执行文件进行签名的旧安装程序(左)和当前(新)安全网络堆栈签名的信息对比
“@me.com”域仅属于2012年9月19日之前创建的苹果邮件账户,可以在苹果支持网站上看到:
苹果支持站点地址为@me.com电子邮件域
尽管使用另一封电子邮件似乎很奇怪,但新证书是在前一个证书于2020年9月3日到期时才签发的,这可能表明它不是恶意的。
敏锐的读者可能还注意到,带有新证书的签名没有时间戳签名。在签名代码时,这种情况非常少见,并且网站上的“官方”安装文件确实带有时间戳。因此,其中肯定有问题。
二进制的应用
如上所述,执行setup.exe不会提供任何明确的恶意指标。但是,研究人员确实观察到以下行为:
1.自我复制到 “C:\Windows\Net Helper\net-helper.exe”;
2.使用复制的文件创建了一个名为“Net Helper”的服务;
3.启动服务并退出该进程;
4.然后新服务进程尝试每5分钟连接一次hxxps://update.netbounce.net/check;
这种行为对于安装程序来说是不正常的,原因如下:
1.没有发生用户交互;
2.通常不会在c:\ windows中创建新文件夹;
3.程序的实际文件都没有被解压缩,并且安装程序只是自我复制;
通过查看代码,研究人员可以看到它是用Go编程语言编写的,并具有一个名为equinoxUpdate的函数。根据官网介绍,Equinox可帮助用户构建、打包并将自我更新的Go应用进行传播;提供付费托管计划,并提供开源客户端SDK。
Equinox文档
实际上,除了设置持久性之外,可执行文件的大多数功能基本上都是使用硬编码的AppId“test”的Equinox客户端。没有其他对Equinox名称空间的引用,这意味着它与源代码一起使用,而不仅仅是作为导入包使用,因此研究人员检查了对其所做的任何更改。研究人员发现,除了上面列出的更新的URL外,HTTP User-Agent报头还被设置为“Netbounce/1.0”。
有效地更改URL意味着将不使用公共Equinox服务器,但是通过使用相同的协议,更新机制可能仍然看起来合法。
在研究人员进行分析时,更新机制未下载任何内容。但是,攻击者有可能只是保留了使用它的选项,并在将来提供恶意有效载荷。
深入分析
在这一阶段,研究人员遇到了障碍。有许多看起来很奇怪的指标:粗略的公司,缺少公司网站上引用的可执行文件,具有可疑属性的数字签名以及没有任何实质功能的应用程序。但是,尽管看起来可疑,但研究人员没有任何具体证据证明它确实是恶意的。此时,研究人员决定尝试查找使用相同证书签名的其他文件,以期获得新的线索。
研究人员能够追踪其他样本,这些样本与研究人员在电子邮件中收到的样本具有相似的属性。其中,研究人员确定了针对Linux和MacOS编译的示例以及实际的恶意功能。
在一个名为“Net Helper GUI.exe”的野外发现的样本在所有属性上几乎相同:
文件大小:7MB;
编程语言:Go;
执行路径:%windir%\ Net Helper \ net-helper.exe;
首次发现时间:2021年2月14号;
对可执行文件进行分析对比后,研究人员确认两个样本都具有相同的开发者。此外,它还显示它有额外的功能:
精确函数匹配:5074;
部分函数匹配:29。
Net Helper GUI.exe仅有的功能:164(新功能)。
Setup.exe仅有的功能:34(不包含真正的功能)。
通过分析这些差异,研究人员发现函数main_run在尚未安装服务的分支上具有其他代码。在安装服务之前,将调用函数“main_setupNetUpdater”以通过对boostfever.com的HTTP GET请求下载并执行下一阶段的有效载荷。使用URL路径和域进行硬编码后,子域可以是:
1.随机生成的UUID - hxxp://0857a813-72ca-4a70-883a-3b555f6bf3c1.boostfever.com/progwrapper.exe。
2.硬编码的“cdn”字符串—— hxxp://cdn.boostfever.com/progwrapper.exe。
在后面的部分中,研究人员将详细介绍progwrapper.exe。
main_run的图形视图,其中添加了基本块(突出显示)
在运行有效载荷之前,当前用户每次使用新会话登录时,也都需要通过注册表将其保持在计算机上:HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\net-helper。
研究人员发现此类下载器包含在文件和MSI安装程序中。在可能的感染媒介之前,请先确认未安装该服务,然后再放置此功能,这是示例首次在系统上执行时的情况。
Equinox客户端用作导入包,因此可以完整保留名称空间,以及默认URL(https://update.equinox.io/check)和User-Agent(EquinoxSDK / 1.0)。在研究人员检测到的所有样本中都使用了硬编码的AppId(app_6EE4wBvjBhS)。在服务中经过5分钟的计时器后,将从Equinox服务器中提取更新。
更新后的文件是“Net Helper”的另一个变体,它具有经过修改的Equinox客户端(如setup.exe中一样),但是AppId是使用计算机的序列号生成的,研究人员将这些样本称为更新后变体。
反向代理
反向代理在各种示例(更新前后)中包含的另一个功能是反向代理,它可以有效地授予其操作员在受感染网络内部的立足点,同时绕过外围防火墙策略。它的潜在目的还可能是在对其他组织中的目标执行操作时,将受感染的计算机作为跳转点。
此功能是使用开源隧道包实现的,服务运行时,会将HTTP GET请求发送到外部服务器,例如hxxp://connect.netbounce.net/manage.json,以获取用于入站通信的代理服务器的地址。一旦样本连接到指定的服务器,操作员就可以开始通过受感染计算机代理HTTP / TCP连接。
编译后的二进制文件中的程序包名称为“netbounce”或“proxy”。该程序包现成可用,仅支持在本地主机上重定向流量。在研究人员的案例中,是受害者的计算机。恶意程序开发者更改了代码,以允许他们根据规范连接到其他计算机。
针对原始源代码的TCPProxy.Proxy函数的反汇编
MacOS和Linux变体
使用Go编程语言,使攻击者可以轻松地将其操作扩展到MacOS和Linux,因为可以很容易地将源代码编译为其他操作系统。
对于MacOS,研究人员发现了一个带有安装后脚本的应用程序包,该脚本下载具有相同硬编码Equinox AppId(app_6EE4wBvjBhS)的更新前变体。它还包括具有相同管理URL(hxxp://connect.netbounce.net/manage.json)的反向代理功能。
程序包中包含的安装后脚本
对于研究人员观察到的更新后样本,没有从netbounce.net域中提取其他更新。利用Equinox客户端与该服务器进行通信这一事实,研究人员找出了响应有效更新请求而提供文件的URL。通过这种方式,研究人员自己发出了请求并获得了一个ELF样本,研究人员将其归类为更新后的变体。
程序包装
回到progwrapper.exe可执行文件,研究人员确定它也是在Go中开发的。它将HTTP GET请求发送到硬编码的URL(hxxp://cdn.boostfever.com/ex.json),该URL返回以下JSON对象作为响应:
响应中的ex.json
根据“类型”字段,它检查提供的路径中是否存在一个文件或注册表项,然后继续从“download_url”下载并执行文件,函数main_downloadAnotherExecutable也存在于“Net Helper GUI.exe”中。该代码是共享的,只有一点小差异,与功能本身无关。
在本文的示例中,output40.exe是最终的有效载荷。它装有一个多级封装程序,拆包后,研究人员发现从该基础结构中交付了不同的窃取程序,例如Vidar和FickerStealer。研究人员观察到了封装程序的不同变体,因此研究人员估计它也是该交付基础结构的一部分。拆包后,将使用反射加载或Process Hollowing技术在内存中执行有效载荷。
有趣的是,FickerStealer的第一个操作是创建文件“Trackingfolder084 \ start.txt”。该字符串以二进制形式进行了硬编码,这暗示了该字符串与Netbounce基础结构之间的密切关系。
较新版本的progwrapper.exe添加了基本的远程命令执行功能,可以代替下载和执行使用该功能。该变体还通过HTTPS使用不同的硬编码域t1.xofinity.com,并且使用AES算法对响应进行加密。奇怪的是,HTTP User-Agent标头设置为“Netbounce / 1.0”。
连接点
“Netbounce”用作域名,用户代理以及源代码中的自定义程序包。它的可能的源代码由不同的攻击者共享,但是,网络基础设施中的重叠部分使得将所有活动聚集到一个对象中成为可能。
installcdn-aws.com,boostfever.com,jumpernode.com和uptime66.com的WHOIS记录显示,它们均由同一对象注册。
它们具有相同的活动子域,例如cdn,下载,更新和代理。其他子域具有类似的模式,其格式设置为“
域的所有IP都解析到相同的子网——195.181.160.0/20,某些服务器还由不同的域托管:
195.181.169.92: dl.installcdn-aws.com, u1.boostfever.com, t1.xofinity.com;
195.181.164.195: cdn.boostfever.com, cdn.netbounce.net, proxy.netbounce.net, connect.netbounce.net, proxy.jumpernode.com, connect.jumpernode.com;
通过查看被动DNS记录,研究人员可以了解该攻击活动在过去几周的进展。下表显示了指向195.181.164.212的域的解析历史,这再次表明所有域都由同一对象操作。
DNS解析历史记录为195.181.164.212
研究人员使用FortiGuard威胁情报数据生成了全球感染热图:
按国家划分的受感染受害者的热图
总结
即使攻击者采取了许多措施以使其看起来合法进行逃避检测,该活动也几乎在启动后会被立即检测到:
1. 使用真实的公司来伪装该活动;
2. 使用与公司使用的原始证书非常相似的有效证书;
3. 作为感染链的一部分,使用了合法的更新服务Equinox。
感染链阶段
本文翻译自:https://www.fortinet.com/blog/threat-research/netbounce-threat-actor-tries-bold-approach-to-evade-detection如若转载,请注明原文地址: