Deathstalker的核心武器——Janicab新变种

news2024/11/13 9:46:04

01 概述

DeathStalker是一个专门针对金融机构和律师事务所进行攻击的组织,而Janicab是其所使用的比较古老的武器。

Janicab
首次在2013年被发现,它是能够运行在MacOS和Windows操作系统上的恶意软件。其中,Windows版本基于VBscript的植入作为入侵的最后阶段,而不是像以前的版本一样使用C#/Powershell。

迄今为止,可以确定的是基于VBS的植入程序也具有多种版本号,这可能意味着它仍在开发中。总体而言,Janicab 表现出与其之前的版本具有相同的功能,但不是像
EVILNUM 和 Powersing
入侵那样在入侵生命周期的后期下载多个工具,而是将大多数工具嵌入并在释放器(Dropper)中进行混淆。值得注意的是,黑客继续使用YouTube、Google+和WordPress等网络服务作为DDR(Dynamic
Document
Review)。但是,观察到的一些YouTube链接未列出,可以追溯到2015年,这表明可能其复用之前的代码。律师事务所和金融机构继续受到DeathStalker组织的影响最大。但是,在最近的分析中,有理由怀疑旅行社是其一个新的攻击目标行业。

02 初步分析

可以确定,在ZIP存档中使用基于LNK的释放器的初始感染方法与之前使用EVILNUM,Powersing和PowerPepper的活动相似,但每种活动似乎都专注于不同的网络钓鱼主题,就好像每个恶意软件家族都由不同的团队操作和/或针对不同类型的受害者。在Janicab案例中,诱饵是一个工业企业生产系统的配置文件,与以前的PowerPepper入侵中使用的诱饵主题类似。

LNK释放器的元数据类似于之前公开报告或公开分析的许多Powersing和Janicab植入物。即,SID、字体系列、字体大小、屏幕缓冲区和窗口大小、运行窗口和
MAC 地址相似。

尽管Janicab和Powersing在执行流程以及VBE和VBS的使用方面非常相似,但它们的LNK结构略有不同。此外,与2015年的旧Janicab
Windows变体相比,较新的Janicab变体在结构上发生了显著变化。新的 Janicab 变体还嵌入了一个 CAB
存档,其中包含多个Python文件和入侵生命周期后期使用的其他文件。

03 执行流程

一旦受害者被诱骗打开恶意 LNK
文件,它就会释放一系列链式恶意软件文件。LNK文件有一个嵌入式的“命令行参数”字段,旨在提取和执行编码的VBScript加载器(1.VBE)。后者将删除并执行另一个嵌入式和编码的VBScript(2.VBE),它将提取包含其他资源和Python库/工具的CAB存档(cab.cab),并通过提取最后阶段来结束感染

  • 基于VBScript的植入物称为Janicab。最后阶段将通过在启动目录中部署新的 LNK 文件来保持持久性,并开始与 DDR Web
    服务通信以收集实际的命令与控制(C2)IP地址,其特征如下:图片Janicab
    是一种基于 VBS
    的恶意软件,其功能与其历史上出现的恶意代码基本相似。其基本功能包括如命令执行、导入注册表文件,以及下载其他工具的能力,同时保持高反虚拟机特性和防御规避特性。Janicab可以被认为是一种模块化的解释性语言恶意软件。这意味着威胁参与者能够添加/删除功能或嵌入文件;解释性语言恶意软件以相当低的工作量提供了这种灵活性。

例如,在较旧的变体中,被嵌入用于捕获屏幕截图的已知工具,删除并每隔一段时间执行。在后来的变体中,此工具被执行相同工作的其他定制工具所取代。我们还在较旧的变体中看到过录音功能,但在后来的变体中没有。在较新的变体中,可以看到黑客嵌入了使用
“run_dll_or_py” 函数调用的基于 DLL 的键盘记录器或屏幕捕获实用程序。

