当前位置: 首页 > news >正文

【观成科技】APT组织常用开源和商业工具加密流量特征分析

  1. 概述

在当前的网络安全环境中,APT组织的活动愈发频繁,利用其高级技术和社会工程手段,针对全球范围内的政府、军事和企业目标发起了一系列复杂的网络攻击。在不断升级的攻击中,开源和商业工具凭借其灵活性、易用性和全球化攻击能力等优势,逐渐成为一些APT组织的首选。然而,这些工具通常具备复杂的加密通信机制,使得对其流量特征的分析与研究尤为重要。本文将分析APT组织所使用的开源和商业工具,说明它们在数据结构、通信协议和加密方式等方面的独特性,旨在为网络安全防御者提供识别和防御APT攻击的新视角。

  1. 工具列表

工具

组织

协议

加密方法

CobaltStrike

海莲花、APT29

HTTP、TLS1.2

AES、MASK、RSA

Remcos

摩诃草

TLS1.3

/

TinyShell

东亚方向

TCP

AES-128-CBC

Chisel

海莲花

WebSocket

/

AsyncRAT

Earth Berberoka、APT29、MuddyWater等

TLS1.0

AES-256-CBC

Brute Ratel C4

摩诃草

TLS1.2

/

  1. 流量特征分析

我们针对APT组织在不同攻击阶段所使用的开源和商业工具进行了深入研究,着重分析这些工具的加密通信特征,为检测发现相关APT组织活动提供依据。

    1. CobaltStrike

由于 Cobalt Strike 拥有强大的命令与控制 (C2) 功能、丰富的后渗透模块和灵活的脚本支持,使其成为安全评估和攻击模拟的重要工具。近年,海莲花组织频繁使用这一工具。在使用 HTTP 协议进行通信时,该组织采用了 MASK 掩码的加密方式,随机生成4字节密钥,和数据进行异或运算形成密文。该加密方式通过对数据进行特定规则的变换,使加密后的数据能够更好的隐藏攻击者的恶意行为。并且确保了相同的内容在每次加密后,其密文都会不同。这些加密的数据通常会被隐藏在 Cookie、URL 和其他字段中进行传输。见下图。

图 1 Cobalt Strike MASK加密流量

    1. Remcos

Remcos 作为远程控制程序被摩诃草组织频繁使用。该工具使用 TLS 1.3 协议进行通信。其加密通信有区别于正常TLS通信的地方:在两次 TLS 握手中,ServerHello 消息中的 Random 字段值不变,如下图所示。

图 2 Remcos流量

载荷传输的数据由自定义的格式构成,如下图所示,数据由“4字节的固定魔术值+4字节的数据长度+4字节的控制码+数据”组成。

图 3 数据结构

    1. TinyShell

东亚方向某组织曾使用此工具,TinyShell是一款开源的Unix类后门shell工具,具备以下三个功能:通信加密;支持上传、下载;正向连接和反弹shell。该工具使用自定义的TCP协议进行通信,通信数据采用AES-128-CBC加密,并通过HMAC进行验证。其通信特征表现为在建立TCP连接后,载荷长度序列有一定规律[40, 52, 52, 36, 124],反映了其固定的行为模式,见下图。

图 4 TinyShell流量

    1. Chisel

海莲花组织使用过此工具,Chisel的通信流量特征包括在其WebSocket协议升级中包含隧道工具的版本信息“chisel-v3”,以及在WebSocket信道内进行SSH加密协商时的版本信息“SSH-chisel-v3-server”。并且此组织使用Chisel的时候服务器存在两点特征:一是服务器的SSH是大端口,二是server host key中使用了较少见的算法套件ecdsa-sha2-nistp521。

图 5 Chisel流量

图 6 Chisel流量详情

    1. AsyncRAT

AsyncRAT因其强大的远控功能和易用性,被多个APT组织用于实施远程控制和数据窃取。通信协议使用TLS1.0版本,加密载荷内的通信数据采用AES-256-CBC进行二次加密。该工具行为模式相对固定,存在明显的心跳行为,时间间隔和心跳数据长度均固定。

