恶意软件正劫持安全软件更新进行分发

news2024/11/17 12:38:36

GuptiMiner 是一个高度复杂的威胁,最早在 2018 年发现,主要为了在大型企业中分发后门。一种是 PuTTY Link 的增强版本后门,能够针对本地网络进行 SMB 扫描,并通过网络横向移动到网络上其他可能易受攻击的 Windows 7 和 Windows Server 2008 主机;另一种是多模块后门,接受攻击者的命令安装更多恶意代码模块,并专注于扫描本地系统上存储的私钥和加密钱包。令人感到不解的是,GuptiMiner 还会分发挖矿程序,对于此类攻击者来说有点不可思议。

GuptiMiner 利用了印度安全厂商 eScan 更新机制中的缺陷,进行恶意软件传播。研究人员向 eScan 与印度国家 CERT 披露了该安全漏洞,厂商也确认并进行了修复。

研究人员发现 Kimsuky 的 Keylogger 与 GuptiMiner 间存在相似性,认为 GuptiMiner 可能与朝鲜 APT 组织 Kimsuky 存在某种关联。

感染链

安装 eScan 的主机向更新服务器请求更新,链路中被中间人拦截并用恶意包替换官方包。eScan 本地软件解压后侧加载 DLL 文件,攻击者通过恶意 DLL 文件执行感染链,引入多个 Shellcode 和 PE 加载程序。

1715096020_663a49d412438b0b7456f.png!small?1715096021182

感染链

进化

GuptiMiner 从 2018 年以来一直保持活跃,开发运营人员一直在改进恶意软件,为其增加新功能。

时间线

GuptiMiner 使用的域名有多种功能:

  • 恶意域名:通过 TXT 响应提供实际 C&C 服务器域名
  • 请求域名:向 DNS 服务器请求的域名
  • PNG 下载:下载 PNG 文件的域名
  • 矿池域名:挖矿软件连接的矿池域名
  • C&C:最终后门使用的域名,提供额外恶意软件
  • 其他:各类目的使用的域名

恶意软件直接连接受攻击者控制的 DNS 服务器,合法的 DNS 服务器不会看到来自该恶意软件的请求。而 GuptiMiner 请求域名则很可能是用于迷惑安全软件和分析人员的,属于混淆技巧的一部分。

1715096051_663a49f3730e29e7295a6.png!small?1715096054570

域名时间线

攻击者认识到正确的 DNS 服务器对整个攻击链维持至关重要,所以攻击者快速进行变换维持有效性。

除了域名,攻击者也使用互斥量维持独立运行。2018 年以来,GuptiMiner 的互斥量也多次修改,并且后来用互斥量来区分样本文件的编译日期。

1715096069_663a4a05b5516726fab5d.png!small?1715096069775

互斥量时间线

MIVOD_6、SLDV15、SLDV13 和 Global\Wed Jun 2 09:43:03 2021 都重用了很多次,因此在更长的时间范围内存在。

PDB

GuptiMiner 在文件中留下了多个 PDB 路径,如下所示:

1715096099_663a4a23b3b40c03d8b76.png!small?1715096102167

PDB 时间线

阶段 0 - 安装

拦截更新

分析人员发现用户发出的合法请求收到了异常响应,例如请求 http://update3[.]mwti[.]net/pub/update/updll3.dlz下载 eScan 安全软件更新包。但请求被攻击者通过中间人替换了,受害者下载了恶意软件而非软件更新包。

更新包

分析人员能够找到最早的 GuptiMiner 样本是在 2018 年 4 月 19 日编译的,第二天被从印度上传到 VirusTotal,后续在德国也存在上传行为。

1715096114_663a4a327d1d90640aae1.png!small?1715096117124

提交信息

文件的完整命名 C:\Program Files\eScan\VERSION.DLL表明其受众是 eScan 用户下载的更新包。

尽管最初的样本并没有那么多功能,但安装部署的过程仍然是基本相同的。

  1. eScan 启动更新程序
  2. 请求没有进行加密,下载软件包被中间人使用恶意文件替换
  3. eScan 更新程序下载并解压恶意软件包
  4. eScan 侧加载恶意 DLL 文件 version.dll,获取与 eScan 进程相同的运行权限
  5. 如果系统中未能找到互斥量,检索 services.exe 进程并将后续 Payload 注入
  6. 清理执行环境,删除更新包

恶意 DLL 文件中包含正常 DLL 中不存在的函数,幸好这些函数名称非常长,清晰地显现了攻击者的意图。

1715096135_663a4a471ca9384250c2d.png!small?1715096135201

导出函数

函数 X64Call 用于在 64 位系统上的 32 位进程运行 64 位代码,恶意软件使用其运行注入的 Shellcode,具体取决于操作系统版本以及 service.exe 进程的位数。

1715096152_663a4a58cb5715551d3f4.png!small?1715096153464

运行 Shellcode