根据卡巴斯基威胁归因引擎(KTAE),键盘记录器与之前报告的Powersing入侵中使用的另一个键盘记录器非常相似,并以“AdobeUpdater.dll”的名称命名。在
Powersing 中,DLL 是在入侵周期的后期从辅助 C2 服务器获取的。但是,在 Janicab
入侵中,它主要作为十六进制字节数组嵌入,或作为额外资源嵌入在 CAB 文件中。目前知道的有八个不同的 Janicab
版本:1.0.8、1.1.2、1.1.4、1.2.5、1.2.7、1.2.8、1.2.9a、1.3.2。

04 Janicab演变历史

对不同Janicab版本的进一步比较表明,在整个恶意软件开发周期中添加了附加功能,同时保留了特定功能。下表显示了在根据参与者的要求和/或逃避安全控制的几个变体的开发过程中引入的新功能:

图片

从版本 1.0.8 开始,Janicab VBS 植入物以字节数组的形式嵌入了多个文件。这些通常是注册表,VBE,PE
EXE或DLL文件。在最近的示例中,虽然仍然看到此类资源的嵌入式字节数组,但许多额外资源都放置在 CAB 存档文件中,该文件在阶段1过程中被删除。

05 基础架构

Deathstalker的一个显著特点是它使用DDR/Web服务来托管编码字符串,该字符串随后被恶意软件植入程序破译。尽管恶意软件设置中存在其他网络服务链接且未被使用,但可以看到YouTube被用作DDR,还包括指向Google+的链接,该链接已于
2019 年 4 月停止使用。最近注意到的一个方面是使用了2021年入侵中使用的未列出的旧YouTube链接。

从历史上看,可以使用搜索引擎和YouTube搜索功能来查找相应Web服务中使用的模式。但是,由于黑客使用未列出的旧YouTube链接,因此在YouTube上找到相关链接的可能性几乎为零,这也有效地允许黑客重用
C2 基础结构。新旧Janicab变体仍然对Web服务(YouTubeLinks)使用相同的函数声明,并且在将十进制数转换为后端C2
IP地址的过程中继续使用常量分隔符。至于实际的C2
IP地址,发现有两个IP地址(87.120.254[.]100和87.120.37[.]68)与PowerPepper入侵中使用的C2(例如PowerPepper
C2 87.120.37[.])托管在相同的ASN中,截图如下:

图片

图片

在评估其中一台 C2 服务器时,发现黑客正在托管和调用来自受害计算机的 ICMP shell 可执行文件。名为 icmpxa.exe 的 ICMP
shell 工具基于一个旧的 Github 项目,黑客编译了icmpsh-s.c(MD5
5F1A9913AEC43A61F0B3AD7B529B397E),同时更改了其部分内容。此可执行文件的唯一性是能够透视并收集威胁参与者使用的其他以前未知的
C2 服务器。之前在PowerPepper入侵中使用相同的ICMP shell可执行文件,这表明两个恶意软件系列之间可能存在基础架构的重叠。

由于 Janicab 是基于 VBS 的恶意软件,因此可以轻松地从嵌入式函数中派生C2命令。该恶意软件利用 VBS 函数通过HTTP
GET/POST请求连接到 C2 服务器,并连接到特定的 PHP 页面。每个 PHP
页面都提供某些功能。自Janicab的早期版本以来,PHP页面的文件名基本保持不变,并指示后端/预期功能。但是,从版本 1.1.x 开始,黑客开始缩短
PHP 页面的文件名,而不会更改大部分预期功能。

06 结论

Janicab是Deathstalker使用的最古老的恶意软件家族,其历史可以追溯到2013年,也是最不为人所知的,这可能是因为相关运营商在实践中的OPSEC标准高于运营EVILNUM和Powersing的同行。尽管可用的公共信息不多,但黑客一直在开发和更新恶意软件代码,更新
LNK 释放器的结构并切换工具集以长时间保持隐身性。

