观成科技:​加密C2框架Platypus流量分析

一、工具介绍

Platypus 是一款支持多会话的交互式反向 Shell 管理器。在实际的渗透测试中,为了解决 Netcat/Socat 等工具在文件传输、多会话管理方面的不足,该工具在多会话管理的基础上增加了在渗透测试中能更好发挥作用的功能(如:交互式 Shell、文件操作、隧道等),并且使用 TLS/SSL 协议进行通信,它可以利用证书和密钥对通信进行加密,确保数据传输的隐蔽性。

二、工具原理分析

Platypus工具包括两种类型的监听器:TCP监听器和Termite监听器。TCP监听器使用nc shell,默认监听端口为13338,而Termite监听器默认监听端口为13339,并通过HTTP协议下载并执行木马,后续木马使用TLS协议用于加密回连。相比TCP监听器,Termite监听器通过TLS协议加密通信,具有更高的安全性和隐蔽性。

终端通过HTTP协议与Termite监听器建立通信连接,并将木马文件下载到路径/termite/[ip:port]下。在木马成功上线后,与Platypus服务器上的Termite监听器建立TLS连接,按固定格式依次执行一系列命令,收集终端的系统信息、用户信息、Python版本、网络接口等数据。信息收集完毕也意味着木马上线完成,攻击者如需执行进一步的操作,系统将转为交互式shell模式进行命令执行。流程见下图。

图 1工具原理图

在木马上线时,EstablishPTY 方法用于建立交互式 Shell,如图 2 所示。该方法通过 Python 启动交互式 Shell,并禁用历史命令记录,从而降低取证风险。确保攻击者能够在受害者系统上顺畅地执行命令,同时提升攻击的隐蔽性和可用性。

图 2 EstablishPTY方法

在使用 TCP 监听器时,可以观察到每次命令执行时,Platypus 服务器会按照固定格式发送命令:echo + 8 字节随机字符串(tokenA) + ; + 默认命令 + ; + echo + 8 字节随机字符串(tokenB)。终端接收到 Platypus 服务器发送的命令后,会提取 tokenA 和 tokenB,然后执行命令,并将命令执行结果以固定格式返回:tokenA + 命令执行结果 + tokenB。命令执行的回显可以通过唯一标识符(tokenA 和 tokenB)进行区分。

图 3 命令执行结果

通过观察TCP模式的通信数据可以辅助分析TLS模式下的行为特征:TCP明文流量中交互式shell发送的命令是逐字节发送的,且每次发送单字节内容后,服务端会返回同样的内容,依次交替直到完成一个命令。

图 4 明文流量分析

使用TLS协议加密后,流量中的明文命令和结果被转换为加密数据。虽然需要解密才能还原内容,但这种特殊的命令执行方式在加密后的数据包中也能发现对应的长度变化和模式。从下图可以看到请求和响应的数据包长度为68字节时,对应TCP模式下Platypus服务器逐字节下发命令的过程,后续267和355字节的返回包对应命令执行并返回相应结果。

图 5 加密流量分析

三、工具检测

我们通过行为分析的检测方法,实现了对Platypus C2工具TLS通信的有效检测。

图6:Platypus检出结果

四、总结

利用Platypus工具的木马进行C&C通信,攻击者可以利用TLS将通信内容加密从而规避传统明文流量设备的检测,但是基于人工智能、流行为特征检测的加密威胁智能检测系统能够检测此类加密通信行为。如今,越来越多的攻击者采用加密通信的C2工具,以提升攻击的隐蔽性。观成科技安全研究团队持续追踪这些C2工具的最新动态,积极研究和更新针对加密流量的检测技术。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 C# 中,is null 和 == null ‌不完全等价‌

最近遇到了一个看似奇怪的问题,判断一个对象是否为null,我使用了null来判断,结果他是null但是仍然进入了判断。 经过讨论和验证,发现使用is null 可以解决问题,于是查阅了资料。 在 C# 中,is null 和 nul…

go语言zero框架拉取内部平台开发的sdk报错的修复与实践

在开发过程中,我们可能会遇到由于认证问题无法拉取私有 SDK 的情况。这种情况常发生在使用 Go 语言以及 Zero 框架时,尤其是在连接到私有平台,如阿里云 Codeup 上托管的 Go SDK。如果你遇到这种错误,通常是因为 Go 没有适当的认证…

VBA+FreePic2Pdf 找出没有放入PDF组合的单个PDF工艺文件

设计部门针对某个项目做了一个工艺汇总报告,原先只要几十个工艺文件,组合成一个PDF,但后来要求要多放点PDF进去,但工艺文件都混在一起又不知道哪些是重复的,找上我让我帮忙处理一下,我开始建议让她重新再组…

Webservice如何调用

webservice调用方式: (1)http方式调用 请求头增加Content-type:text/xml 或application/soapxml SOAPAction:方法名 请求body以xml字符串传递,xml格式定义 返回以xml字符串返回,xml某个字段是一个json字符串。 入…

2025-03-10 吴恩达机器学习1——机器学习概述

文章目录 1 监督学习1.1 回归1.2 分类 2 无监督学习2.1 聚类2.2 异常检测2.3 降维 3 使用 Jupyter Notebook ​ 1959 年,Arthur Samuel 将机器学习定义如下: ​ Field of study that gives computers the ability to learn without being explicitly pro…

Python 进程与线程-分布式进程

目录 分布式进程 小结 分布式进程 在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。 Python的multiprocessing模块不但支…

使用 Excel 实现绩效看板的自动化

引言 在日常工作中,团队的绩效监控和管理是确保项目顺利进行的重要环节。然而,面临着以下问题: ​数据分散:系统中的数据难以汇总,缺乏一个宏观的团队执行情况视图。​看板缺失:系统本身可能无法提供合适…

Unity中WolrdSpace下的UI展示在上层

一、问题描述 Unity 中 Canvas使用World Space布局的UI,想让它不被3d物体遮挡,始终显示在上层。 二、解决方案 使用shader解决 在 UI 的材质中禁用深度测试(ZTest),强制 UI 始终渲染在最上层。 Shader "Custo…

uni-app学习笔记——自定义模板

一、流程 1.这是一个硬性的流程,只要按照如此程序化就可以实现 二、步骤 1.第一步 2.第二步 3.第三步 4.每一次新建页面,都如第二步一样;可以选择自定义的模版(vue3Setup——这是我自己的模版),第二步的…

网络安全防护总体架构 网络安全防护工作机制

1 实践内容 1.1 安全防范 为了保障"信息安全金三角"的CIA属性、即机密性、完整性、可用性,信息安全领域提出了一系列安全模型。其中动态可适应网络安全模型基于闭环控制理论,典型的有PDR和P^2DR模型。 1.1.1 PDR模型 信息系统的防御机制能…

tomato靶场通关攻略

1.打开tomato靶机和kali虚拟机 2.运用kali扫描靶机ip 3.浏览器访问靶机ip 4.kali dirb扫描敏感文件 5.依次查看这几个文件,发现antibot_image下有文件info.php,发现一个被注释的get型文件包含漏洞,参数为image 6.查看日志文件 http://192.…

玩转云服务器——阿里云操作系统控制台体验测评

在云服务器日益普及的背景下,运维人员对操作系统管理工具的要求不断提高。我们需要一款既能直观展示系统状态,又能智能诊断问题,提供专业指导的控制台。阿里云操作系统管理平台正是基于API、SDK、CLI等多种管理方式,致力于提升操作…

Spring boot3-WebClient远程调用非阻塞、响应式HTTP客户端

来吧&#xff0c;会用就行具体理论不讨论 1、首先pom.xml引入webflux依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId> </dependency> 别问为什么因为是响应式....…

Qt/C++音视频开发82-系统音量值获取和设置/音量大小/静音

一、前言 在音视频开发中&#xff0c;音量的控制分两块&#xff0c;一个是控制播放器本身的音量&#xff0c;绝大部分场景都是需要控制这个&#xff0c;这个不会影响系统音量的设置。还有一种场景是需要控制系统的音量&#xff0c;因为播放器本身的音量是在系统音量的基础上控…

十三、OSG学习笔记-osgDB文件读写

上一章节&#xff1a; 十二、OSG学习笔记-Control-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/146082287?spm1001.2014.3001.5501 一、文件读取原理 ReadNodeFile,读取流程&#xff1a; 二、实现一个简单的读取器 仿造ReaderWriterOSG.CPP原码&#x…

05.基于 TCP 的远程计算器:从协议设计到高并发实现

&#x1f4d6; 目录 &#x1f4cc; 前言&#x1f50d; 需求分析 &#x1f914; 我们需要解决哪些问题&#xff1f; &#x1f3af; 方案设计 &#x1f4a1; 服务器架构 &#x1f680; 什么是协议&#xff1f;为什么要设计协议&#xff1f; &#x1f4cc; 结构化数据的传输问题 …

设计模式学习笔记——命令模式

2025年3月13日&#xff0c;周四下午 相同的保存逻辑在各个组件中重复出现。 且需要修改保存逻辑时&#xff0c;各个组件的保存逻辑都需要进行相应修改。 使用了命令模式把保存逻辑从三个组件中独立出来后&#xff0c;减少了代码冗余。 可以通过“保存命令”来使用保存逻辑&am…

CNN-BiLSTM、BiLSTM、CNN多变量时间序列光伏功率预测Matlab

CNN-BiLSTM、BiLSTM、CNN多变量时间序列光伏功率预测Matlab 目录 CNN-BiLSTM、BiLSTM、CNN多变量时间序列光伏功率预测Matlab预测效果基本介绍程序设计参考资料 预测效果 基本介绍 CNN-BiLSTM、BiLSTM、CNN三模型多变量时序光伏功率预测 (Matlab2020b 多输入单输出) 1.程序已…

机器学习算法——聚类任务

目录 1、K-Means 2、K-medoids 3、K-medians 4、层次聚类 5、DBSCAN 6、OPTICS 7、谱聚类 Spectral Clustering 8、高斯混合模型 GMM 9、模糊C-means FCM 10、Mean Shift 11、BIRCH 12、Affinity Propagation 13、对比总结 14、完整代码 1、K-Means 目标:将数据点分组到K个簇中…

【亲测有用】数据集成平台能力演示(支持国产数据库DaMeng与KingBase)

&#x1f525;&#x1f525; AllData大数据产品是可定义数据中台&#xff0c;以数据平台为底座&#xff0c;以数据中台为桥梁&#xff0c;以机器学习平台为中层框架&#xff0c;以大模型应用为上游产品&#xff0c;提供全链路数字化解决方案。 ✨杭州奥零数据科技官网&#xf…