揭秘 NKAbuse:一种滥用 NKN 协议的新型多平台威胁

news2025/1/1 23:23:37

写在前面的话

在卡巴斯基全球紧急响应团队(GERT)和GReAT处理的一次网络安全事件应急响应过程中,研究人员发现了一个名为“KNAbuse”的新型多平台网络威胁。这款恶意软件利用了NKN技术在对等节点之间进行数据交换,功能上相当于一种有效的恶意植入物,并且具备洪泛攻击和后门功能。该恶意软件使用了Go语言开发,灵活性强,可以生成与各种操作系统架构兼容的二进制文件。

研究人员的分析表明,KNAbuse的主要目标是Linux桌面端操作系统,但鉴于其感染MISP和ARM系统的能力,它也会对物联网设备构成安全威胁。NKAbuse主要通过将植入物上传到目标主机来实现系统渗透,通过cronjob建立持久化机制,并将其自身安装到目标主机的主目录中。

NKN-新型网络

NKN是“New kind of Network”的缩写,即“新型网络”,作为一种点对点(P2P)和面向区块链的网络协议,首先考虑的就是去中心化和隐私保护。NKN网络目前拥有超过6万个官方节点,并且提供了多种路由算法,旨在通过选择最短的节点轨迹到达预期目的地来优化数据传输。

根据以往的恶意活动,威胁行为者会利用NKN等新型通信协议来与其命令和控制服务器 (C2)或僵尸主机连接,然后滥用NKN公共区块链协议执行大规模洪泛攻击,最终实现Linux操作系统的后门植入。

一种“不算很新”的攻击向量

根据GERT收集和分析的数据,该恶意活动利用了一个与Struts2相关的老漏洞(CVE-2017-5638–Apache Struts2),其目标是一家金融机构。

下面给出的是日志记录下的取证信息:

(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#cont

ainer=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.g

etInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNam

es().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(

#req=#context.get('com.opensymphony.xwork2.dispatcher.HttpServletRequest')).(#cmds=@java.n

et.URLDecoder@decode(#req.getHeader('shell'),'UTF-8')).(#cmd={'/bin / bash', ' - c',

#cmds}).(#p = new java.lang.ProcessBuilder(#cmd)).(#p.redirectErrorStream(true)).(#process

= #p.start()).(#ros =

(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.c

ommons.io.IOUtils@copy(#process.getInputStream(), #ros))

该漏洞允许威胁行为者通过标识为“Shell”的Header来传递命令并将指令发送给服务器端Bash来执行,成功利用该漏洞后,目标系统将执行命令并下载初始脚本。

一种新型多平台植入物

该恶意软件会通过执行远程Shell脚本来将其安装在目标设备上,恶意脚本可以下载并执行威胁行为者远程托管的setup.sh Shell脚本内容。在安装过程中,脚本会检查目标设备的操作系统类型,并根据操作系统类型下载第二阶段的Payload,即实际要植入的恶意软件。恶意植入物也是从同一个服务器下载的,命名为“app_linux_{ARCH}”,这里的{ARCH}代表目标操作系统架构。下载好的植入程序会存储到/tmp临时目录并执行。该服务器中托管了针对8种不同架构操作系统的恶意软件版本:

386

arm64

arm

amd64

mips

mipsel

mips64

mips64el

本文接下来的分析主要针对的是amd64(x86-64)版本。

恶意软件执行之后,首先会检查它是否是唯一正在运行的实例,并将其自身移动到安全位置,,而不是保留在/tmp临时目录中,这里恶意软件选择的路径地址为“/root/.config/StoreService/”。接下来,它会在该目标路径内创建另外两个目录,即files和.cache,然后通过向ifconfig.me发送GET请求来获取目标设备的IP地址。接下来,它会加载默认配置,并检查它是否位于.cache目录内,如果不在,则加载对应的硬编码设置:

这份配置随后会被保存到一个新的缓存结构中,该结构也会保存其他重要的会重复使用的配置信息,比如说生成的私钥等等。

NKAbuse利用了cronjob来实现重启,而这一操作需要用到root权限。为此,它会检查当前用户 ID 是否为 0,如果是,则继续解析当前的 crontab,并在每次重新启动时将自己添加到作业任务中。

新的通信方式

NKAbuse 利用 NKN 协议与僵尸主机进行通信并接收/发送信息。为此,恶意软件植入程序会创建一个新帐户和一个新的多客户端,使其能够同时从多个客户端发送和接收数据,从而提高与僵尸主机通信的可靠性。

NKN 帐户是使用默认配置选项创建的,然后使用标识符初始化多客户端,在我们的分析样例中,该标识符是一个64个字符长度的字符串,即恶意软件使用的公钥和远程地址:

一旦客户端设置完毕并准备好接收和发送数据,恶意软件就会建立一个处理程序(句柄)来接受僵尸主机发送的传入消息。该句柄包含了大约42种使用场景,每个场景都能够根据发送的控制命令代码来执行不同的操作。

NKAbuse包含了大量分布式拒绝服务(DDoS)攻击Payload,以下是洪泛攻击Payload列表:

命令

攻击Payload

Default/0

http_flood_HTTPGetFloodPayload

1

http_flood_HTTPPostFloodPayload

2

tcp_flood_TCPFloodPayload

3

udp_flood_UDPFloodPayload

4

ping_flood_PINGFloodPayload

5

tcp_syn_flood_TCPSynFloodPayload

6

ssl_flood_SSLFloodPayload

7

http_slowloris_HTTPSlowlorisPayload

8

http_slow_body_HTTPSlowBodyPayload

9

http_slow_read_HTTPSlowReadPayload

10

icmp_flood_ICMPFloodPayload

11

dns_nxdomain_DNSNXDOMAINPayload

所有的这些Payload都曾被僵尸网络使用过,因此在将NKN作为通信协议使用时,恶意软件可以异步等待威胁行为者的命令并发起组合攻击。

具备RAT功能的新型后门

NKAbuse 具有多种功能,可使其成为强大的后门或远程访问木马(RAT),而不仅仅是一款DDoS工具。实际上,上述提到的大多数消息命令其功能主要是持久化感染、命令执行或信息收集。

恶意软件植入物会建立了一个名为“Heartbeat”的结构体,它负责定期与僵尸主机进行通信。其中还包含了很多其他的结构体,可以用来存储与目标主机相关的信息,例如PID、设备IP地址、可用内存和当前配置等等。

该恶意软件的另一个功能是能够对受感染设备进行屏幕截图,它使用了一个开源项目来确定显示边界,然后捕获当前屏幕的截图,并将其转换为PNG图片发送给威胁行为者:

NKAbuse还可以创建具有特定内容的文件、从文件系统中删除文件以及从特定路径获取文件列表。它可以获得系统中运行的进程列表,甚至还有可用网络接口的详细列表。值得一提的是,该恶意软件植入程序还能够以当前用户身份和权限在目标设备上执行系统命令,命令执行后的结果将通过NKN发送给威胁行为者。

总结

像NKAbuse这样的新型跨平台恶意软件目前还比较少见,这种特殊的恶意软件植入程序专为僵尸网络集成而设计,可以适应不同的主机系统并充当后门程序。除此之外,它还使用了区块链技术来确保可靠性和匿名性。不过值得庆幸的是,这款恶意软件目前还没有自我传播的功能。

入侵威胁指标IoC

主机MD5

11e2d7a8d678cd72e6e5286ccfb4c833

文件创建

/root/.config/StoreService

/root/.config/StoreService/app_linux_amd64

/root/.config/StoreService/files

/root/.config/StoreService/.cache

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

1️⃣零基础入门

① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

 因篇幅有限,仅展示部分资料

2️⃣视频配套资料&国内外网安书籍、文档

① 文档和书籍资料

② 黑客技术

因篇幅有限,仅展示部分资料

4️⃣网络安全面试题

5️⃣汇总

所有资料 ⚡️ ,朋友们如果有需要全套 《网络安全入门+进阶学习资源包》,扫码获取~

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

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

相关文章

NC 合并k个已排序的链表

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 合并 k 个升序…

Ubuntu系统安装docker和docker-compose并解决拉取镜像超时失败问题

安装docker 1、添加Docker官方的GPG密钥: curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - 2、添加docker的软件源 sudo add-apt-repository "deb [archamd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release …

嵌入式软件--C语言高级 DAY 8 函数

函数是C语言尤为重要的知识点,再嵌入式的学习过程中,对51和32的单片机的学习是重中之重。 一、函数的基本概念 1.介绍 函数是一种可重复使用的代码块,用于执行特定的任务或操作。 函数允许我们将代码逻辑组织成独立的单元,从而…

Python酷库之旅-第三方库Pandas(069)

目录 一、用法精讲 276、pandas.Series.dt.is_quarter_start属性 276-1、语法 276-2、参数 276-3、功能 276-4、返回值 276-5、说明 276-6、用法 276-6-1、数据准备 276-6-2、代码示例 276-6-3、结果输出 277、pandas.Series.dt.is_quarter_end属性 277-1、语法 …

知乎ip地址怎么改到别的城市去

知乎全面上线显示用户IP属地功能,这意味着用户可以在知乎上看到其他用户发布内容时的IP属地信息,这有助于增加信息的透明度和减少误解,但同时也容易暴露其隐私。有时出于保护隐私、避免地域限制或参与特定话题讨论的需求,我们可能…

【实战】文件加密器进行逆向

前言 实战可以大大提高自己,学习技术的目的就是能够在实战中运用。 本次实战与实际息息相关,该软件具有加密某文件的功能。 界面还挺好看的,功能很简单,输入文件和PIN(4位)进加解密。 这是被加密的文件 需要将其进行…

经纬恒润荣获小米汽车优秀质量奖!

小米SU7上市已超百天,在品质经过客户严选的同时,产量与交付量屡创新高,6-7月连续两个月交付量均超过10000台。为奖励对小米汽车质量和交付做出卓越贡献的合作伙伴团队及个人,小米向质量表现突出的供应商授予了优秀质量奖。经纬恒润…

第22课 Scratch入门篇:猫咪跑步(超长背景实现方法)

猫咪跑步(超长背景实现方法) 故事背景: 在广阔的草坪上有一只小猫,按下键盘的左右键,小猫不停的奔跑。。。 程序原理: 这个小猫的奔跑,实际是背景的移动,上节课我们通过多个图片直接的切换,今天…

深入理解 RDMA 的软硬件交互机制

作者:羽京 一、前言 随着数据中心的飞速发展,高性能网络不断挑战着带宽与时延的极限,网卡带宽从过去的 10 Gb/s 、25 Gb/s 到如今的 100 Gb/s、200 Gb/s 再到下一代的 400Gb/s 网卡,其发展速度已经远大于 CPU 发展的速度。 为了…

谷歌25亿美金收购Character AI的幕后故事

在科技领域中,并购交易无疑是推动技术发展的重要手段之一。最近,谷歌以25亿美金的对价收购了Character AI,这一交易的方式和细节引起了广泛关注。本文将详细解析谷歌这一奇葩交易方式,探讨其背后的动机和影响。 一、交易背景 1.…

计算机毕业设计Python民宿可视化分析 民宿推荐系统 随机森林预测算法 民宿爬虫 酒店爬虫 大数据毕业设计 Django Vue.js 机器学习 深度学习

《Python民宿可视化与预测系统》开题报告 一、选题背景及研究意义 1.1 选题背景 民宿作为一种新型的住宿方式,近年来在全球范围内迅速崛起,尤其在旅游行业发达的国家和地区更是受到广大游客的青睐。民宿不仅提供了更加个性化和接地气的住宿体验&#…

高校综合管理数据库中有以下几个关系

inner join:理解为“有效连接”,两张表中都有的数据才会显示 left join:理解为“有左显示”,比如on a.fieldb.field,则显示a表中存在的全部数据及a、b中都有的数据,a中有、b中没有的数据以null显示 right j…

智慧水务项目(五)django(drf)+angular 18 配置REST_FRAMEWORK

一、说明 建立了几个文件 二、一步一步来 1、建立json_response.py 继承了 Response, 一共三个函数,成功、详情,错误 from rest_framework.response import Responseclass SuccessResponse(Response):"""标准响应成功的返回…

影响LabVIEW工作效率的因素有哪些

影响LabVIEW工作效率的因素可以分为多个方面,涵盖硬件、软件、开发环境和编程习惯等。以下是一些常见的影响因素: 1. 硬件因素 处理器性能:处理器的速度和核心数量对LabVIEW程序的执行效率有很大影响。 内存大小:足够的内存可以保…

基于各种排序方法的综合比较

一. 各种排序方法总括 二. 时间性能方面 按平均的时间性能来分,时间复杂度为n*log阶的有快速排序,堆排序和并归排序其中以快速方法最好。 时间复杂度为n*n阶的有直接插入排序,冒泡排序和简单选择排序,直接以直接插入排序最优。特…

为什么会出现cmake?

为什么会出现cmake 1、 什么是CMake -- 是一个项目构建工具,其实cmake和makefile是差不多的,只不过cmake更高级,可以跨平台使用,并且使用起来更加灵活,更符合逻辑。 2、为什么会出现cmake? c程序的编译流…

「字符串」详解Trie(字典树|前缀树)并实现对应的功能 / 手撕数据结构(C++)

概述 在浏览器搜索栏里输入几个字,就弹出了以你的输入为开头的一系列句子。浏览器是怎么知道你接下来要输什么的? 来看看字典树干了什么。 字典树是一种高效记录字符串和查找字符串的数据结构。它以每个字符作为一个节点对字符串进行分割记录&#xff0c…

Flink-DataWorks第二部分:数据集成(第58天)

系列文章目录 数据集成 2.1 概述 2.1.1 离线(批量)同步简介 2.1.2 实时同步简介 2.1.3 全增量同步任务简介 2.2 支持的数据源及同步方案 2.3 创建和管理数据源 文章目录 系列文章目录前言2. 数据集成2.1 概述2.1.1 离线(批量)同步…

【文献阅读】DAVE

核心思想 文章的核心思想是提出了一种名为DAVE(Detect-and-Verify Paradigm for Low-Shot Counting)的少样本计数方法。DAVE旨在通过一个新颖的检测和验证范式来提高低样本情况下的对象计数性能。这种方法特别关注在只有少量标注样本(少样本…

OpenAI Gym: Understanding `action_space` notation (spaces.Box)

题意:OpenAI Gym: 理解action_space表示法(spaces.Box) 问题背景: I want to setup an RL agent on the OpenAI CarRacing-v0 environment, but before that I want to understand the action space. In the code on github line…