为了保持 eScan 原有功能的完整,恶意 DLL 文件也保留了原有的所有函数。识别出对原有 DLL 函数的调用时,GuptiMiner 会解析原始函数并随后调用它。

1715096168_663a4a6866add768281c2.png!small?1715096168862

确保原功能可用

注入 Shellcode

Shellcode 注入 services.exe 后,读取嵌入的 PE 文件即可执行。

1715096178_663a4a72c98406d3f54bd.png!small?1715096178968

内嵌文件

该 PE 文件可以通过标准方式加载,加载完成后会从原始内存位置完全删除嵌入的代码。

命令行操作

在整个 GuptiMiner 感染链中,注入的 Shellcode 可以操纵当前进程的命令行。GetCommandLineA/W 更改了任务管理器中显示的命令行。

1715096193_663a4a81ddd911b42b56f.png!small?1715096194335

命令行操作

检查此功能后,分析人员认为并没有理解该功能的用法,或者并没有达到攻击者的预期。

代码虚拟化

另一个带有互斥量的样本文件使用了代码虚拟化,PE 文件中也使用了名为 .v_lizer 的附加段,段名也在后来的版本中被重命名了多次。

1715096207_663a4a8f108f725c73260.png!small?1715096207105

虚拟化段

幸运的是,Shellcode 与内嵌 PE 文件仍然是明文的,混淆程度并不高。

阶段 0.9 - 安装改进

攻击者多次优化安装过程,引入了计划任务、WMI 事件、关闭 Windows Defender 以及启用证书。

该阶段释放了多个文件,从而使恶意软件能够进一步进行侧加载。这些文件是良性的,专门用于进行侧加载,侧加载的恶意 DLL 文件是两个 PNG 加载器:

  • de48abe380bd84b5dc940743ad6727d0372f602a8871a4a0ae2a53b15e1b1739
  • e0dd8af1b70f47374b0714e3b368e20dbcfa45c6fe8f4a2e72314f4cd3ef16ee

WMI 事件

触发 WMI 事件加载第一个 PNG 加载器,被加载程序位于 C:\PROGRAMDATA\AMD\CNext\atiadlxx.dll,加载程序在以下位置之一:

  • C:\ProgramData\AMD\CNext\slsnotif.exe
  • C:\ProgramData\AMD\CNext\msvcr120.dll
  • C:\Program Files (x86)\AMD\CNext\CCCSlim\slsnotify.exe
  • C:\Program Files (x86)\AMD\CNext\CCCSlim\msvcr120.dll

通过 WMI 事件注册良性文件 slsnotify.exe,以便在满足以下条件时执行文件:

1715096253_663a4abd1af5552f98c98.png!small?1715096253037

触发侧加载条件

侧加载只会在 1 月、7 月以及 11 月的工作日被触发,这也凸显了 GuptiMiner 为了长久潜伏做出的努力。

计划任务

与 WMI 事件类似,GuptiMiner 也会在 C:\ProgramData\Brother\Brmfl14c\BrRemPnP.exe 释放用于侧加载的良性文件。随后,恶意 PNG 加载器被释放在:

  • C:\Program Files (x86)\Brother\Brmfl14c\BrLogAPI.dll
  • C:\Program Files\Brother\Brmfl14c\BrLogAPI.dll

计划任务是通过调用计划任务程序创建的。

关机时部署

GuptiMiner 只在系统关机过程中释放包含 PNG 加载器的最终 Payload,攻击者想要在其他应用程序关闭不能保护用户时发起攻击。

1715096290_663a4ae255ae968c31845.png!small?1715096291183

关机时释放载荷

只有当 SM_SHUTTINGDOWN 指标非零时,即当前会话正在被关闭,才会释放最终 Payload。

添加证书

大多数情况下,GuptiMiner 使用自签名的二进制文件进行攻击。但分析人员发现失陷主机上的 DLL 文件都由自定义的受信任根证书颁发机构签名。这意味着签名本身不可信,因为在恶意软件安装过程中,GuptiMiner 会将根证书增加到 Windows 系统证书中。

这样当签名的文件被执行时,会被认为持有合法的签名。攻击者是通过使用 CertCreateCertificateContext、CertOpenStore 和 CertAddCertificateContextToStoreAPI 函数来完成的。

1715096310_663a4af650cf25f3fe01c.png!small?1715096310543

添加根证书

证书以纯文本方式内嵌在 GuptiMiner 的样本文件中:

1715096324_663a4b043c6c6683954ec.png!small?1715096324439

内嵌证书

分析人员发现攻击者使用了三个不同的证书颁发者:

  • GTE Class 3 Certificate Authority
  • VeriSign Class 3 Code Signing 2010
  • DigiCert Assured ID Code Signing CA

注册表存储 Payload

GuptiMiner 会将 Payload 存储在注册表中,获得更好的持久化特性。此外,Payload 还使用固定密钥进行异或加密。

