加密C2框架Mythic流量分析
2023-9-26 16:26:57 Author: www.4hou.com(查看原文) 阅读量:25 收藏

导语:Mythic工具不仅提供了强大的渗透测试和红队操作功能,而且其高度模块化的架构允许用户自定义Payload、任务和插件,赋予了Mythic出色的灵活性和可扩展性。

一、工具介绍

Mythic是一个多人、跨平台的红队行动框架,使用了python3、docker、docker-compose和Web浏览器UI技术构建。它支持多种通信协议,包括HTTP、TLS等,并且在Beacon与Mythic服务器之间的通信通常采用加密来保障安全性。

Mythic的核心原理在于模拟和模仿攻击者在渗透测试和红队操作中的行为。它提供了一个类似于C2(命令与控制)的基础设施,允许攻击者远程控制目标系统、执行命令、上传和下载文件等。通过安装不同的Payload框架,可以生成针对不同系统和协议的Beacon。此工具使用AES加密技术保护数据的机密性。

二、工具原理分析

在Web页面查看已经安装的payload和c2profile

1.png 

生成Beacon后,查看配置信息包含http请求头,加密密钥等

2.png 

Mythic提供了一个类似于C2的基础设施,使用户能够远程控制目标系统。这基于客户端-服务器模型,其中服务器是Mythic服务器,而客户端则是恶意的Beacon,它被安装在目标系统上。一旦Beacon上线,它会加密数据并将其发送给服务器。服务器接收并解密数据,然后启动通信。

3.png 

图1:工具原理图

木马上线成功后,客户端将触发一个上线请求,其URL和HTTP头信息可以在生成Beacon时进行配置。其中请求体和返回体都会经过AES加密,并使用Base64编码进行传输。值得注意的是,请求体和返回体的加密数据都包含一个特定长度的UUID。这个UUID的存在可以用来有效地检测这个工具的使用。

4.png 

图2:上线包流量

请求体分析:

对请求体使用base64解码内容

5.png 

图3:请求体base64解码

请求体报文头部存在固定长度的UUID与返回体一致

使用Web管理端的密钥对数据包进行解密:

b'{"action":"checkin","ip":"fe80::a3fc:4898:79ba:547a%10","os":"Microsoft Windows NT 10.0.19044.0","user":"stean","host":"DESKTOP-NT88QF8","pid":"3644","uuid":"77e81322-4d5f-47e0-a6b6-956d4b6c9ea9","architecture":"x64","domain":"DESKTOP-NT88QF8","integrity_level":2,"external_ip":"","encryption_key":"","decryption_key":""}\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f'}

6.png 

图4:上线包实现

返回体分析:

对返回体使用base64解码内容

7.png 

图5:返回体base64解码

报文头部存在固定长度UUID与请求体一致

使用Web管理端的密钥对数据包进行解密:

b'{"status":"success","encryption_key":"","decryption_key":"","id":"409a0bb8-1f80-45bb-b86a-4680224b5401","action":"checkin"}\x05\x05\x05\x05\x05'}

8.png 

图6:数据校验实现

三、工具检测

根据分析结果,我们通过利用主动探测、特征匹配、行为分析等多种检测方法,实现了对Mythic工具的有效检测。

9.png 

图7:mythic检出结果

四、总结

Mythic工具不仅提供了强大的渗透测试和红队操作功能,而且其高度模块化的架构允许用户自定义Payload、任务和插件,赋予了Mythic出色的灵活性和可扩展性。并且,通过加密技术的应用,Mythic能够很好地规避流量检测设备,显著减少了被发现的风险。如今,越来越多的攻击者采用加密通信的C2工具,以提升攻击的隐蔽性。观成科技安全研究团队持续追踪这些C2工具的最新动态,积极研究和更新针对加密流量的检测技术。

如若转载,请注明原文地址

  • 分享至

取消 嘶吼

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟


文章来源: https://www.4hou.com/posts/PKAw
如有侵权请联系:admin#unsafe.sh