观成科技:白象组织BADNEWS木马加密通信分析总结报告

news2024/12/28 13:03:28
  1. 概述

白象,又名Hangover、Patchwork、摩诃草等,该组织主要针对中国、巴基斯坦等亚洲地区国家进行网络间谍活动,攻击目标以政府机构、科研教育领域为主。

自16年起,该APT组织一直持续使用攻击武器BADNEWS开展攻击活动,该武器的主要功能为远程控制。观成安全分析人员对近两年掌握的多个公开和未公开BADNEWS样本进行分析,发现如下特点:

  • 各个样本的整体执行逻辑、通信交互内容无明显变化;
  • 各个样本支持的控制指令无明显变化,包含执行任意命令、截图、键盘记录、服务端更新、下载文件、执行文件以及列目录操作;
  • 样本的通信加密算法一直在进行更新,从RC4+Base64到AES+Base64,再到XOR+RC4+Base64;
  • 样本使用的通信协议,从最开始的明文协议HTTP,到加密协议HTTPS;

从上述特点中可以看出,近两年BADNEWS针对加密通信方式进行了更新迭代,从协议层面、加密算法层面、密钥层面这三方面发力,加强了该攻击武器在流量侧的隐蔽性。

2.基本信息

观成安全研究团队在近期捕获了BADNEWS新样本,分析发现该样本使用了HTTPS加密协议进行C&C通信,内层HTTP载荷中又组合使用了XOR+RC4+Base64加密算法和编码,进一步提高传输信息的隐蔽性。结合近两年我们分析过的11个BADNEWS公开样本,对该木马的加密协议、算法和密钥进行了对比和总结,这11个样本的基本信息如下表:

3.加密通信分析

  • 3.1 HTTP隧道加密通信分析

早期,BADNEWS样本均使用HTTP协议进行通信(23年5月开始使用HTTPS),请求的URL为随机生成的不规则字符串,URL后缀为“php”。虽然使用的明文通信协议,但是样本使用HTTP的请求体来传输加密数据。样本运行后会先发送上线包,上线包中会将UUID和主机信息上传到C&C服务器。

图 1 上线包(HTTP)

将上线包的正文数据提取,经过解密后可以看到明文数据,其中包含了UUID和受害机的主机信息。

图 2 上线包UUID解密

图 3 上线包 主机信息解密

随后样本会持续发送心跳包,等待接收攻击者下发的控制指令,心跳间隔约5s。

图 4 心跳请求(HTTP)

  • 3.2 HTTPS加密通信分析

白象组织从23年5月开始使用HTTPS作为BADNEWS的通信协议,将原有的HTTP加密数据隐藏在了HTTPS加密协议之后。观成安全分析人员对BADNEWS产生的大量HTTPS加密流量进行分析后,总结出了以下特征。

  1. 上线流量特征

BADNEWS样本(HTTPS)在上线时存在发送两次上线包的行为,第一次上线包为受害主机的UUID,第二次上线包为主机信息。服务端对两次上线包有不同的响应,两次响应载荷长度相差1;

图 5 上线包(HTTPS)

  1. 心跳流量特征

如果服务器没有下发控制指令,BADNEWS会重复交替发送两种心跳包。第一种心跳包内容为加密后的受害机UUID值,该心跳包用于获取控制指令。第二种心跳包内容较第一种心跳包少一层URL编码并改变了固定字符串。第一种心跳包之间间隔为2~6秒。

图 6 心跳请求(HTTPS)

2.证书特征

近期披露的BADNEWS(HTTPS)服务器都使用了“Let's Encrypt”颁发的免费证书。

图 7 证书截图

3.加密算法与密钥迭代

通过对BADNEWS样本的通信加密算法进行统计观察,可以发现攻击者一直在尝试改进加密算法,并且存在密钥复用的情况。按照时间,可以将BADNEWS加密算法的使用,分为以下3个阶段:

2022年上半年(样本1-3),使用RC4+Base64,密钥相同;

