【电子数据取证】关于CoblatStrike的流量特征取证分析

news2024/9/19 6:55:05

文章关键词:电子数据取证、流量分析、流量取证

一、前言

近期,网络安全团队在对公司内部网络进行安全检查时发现,有五台电脑出现了不明的网络流量。这些电脑并没有执行任何明显的操作,但是网络流量却显示它们正在向外传输数据。

初步调查后发现,这些数据流都通往同一个外部地址,并发现所有这些被控制的电脑都执行了相同的操作,下载并执行了一个来自外部地址的恶意程序。

这起事件引发了公司的担忧,因为如果这些电脑被黑客控制,那么黑客就能够访问公司的内部网络,甚至可能获取到敏感数据。

为了明确事情的真相,公司决定进一步调查此事。截取了一段流量并对其进行取证,大致确定了黑客使用的工具名叫Cobalt Strike,并对这起事件进行了相关处理。

通过这个案例,我们可以了解到Cobalt Strike的一些主要特征和操作方式。

二、基本运行原理

Cobalt Strike的运行需要一个连接被控端和控制端的teamserver,在一个完整的指令传输以及运行中,主要的步骤有:

被控端向team server发送一个心跳包,心跳包默认每60秒发送一次(可以手动修改),作用主要是为了迷惑安全软件,防止因为持续连接并发送数据而被检测到。

心跳包的数据信息被team server记录后,被控端会再次向team server发送一个心跳包询问是否有需要执行的指令,Team server接收到第二次心跳包后会将控制端输入的指令传送给被控端,被控端执行指令(间隔同样是默认60秒),当知晓以上的基本信息后,遇见未魔改的CS后就可以快速识别出流量的来源是CS:

在上面的流量包中,两台主机之间的通信基本上是每隔60秒通信一次且上下行的数据长度固定,大致可以判断出是一个没有经过修改的CS与被控端之间交流的流量。

三、可执行和文件的下载(stage)

Stage是可执行文件在运行后会使用http协议向指定服务器下载stage,指定服务器通常是team server,请求http的路径有多个,但不管怎样,路径名都符合checksum8原则,请求的路径的ascii的和与256取余之后的值为92(x86位木马)或者93(64位木马)

使用checksum8的Java代码:

public class EchoTest {

public static long checksum8(String text) {

if (text.length() < 4) {

return 0L;

}

text = text.replace("/", "");

long sum = 0L;

for (int x = 0; x < text.length(); x++) {

sum += text.charAt(x);

}

return sum % 256L;

}

public static void main(String[] args) throws Exception {

System.out.println(checksum8("4Ekx")); // Yle2、cKTZ、wQPD等

}

}

3.1、控制端命令的下发

控制端在向被控端下发命令时,在流量中会有比较明显的submit.php同时后接id参数:

3.2、user-agent头

在4.0之前的CS版本中,使用CS的流量的user-agent头是固定的,不会变化特征比较明显,在4.0之后的版本中user-agent头开始随机生成,避免被检测到。

4.0之前的版本,每次user-agent头都相同。

四、总结

在对流量的取证过程中,应当先了解各种工具的各种基本特征,才能根据其特征来分析并确定其类型,需要充分了解取证的技巧以及具备充实的知识储备,才能在令人眼花缭乱的数据流中找出关键的证据。

今后的流量取证中仍然需要继续学习,加强技术能力,为网络安全贡献一份力。

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

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

相关文章

如何使用 Java 框架监控和反馈持续交付状态

如何使用 Java 框架监控和反馈持续交付状态 在持续交付 (CD) 流程中&#xff0c;及时监控和反馈是至关重要的。通过实时获取有关构建、部署和测试的反馈&#xff0c;团队可以迅速发现并解决问题&#xff0c;从而改善软件质量和缩短交付周期。 Java 框架 Java 生态系统提供了…

django学习入门系列之第四点《写JavaScript的位置选择》