存储 Payload 的位置包括:

  • SYSTEM\CurrentControlSet\Control\Nls\Sorting\Ids\en-US
  • SYSTEM\CurrentControlSet\Control\PnP\Pci\CardList
  • SYSTEM\CurrentControlSet\Control\Wdf\DMCF
  • SYSTEM\CurrentControlSet\Control\StorVSP\Parsers

阶段 1.0 - PNG 加载器

恶意样本通过向攻击者的 DNS 服务器发送 DNS 请求,通过响应的 TXT 记录获取实际 C&C 服务器的加密 URL 地址,进一步请求其他 Payload。通常是 T-Mobile 徽标的 PNG 图片,文件末尾附带了 Shellcode。随后,恶意软件在单独的线程中执行 Shellcode。

由于 DNS 服务器本身是恶意的,所以请求的域名并不重要。流量解析后,可以发现攻击者设置的 Transaction ID 始终为 0x034b。

1715096341_663a4b1562e2e3c45096e.png!small?1715096341863

TXT 响应

恶意软件执行的请求是随机间隔的。PNG 加载器执行后 20 分钟左右请求 DNS 的 TXT 记录,而恶意软件更新程序执行的连续请求间长达 69 小时。

Shellcode 创建独立的互斥量实现,版本号由 DNS TXT 响应的前两个字节解密后提供,确保相同版本的 Shellcode 不会被运行两次。

1715096355_663a4b234b782478fb01f.png!small?1715096355293

互斥量编号

DNS TXT 解密

接收到 TXT 响应后,首先使用 base64 解码,再使用 MD5 与 RC2 进行解密。解密过程中,攻击者选择使用标准 Windows Crypto API 函数。

1715096367_663a4b2f62d0347fdbfde.png!small?1715096367439

标准函数

分析人员可以发现初始化过程中存在问题,CryptHashData 函数的第二个参数是指向长度为 dwDataLen 的字节数组的指针。而恶意软件使用 Unicode(UTF-16)格式的字符串,密钥分为两部分并用零填充。

1715096379_663a4b3b29bc6c1faa644.png!small?1715096379146

字符数组

尽管攻击者不断修改密钥,但这一缺陷却从未被修复。

DNS TXT 记录解析

返回的 DNS TXT 响应为 VUBw2mOgagCILdD3qWwVMQFPUd0dPHO3MS/CwpL2bVESh9OnF/Pgs6mHPLktvph2,完全解码/解密该字符串后可以得到如下内容:

1715096391_663a4b47d39f71691a8f4.png!small?1715096391713

解密信息

具体来说,前两个字节为 Shellcode 的版本信息。分析人员认为第一个字节为主要版本,第二个字节为次要版本,只有主要版本才能触发更新过程。第三个字节是密钥大小,表示之后应该读取多少字节当作密钥。紧跟着密钥后的是 URL,最后还可以计算所有字节的校验和来进行验证。

样本文件利用 URL 下载下一阶段的 Payload,其 User-Agent 被设置为当前正在运行的进程的位数。

1715096407_663a4b5781d672f09ee31.png!small?1715096407681

回传请求

攻击者获取 User-Agent 主要用于两件事:

  • 获取下一阶段对应位数的 Shellcode
  • 过滤掉不正确的 HTTP 请求

解析 PNG 文件

PNG 文件的图片部分精确为 805 字节,恶意软件会跳过这些字节再读取。数据利用 TXT 响应提供的密钥,使用 RC2 算法进行解密。

1715096424_663a4b68e371954ece282.png!small?1715096425116

PNG 文件数据

IP 掩码

2023 年年末,攻击者放弃使用 DNS TXT 记录转而使用 IP 掩码机制。基本流程如下所示:

  • 使用 gethostbyname 函数获取攻击者注册的硬编码服务器的 IP 地址
  • 返回两个 IP 地址,第一个是掩码地址,第二个是可用的 Payload 版本且以 23.195. 开头
  • 如果版本比当前版本新,掩码地址将生成实际 IP 地址
  • 实际 IP 地址与硬编码的常量字符串组合起来下载 PNG 文件

去掩码的过程将 IP 地址的每八位字节与 0xA、0xB、0xC、0xD 进行异或,即可获取实际 IP 地址。

例如服务器 www.elimpacific[.]net 的响应为:

1715096441_663a4b7988d3c3c35b837.png!small?1715096441570

响应信息

23.195.101.1 代表版本信息,如果高于当前版本即可下载 PNG 文件进行更新。实际 IP 计算方式如下所示:

1715096451_663a4b838ad84acfaa9d2.png!small?1715096451557

掩码计算

从某种意义上说,硬编码的常量值可以当作密码:

1715096467_663a4b93aa1cf7e5791a0.png!small?1715096468255

网络请求

研究人员发现的两个服务器如下所示:

1715096486_663a4ba6297b878b0080e.png!small?1715096486039

服务器

反调试

GuptiMiner 通过 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Disk\Enum 检查磁盘的驱动程序是否为以下厂商,确认是否处于虚拟机中。

  • vmware
  • qemu
  • vbox
  • virtualhd

该恶意软件还会检查注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Cylance,来确认是否存在 Cylance 安全软件。

恶意软件还会检查进程前缀,确认是否有分析软件存在:

1715096504_663a4bb810e938adef226.png!small?1715096504068

进程前缀

注册表存储

运营后期,攻击者将下载的 PNG 图片存储在注册表中。研究人员已经在以下位置发现存储 PNG 图片:

  • SYSTEM\CurrentControlSet\Control\Arbiters\Class
  • SYSTEM\CurrentControlSet\Control\CMF\Class
  • SYSTEM\CurrentControlSet\Control\CMF\CORE
  • SYSTEM\CurrentControlSet\Control\CMF\DEF
  • SYSTEM\CurrentControlSet\Control\CMF\Els
  • SYSTEM\CurrentControlSet\Control\CMF\ASN
  • SYSTEM\CurrentControlSet\Control\MSDTC\BSR

阶段 2.0 - Gzip 加载器

Gzip 加载器是由 PNG 文件中的 Shellcode 提取并执行的,只是一个简单的 PE 文件,使用 Gzip 解压另一个 Shellcode 并在单独的线程中执行。

该线程还会加载后续名为 Puppeteer 的 Payload,是所有后门功能的核心。

阶段 3.0 - Puppeteer

Puppeteer 是整个攻击行动的中枢,控制部署两个核心组件:门罗币挖矿程序与后门程序。

Puppeteer 设置

Puppeteer 会设置新的电源方案,强制失陷主机不会进入睡眠状态。后续,杀死所有名为 msiexec.exe、cmstp.exe 或 credwiz.exe 的进程。并且,通过停止服务来禁用 Windows Defender。

Puppeteer 会创建一个独特的计划任务:

  • 复制并重命名合法文件 rundll32.exe 到 C:\ProgramData\Microsoft\Crypto\Escan\dss.exe
  • 释放恶意 DLL 文件到 C:\ProgramData\Microsoft\Crypto\Escan\updll3.dll3 由 dss.exeValidateFile 加载
  • 设置 TASK_TRIGGER_BOOT 可以在启动时以 TASK_RUNLEVEL_HIGHEST 优先级执行定时任务
  • 任务被重命名并位于 C:\Windows\system32\tasks\Microsoft\windows\autochk\ESUpgrade

恶意软件将 Payload 复制到内存中,并在硬盘上删除原始文件。随后,Puppeteer 会每隔一百毫秒检查一次系统是否关闭,仅在系统关闭时将恶意文件重新引入磁盘。

这样确实更加隐蔽,但如果受害者的设备遇到断电或者其他类型的意外关闭,无法从内存中恢复文件也会导致 Puppeteer 停止工作。这可能也是后来攻击者删除了这个机制的原因,提升复杂度换取恶意软件的稳定性。

1715096524_663a4bcc637dd35342dab.png!small?1715096525525

确保重启后正常执行

部署挖矿

Puppeteer 创建了一个单独的线程,将挖矿程序注入 credwiz.exe 进程中。挖矿程序会根据失陷主机的硬件稳健性动态分配挖矿线程:

1715096537_663a4bd978e79c024bb48.png!small?1715096537443

动态资源分配

Puppeteer 持续监控系统的运行进程,默认情况下每 5 秒检查一次。如果遇到监控工具,恶意软件就会终止 credwiz.exe 进程,推迟五个小时后再进行注入。

  • taskmgr.exe
  • autoruns.exe
  • wireshark.exe
  • wireshark-gtk.exe
  • tcpview.exe

Puppeteer 持续监控系统上的 CPU 使用情况并调整资源分配,使其不占用太多资源并保持在安全软件的监控之下。

后门设置

后门通过查看 DNS 服务器注册表(SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server)来检查是否在 Windows Server 上运行。

随后,通过 net group "domain computers" /domain查看加入域中的计算机数量。该命令打印每三台计算机一个换行符,如下所示:

1715096552_663a4be8a6538d90c651c.png!small?1715096552669

命令输出

新版的后门中,Puppeteer 会检查返回的字节数是否超过 100。如果超过,Puppeteer 会认为它在至少拥有五台计算机的网络中运行,通过硬编码的 C&C 服务器下载 Payload 并执行。更新版本的后门,返回字节数的阈值明显增大,甚至目标集中在哪些超过 7000 台计算机的网络。

如果上述检查通过,Puppeteer 将使用 PowerShell 命令下载并执行 Payload。

1715096562_663a4bf29a58a5faed98c.png!small?1715096562479

PowerShell 命令

另一个 Payload 则与网络规模无关,但由于分析时域名已经失效,无法验证该域名分发的 Payload 属于什么类型。