2022年下半年(样本4-8),使用AES+Base64,密钥相同(除样本6外);

2023年至今(样本9-12),开始使用安全传输协议HTTPS,使用XOR+RC4+Bas64,密钥相同,且开始使用非硬编码密钥(除样本10)。

5.检测

观成瞰云(ENS)-加密威胁智能检测系统能够对BADNEWS系列攻击武器有效检出,用最新捕获的样本举例(HTTPS协议),检测结果见下图。

图 8 观成瞰云(ENS)-加密威胁智能检测系统检测结果

图 9 观成瞰云(ENS)-加密威胁智能检测系统鱼骨图展示

6.总结

观成科技对白象组织BADNEWS木马进行了长期追踪分析,从各个版本的通信方式可以看出该组织在持续对攻击武器的通信加密方式进行开发改进。在协议侧,攻击武器从使用明文协议HTTP过渡到了密文协议HTTPS;在密钥侧,攻击武器从完全使用硬编码密钥到增加使用临时会话密钥。这些改进使得白象流量的检测难度进一步提高。观成安全团队对BADNEWS的加密流量进行深入研究后,提取了该攻击武器通信流量的行为特征,实现了对BADNEWS的检测。后续,观成安全团队将继续保持对白象组织活动的长期跟踪,密切关注各类使用加密流量的最新威胁,并随时更新检测技术方案进行应对。

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

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

相关文章

【Java程序设计】【C00387】基于(JavaWeb)Springboot的校园食堂订餐系统(有论文)

基于(JavaWeb)Springboot的校园食堂订餐系统(有论文) 项目简介项目获取开发环境项目技术运行截图 博主介绍:java高级开发,从事互联网行业六年,已经做了六年的毕业设计程序开发,开发过…

快速上手Spring Cloud 十:Spring Cloud与微前端

快速上手Spring Cloud 一:Spring Cloud 简介 快速上手Spring Cloud 二:核心组件解析 快速上手Spring Cloud 三:API网关深入探索与实战应用 快速上手Spring Cloud 四:微服务治理与安全 快速上手Spring Cloud 五:Spring …

2024年【G3锅炉水处理】考试题及G3锅炉水处理考试报名

题库来源:安全生产模拟考试一点通公众号小程序 G3锅炉水处理考试题参考答案及G3锅炉水处理考试试题解析是安全生产模拟考试一点通题库老师及G3锅炉水处理操作证已考过的学员汇总,相对有效帮助G3锅炉水处理考试报名学员顺利通过考试。 1、【多选题】锅筒…

基于DWT(离散小波变换)的图像水印算法,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

Seata:分布式事务

Seata简介 Seata(Simple Extensible Autonomous Transaction Architecture,简单可扩展自治事务框架)是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。Seata 开源半年左右,目前已经有超过 1.1 万 star&#xf…

babyos 学习记录

宏定义头文件 将一个宏定义取不同的数据到不同的数组中; 侵入式链表 struct list_head { struct list_head *next, *prev; }; // 添加(list_add_tail/list_add)、删除、查找 xx.h // 定义一个用于链表管理的结构体 typedef sturct{ xxx …

搜维尔科技:【应急演练】【工业仿真】救援模拟演练可视化仿真项目实施

安全救援综合演练系统是一套面向公共安全事故、预案管理、应急救援模拟演练的虚拟仿真解决方案,它为警察、消防以及专门的应急救援保障部门提供一个综合的应急救援培训和仿真演练平台。平台主要通过设计不同的事故模型和特定的灾难场景,定制不同的应急救…

跨站脚本攻击

跨站脚本攻击又称XSS攻击,是代码注入攻击的一种。利用XSS漏洞,攻击者可以窃取Cookies或劫持会话,或注入恶意 HTML 或 JavaScript 代码到页面中,又或者将当前页面重定向至一个攻击者搭建的恶意网站。XSS漏洞的产生多是因为网站开发…

全国草地资源类型分布图

