大多数时候,网络攻击和恶意软件攻击之间的关系很简单。一些恶意软件已经消失,但并未被遗忘。例如,GandCrab经常被攻击者使用,而开源的QuasarRAT,Quasar是一种公开可用的开源远程访问木马(RAT),主要针对Windows操作系统。Quasar通过恶意附件在网络钓鱼电子邮件中传播。据介绍,这款RAT是用C#编程语言编写的。Quasar最初是由GitHub用户MaxXor出于合法目的开发的。然而,该工具已被黑客用于各种网络间谍活动。Quasar于2014年7月首次发布,名为“xRAT2.0”,后来于2015年8月更名为“Quasar”。此类恶意软件处于灰色地带,没有人可以控制恶意代码库或二进制文件,但并未作为恶意工具。在本文中,我们以Gozi为例,详细描述恶意软件的整个进化周期。Gozi是当今常用的重量级恶意软件。它具有一系列复杂的功能,我们将在下面详细介绍,并且具有非常广泛的攻击范围。JustDreambot(Gozi的变体)影响了450,000名受害者。回顾历史,Gozi最初是一个简单的银行木马,明显缺乏网络注入功能,因此在某些方面比ZeuS的第一个版本更原始。Gozi在使用的??第一年就没有被发现,直到2007年才第一次被曝光。很快,Gozi(类似于Emotet)发展成为一个多模块、多用途的恶意平台,2020年,Gozi被仍在积极运作,并已成为金融界历史上最具破坏性的病毒之一。Gozi是一个代码库,自2007年首次被发现以来,一直被攻击者迭代。在2010年之前,Gozi的源代码一直没有泄露,但在2010年源代码泄露后,其他攻击者接管并运行了源代码,从而导致出现了两个新版本的Gozi:GoziPrinimalka(后来与Pony合并为Neverquest)和Gozi“ISFB”。仅这些早期变体就已经具备反检测能力。一家安全公司甚至将ISFB称为“Gozi2”,将其他人称为“Ursnif”或“Snifula”,以2000年代初期的一款间谍软件命名,最初的GoziCRM借用了它的代码。其他一些供应商开始将恶意软件称为“Rovnix”,该名称源自通常用于混淆二进制文件的包装器。“ISFB”是Gozi派生的专有名称,因为内部二进制字符串包含对“ISFB项目”的引用。最初将恶意软件称为“Ursnif”的行为与扩散恶意软件的命名约定有关,这至少可以追溯到1991年的Michelangelo病毒。这种命名约定没有错,但许多昵称和误解新出现的Gozi引起了混乱。幸运的是,“Rovnix”和“Snifula”的命名法落后了,但“Ursnif”的命名法得以延续。几年后,ISFB的源代码被泄露,大多数证据表明第二次泄露发生在2015年,但一些消息人士称,它早在2013年就发生了。其中一个变体与Nymaim合并成为GozNym的核心代码,混合两个恶意软件家族的后代。另一个变体是Dreambot,它严重依赖于2010年泄露的CRM原始代码,调整了ISFB签入格式,并增加了对TOR网络上C&C通信的支持。当第二波Gozi出现很久后,一些攻击者开发了新的版本,即Goziv3(RM3加载器)、ISFB3和Gozi2RM3(IAP2.0)。这些都对恶意软件的混淆机制、控制流和C&C通信方案进行了自己的调整。特别是签名二进制文件、HTTPS通信和两阶段客户端注册过程。不同版本Gozi的特点下面我们列出了大多数Gozi共有的一些特点:1.字符串以加密形式包含在二进制文件的.bss部分,解密过程使用“密钥”字符串,它是字符串格式编译时间戳(例如,2019年4月20日)。字符串解密过程2.浏览器内攻击从受害者的凭据中窃取一系列预先配置的网站(通常是银行)。在ISFB及其衍生产品中,引入了网络注入功能。3.特定的C&C签入格式,显示在请求标头或文字中。一个典型的例子是soft=%u&version=%u&user=%08x%08x%08x%08x&server=%u&id=%u&crc=%x,虽然使用的参数和顺序略有不同。4.一种复杂的混淆C&C签入的方案。特别是在变体中,这实际上是一个常量,我们不会在任何地方调整它。混淆工作如下:4.1使用内置对称密钥加密签到(旧变种使用RC6,新变种使用Serpent);4.2使用base64编码进行编码;4.3使用自定义转义字符“_”转义非字母数字字符,例如“+”变为_2B;4.4在结果中随机添加斜杠字符(“/”);混淆方案5.在进程级别,恶意浏览器攻击软件模块和实际决定注入什么以及将后者注入explorer.exe的位置的模块之间存在差异。虽然恶意软件的一些运行时信息仍然可以在注册表中全局访问(例如,从C&C服务器收到的最后一个任务列表的CRC值),但两个进程使用命名管道进行通信。6.一系列标准信息窃取功能,例如键盘记录、电子邮件、ftp帐户、IM数据和凭据抓取以及屏幕视频捕获。这些插件还支持可选的dll格式插件,C&C服务器可以指示受感染的计算机在运行时下载和执行这些插件。7.对各种硬编码信息使用相当繁琐的格式(称为“联合资源”)。硬编码信息的类型也不是用简单的英语写的,而是用CRC32标签表示的。CRC到资源名称的映射示例8.变种使用相同的元素和相同的格式来存储Web注入:8.1@ID@:病毒ID(受害者主机身份);8.2@GROUP@:群组ID(机器人的群组ID);8.3@RANDSTR@:随机字符串;8.4@URL=@:目标金融机构;8.5@CONFIG=@:配置;8.6@VIDEO=@:视频,方便受害者访问感兴趣的页面后进行录制;8.7@SOCKS=@:连接SOCKS服务器;8.8@VNC=@:连接VNC;GoziatGozi的这种变体似乎是在ISFB泄漏后几年首次出现的。与其他变体相比,其最显着的特征是其C&C签入功能:大多数其他Gozi版本模拟HTTPGET图像请求,因此/images/的一些变体结束,随后是一个冗长而复杂的BASE64blob,最终结束带有.gif或.jpeg文件扩展名。这种混淆对于安全解决方案来说有点棘手,但并非不可能,这可能就是为什么goziat使用不同的资源目录而不是“图像”,这可以在恶意软件的构建过程中进行配置。由于goziat不担心将签入作为对图像的合法请求,它还放弃了“图像文件扩展名作为编码请求”的技巧,该技巧在Dreambot中很流行,并被许多其他变体复制。相反,它使用简单的操作=少数研究人员将此变体称为LOLSnif,因为它利用了预安装的Windows实用程序,例如mshta.exe和powershell.exe。与更高级的服务器端地理围栏不同,此变体具有针对系统默认UI语言的内置客户端检查。系统UI语言检查定位虽然有几个不同的活动使用Goziat,但它们都倾向于使用.atTLD,这就是研究人员选择这个名称的原因。这一点,连同IP地址甚至所使用的子域的一些重叠,表明在活动的操作层面存在一些共性。这些活动往往会在相同的域和IP地址上停留相当长的时间,这不是最佳选择。下表列出了研究人员使用此特定版本的Gozi能够跟踪的攻击。留在FirefoxSend上的恶意文件除了上面列出的域外,每次攻击都支持TOR域。·Api1:6buzj3jmnvrak4lh.onion,g4xp7aanksu6qgci.onion,l35sr5h5jl7xrh2q.onion·Rpc:v6ekxns6ldq5uai3.onion,uaoyiluezum43ect.onion,tjiqtwzewnkbqxmh.onion·Wpapi:4fsq3wnmms6xqybt.onion,em2eddryi6ptkcnh.onion,nap7zb4gtnzwmxsv.onion,t7yz3cihrrzalznq.onion·Webstore:vo5vuw5tdkqetax4.onion,zq4aggr2i6hmklgd.onionWpx:pzgxy5elkuywloqc.onion,q7nxkpgras35dwxk.onion,rbhqdxwdwrlp67g6.onion,jesteoq7glp3cpkf.onionGozi2RM3/GoziIAP2.0这个版本的Gozi很容易调整任何通信和二进制元数据对于另一个版本的变体。Gozi2RM3与上一代Gozi之间最显着的区别在于攻击基础架构级别,该级别实施了彻底的审查流程。Gozi2RM3攻击活动的C&C基础设施分为两个阶段,第一阶段的C&C地址被硬编码到受感染受害者的初始二进制文件中。第一阶段的C&C已经预先配置了一个ISP/geo-deny列表,用于预先过滤怀疑是好奇的研究人员而不是真正的受害者的连接。在某些情况下,即使通过了这些检查,受害者也必须通过不断发送数据来证明自己是真正的受害者,只有这样,第二阶段服务器才会考虑推送攻击的主要有效载荷并发送真正的配置。值得庆幸的是,至少有一个用于C2通信的默认蛇加密密钥(10291029JSJUYNHG),许多活动从不费心去修改它。虽然基础设施的这些差异是主要原因,但在功能以及C&C面板方面也存在一些差异,这让我们相信该变体可能已在某处出售。Gozi2RM3C&Cweb面板还有一个更简洁的URI格式字符串(没有操作系统、大小、哈希),用于指定从C&C请求的资源的协议是“imagefeignrequest”协议,直接取自dreambot。虚假图像请求及其含义用于Dreambot和其他一些变体Goziat攻击者和Gozi2RM3攻击者之间似乎存在联系,两者都添加了另一个加密步骤,改变了他们的解密有效性有效载荷,恶意服务器的公共RSA密钥使用蛇密钥进一步加密,蛇密钥本身仅在运行时组装。这两个变体以相同的方式改变了他们的流程,并且在如此短的时间内,这一事实似乎表明他们要么自愿共享代码,要么其中一个团队非常警惕地模仿另一个。下表列出了研究人员使用此特定版本的Gozi跟踪的一些攻击,这只是许多长期休眠活动中近期活跃活动的一小部分。这些活动之间的一些共同点表明,使用Gozi2RM3的活跃攻击者的数量可能不是很多。恶意文件分类Goziv3RM3用于传播Gozi2RM3该变种至少从2017年夏天开始流行。ISFB的大部分代码仍然存在,但也有很多差异。这个变体与第二波Gozi之间有一些明显的技术差异:RM3加载器使用一种称为“PX格式”的独特文件格式,并且每个dll都是使用自定义程序加载器加载的。联合资源(“JJ”)结构已被删除,取而代之的是具有不同格式的“WD”结构。此外,该结构并不像以前那样直接保存在PE标头之后,而是保存在安全目录中。Goziv3RM3WD结构该变体利用保存在其中一个WD结构中的单词列表来伪随机生成注册表项名称,这使得通过注册表项IOC检测该变体比以前的变体更加困难。Goziv3RM3数据保存在随机命名的注册表项中该变体使用forfiles.exe执行Powershell脚本,将shellcode加载到内存中,然后使用APC注入执行该shellcode。通过在感染链中添加可执行文件forfiles,此变体可逃避检测机制,该机制会搜索更知名的脚本引擎(如PowerShell和mshta)的持久性。也许首先让分析师感到惊讶的是通信方式的调整,而C&C签入的混淆方案与Gozi变体中全局使用的混淆方案相同,在该变体中它被放置在请求对象而不是URI中(它变成“index.htm”)。此外,正常签到的格式略有不同:虽然这些技术差异确实存在,就像Gozi2RM3一样,但该变体背后的团队似乎将他们的创新集中在防止研究人员与C2交互和获取有效负载方法上。他们通过限制服务器端的有效载荷传递来做到这一点,当客户端尝试连接到C2服务器时,如果该位置与当前活动的目标区域不匹配,它们将被定位并拒绝。更重要的是,第一阶段的C2在线时间很短,在分析之前就消失了。Gozi3RM3通常通过带有混淆的VGS文件或xls4.0宏作为附件的垃圾邮件传播。至少从2017年开始,这个Gozi变体就被认为与流行的加载程序捆绑在一起。Goziv3RM3垃圾邮件和伴随的恶意文件C&C服务器的顶级域通常是.xyz,样本通常使用Verisign签名。实际上,这意味着当受害者运行这些样本时,他们必须在少一个对话框上单击“确定”,以警告他们也许他们不应该执行互联网上陌生人交给他们的随机文件。Dreambot的许多功能即使在较新的变体中也是独一无二的,但归根结底,它是第二波Gozi变体。为逃避检测,它依赖C2签入模拟GET请求获取图片,Dreambot似乎在2020年3月就消失了。DreambotC&C网页面板SaigonGoziv3RM3变种于2019年9月被FireEye发现,并使各种对基础Goziv3RM3的更改,包括:1.C2签入的新参数,其中值得注意的是knock,它编码客户端在发出后续请求之间等待的秒数;2.ECB运行模式使用蛇加密代替CBC。在实际的密码学中,这将被视为降级,但一般规则是无论如何都没有人真正对恶意软件通信进行密码分析;3.混淆加密的C2签到不穿插随机斜线;4。不使用PX格式;可以看出,大多数更改似乎都集中在删除功能上,使恶意软件更简单,并恢复到更类似于第二个Gozi变体的东西。ISFB3/Ursnif-A该变种仅在2018-2019年期间袭击过日本,根据其攻击特点,与TA544有关。一般来说,Gozi通常通过垃圾邮件传播(特别是通过Cutwail),附有办公文件,并使用地理定位来阻止来自其目标之外(通常是日本国内银行的客户)的任何请求。垃圾邮件通常带有Bebloh下载器,然后下载真正的Gozi。针对日本银行客户的ISFB3恶意软件名称“ISFB3”源自恶意二进制文件中显式的pdb路径——c:\isfb3\x64\Release\client.pdb,但标题中的数字“3”并不是其含义第三次迭代。模拟图像检索GET请求仍然存在,并且没有什么可以阻止该活动破坏新功能,一系列小的技术差异使该变体与其他变体区别开来。本文翻译自:https://research.checkpoint.com/2020/gozi-the-malware-with-a-thousand-faces/如有转载请注明原文地址:
