【观成科技】APT组织常用开源和商业工具加密流量特征分析
- 概述
在当前的网络安全环境中,APT组织的活动愈发频繁,利用其高级技术和社会工程手段,针对全球范围内的政府、军事和企业目标发起了一系列复杂的网络攻击。在不断升级的攻击中,开源和商业工具凭借其灵活性、易用性和全球化攻击能力等优势,逐渐成为一些APT组织的首选。然而,这些工具通常具备复杂的加密通信机制,使得对其流量特征的分析与研究尤为重要。本文将分析APT组织所使用的开源和商业工具,说明它们在数据结构、通信协议和加密方式等方面的独特性,旨在为网络安全防御者提供识别和防御APT攻击的新视角。
- 工具列表
| 工具 | 组织 | 协议 | 加密方法 |
| 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 | / |
- 流量特征分析
我们针对APT组织在不同攻击阶段所使用的开源和商业工具进行了深入研究,着重分析这些工具的加密通信特征,为检测发现相关APT组织活动提供依据。
-
- CobaltStrike
由于 Cobalt Strike 拥有强大的命令与控制 (C2) 功能、丰富的后渗透模块和灵活的脚本支持,使其成为安全评估和攻击模拟的重要工具。近年,海莲花组织频繁使用这一工具。在使用 HTTP 协议进行通信时,该组织采用了 MASK 掩码的加密方式,随机生成4字节密钥,和数据进行异或运算形成密文。该加密方式通过对数据进行特定规则的变换,使加密后的数据能够更好的隐藏攻击者的恶意行为。并且确保了相同的内容在每次加密后,其密文都会不同。这些加密的数据通常会被隐藏在 Cookie、URL 和其他字段中进行传输。见下图。

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

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

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

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

图 5 Chisel流量

图 6 Chisel流量详情
-
- 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证书特征
-
- Brute Ratel C4
近期研究发现,Patchwork组织进行了较大的武器更新,首次使用了商业攻击工具Brute RatelC4。该工具是由Mandiant和CrowdStrike的前红队队员ChetanNayak发布的工具包,用以替代因使用广泛而被安全公司重点防范的CobaltStrike框架。
该工具使用TLS协议进行通信,流量中有明显的心跳特征,并且心跳载荷长度固定。将载荷进行解密后,可以看到应用层HTTP报文。HTTP通信采用POST方法,URL、User-Agent等字段均为监听器配置中设置的固定值,请求体Data部分有Base64编码的数据,每次发送的心跳内容保持不变。

图 9 Brute Ratel C4 TLS流量

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

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

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