更新版本的 Puppeteer

更新版本中,不仅切换到日期的互斥量,还引入了更多分析工具(Process explorer、Process Monitor、llyDbg、WinDbg 和 TeamViewer)的监控。

DLL 多样性

Puppeteer 会使用许多不同名称和位置的 DLL 文件进行侧加载,或者使用计划任务进行直接加载。例如:

  • C:\Program Files (x86)\eScan\updll3.dll3
  • C:\Program Files\Common Files\SYSTEM\SysResetErr\SysResetErr.DLL
  • C:\Program Files\Microsoft SQL Server\SpellChecking\MsSpellChecking.DLL
  • C:\Program Files\Microsoft SQL Server\SpellChecking\MsSpellCheckingHost.DLL
  • C:\ProgramData\AMD\CNext\atiadlxx.dll
  • C:\ProgramData\Microsoft\Assistance\LunarG\vulkan-1.dll
  • C:\ProgramData\Microsoft\Crypto\Escan\updll3.dll
  • C:\ProgramData\Microsoft\Crypto\Escan\updll3.dll3
  • C:\ProgramData\Microsoft\Network\Escan\AutoWake.dll

每季度部署

特定版本的后门,会每三个月执行一次,即每季度部署。

1715096582_663a4c06d738f1423a1ac.png!small?1715096582806

隔三个月执行

阶段 4.0 - 后门

不会有攻击者这么大费周章只是为了进行挖矿,研究人员对攻击行为进行了全面分析。

PuTTY 后门

GuptiMiner 部署的后门之一基于 PuTTY Link 自定义构建,该版本包含本地 SMB 扫描进行横向平移。当 GuptiMiner 发现支持 SMB 设备时,就保存到列表中。扫描也是有条件的,例如扫描只在一周中的某一天进行,并且只能在中午 12 点到 18 点间进行。

1715096600_663a4c1882d254d1bf5c9.png!small?1715096600563

SMB 扫描条件

恶意软件还会在成功扫描三小时后创建一个新的注册表项 HKEY_LOCAL_MACHINE\SYSTEM\RNG\FFFF,作为扫描完成的标志。如下所示,恶意软件通过名为 SystemTimeToVariantTime 的 API 函数获取注册表项的写入时间和当前系统时间,并将它们相减。相减结果是一个浮点数,其中整数部分表示天数。

1715096616_663a4c280a353f97c6797.png!small?1715096616293

时间计算

阈值设置为六十天对应的秒数,但由于主要用天进行比较,在 51.84 天时即可激活。

横向平移

恶意软件根据 SMB 响应数据包判断主机是否运行 Windows 7 和 Windows Server 2008,确认就会增加到潜在目标列表中。此外,GuptiMiner 会在攻击者服务器与失陷主机的 445 端口间创建一条隧道。

1715096627_663a4c339ca8e0646cf1b.png!small?1715096628378

函数参数

该隧道可以将 SMB 流量转发到目标列表的 IP 地址,从而实现横向平移。攻击者可以通过后门动态手动拼接 SMB 数据包,如下所示:

1715096640_663a4c4001f5e42ed8c80.png!small?1715096640554

组接 SMB 数据包

建立连接后,恶意软件会尝试以匿名身份登录,并向 \IPC$管道发出请求。

1715096651_663a4c4b5ec612ad42cb4.png!small?1715096651371

SMB 流量

模块化后门

恶意软件可以通过扫描 .pvk 与 .wallet 来发现系统上的私钥和钱包文件,确认将路径记录在 C:\Users\Public\Ca.txt。现有的恶意样本没有发现单独处理该文件的代码,可能是后续会窃取回传给攻击者。扫描行为是通过建注册表项(HKEY_LOCAL_MACHINE\SYSTEM\Software\Microsoft\DECLAG)来标记的。

1715096678_663a4c66d6ccaa47fb6b9.png!small?1715096678852

命令输出

如果在系统上发现一些私钥或钱包,或者恶意软件在大型企业环境中运行,恶意软件会继续以 Shellcode 的形式将后门注入到进程 mmc.exe 中。与前述方法类似,攻击者以 20 万字符为阈值,寻找 7781 台计算机的失陷环境。

多模块后门中只有网络通信模块是硬编码的并且默认可用。配置中包含有关要与哪个服务器通信、要使用哪些端口、命令/请求之间应设置的延迟等待长度等详细信息。配置中用于通信的域名是 www.righttrak[.]net:443 与 185.248.160[.]141。

1715096699_663a4c7bba6bdd5db9ada.png!small?1715096699831

解密配置

网络模块包含七个不同的命令,攻击者通过这些命令控制后门程序。

1715096711_663a4c872a916f0c5be93.png!small?1715096711076

命令列表

这些模块以加密形式存储在注册表(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PCB)中,以确保其持久性。

后门还是用哈希函数进行混淆,具体算法如下所示:

1715096720_663a4c90a2dd755103224.png!small?1715096720548

算法伪码

服务器 www.righttrak[.]net:443 在分析时拥有有效的证书,如下所示:

1715096732_663a4c9c219e714e5fb7c.png!small?1715096732800

证书信息

其他样本

分析人员在其他样本文件中发现了来自后门设置阶段的 C&C 域名,但这些脚本并不是由我们所知的传统 GuptiMiner 操作分发的,研究人员认为这可能是 GuptiMiner 的另一部分攻击行动。PowerShell 脚本如下所示:

1715096742_663a4ca6edbb264e31787.png!small?1715096743101

PowerShell 脚本

仅当安装了防病毒软件时,才会从恶意域名下载并执行 Payload,攻击者将矛头直指 eScan。

使用被盗证书

研究人员发现了两个被盗的用于签署 GuptiMiner 样本文件的证书,其中一个被盗证书来自 Winnti。该证书与卡巴此前分析的一样,当然不仅仅被 GuptiMiner 利用。

证书SHA-1样本文件
529763AC53562BE3C1BB2C42BCAB51E3AD8F8A5631dfba1b102bbf4092b25e63aae0f27386c480c10191c96c04295cb284f20878
529763AC53562BE3C1BB2C42BCAB51E3AD8F8A568e96d15864ec0cc6d3976d87e9e76e6eeccc23c551b22dcfacb60232773ec049
31070C2EA30E6B4E1C270DF94BE1036AE7F8616Bb0f94d84888dffacbc10bd7f9983b2d681b55d7e932c2d952d47ee606058df54
31070C2EA30E6B4E1C270DF94BE1036AE7F8616Bf656a418fca7c4275f2441840faaeb70947e4f39d3826d6d2e50a3e7b8120e4e

与 Kimsuky 的关系

研究人员发现了一个窃密程序,与 GuptiMiner 的 PDB 路径(F:!PROTECT\Real\startW-2008\MainWork\Release\MainWork.pdb)相似。但并不是由 GuptiMiner 分发的,二者有着不同的感染链。该窃密程序可以进行多种窃密,例如按键记录、记录程序打开时间等。

AhnLab 与思科的分析人员都曾提到信息收集模块 49B46336-BA4D-4905-9824-D282F05F6576 实时检测窗口类名的方法。样本发现的窗口,会被终止或者隐藏在受害者的视野之外。

1715096763_663a4cbbd384c3df15d07.png!small?1715096763870

检索函数

另外,窃密程序在资源中包含加密的 Payload 也具有 PDB 路径(F:\PROTECT\Real\startW-2008\HTTPPro\Release\HTTPPro.pdb)。该模块使用 RC4 算法进行加密,通信的 URL 为 http://stwu.mygamesonline[.]org/home/sel.php或 http://stwu.mygamesonline[.]org/home/buy.php?filename=%s&key=%s。该域名是 Kimsuky 常用的域名。

Keylogger 的下一阶段载荷名为 ms12.acm,如下所示:

1715096774_663a4cc66b3b1a9c088c5.png!small?1715096774490

下阶段载荷

相似的命名、模块化后门的链接与 SFX 压缩文件中包含一个名为 ms00.dat 的加密文件等,很难忽略二者的相似之处。

最后,思科的文章也提到 Kimsuky 的 Keylogger 也包含一个名为 .vlizer 的段,如下所示:

1715096788_663a4cd4dffa92e8a06f3.png!small?1715096788996

Kimsuky Keylogger

结论

GuptiMiner 针对 eScan 的更新机制进行中间人攻击,部署了多样的攻击链。研究人员发现了两种针对大型企业网络的不同类型后门,但也会分发 XMRig 进行挖矿。研究人员认为 GuptiMiner 与朝鲜黑客组织 Kimsuky 可能存在关联,二者间存在许多相似之处。

IOC

_spf.microsoft[.]com

acmeautoleasing[.]net

b.guterman[.]net

breedbackfp[.]com

crl.microsoft[.]com

crl.peepzo[.]com

crl.sneakerhost[.]com

desmoinesreg[.]com

dl.sneakerhost[.]com

edgesync[.]net

espcomp[.]net

ext.microsoft[.]com

ext.peepzo[.]com

ext.sneakerhost[.]com

gesucht[.]net

gesucht[.]net

globalsign.microsoft[.]com

icamper[.]net

m.airequipment[.]net

m.cbacontrols[.]com

m.gosoengine[.]com

m.guterman[.]net

m.indpendant[.]com

m.insomniaccinema[.]com

m.korkyt[.]net

m.satchmos[.]net

m.sifraco[.]com

ns.bretzger[.]net

ns.deannacraite[.]com

ns.desmoinesreg[.]com

ns.dreamsoles[.]com

ns.editaccess[.]com

ns.encontacto[.]net

ns.gravelmart[.]net

ns.gridsense[.]net