文章目录 往期回顾 位置1&#xff1a;head标签的尾部位置2&#xff1a;body标签的尾部 一般推荐放位置二&#xff08;无论是文件导入还是直接写&#xff09; 往期回顾 1.【快速开发网站】 2.【浏览器能识别的标签1】 3.【浏览器能识别的标签2】 4.【浏览器能识别的标签3】 5…

Linux云计算 |【第一阶段】SERVICES-DAY4

主要内容&#xff1a; DHCP概述、PXE批量装机、配置PXE引导、Kickstart自动应答、Cobbler装机平台 一、DHCP服务概述及原理 DHCP动态主机配置协议&#xff08;Dynamic Host Configuration Protocol&#xff09;&#xff0c;由IETF&#xff08;Internet网络工程师任务小组&…

最新!CSSCI(2023-2024)期刊目录公布!

【SciencePub学术】据鲁迅美术学院7月16日消息&#xff0c;近日&#xff0c;南京大学中国社会科学研究评价中心公布了中文社会科学引文索引&#xff08;CSSCI&#xff09;&#xff08;2023—2024&#xff09;数据库最新入选目录。 C刊一般指CSSCI来源期刊&#xff0c;即南大核心…

C++ | Leetcode C++题解之第263题丑数

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isUgly(int n) {if (n < 0) {return false;}vector<int> factors {2, 3, 5};for (int factor : factors) {while (n % factor 0) {n / factor;}}return n 1;} };

GPT-4o mini 比gpt-3.5更便宜(2024年7月18日推出)

https://openai.com/index/gpt-4o-mini-advancing-cost-efficient-intelligence/ 人工智能学习网站 https://chat.xutongbao.top

CTFshow--web--xss

目录 web316 web317~319 web320~326 web327 web328 web329 web330 web331 web332 web333 先在自己的服务器写上代码 <?php$content $_GET[1]; if(isset($content)){file_put_contents(flag.txt,$content); }else{echo no data input; }要拿到管理员的cookie , 而…

BUUCTF逆向wp [MRCTF2020]Xor

第一步 查壳&#xff0c;该题是32位&#xff0c;无壳。 第二步 跟进main&#xff0c;发现反汇编不了 通过下图我们可以发现一串类似字符串的东西 第三步 我们看一下汇编 我们可以得到这些信息&#xff1a;flag的长度为27&#xff08;下面是对本条指令cmp edx 27指令的应用…

隐语隐私计算实训营「联邦学习」第 3 课:隐语架构概览

【隐私计算实训营】是蚂蚁集团隐语开源社区出品的线上课程&#xff0c;自实训营上线以来&#xff0c;获得行业内外广泛关注&#xff0c;吸引上千余名开发者报名参与。本次暑期夏令营课程中&#xff0c;除了最新上线的「联邦学习系列」&#xff0c;还包含了「隐私保护数据分析」…

TypeScript 教程(十):项目配置、代码质量与前端框架集成

目录 前言回顾类型声明文件与异步编程1. tsconfig.json 高级配置a. 基本配置b. 高级配置选项 2. 使用 Webpack 构建 TypeScript 项目a. 安装依赖b. 配置 Webpack 3. 使用 Babel 编译 TypeScripta. 安装依赖b. 配置 Babelc. 配置 Webpack 使用 Babel 4. 使用 ESLint 和 TSLinta.…

【Django】django自带后台管理系统样式错乱,uwsgi启动css格式消失的问题

正常情况&#xff1a; ERROR&#xff1a;&#xff08;css、js文件加载失败&#xff09; 问题&#xff1a;CSS加载的样式没有了&#xff0c;原因&#xff1a;使用了django自带的admin&#xff0c;在使用 python manage.py runserver启动 的时候&#xff0c;可以加载到admin的文…

昇思25天学习打卡营第17天 | 基于MindSpore实现BERT对话情绪识别

