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

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

  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工具的最新动态,并积极进行研究和更新,以提高对加密流量的检测

相关文章:

  • Rustdesk打开Win10 下客户端下面服务不会自启,显示服务未运行
  • ros2+gazebo(ign)激光雷达+摄像头模拟
  • R语言【base】——tempfile():返回一个字符串向量,这些字符串可以用作临时文件的名称
  • Three.js 纹理贴图的实现
  • 医院患者满意度调查方案
  • Servlet-体系结构
  • 开关电源PFC电路原理详解及matlab仿真
  • 聊聊 Java 集合框架中的 ArrayList
  • 全新加密叙事,以Solmash为代表的 LaunchPad 平台如何为用户赋能?
  • uniapp 打包成 apk(原生APP-云打包)免费
  • 软件测试|Python数据可视化神器——pyecharts教程(九)
  • 确保CentOS系统中的静态HTTP服务器的数据安全
  • 深入了解Java多线程编程:JVM内存模型与同步机制
  • Linux学习记录——사십이 高级IO(3)--- Poll型服务器
  • allegro PCB设计心得笔记(二) PCB板框设计心得
  • 「面试题」如何实现一个圣杯布局?
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Bytom交易说明(账户管理模式)
  • create-react-app做的留言板
  • DataBase in Android
  • ECS应用管理最佳实践
  • ES学习笔记(12)--Symbol
  • Iterator 和 for...of 循环
  • Javascript基础之Array数组API
  • java取消线程实例
  • rc-form之最单纯情况
  • SpiderData 2019年2月25日 DApp数据排行榜
  • SQLServer之索引简介
  • Vue小说阅读器(仿追书神器)
  • Wamp集成环境 添加PHP的新版本
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 订阅Forge Viewer所有的事件
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 工程优化暨babel升级小记
  • 技术:超级实用的电脑小技巧
  • 警报:线上事故之CountDownLatch的威力
  • 跨域
  • 类orAPI - 收藏集 - 掘金
  • 前言-如何学习区块链
  • 入门级的git使用指北
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 走向全栈之MongoDB的使用
  • 你对linux中grep命令知道多少?
  • linux 淘宝开源监控工具tsar
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #{}和${}的区别是什么 -- java面试
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)【Hibernate总结系列】使用举例
  • (转)ABI是什么
  • (转)VC++中ondraw在什么时候调用的