根据数据,黑客仍然专注于中东和欧洲作为其主要行动区域,并对损害法律和金融机构表现出浓厚的兴趣。尽管有这种关注,但看到黑客在极少数情况下针对其他行业;但旅行社就是一个例子。这再次表明,黑客可能是一个具有不同动机的雇佣组织。

由于黑客继续在其历史和最近的入侵中使用基于解释语言的恶意软件,例如 Python、VBE 和
VBS,并且主要在其恶意软件系列中,因此这可以利用防御者的优势,因为应用程序白名单和操作系统强化是阻止威胁参与者入侵尝试的有效技术。防御者应该寻找在无GUI的情况下运行的Internet
Explorer进程,因为Janicab在隐藏模式下使用IE与C2通信。在网络上,黑客使用C2 IP地址而不是域名仍然是绕过基于 DNS
的安全控制的主要方法。相反,黑客仍在使用 DDR 作为解析C2 IP地址的方法:一种 DNS
解析的替代技术,它在合法流量中混合使用C2流量,这意味着网络防御者可以查找对所使用的DDR的频繁访问,然后是指向IP地址而不是域名的HTTP会话来发现可能存在的安全问题。

解析的替代技术,它在合法流量中混合使用C2流量,这意味着网络防御者可以查找对所使用的DDR的频繁访问,然后是指向IP地址而不是域名的HTTP会话来发现可能存在的安全问题。

网络安全工程师企业级学习路线

这时候你当然需要一份系统性的学习路线

如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

一些我收集的网络安全自学入门书籍

一些我白嫖到的不错的视频教程:

上述资料【扫下方二维码】就可以领取了,无偿分享

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

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

相关文章

【第27天】SQL进阶-查询优化- performance_schema系列实战三:锁问题排查(表级锁)(SQL 小虚竹)

回城传送–》《32天SQL筑基》 文章目录零、前言一、什么是表级锁二、什么时候适合加表级锁三、实战演练3.1 数据准备(如果已有数据可跳过此操作)3.2 开启第一个会话,执行显式加表级锁3.3 开启第二个会话,对该表执行update更新3.4 …

Vue 3.0 应用组件实例

#创建一个应用实例 每个 Vue 应用都是通过用 createApp 函数创建一个新的应用实例开始的: const app Vue.createApp({ /* 选项 */ }) 该应用实例是用来在应用中注册“全局”组件的。我们将在后面的指南中详细讨论,简单的例子: const app V…

jsp学生管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 学生管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开 发,数据库为Mysql,使用ja…

【Docker】基础使用

目录 一、Docker简介 二、Docker核心概念 三、Docker安装 四、Docker常用操作 1. 镜像操作 2. 容器操作 3. 安装MySQL 一、Docker简介 Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖…

基于Springboot搭建java项目(二十二)——过滤器、监听器和拦截器的使用

过滤器、监听器和拦截器的使用 一、过滤器、监听器和拦截器总览 过滤器(Filter)监听器(Listener)拦截器(Interceptor)关注点web请求系统级别参数、对象Action(部分web请求)如何实现…

20230201在AIO-3568J开发板在原厂Android11下增加右键返回

20230201在AIO-3568J开发板在原厂Android11下增加右键返回 2023/2/1 8:37 百度搜索:RK3568 右键返回 Z:\rk3568_Android11.0_ap6257s\frameworks\native\services\inputflinger\reader\mapper\accumulator\CursorButtonAccumulator.cpp uint32_t CursorButtonAccumu…

【学习OpenCV4】如何学习OpenCV

OpenCV是应用非常广泛的开源视觉处理库,在图像处理、计算机视觉和自动驾驶中有着非常重要的作用。 废话不多说,我就来讲讲OpenCV的使用和学习需要怎么做吧,大家觉得有道理的可以参考一下。 我理解的学习和使用的重点在四个方面: …

PTA L1-019 谁先倒(详解)

前言:本期是关于谁先倒的详解,内容包括四大模块:题目,代码实现,大致思路,代码解读,今天你c了吗? 题目: 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方…

多模态搜索的未来:超越关键字和向量的混合搜索!