ns.jetmediauk[.]com

ns.kbdn[.]net

ns.lesagencestv[.]net

ns.penawarkanser[.]net

ns.srnmicro[.]net

ns.suechiLton[.]com

ns.trafomo[.]com

ns.trafomo[.]com

ns1.earthscienceclass[.]com

ns1.peepzo[.]com

ns1.securtelecom[.]com

ns1.sneakerhost[.]com

p.bramco[.]net

p.hashvault[.]pro

r.sifraco[.]com

spf.microsoft[.]com

widgeonhill[.]com

www.bascap[.]net

http://update3[.]mwti[.]net/pub/update/updll3.dlz

c3122448ae3b21ac2431d8fd523451ff25de7f6e399ff013d6fa6953a7998fa3

7a1554fe1c504786402d97edecc10c3aa12bd6b7b7b101cfc7a009ae88dd99c6

f884d4c01fccf08a916f1e7168080a2d740a62a774f18e64f377d23923b0297

ext.peepzo[.]com

crl.peepzo[.]com

ns1.peepzo[.]com

http://www.deanmiller[.]net/m/

294b73d38b89ce66cfdefa04b1678edf1b74a9b7f50343d9036a5d549ade509a

185.45.192[.]43/elimp/

6305d66aac77098107e3aa6d85af1c2e3fc2bb1f639e4a9da619c8409104c414

357009a70daacfc3379560286a134b89e1874ab930d84edb2d3ba418f7ad6a0b

364984e8d62eb42fd880755a296bd4a93cc071b9705c1f1b43e4c19dd84adc65

4dfd082eee771b7801b2ddcea9680457f76d4888c64bb0b45d4ea616f0a47f21

https://m.airequipment[.]net/gpse/

487624b44b43dacb45fd93d03e25c9f6d919eaa6f01e365bb71897a385919ddd

07beca60c0a50520b8dbc0b8cc2d56614dd48fef0466f846a0a03afbfc42349d

gesucht[.]net

f0ccfcb5d49d08e9e66b67bb3fedc476fdf5476a432306e78ddaaba4f8e3bbc4

8446d4fc1310b31238f9a610cd25ea832925a25e758b9a41eea66f998163bb34

74D7F1AF69FB706E87FF0116B8E4FA3A9B87275505E2EE7A32A8628A2D066549

www.righttrak[.]net:443

185.248.160[.]141

af9f1331ac671d241bf62240aa52389059b4071a0635cb9cb-58fa78ab942a33b

31dfba1b102bbf4092b25e63aae0f27386c480c10191c96c04295cb284f20878

8e96d15864ec0cc6d3976d87e9e76e6eeccc23c551b22dcfacb60232773ec049

b0f94d84888dffacbc10bd7f9983b2d681b55d7e932c2d952d47ee606058df54

f656a418fca7c4275f2441840faaeb70947e4f39d3826d6d2e50a3e7b8120e4e

7f1221c613b9de2da62da613b8b7c9afde2ea026fe6b88198a65c9485ded7b3d

参考来源

Avast

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1665167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何盘点选择的连锁收银系统贵不贵

在选择连锁收银系统时,成本是一个至关重要的考量因素。盘点连锁收银系统的成本既涉及到系统本身的购买费用,也包括了系统的维护、培训以及可能带来的附加费用。下面将从四个方面对连锁收银系统的成本进行盘点。 1. 初始投资成本 连锁收银系统的初始投资…

Python基础详解四

一,Json解析 字典转换为JSON: import jsondata [{"name":"袁震","age":20},{"name":"张三","age":21},{"name":"李四","age":22}] str json.dumps(data) …

c++父类指针指向子类

有一个常见的c题,就是父类和子类的构造函数和析构函数分别调用顺序: 父类构造函数子类构造函数子类析构函数父类析构函数 以及父类中的函数在子类中重新实现后,父类指针指向子类后,该指针调用的函数是父类中的还是子类中的&…

【GlobalMapper精品教程】079:投影坐标系转地理坐标系(UTM转WGS1984/2000)

文章目录 一、矢量UTM转WGS1984/20001. UTM转WGS19842. UTM转CGCS2000二、栅格UTM转WGS1984/2000一、矢量UTM转WGS1984/2000 加载配套实验数据(data079.rar)中的矢量数据,如下所示: 查看源坐标系:双击图层的,图层投影选项卡,为UTM投影,Zone48N。 设置系统坐标系:点击…

【MATLAB源码-第206期】基于matlab的差分进化算法(DE)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 差分进化算法(Differential Evolution, DE)是一种有效的实数编码的进化算法,主要用于解决实值函数的全局优化问题。本文将详细介绍差分进化算法的背景、原理、操作步骤、参数选择以及实际应…

2024数维杯数学建模竞赛A题完整代码和思路论文解析