草地出现在世界各地,约占全球陆地面积的24%,大多分布于大陆内部气候干燥、降水较少的地区,其中澳大利亚、俄罗斯、中国、美国和巴西等国面积较大。中国草地面积约占国土面积的40%,主要分布在内蒙古、东北、西北和青藏高原&#xf…

前端学习之JavaScript有关字符串的一些方法

&#xff08;注释是对各个方法的一些解释&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>字符串</title> </head> <body><script>let str1 test1let str2 n…

nvidia-smi参数信息

nvidia-smi参数信息 如图所示

组织机构代码是哪9位在那里怎么查询?

全国组织机构代码由八位数字&#xff08;或大写拉丁字母&#xff09;本体代码和一位数字&#xff08;或大写拉丁字母&#xff09;校验码&#xff0c;共9位组成&#xff1b; 组织机构代码在哪里怎么查询&#xff1f; 1、打开「词令」小程序&#xff1b; 2、打开词令小程序后&a…

数据结构之单链表的详细实现(图解)

前言 本次博客讲结合图例讲解单向不带头非循环链表 此后会讲解一些题目 1单链表的实现 1.1什么是单链表 我们先看数组&#xff0c;即顺序表的是什么样的&#xff0c;再看链表 1.2单链表的特点 实际中要实现的链表的结构非常多样&#xff0c;以下情况组合起来就有8种链表结…

Avalonia笔记2 -数据集合类控件

学习笔记&#xff1a; 1. DataGrid 笔记1中已经记录&#xff1b; 2. ItemsControl 属性&#xff1a; ItemsSource&#xff1a;数据源 ItemsControl.ItemTemplate&#xff1a;单项数据模板&#xff0c;内部使用<DataTemplate> 示例&#xff1a; <ItemsContr…

html页面使用@for(){},@if(){},利用jquery 获取当前class在列表中的下标

基于以前的项目进行修改优化&#xff0c;前端代码根据List元素在html里进行遍历显示 原先的代码&#xff1a; 其中&#xff0c;noticeGuide.Id是标识noticeGuide的唯一值&#xff0c;但是不是从0开始的【是数据库自增字段】 但是在页面初始化加载的时候&#xff0c;我们只想…

程序员35岁的职业困惑及应对之道

35岁,对许多程序员来说,是一个职业生涯的重要分水岭。在这个年龄,一些人开始感到迷茫和焦虑,担心自己的技能已经落后,难以跟上日新月异的技术变革。而另一些人则充满信心,认为多年来积累的丰富经验和扎实的技术功底,将助力他们在未来的职业道路上取得新的飞跃。 无疑,在AI、自…

Transformer的前世今生 day09(Transformer的框架概述)

前情提要 编码器-解码器结构 如果将一个模型分为两块&#xff1a;编码器和解码器那么编码器-解码器结构为&#xff1a;编码器负责处理输入&#xff0c;解码器负责生成输出流程&#xff1a;我们先将输入送入编码器层&#xff0c;得到一个中间状态state&#xff0c;并送入解码器…

11.Notepad++

文章目录 一、下载和安装设置练习 以前在记事本上写的代码看上去有点累&#xff0c;因为所有的单词看上去都是黑色的&#xff0c;并且当代码出现问题后&#xff0c;它提示第三行&#xff0c;我们还需要一行一行去数。这些问题都可以由一个高级记事本&#xff1a; Notepad 来解…

书生浦语大模型实战营第一课笔记

书生浦语大模型全链路开源体系 课程笔记大模型的发展趋势InternLM2的主要亮点模型到应用的典型流程全链路的开源工具 InternLM2技术报告笔记大型语言模型的发展InternEvoModel Structure训练数据 课程笔记 第一节课主要对大模型进行介绍&#xff0c;特别是书生浦语大模型的发展…

嵌入式学习46——硬件相关2串口通信

串口&#xff1a; 端口&#xff1a; COM 波特率&#xff1a; 9600 115200 &#xff08;bps&#xff09; 每秒传输的数据…