昇思25天学习打卡营第17天 | 基于MindSpore实现BERT对话情绪识别 文章目录 昇思25天学习打卡营第17天 | 基于MindSpore实现BERT对话情绪识别BERT模型对话情绪识别BERT模型的文本情绪分类任务数据集数据下载数据加载与预处理 模型构建模型验证模型推理 总结打卡 BERT模型 BERT&…

Python+Flask+MySQL/Sqlite的个人博客系统(前台+后端管理)【附源码,运行简单】

PythonFlaskMySQL/Sqlite的个人博客系统&#xff08;前台后端管理&#xff09;【附源码&#xff0c;运行简单】 总览 1、《个人博客系统》1.1 方案设计说明书设计目标工具列表 2、详细设计2.1 管理员登录2.2 程序主页面2.3 笔记新增界面2.4 文章新增界面2.5 文章/笔记管理界面2…

SpreadsheetLLM:微软对Excel编码的“摊膀伏”

--->更多内容&#xff0c;请移步“鲁班秘笈”&#xff01;&#xff01;<--- SpreadsheetLLM Excel的特点是二维数据格式、灵活的布局和多样化的格式选项。微软最近引入了SpreadsheetLLM&#xff0c;开创了一种高效的编码方法&#xff0c;用于释放和优化LLMs在电子表格上…

[CP_AUTOSAR]_分层软件架构_接口之通信模块交互介绍

目录 1、协议数据单元(PDU)传输2、通信模块的案例2.1、SDU、 PCI & PDU2.2、通信模块构成2.3、从数据传输的角度看Communication2.4、Communication中的接口 在前面 《关于接口的一些说明》 以及  《Memory软件模块接口说明》 中&#xff0c;简要介绍了CP_AUTOSAR分层…

农田自动化闸门的结构组成与功能解析

在现代化的农业节水灌溉领域中&#xff0c;农田自动化闸门的应用越来越广泛。它集成了先进的技术&#xff0c;通过自动化控制实现水资源的精准调度和高效利用。本文将围绕农田自动化闸门的结构组成&#xff0c;详细介绍其各个部件的功能和特点。 农田自动化闸门主要由闸门控制箱…

【Java安全】基础配置篇-01

Java安全-01 文章目录 Java安全-01前置基础小demo开发记录文件上传 课程学习记录初始配置阶段0x00 微服务阶段历史0x01 第一个SpringBoot程序0x02 原理初探0x03 SpringBoot配置文件0x04 给属性赋值的几种方法0x05 JSR303校验0x06 多环境配置0x07 再探自动配置原理 开发阶段0x00…

勒索软件运营商的恶意软件

ARC Labs 发现并分析了一种用于Qilin勒索软件攻击的新工具。 这种恶意软件被称为“Killer Ultra”&#xff0c;旨在禁用流行的威胁检测和响应&#xff08;EDR&#xff09;以及防病毒软件。 ARC Labs 专家进行了深入分析&#xff0c;以了解 Killer Ultra 的全部功能&#xff0…

新品发布|全面适配鸿蒙NEXT安全检测,助力鸿蒙安全生态建设

鸿蒙系统打破了移动操作系统两极格局&#xff0c;实现操作系统核心技术的自主可控、安全可靠&#xff0c;在神州大地上掀起一波科技革新的浪潮&#xff0c;HarmonyOS NEXT成为大型企业必须要布局的应用系统之一&#xff0c;如何检测鸿蒙应用的安全性是企业内部的核心难点之一&a…

C++基础语法:STL之容器(4)--序列容器中的list(一)

前言 "打牢基础,万事不愁" .C的基础语法的学习 引入 序列容器的学习.以<C Prime Plus> 6th Edition(以下称"本书")内容理解 本书中容器内容不多只有几页.最好是有数据结构方面的知识积累,如果没有在学的同时补上. 序列容器回顾:序列容器内元素按严格…