新型OpcJacker恶意软件通过虚假的VPN传播恶意广告
cac55 2024-12-12 11:03 45 浏览 0 评论
趋势科技研究人员发现了一种新型恶意软件,将其命名为 "OpcJacker"(取其opc配置设计“opc”和加密货币劫持“hijack”能力英文前后缀opc-jack而成),该恶意软件自2022年下半年以来一直传播。OpcJacker是一个有趣的恶意软件,因为它的配置文件使用一个自定义的文件格式来定义窃取者的行为。具体来说,该文件格式类似于自定义的虚拟机代码,配置文件中存在的十六进制数字标识符使得窃密器可运行所需的功能。使用这种设计的目的可能是为了使研究人员更难理解和分析恶意软件的代码流。
恶意软件OpcJacker的主要功能包括键盘记录、屏幕截图、从浏览器中窃取敏感数据、加载附加模块,以及替换剪贴板中的加密货币地址以达到劫持目的。
图1. OpcJacker的感染链
研究人员观察到OpcJacker通过不同的活动进行传播,包括伪装成加密货币相关的应用和其他合法软件,然后攻击者通过虚假网站进行传播。在最近一次(2023年2月)涉及OpcJacker的活动中,感染链始于恶意广告,恶意广告对伊朗用户进行地理定位。这些恶意广告被伪装成合法的VPN服务,欺骗受害者下载一个包含OpcJacker的文档。
该恶意软件是通过在已安装得应用更新一个合法的DLL库时加载的,该应用也会加载另一个恶意DLL库。然后,恶意DLL库汇编并运行shellcode,shellcode是另一个恶意可执行文件的loader和runner,可执行文件是文件数据块里存储OpcJacker的各种格式的数据文件,如WAV和CHM。该loader自命名为”Babadeda” crypter以来,已经使用了一年多。这些活动背后的攻击者对加密器本身进行了一些改变,然后增加了一个全新的payload(一个窃密器/剪切器/记键器)。
OpcJacker通常是释放(或下载)和运行额外的模块,这些模块是远程访问工具,不是NetSupport RAT就是一个隐藏虚拟网络计算(hVNC)的变体。我们还发现一份报告分享了一个名为 "Phobos Crypter"(实际上与OpcJacker是同一个恶意软件)的loader被用来加载Phobos勒索软件的信息。
传播
正如介绍中提到的,OpcJacker是通过不同的活动传播的,包括以虚假网站宣传看似合法的软件和加密货币相关的应用,但实际都是托管恶意软件。由于这些活动除了OpcJacker之外,还会传播一些其他不同的恶意软件,因此它们很可能是OpcJacker的控制者所使用的不同类型的按次安装服务。
在最近一次(2023年2月)涉及OpcJacker的活动中,研究人员注意到OpcJacker是通过针对伊朗恶意广告的地理定位传播的。这些恶意广告链接到一个恶意网站,这个恶意网站伪装成合法VPN软件的网站。网站的内容是从一个合法的商业VPN服务的网站上复制的,然而链接被修改为指向到一个内嵌恶意内容被黑网站。
恶意网站检查客户的IP地址以确定受害者是否使用VPN服务。如果IP地址没有使用VPN服务,它就将受害者重定向到第二个被黑网站,诱使他们下载一个包含OpcJacker的文档。如果受害者正在使用VPN服务,就不会发生上述攻击行为。
图2. 一个用于提供OpcJacker的恶意广告的例子
此外,研究人员还发现了一些ISO镜像和RAR/ZIP档案,其中包含各种软件被修改过的安装程序,其导致OpcJacker加载。这些安装程序以前被其他活动使用过,被托管在各种被黑的WordPress框架的网站或软件开发平台,如GitHub。攻击者喜欢使用ISO文件的一个可能的原因是为了绕过IE浏览器的 Mark-of-the-Web 警告。
以下是我们发现的一些文件名例子:
- CLF_security.iso
- Cloudflare_security_setup.iso
- GoldenDict-1.5.0-RC2-372-gc3ff15f-Install.zip
- MSI_Afterburner.iso
- tigervnc64-winvnc-1.12.0.rar
- TradingViewDesktop.zip
- XDag.x64.rar
Babadeda加密器
在安装程序释放所有必要的文件后,它就会加载主可执行文件(RawDigger.exe),这是一个干净的合法文件。
图3. 安装程序释放的文件列表;虽然大多数是安全文件,但有些是补丁或恶意文件
可执行文件加载了一个DLL库,其中包括打了补丁的导入(librawf.dll)
图4. 导入的DLL库列表;高亮显示的库为修补后可加载另外恶意DLL的库
修补后的DLL(librawf.dll,与合法应用RawDigger(一个原始镜像分析器)相关)的导入地址表被进一步修补,修补包括了两个额外的DLL库。在下图中,请注意FirstThunk地址(新添加的库)是如何以001Dxxxx开始的,而不是原始库的FirstThunk地址中使用的0012xxxx。
图5. 一个经过修补的导入地址表
图5中高亮显示的库(libpushpp.dll)随后被加载和执行。它的主要任务是打开其中一个数据文件(hm)并加载存储在其中的第一阶段的shellcode。
图6. 恶意库打开一个数据文件
第一阶段shellcode的偏移量和大小被硬编码到DLL库中。
图7. 恶意库从偏移量0x37D50复制第一阶段的shellcode;shellcode的大小为0x75A字节
在较新版本的Babadeda加密器中,另一个DLL库(mdb.dll,来自虚假VPN的安装程序)被加载到内存中,然后第一阶段shellcode覆盖写入到一个硬编码随机选择的内存块。请注意,这种变化只是一个小细节,对第一阶段shellcode的整体功能没有影响。
图8. 内存加载合法库(mdb.dll),然后第一阶段shellcode(0x7B5字节)被复制到库的内存空间中
在第一阶段shellcode的末尾有一个配置表,包含了加密块的偏移量和它们各自的大小。然后,第一阶段shellcode解密并整合所有的块,形成第二阶段的shellcode(一个加载器)和主要的恶意软件(OpcJacker能加载其他恶意模块)。
图9. 第一阶段shellcode的配置表
配置表以至少八个相同的字符开始(图9中红色的 "*",但在其他样本中可能使用不同的字符),然后是数据文件的总长度(绿色字体;hm的长度=0x1775e0=1537504字节),加密密钥(黄色字体;0x18),shellcode第二阶段块数(棕色字体;0x07),最后,由主恶意软件的块数(白色字体;0x08)。0x07(红线框)和0x08(蓝线框)的列表相当于每个块的15个地址和大小。
在数据文件(hm)的开头,我们可以看到(WAV)文件头,因为它试图模仿WAVE文件格式。请注意,数据文件可以是不同的文件格式,CHM格式能被模仿篡改。
图10. 以WAV头开始的数据文件
主要的窃密器组件(OpcJacker)
主要的恶意软件组件(OpcJacker)是一个有趣的窃密器,首先解密并加载其配置文件。配置文件的格式类似于用自定义机器语言编写的字节码,其中每条指令都被解析,获得单独的操作码,然后执行具体的处理程序。
在分析自定义字节码时,我们注意到以下模式:
ASCII字符串被编码为01 xx xx xx <string bytes>;其中xx xx xx xx是字符串的长度。
图11. 配置文件内编码的ASCII字符串
同样地,宽的字符串从第02字节开始,而二进制数组从第03字节开始。
图12. 配置文件内编码的UNICODE字符串
图13. 配置文件内的编码二进制阵列
配置文件的格式是一个指令序列,其中指令以三个4字节的小端(DWORD)数字开始。第一个数字是虚拟程序计数器,第二个可能是父指令的虚拟程序计数器,而第三个是处理程序ID(将在虚拟机中执行的代码),后面是数据字节或附加处理程序ID。
基于这些观察,研究人员写了一个指令解析器,从中得到了以下输出。尽管对虚拟机内部实现的观察和理解是不完整的,但解析器让研究人员很好地理解了配置文件中定义的行为是什么。
解密和解码后的配置文件从某些系统变量的初始化开始,其中 "test "和 "rik "很可能是活动ID。由SHA256 c5b499e886d8e86d0d85d0f73bc760516e7476442d3def2feeade417926f04a5释放的配置文件包含不同的关键词 "test "和 "ilk "作为活动ID。同时,2023年2月的最新活动所释放的配置文件(SHA256 565EA7469F9769DD05C925A3F3EF9A2F9756FF1F35FD154107786BFC63703B52)包含关键词 "test_installs "和 "yorik"。
图14. 初始化命令
然后初始化剪贴板替换功能(剪切)。
图15. 剪贴板替换器(clipper)的初始化
然后,变量 "exe "被初始化为可执行文件字节(见4d 5a 90 = MZ标记)。这个可执行文件是一个远程访问工具。
图16. 嵌入式模块(PE EXE格式)
恶意软件通过注册表运行和任务调度器方法设置了持久性。请注意用于保存当前进程文件名的$itself_exe变量。
图17. 设置持久性的方法
然后,该恶意软件启动剪切功能,即监控剪报板上的加密货币地址,并将其替换为由攻击者自己的加密货币地址。
图18. 剪切器功能
最后,virtual_launch_exe函数运行先前嵌入的可执行文件,这些文件是RAT,要么是NetSupport RAT、NetSupport RAT下载器,要么是hVNC。
图19. 运行嵌入式可执行文件的功能
自定义虚拟机中的处理程序ID
从前面几张截图中的第三列(或解码后的 "命令 "变量)可以看出,虚拟机实现了许多内部处理程序。其中大部分都与各种数据操作有关。我们在表1中列出了几个值得注意的处理程序,它们具有特定的高级功能。偷窃器实现的功能包括:剪贴(剪贴板内容替换)、键盘记录、文件执行和列出、杀死进程、窃取Chrome证书、检测空闲和检测虚拟机。然而,在我们的测试场景中,我们观察到窃密器大多只是设置持久性和提供额外的模块(远程访问工具)。
Handler ID | Function |
0x3E9 | Used for persistence (registry; HKCU) |
0x3EA | Used for persistence (registry; HKLM) |
0x3EB | Used for persistence (startup folder) |
0x3EC;0x3ED | Used for persistence (task scheduler) |
0x7d1 | Lists files |
0x579 | Starts clipper |
0x57A | Stops clipper |
0x12d | Puts the machine into sleep mode |
0x385 | Terminates process |
0x387 | Exits process |
0x388; 0x38B | Runs PE executable |
0x389 | Runs shellcode |
0x38A | Runs PE executable export routine |
0x76D | Gets current committed memory limit (ullTotalPageFile) |
0x76E | Gets the amount of actual physical memory (ullTotalPhys) |
0x641 | Steals sensitive data from Chromium |
0x259 | Checks if the machine is idle and if the cursor is not moving |
0x25B | Checks if the machine is idle and if no new process is being created |
0x25D | Checks if the machine idle and if no new window is being created |
0x835 | Starts keylogger |
0x836 | Starts keylogger for a certain period |
0x837 | Stops keylogger |
0x839 | Copies data (likely logs) then return 0x83a (klogs) |
0x1F5 | Retrieves VMWare via CPUID |
0x1f7 | Searches for 'virtual' in SYSTEM\\ControlSet001\\Services\\disk\\Enum |
0x83A | Writes file(s) to klogs// |
0x89a | Writes file(s) to screenshots\\ |
0x596 | Writes to clp\clp_log.txt |
0xf6 | Writes file(s) to chromium_creds\\ |
0xCE | Copies files to filesystem\\ |
0x321 | Creates messagemonitor window, which needed for the clipper |
0x322 | Destroys messagemonitor window, which is needed for the clipper |
0x5DC | Gets environment ID |
0x5E0 | Runs GetModuleFileNameW, which is needed for resolving $itself_exe |
表1. 虚拟机命令ID
图20. 在窃密器的二进制中实现的与键盘记录器有关的命令;在截图中也可以看到命令ID(0x835;0x837;0x836;0x839)
嵌入式模块
NetSupport RAT模块
一些嵌入式模块包含NetSupport RAT的client32.exe(SHA256 18DF68D1581C11130C139FA52ABB74DFD098A9AF698A250645D6A4A65EFCBF2D或SHA256 49A568F8AC11173E3A0D76CFF6BC1D4B9BDF2C35C6D8570177422F142DCFDBE3)文件。然而,这个单一的文件是不够的,因为NetSupport工具需要额外的DLL库和一个配置文件。请注意,这些缺失的文件已经被修改后的安装程序丢进了安装目录。
对于研究人员来说,最重要的文件叫做client32.ini,它包含重要的设置,如网关地址、网关密钥(GSK)和端口。
图21. NetSupport RAT的配置文件
NetSupport RAT下载器模块
一些嵌入式模块包含NetSupport RAT下载器(SHA256 C68096EB0A655924CA840EA1C71F9372AC055F299B52335AD10DDFA835F3633D)。这个下载器对URL的payload进行解密,然后下载并执行它。
图22. 解密后的下载器配置文件,额外的URL以清晰的文字显示出来
解密后的配置包含两个URL,一个通向包含NetSupport RAT的档案,就像之前的模块一样,而第二个则包含一些批处理脚本,显示的信息如图23中的信息。后来,这些批处理脚本中的一个下载了额外的窃密器。
图23. 告诉受害者等待程序安装的钓鱼信息
hVNC模块
一些嵌入式模块包含一个修改的hVNC模块F772B652176A6E40012969E05D1C75E3C51A8DB44712454975678F04DEDAAA。这个模块,除了标准的远程桌面功能外,还包含搜索以下加密货币相关的谷歌浏览器、微软Edge和火狐浏览器扩展(钱包)存在的例程:
Google Chrome extension ID | Extension name |
ffnbelfdoeiohenkjibnmadjiehjhajb | Yoroi |
ibnejdfjmmkpcnlpebklmnkoeoihofec | TronLink |
jbdaocneiiinmjbjlgalhcelgbejmnid | Nifty Wallet |
nkbihfbeogaeaoehlefnkodbefgpgknn | MetaMask |
afbcbjpbpfadlkmhmclhkeeodmamcflc | Math Wallet |
hnfanknocfeofbddgcijnmhnfnkdnaad | Coinbase Wallet |
fhbohimaelbohpjbbldcngcnapndodjp | Binance Wallet |
odbfpeeihdkbihmopkbjmoonfanlbfcl | Brave Wallet |
hpglfhgfnhbgpjdenjgmdgoeiappafln | Guarda Wallet |
blnieiiffboillknjnepogjhkgnoapac | Equall Wallet |
cjelfplplebdjjenllpjcblmjkfcffne | Jaxx Liberty |
fihkakfobkmkjojpchpfgcmhfjnmnfpi | BitApp Wallet |
kncchdigobghenbbaddojjnnaogfppfj | iWallet |
amkmjjmmflddogmhpjloimipbofnfjih | Wombat |
fhilaheimglignddkjgofkcbgekhenbh | Oxygen |
nlbmnnijcnlegkjjpcfjclmcfggfefdm | MyEtherWallet |
nanjmdknhkinifnkgdcggcfnhdaammmj | GuildWallet |
nkddgncdjgjfcddamfgcmfnlhccnimig | Saturn Wallet |
fnjhmkhhmkbjkkabndcnnogagogbneec | Ronin Wallet |
aiifbnbfobpmeekipheeijimdpnlpgpp | Station Wallet |
fnnegphlobjdpkhecapkijjdkgcjhkib | Harmony |
aeachknmefphepccionboohckonoeemg | Coin98 |
cgeeodpfagjceefieflmdfphplkenlfk | EVER Wallet |
pdadjkfkgcafgbceimcpbkalnfnepbnk | KardiaChain |
bfnaelmomeimhlpmgjnjophhpkkoljpa | Phantom |
fhilaheimglignddkjgofkcbgekhenbh | Oxygen |
mgffkfbidihjpoaomajlbgchddlicgpn | Pali |
aodkkagnadcbobfpggfnjeongemjbjca | BoltX |
kpfopkelmapcoipemfendmdcghnegimn | Liquality |
hmeobnfnfcmdkdcmlblgagmfpfboieaf | XDEFI |
lpfcbjknijpeeillifnkikgncikgfhdo | Nami |
dngmlblcodfobpdpecaadgfbcggfjfnm | MultiversX DeFi |
表2. 针对Chrome浏览器的扩展程序
Microsoft Edge extension ID | Extension name |
akoiaibnepcedcplijmiamnaigbepmcb | Yoroi |
ejbalbakoplchlghecdalmeeeajnimhm | MetaMask |
dfeccadlilpndjjohbjdblepmjeahlmm | Math Wallet |
kjmoohlgokccodicjjfebfomlbljgfhk | Ronin Wallet |
ajkhoeiiokighlmdnlakpjfoobnjinie | Terra Station |
fplfipmamcjaknpgnipjeaeeidnjooao | BDLT wallet |
niihfokdlimbddhfmngnplgfcgpmlido | Glow |
obffkkagpmohennipjokmpllocnlndac | OneKey |
kfocnlddfahihoalinnfbnfmopjokmhl | MetaWallet |
表3. 针对EDGE浏览器的扩展程序
Mozilla Firefox extension ID | Extension name |
{530f7c6c-6077-4703-8f71-cb368c663e35}.xpi | Yoroi |
ronin-wallet@axieinfinity.com.xpi | Ronin Wallet |
webextension@metamask.io.xpi | MetaMask |
{5799d9b6-8343-4c26-9ab6-5d2ad39884ce}.xpi | TronLink |
{aa812bee-9e92-48ba-9570-5faf0cfe2578}.xpi | |
{59ea5f29-6ea9-40b5-83cd-937249b001e1}.xpi | |
{d8ddfc2a-97d9-4c60-8b53-5edd299b6674}.xpi | |
{7c42eea1-b3e4-4be4-a56f-82a5852b12dc}.xpi | Phantom |
{b3e96b5f-b5bf-8b48-846b-52f430365e80}.xpi | |
{eb1fb57b-ca3d-4624-a841-728fdb28455f}.xpi | |
{76596e30-ecdb-477a-91fd-c08f2018df1a}.xpi |
表4. 针对火狐浏览器的扩展程序
在我们分析的样本中,命令和控制(C&C)通信以下列魔法开始:
图24. HVNC网络通信魔法
下面的片段显示,有些值是硬编码到可执行文件中的,其他的是由MachineGuid生成的或随机生成的。注意图25中看到的字符串 "7.7",这可能是修改后的hVNC版本。
图25. 生成hVNC数据包魔法的代码
总结
OpcJacker的控制者的使用动机看起来是出于经济利益,因为该恶意软件的主要目的是从钱包中窃取加密货币资金。然而,其多功能性也允许OpcJacker作为一个窃密器或恶意软件loader,这意味着它可以在其最初的预期用途之外被使用。
我们在样本中发现的活动ID,如 "test "和 "test_installs",表明OpcJacker可能仍处于开发和测试阶段。鉴于其独特的设计与各种类似虚拟机的功能相结合,该恶意软件有可能广受攻击者欢迎,因此可能在未来的威胁活动中使用。
from https://www.freebuf.com/articles/paper/363188.html
相关推荐
- Mac电脑强制删除任何软件方法-含自启动应用
-
对于打工者来说,进入企业上班使用的电脑大概率是会被监控起来,比如各种流行的数据防泄漏DLP,奇安信天擎,甚至360安全卫士,这些安全软件你想卸载是非常困难的,甚至卸载后它自己又安装回来了,并且还在你不...
- Linux基础知识 | 文件与目录大全讲解
-
1.linux文件权限与目录配置1.文件属性Linux一般将文件可存取的身份分为三个类别,分别是owner/group/others,且三种身份各read/write/execute等权限文...
- 文件保护不妥协:2025 年 10 款顶级加密工具推荐
-
数据安全无小事,2025年这10款加密工具凭借独特功能脱颖而出,从个人到企业场景全覆盖,第一款为Ping32,其余为国外英文软件。1.Ping32企业级加密核心工具,支持200+文件格...
- 省心省力 一个软件搞定系统维护_省心安装在哪里能找到
-
◆系统类似于我们居住的房间,需要经常打理才能保持清洁、高效。虽然它本身也自带一些清理和优化的工具,但借助于好用的第三方工具来执行这方面的任务,会更让人省心省力。下面笔者就为大家介绍一款集多项功能于一身...
- JAVA程序员常用的几个工具类_java程序员一般用什么软件写程序
-
好的工具做起事来常常事半功倍,下面介绍几个开发中常用到的工具类,收藏一下,也许后面真的会用到。字符串处理:org.apache.commons.lang.StringUtilsisBlank(Char...
- 手工解决Windows10的若干难题_windows10系统卡顿怎么解决
-
【电脑报在线】很多朋友已经开始使用Win10,估计还只是测试版本的原因,使用过程中难免会出现一些问题,这里介绍解决一些解决难题的技巧。技巧1:让ProjectSpartan“重归正途”从10074...
- System32文件夹千万不能删除,看完这篇你就知道为什么了
-
C:\Windows\System32目录是Windows操作系统的关键部分,重要的系统文件存储在该目录中。网上的一些恶作剧者可能会告诉你删除它,但你不应该尝试去操作,如果你尝试的话,我们会告诉你会发...
- Windows.old 文件夹:系统备份的解析与安全删除指南
-
Windows.old是Windows系统升级(如Win10升Win11)或重装时,系统自动在C盘创建的备份文件夹,其核心作用是保留旧系统的文件、程序与配置,为“回退旧系统”提供保...
- 遇到疑难杂症?Windows 10回收站问题巧解决
-
回收站是Windows10的一个重要组件。然而,我们在使用过程中,可能会遇到一些问题。例如,不论回收站里有没有文件,都显示同一个图标,让人无法判别回收站的空和满的真实情况;没有了像Windows7...
- 卸载软件怎么彻底删掉?简单几个步骤彻底卸载,电脑小白看过来
-
日常工作学习生活中,我们需要在安装一些软件程序,但随着软件的更新迭代速度,很多时候我们需要重新下载安装新的程序,这时就需要将旧的一些软件程序进行卸载。但是卸载软件虽然很简单,但是很多小伙伴们表示卸载不...
- 用不上就删!如何完全卸载OneDrive?
-
作为Windows10自带的云盘,OneDrive为资料的自动备份和同步提供了方便。然而,从隐私或其他方面考虑,有些人不愿意使用OneDrive。但Windows10本身不提供直接卸载OneDri...
- 【Linux知识】Linux下快速删除大量文件/文件夹方法
-
在Linux下,如果需要快速删除大量文件或文件夹,可以使用如下方法:使用rm命令删除文件:可以使用rm命令删除文件,例如:rm-rf/path/to/directory/*这个命令会递...
- 清理系统不用第三方工具_清理系统垃圾用什么软件
-
清理优化系统一定要借助于优化工具吗?其实,手动优化系统也没有那么神秘,掌握了方法和技巧,系统清理也是一件简单和随心的事。一方面要为每一个可能产生累赘的文件找到清理的方法,另一方面要寻找能够提高工作效率...
- 系统小技巧:软件卸载不了?这里办法多
-
在正常情况下,我们都是通过软件程序组中的卸载图标,或利用控制面板中的“程序和功能”模块来卸载软件的。但有时,我们也会发现利用卸载图标无法卸载软件或者卸载图标干脆丢失找不到了,甚至控制面板中卸载软件的功...
- 麒麟系统无法删除文件夹_麒麟系统删除文件权限不够
-
删除文件夹方法例:sudorm-rf文件夹名称。删除文件方法例:sudorm-r文件名包括扩展名。如果没有权限,给文件夹加一下权限再删。加最高权限chmod775文件名加可执行权限...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)