图 7 AsyncRAT流量

AsyncRAT 使用的默认证书中的证书序列号为“0f 39 39 39 39 31 32 33 31 32 33 35 39 35 39 5a”,见下图。

图 8 AsyncRAT证书特征

    1. Brute Ratel C4

近期研究发现,Patchwork组织进行了较大的武器更新,首次使用了商业攻击工具Brute RatelC4。该工具是由MandiantCrowdStrike的前红队队员ChetanNayak发布的工具包,用以替代因使用广泛而被安全公司重点防范的CobaltStrike框架。

该工具使用TLS协议进行通信,流量中有明显的心跳特征,并且心跳载荷长度固定。将载荷进行解密后,可以看到应用层HTTP报文。HTTP通信采用POST方法,URLUser-Agent等字段均为监听器配置中设置的固定值,请求体Data部分有Base64编码的数据,每次发送的心跳内容保持不变。

图 9 Brute Ratel C4 TLS流量

图 10 Brute Ratel C4解密后流量

  1. 检测

观成瞰云(ENS)-加密威胁智能检测系统能够对APT组织使用的多种开源和商业攻击武器进行有效检出,检测结果见下图。

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

12 观成瞰云(ENS-加密威胁智能检测系统Chisel检测结果

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

  1. 总结

在分析 APT 组织使用的开源和商业工具的加密通信特征后,我们能够更好的掌握这些工具的行为模式和通信特征,从而为APT攻击的检测提供新的线索。随着网络攻击手段的不断演变,我们的检测和防御措施也必须持续改进,在此过程中,对加密通信流量的分析将成为防御策略的核心,帮助我们应对不断变化的APT威胁。接下来,观成科技安全研究团队将继续追踪和分析APT组织使用的开源和商业工具,以保持对最新威胁的警觉,并不断优化检测方法,以适应变化的攻击手段,进一步守护加密网络空间的安全。

相关文章:

【观成科技】APT组织常用开源和商业工具加密流量特征分析

概述 在当前的网络安全环境中,APT组织的活动愈发频繁,利用其高级技术和社会工程手段,针对全球范围内的政府、军事和企业目标发起了一系列复杂的网络攻击。在不断升级的攻击中,开源和商业工具凭借其灵活性、易用性和全球化攻击能力…...

Java开发者的Python快速进修指南:面向对象进阶

在上一期中,我们对Python中的对象声明进行了初步介绍。这一期,我们将深入探讨对象继承、组合以及多态这三个核心概念。不过,这里不打算赘述太多理论,因为我们都知道,Python与Java在这些方面的主要区别主要体现在语法上。例如,Python支持多重继承,这意味着一个类可以同时…...

【商汤科技-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...

诱骗取电快充协议芯片,支持与其它 MCU 共用 D+D-网络和电脑传输数据

前言 在科技日新月异的今天,快充技术已成为智能手机、平板电脑乃至笔记本电脑等电子设备不可或缺的一部分。各大厂商为了提升用户体验,纷纷推出了自家的快充协议,这些协议不仅让充电速度大幅提升,还带来了更加智能、安全的充电体验…...

Java Executor ScheduledExecutorService 源码

前言 相关系列 《Java & Executor & 目录》《Java & Executor & ScheduledExecutorService & 源码》《Java & Executor & ScheduledExecutorService & 总结》《Java & Executor & ScheduledExecutorService & 问题》 涉及内容 …...

【力扣 + 牛客 | SQL题 | 每日6题】牛客SQL热题 + 力扣hard

1. 牛客SQL热题206:获取每个部门中当前员工薪水最高的相关信息 1.1 题目: 描述 有一个员工表dept_emp简况如下: emp_nodept_nofrom_dateto_date10001d0011986-06-269999-01-0110002d0011996-08-039999-01-0110003d0021996-08-039999-01-01 有一个薪水…...

前端常见错误

搭建vueelement-ui脚手架错误 基于vue官方文档和element官方文档搭建手册报错 安装element Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist. types.js?8ad0:39 Uncaught TypeError: Cannot read property prototype of undefi…...

Edge 浏览器插件开发:图片切割插件

Edge 浏览器插件开发:图片切割插件 在图片处理领域,按比例切割图片是一个常见需求。本文将带你开发一个 Edge 浏览器插件,用于将用户上传的图片分割成 4 个部分并自动下载到本地。同时,本文介绍如何使用 cursor 辅助工具来更高效…...

银河麒麟v10 xrdp安装

为了解决科技被卡脖子的问题,国家正在大力推进软硬件系统的信创替代,对于一些平时对Linux操作系统不太熟练的用户来讲提出了更高的挑战和要求。本文以银河麒麟v10 24.03为例带领大家配置kylin v10的远程桌面。 最近公司为了配置信创开发新购了几台银河麒…...

Leetcode 删除有序数组中的重复项 Ⅱ

使用双指针来解决此问题,关键词“有序”数组,一个 index 指针用于构建新数组,一个 i 指针用于遍历整个数组 以下是代码的中文解释以及算法思想: 算法思想 这道题要求对一个有序数组进行去重,使得每个元素最多出现两…...

大模型学习笔记------什么是大模型

大模型学习笔记------什么是大模型 1、大模型定义2、大模型发展历程3、大模型的核心特点4、大模型的应用领域5、大模型面临的挑战6、结束语 近两年大模型超级火,并且相关产品迎来爆发式增长。在工作中,也常常接触到大模型,并且已经开始进行相…...

【unique_str 源码学习】

文章目录 &#xff11;&#xff0e;删除器定义2. operator->() 运算符重载3. add_lvalue_reference<element_type>::type 使用 基本原理这篇博主写的很详细 https://yngzmiao.blog.csdn.net/article/details/105725663 &#xff11;&#xff0e;删除器定义 deleter_…...

flask第一个应用

文章目录 安装一、编程第一步二、引入配置三、代码解析 安装 python环境安装的过程就不重复赘述了&#xff0c;flask安装使用命令pip install Flask即可&#xff0c;使用命令pip show Flask查看flask版本信息 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供…...

华为OD机试真题(Python/JS/C/C++)- 考点 - 细节

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题 点这里。 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。...

【C++刷题】力扣-#628-三个数的最大乘积

题目描述 给你一个整型数组 nums &#xff0c;在数组中找出由三个数组成的最大乘积&#xff0c;并输出这个乘积。 示例 示例 1 输入&#xff1a;nums [1,2,3] 输出&#xff1a;6示例 2 输入&#xff1a;nums [1,2,3,4] 输出&#xff1a;24示例 3 输入&#xff1a;nums […...

Java项目实战II基于Java+Spring Boot+MySQL的工程教育认证的计算机课程管理平台(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着工程教…...

基于微信小程序实现信阳毛尖茶叶商城系统设计与实现

作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参与学生毕业答辩指导&#xff0c;…...

设计一个灵活的RPC架构

RPC架构 RPC本质上就是一个远程调用&#xff0c;需要通过网络来传输数据。传输协议可以有多种选择&#xff0c;但考虑到可靠性&#xff0c;一般默认采用TCP协议。为了屏蔽网络传输的复杂性&#xff0c;需要封装一个单独的数据传输模块用来收发二进制数据&#xff0c;这个单独模…...

大数据计算里的Broadcast Hash Join/Shuffle Hash Join/Sort Merge Join

文章目录 Broadcast Hash Join场景 Shuffle Hash Join场景 Sort Merge Join场景 Broadcast Hash Join 场景 大表和小小表&#xff0c;直接把B表加载到内存&#xff0c;然后读块1内容和内存中数据匹配 Shuffle Hash Join 场景 大表和小表JOIN &#xff0c;小表分块后能加载…...

Java - 手写识别; 如何用spring ai和大模型做手写识别教程

识别后的文字 利用大模型提升Java手写识别&#xff1a;更简单、更高效 在Java场景中&#xff0c;我们经常需要处理手写识别的问题。过去&#xff0c;这类需求主要依赖于OCR技术&#xff0c;但其效果并不总是稳定。随着大模型的发展&#xff0c;使用大模型进行java手写识别成为…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...