当前位置: 首页 > 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手写识别成为…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境&#xff1a; 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境&#xff1a; virtualenv myenv 3、激活虚拟环境&#xff08;激活环境可以在当前环境下安装包&#xff09; source myenv/bin/activate 此时&#xff0c;终端…...