图 13 观成瞰云(ENS)-加密威胁智能检测系统CobaltStrike检测结果
- 总结
在分析 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 源码学习】
文章目录 1.删除器定义2. operator->() 运算符重载3. add_lvalue_reference<element_type>::type 使用 基本原理这篇博主写的很详细 https://yngzmiao.blog.csdn.net/article/details/105725663 1.删除器定义 deleter_…...
flask第一个应用
文章目录 安装一、编程第一步二、引入配置三、代码解析 安装 python环境安装的过程就不重复赘述了,flask安装使用命令pip install Flask即可,使用命令pip show Flask查看flask版本信息 提示:以下是本篇文章正文内容,下面案例可供…...
华为OD机试真题(Python/JS/C/C++)- 考点 - 细节
华为OD机试 2024E卷题库疯狂收录中,刷题 点这里。 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。...
【C++刷题】力扣-#628-三个数的最大乘积
题目描述 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 示例 1 输入:nums [1,2,3] 输出:6示例 2 输入:nums [1,2,3,4] 输出:24示例 3 输入:nums […...
Java项目实战II基于Java+Spring Boot+MySQL的工程教育认证的计算机课程管理平台(源码+数据库+文档)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着工程教…...
基于微信小程序实现信阳毛尖茶叶商城系统设计与实现
作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…...
设计一个灵活的RPC架构
RPC架构 RPC本质上就是一个远程调用,需要通过网络来传输数据。传输协议可以有多种选择,但考虑到可靠性,一般默认采用TCP协议。为了屏蔽网络传输的复杂性,需要封装一个单独的数据传输模块用来收发二进制数据,这个单独模…...
大数据计算里的Broadcast Hash Join/Shuffle Hash Join/Sort Merge Join
文章目录 Broadcast Hash Join场景 Shuffle Hash Join场景 Sort Merge Join场景 Broadcast Hash Join 场景 大表和小小表,直接把B表加载到内存,然后读块1内容和内存中数据匹配 Shuffle Hash Join 场景 大表和小表JOIN ,小表分块后能加载…...
Java - 手写识别; 如何用spring ai和大模型做手写识别教程
识别后的文字 利用大模型提升Java手写识别:更简单、更高效 在Java场景中,我们经常需要处理手写识别的问题。过去,这类需求主要依赖于OCR技术,但其效果并不总是稳定。随着大模型的发展,使用大模型进行java手写识别成为…...
AI智能体开发(二):技术栈选择与工具集成
主流开发框架深度对比 在上一篇中我们了解了Agent的核心架构,现在让我们看看如何用代码实现这些架构组件。目前市面上有多个成熟的Agent开发框架,每个都有其独特的优势和适用场景。 LangChain 定位:最全面的LLM应用开发框架 核心优势: 生态系统最完善 - 支持100+ LLM提…...
5步打造个人数字图书馆:番茄小说下载器实战指南
5步打造个人数字图书馆:番茄小说下载器实战指南 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 你是否曾在深夜追更小说时突然断网?是否想整理自己的阅读记录却无从…...
终极网盘下载加速工具:告别限速,享受高速下载自由
终极网盘下载加速工具:告别限速,享受高速下载自由 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…...
终极指南:如何在Android设备上离线使用Zwift骑行模拟平台
终极指南:如何在Android设备上离线使用Zwift骑行模拟平台 【免费下载链接】zwift-offline Use Zwift offline 项目地址: https://gitcode.com/gh_mirrors/zw/zwift-offline 你是否曾梦想在无需网络连接的情况下享受专业的Zwift虚拟骑行体验?现在&…...
告别手动翻日志!用Log Parser 2.2 + Login工具,5分钟自动化分析Windows安全事件
从日志泥潭到智能洞察:Log Parser与Login工具的高效协同实战 Windows安全事件日志就像一座未经开采的金矿,每天产生海量的4624、4625等登录事件记录。传统的手动翻查不仅效率低下,还容易遗漏关键安全线索。本文将带你突破手工操作的瓶颈&…...
告别环境报错!Windows下ESP8266开发环境保姆级搭建指南(含MSYS2、Python包避坑)
Windows下ESP8266开发环境零失败搭建全攻略 第一次接触ESP8266开发时,最令人头疼的莫过于环境配置。明明按照官方文档一步步操作,却总在某个环节卡住——Python包安装失败、工具链不兼容、串口识别异常...这些问题消耗了开发者大量时间。本文将彻底解决…...
InfluxDB Studio:专业级时间序列数据库管理工具的终极指南
InfluxDB Studio:专业级时间序列数据库管理工具的终极指南 【免费下载链接】InfluxDBStudio InfluxDB Studio is a UI management tool for the InfluxDB time series database. 项目地址: https://gitcode.com/gh_mirrors/in/InfluxDBStudio 在当今数据驱动…...
从PostgreSQL老手视角:快速上手华为GaussDB极简版,这些操作习惯几乎一样
从PostgreSQL老手视角:快速上手华为GaussDB极简版的10个关键习惯迁移 如果你已经习惯了PostgreSQL的命令行操作和配置逻辑,第一次接触华为GaussDB时会有种奇妙的熟悉感——就像走进一间重新装修过的老房子,家具摆放的位置几乎没变,…...
手把手教你用Google Cloud语音API为Android App加个“耳朵”和“嘴巴”(附免费额度避坑指南)
实战指南:在Android应用中集成Google Cloud语音技术 想象一下,你的Android应用能够听懂用户说话,还能用自然流畅的语音回应——这不再是科幻电影里的场景。借助Google Cloud的语音API,即使是独立开发者也能快速为应用添加专业的语…...
RuoYi-Cloud项目导入避坑指南:从Maven配置到依赖下载的完整流程(附常见错误解决)
RuoYi-Cloud项目导入避坑指南:从Maven配置到依赖下载的完整流程 1. 项目准备与环境检查 在开始导入RuoYi-Cloud项目之前,确保你的开发环境已经准备就绪。这个微服务架构项目基于Spring Cloud Alibaba体系,对开发环境有特定要求: 基…...