2024数维杯数学建模完整代码和成品论文已更新,获取↓↓↓↓↓ https://www.yuque.com/u42168770/qv6z0d/bgic2nbxs2h41pvt?singleDoc# 2024数维杯数学建模A题34页论文已完成,论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&…

Qt之常用控件一

Widget常见属性及其作用 属性作用enabled 设置控件是否可使⽤. true 表⽰可⽤, false 表⽰禁⽤ geometry 位置和尺⼨. 包含 x, y, width, height 四个部分. 其中坐标是以⽗元素为参考进⾏设置的. windowTitle 设置 widget 标题 windowIcon 设置 widget 图标 windowOpa…

【姿态解算与滤波算法】

姿态解算 一、主线 姿态表示方式:矩阵表示,轴角表示,欧拉角表示,四元数表示。 惯性测量单元IMU(Inertial Measurement Unit):MPU6050芯片,包含陀螺仪和加速度计,分别测…

为啥我说英语能决定程序员的天花板?

看到知乎有这样的一个问题,作为程序员的你,大学最后悔没有好好学哪门课? 很多人回答《软件工程》、《线性代数》、《微积分》等,各种都有。。 但我觉得,这些课都很重要,但没学好不妨碍自学。 其实对程序…

芯课堂 | 如何使用SWM系列产品的TIMER功能(一)

01 TIMER简介 TIMER是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。 我司的SWM系列单片机提供的TIMER个数和功能有些微差别,为了让您更加简单的使用这一功能,下面将以SWM190为例&#xff0…

高效视频剪辑:视频批量调色,如何利用色调调整提升效率

在视频剪辑的后期处理中,调色是一个至关重要的环节。它不仅能够改变视频的整体氛围和风格,还能够突出视频的重点,增强观众的视觉体验。然而,对于大量的视频素材进行逐个调色处理,无疑会耗费大量的时间和精力。我们可以…

在IDEA中使用 Spring Initializr 新建 spring boots 项目

【在IDEA中使用 Spring Initializr 新建 spring boots 项目 - CSDN Apphttp://t.csdnimg.cn/mVs5P Spring Initializr 创建spring boots项目 添加到pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connec…

鸿蒙开发接口Ability框架:【(窗口扩展能力)】

窗口扩展能力 WindowExtensionAbility基于ExtensionAbility&#xff0c;WindowExtensionAbility中展示的内容作为一个控件(AbilityComponent)内容展示在其他应用窗口中&#xff0c;实现在一个窗口中展示多个应用程序内容的功能。 说明&#xff1a; 本模块首批接口从API versio…

Android 13 aosp 默认关闭SELinux

通过adb修改 adb root adb shell setenforce 0 // 开SELinux&#xff0c;设置成模式permissive adb shell setenforce 1 // 关SELinux&#xff0c;设置成模式enforce adb shell getenforce // 获取当前SELinux状态源码修改 Android_source/system/core/init/selinu…

前端笔记-day05

文章目录 01-结构伪类选择器02-结构伪类选择器-公式用法03-伪元素选择器04-盒子模型-组成05-盒子模型-边框线06-盒子模型-单方向边框线07-盒子模型-内边距08-盒子模型-padding多值写法09-盒子模型-尺寸计算10-盒子模型-版心居中11-清除默认样式12-元素溢出overflow13-外边距合并…

Redis如何避免数据丢失?——RDB

目录 1. RDB机制的配置 2. fork()函数和写时复制(Copy On Write&#xff09; 什么是Copy On Write 系统fork中使用Copy On Write机制 3. RDB文件结构 RDB文件内容和内容顺序 InfoAuxFields是rdb信息数据 数据库数据 数据 数据存储格式 字符串编码 操作码 4. RDB的2…

Coursera吴恩达深度学习专项课程01: Neural Networks and Deep Learning 学习笔记 Week 03

Neural Networks and Deep Learning Course Certificate 本文是学习 https://www.coursera.org/learn/neural-networks-deep-learning 这门课的笔记 Course Intro 文章目录 Neural Networks and Deep LearningWeek 03: Shallow Neural NetworksLearning Objectives Neural Ne…

第四百九十八回

文章目录 1. 概念介绍2. 使用方法2.1 固定样式2.2 自定义样式 3. 示例代码4. 内容总结 我们在上一章回中介绍了"GetMaterialApp组件"相关的内容&#xff0c;本章回中将介绍使用get显示SnackBar.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在介…

windows设置软件开机自启动

winr 输入 shell:startup C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup把要开机自动启动的程序的快捷方式放进来 输入快捷键 ctrlshiftesc 打开任务管理器 同时在任务管理器也可以看到

17-LINUX--线程与fork()

一.多线程程序fork() 多线程出现fork()后&#xff0c;只复制一条执行路径&#xff0c;是fork()所在的那条执行路径 主程序fork()示例代码&#xff1a; include<stdio.h> #include<stdlib.h> #include<string.h> #include<pthread.h> #include<un…