观成科技-加密C2框架EvilOSX流量分析

news/2024/7/5 2:59:56

  1. 工具简介

EvilOSX是一款开源的,由python编写专门为macOS系统设计的C2工具,该工具可以利用自身释放的木马来实现一系列集成功能,如键盘记录、文件捕获、浏览器历史记录爬取、截屏等。EvilOSX主要使用HTTP协议进行通信,通信内容为特定格式的数据经由base64加密后传输。为了规避检测,EvilOSX的通信响应信息均为404 Not Found页面。

  1. 衍生木马分析

在/data/builds目录下会生成指定脚本类型的文件,其中主要部分是一段base64编码形式的payload。主要分析生成的python加载器--Launcher-238346.py

a、加载器中携带了一段base64加密的python脚本(Connectivity mode.txt),脚本通过python执行这段加密数据后,又通过rm -rf  __file__来清除当前目录下的所有py脚本

b、Connectivity mode.txt中定义了请求头中User-Agent和cookie的形式,其中cookie由两段关键数据组成:由受控端计算机用户名和mac地址组成的16进制数作为session;而后通过“-”连接的一段base64数据,解密后是一些服务端和受控端的信息。并且该脚本还定义了当响应码为404时,使用base64解密响应体中DEBUG: base64 =DEBUG--> 其中的base64数据。

c、将受控端与服务端连接时的流量捕获,解密其中的DEBUG数据,可以获取又一段python脚本(CONNECT.py),这段脚本会在macOS上注册一个Launch Agent,并经过base64编码写入本地。然后这段payload会在系统启动时被Launch Agent执行。其中payload的路径默认为当前用户主目录,默认命名为arLPrVu,Launch Agent文件默认文件名为” com.apple.teuAwWo

d、arLPrVu的内容为一段openssl aes-256-cbc加密的密文,密钥就是之前session中携带的16进制字符串,手动运行后,木马会正式与服务端进行联通。

  1. 流量分析

EvilOSX从植入程序到数据交互可以通过如下流程图来描述:

以下为过程流量分析和解读:

连接时

客户端向服务端发送get请求后,

请求头cookie与原始木马中base64密文解密后的形式一致。

服务端返回404并在http_server_body部分携带base64数据。

数据的开头结尾是以DEBUG: base64形式 =DEBUG--> 存在

而404中携带的数据,解码后含义是通过get_uid函数获取当前计算机用户名和唯一标识符拼接后转化为16进制数据,用于下一段中使用openssl命令对一段加密的代码进行解密,并通过exec()函数执行。

命令执行时

当靶机上的原始木马文件执行后会在同级目录下留下一个arLPrVu命名的py脚本文件。回连服务器还需要在手动执行它

测试全部module和部分常见shell命令(ifconfig、ls -l)

会发现存在明显特征,以执行CVE-2020-3950模块时为例

在POST请求体中,username后接着base64数据,

解密后,就是使用的模块名,经过测试除了shell命令执行和模块启用失败时,均可在流量中发现这一特征。并且响应码一定是404

这一段在木马中也有体现

  1. 产品检测

观成瞰云(ENS)-加密威胁智能检测系统能够对EvilOSX工具产生的HTTP流量进行检测。

  1. 总结

       在利用EvilOSX-C2工具的过程中,会优先上传其释放的木马文件,该文件具有特殊格式,之后通信过程中会利用404页面隐藏真实响应,但是基于人工智能、流行为特征和TLS限定域指纹检测的加密威胁智能检测系统能够检测此类加密通信行为。如今越来越多的攻击者利用具体加密通信功能C2工具,以增强攻击的隐蔽性。观成科技安全研究团队一直在持续追踪这些C2工具的最新动态,并积极进行研究和更新,以提高对加密流量的检测


http://lihuaxi.xjx100.cn/news/1952748.html

相关文章

GPM合并资料整理-GEM部分

一、性能数据上报项 1. CPU模块 上报键值说明采集平台cpu当前进程cpu使用率平均值Android & iOStotcpu系统cpu总使用率平均值Android & iOScpu_temp_maxcpu最高温度Androidcpu_temp_avgcpu温度平均值Androidgpu_temp_avggpu温度平均值Androidgpu_temp_maxgpu最高温度…

Fluids —— Minimal fluid setups

目录 Waterline FLIP Boundary Boundary flow 创建流体设置的三个基本方法; Waterline 由FLIP Container SOP与FLIP Solver SOP组成的基本network,可不需要任何外部源; FLIP Container SOP,能使用不同的容器形状;F…

RIP复习实验

条件: R1为外网,R8和r9的环回分别是172.16.1.0/24和172.16.2.0/24 中间使用78.1.1.0/24 剩下的路由器2-6使用172.16.0.0/16 要求: R1为运营商 r1远程登录r2实际登录r7 R2访问r7要求走r5去访问 全网可达 实现流程: 首先配置好各接口ip address 然后r2-r7使用rip…

PowerBI:如何在以SharePoint文件做为数据源?

问题描述: 有朋友最近询问,在PowerBI中如何以SharePoint中的文件做为数据源,进行报告的设计开发? 今天抽一些时间,为大家做一个样例,供大家参考。 解决方案: 找到将要使用的SharePoint中文件…

Linux-文件系统管理实验2

1、将bin目录下的所有文件列表放到bin.txt文档中,并将一共有多少个命令的结果信息保存到该文件的最后一行。统计出文件中以b开头的所有命令有多少个,并将这些命令保存到b.txt文档中。将文档中以p结尾的所有命令保存到p.txt文件中,并统计有多少…

找出字符串中第一个匹配项的下标(Leetcode28)

例题: 分析: 题目的意思就是: 先给出一个字符串pattern,要拿着pattern字符串和原始字符串(origin)比对,若在origin中找到了pattern字符串,则返回pattern字符串在原始字符串origin中的…

C++-拷贝构造函数

深拷贝与浅拷贝 浅拷贝&#xff1a;类中的缺省拷贝构造函数&#xff0c;对指针形式的成员变量按字节复制&#xff0c;而不会复制指针所指向的内容&#xff0c;这种拷贝方式称为浅拷贝。 #include <iostream> using namespace std;class Integer{ private:int m_i;publi…

走进shell

Linux系统启动时&#xff0c;会自动创建多个虚拟控制台。虚拟控制台是运行在Linux系统内存中的终端会话。 打开Linux控制台Terminal使用tty命令查看当前使用的虚拟控制台。 注&#xff1a;tty 表示电传打字机(teletypewriter) $ tty /dev/pts/0表示当前使用的是/dev/pts/0 虚拟…