二十年前,“混合”一词仅在植物学和化学领域使用。如今,“混合”这个概念在搜索领域一片繁荣,许多搜索系统都在推出基于 AI 技术的混合搜索方案。但是,“混合搜索”是真的具有应用价值,还只是流行的一阵风呢&#xff1…

深度学习:Self-Attention与Multi-heads Attention详解

深度学习:Self-Attention与Multi-heads Attention详解IntroductionSelf - AttentionMulti-Head AttentionPosition- EncodingIntroduction Transformer 最初是由 Ashish Vaswani等人提出的一种用以完成机器翻译的 Seq2Seq 学习任务的全新网络结构,它完全…

nginx学习笔记9(小滴课堂)

业界主流高可用方案Linux虚拟服务器 LVS讲解 这部分因为需要多台虚拟机,所以我先不实操。 Keepalived核心配置讲解 echo "" > keepalived.conf是清空文件中的内容。 从机的优先级可以写的比master的优先级低一些。 准备NginxLvsKeepAlive相关软件环境 …

什么是最大子数组问题?

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注! 作者| 慕课网精英讲师 JdreamZhang 最大子数组(Max Subarray)问题,是计算机科学与技术领域中一种常见的算法问题&#…

CVE-2022-26135 Atlassian Jira Mobile Plugin SSRF漏洞分析

漏洞描述 6月29日,Atlassian官方发布安全公告,在Atlassian Jira 多款产品中存在服务端请求伪造漏洞(SSRF),经过身份验证的远程攻击者可通过向Jira Core REST API发送特制请求,从而伪造服务端发起请求,从而导致敏感信息…

【青训营】规则引擎概述和入门

本文内容总结自 字节跳动青年训练营 第五届后端组 一、规则引擎是什么 规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并且使用预定义语义模块编写业务决策。接受数据输入,解释业务规则,并且…

Python接口测试实战5(上) - Git及Jenkins持续集成

本节内容接上节内容:在框架搭建好的基础上注册Github并新建仓库使用Git上传项目Jenkins的安装Jenkins接口测试项目的配置注册Github并新建仓库Git简介Git(读音为/gɪt/。)是一个开源的分布式版本控制系统版本控制: 对项目及代码记录每次提交和修改&#…

【Docker】(六)使用network完成容器间的网络通信

1.前言 本系列文章记录了从0开始学习Docker的过程,Docker系列历史文章: (一)基本概念与安装使用 (二)如何使用Docker发布一个SpringBoot服务 (三)使用registry远程镜像仓库管理镜像…

12、特征值与特征向量

目录 一、特征值和特征向量的定义 二、特征值和特征向量的相关函数 三、特征值和特征向量的计算 一、特征值和特征向量的定义 假设A是一个nn的矩阵,A的特征值问题就是找到下面方程组的解: 其中,λ为标量,V为矢量,若…

【堆的认识及其优先级队列】java代码实现,保姆级教程学习堆和优先级队列

前言: 大家好,我是良辰丫💞💞⛽,我们又见面了,前面我们讲了用链表实现的二叉树,今天我们来接触堆的概念,堆是一种特殊的二叉树,只不过咱们的对底层原理是数组&#xff0c…

大数据监控平台-Prometheus监控Hadoop

简介 本篇主要是使用jmx配合Prometheus监控大数据平台 前提 链接:https://pan.baidu.com/s/1c6nsjOKw4-a_Wqr82l0QhQ 提取码:yyds --来自百度网盘超级会员V5的分享 先安装好Prometheus Flink(Pometheus监控)_顶尖高手养成计划的博客-CSDN博客_${en…

金融实践 | 信创存储 打造安全可控的金融数据底座

本文刊登于《金融电子化》杂志 2023 年 1 月上,作者为中国出口信用保险公司信息科技部张倩,曲文非,庞松松,康达。 2022 年初,中国人民银行《金融科技发展规划(2022—2025 年)》和银保监会《关于…