本文探索揭示了针对macOS系统的恶意工具EvilOSX的内部机制和流量特征。通过专业分析其加密通信和木马活动的各个过程,说明了EvilOSX这类安全威胁的运行机制,旨在帮助组织的网络安全专业人员充分识别和防范这类高级威胁。
01工具简介
EvilOSX是一款开源的,由python编写专门为macOS系统设计的C2工具,该工具可以利用自身释放的木马来实现一系列集成功能,如键盘记录、文件捕获、浏览器历史记录爬取、截屏等。EvilOSX主要使用HTTP协议进行通信,通信内容为特定格式的数据经由base64加密后传输。为了规避检测,EvilOSX的通信响应信息均为404 Not Found页面。
02衍生木马分析
在/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进制字符串,手动运行后,木马会正式与服务端进行联通。
图片
03流量分析
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。
这一段在木马中也有体现
图片
观成瞰云(ENS)-加密威胁智能检测系统能够对EvilOSX工具产生的HTTP流量进行检测。
图片
04 总结
在利用EvilOSX-C2工具的过程中,会优先上传其释放的木马文件,该文件具有特殊格式,之后通信过程中会利用404页面隐藏真实响应,但是基于人工智能、流行为特征和TLS限定域指纹检测的加密威胁智能检测系统能够检测此类加密通信行为。如今越来越多的攻击者利用具体加密通信功能C2工具,以增强攻击的隐蔽性。观成科技安全研究团队一直在持续追踪这些C2工具的最新动态,并积极进行研究和更新,以提高对加密流量的检测技术。