一种使用TCP自定义加密通信的APT样本分

2023-11-14

概述

为了确保通信安全和隐私以及应对各种窃听和中间人攻击,越来越多的网络流量被加密,然而,攻击者也可以通过这种方式来隐藏自己的信息和行踪。近期我们捕获了一个样本,此样本就是使用了加密通信,为了深入研究此样本的加密通信机制,接下来我们来逐层剖析它。

 

  • 准备工作

解密硬编码字符串

将样本记录的硬编码字符串的每一个字节加0x23,可以获得密钥、域名、注册表键

 

  • 通信行为-接收

 

3.1 建立通信

样本采用TCP自定义加密通信,IP为域名(*.ddns.net)解析成功后得到的IP,端口为5832。

 

 

3.2 接收、校验数据

样本使用TCP协议传输数据,TCP载荷部分使用自定义加密协议,并且协议格式中含有身份校验位,只有校验通过才解析后面的内容,不通过则继续接收数据。

 

接收数据包格式一览表

每次对接收的数据的校验方式如上表。第一次连接或者重新连接的数据包的前5个字节的值作为会话ID。

接收的数据包由三部分组成:

  1. 填充数据(长度可变)
  2. 11个字节的校验数据、指令
  3. 后续操作需要的参数、数据

为了防止单次会话中接收的数据因为前5个字节相同而出现规律性,会在校验前先获取有效的传输数据即移除填充数据,找到数据中与同一次会话的标志值相同的数据的位置,这也算是第一次校验。

 

 

接下来,校验有效数据的大小,有效数据的大小记录在第6、7字节,校验通过会根据第10、11字节的值来决定是否解密后续的数据。

3.3 解密数据

解密操作就是由硬编码得到的密钥和数据进行按位异或,返回的数据包也是这种方式加密的。

 

 

  • 执行指令

接收数据的第8、9字节的值是样本的指令码,根据不同的指令执行不同的操作。

指令大致分为三类

  1. 获取基本信息
  2. 操作CMD.EXE
  3. 关闭进程、线程

4.1 获取信息

获取电脑系统信息、磁盘盘符、文件信息、进程信息以及TCP&UDP表的信息,并将获取的信息按照不同的格式拼接,然后将拼接好的数据与密钥做加密操作,并且将加密后的数据拷贝到发送缓冲区中。(具体的发送格式以及指令功能见文章末尾的发送数据包结构一览表)

 

 

4.2 操作CMD.EXE

创建两个匿名管道,获取环境变量ComSpec的值即CMD.EXE的路径,以这个路径创建进程CMD.EXE,并且在创建进程的时候将进程的输入、输出各绑定一个匿名管道,这样就可以通过管道来对CMD.EXE进行远程操作,其中输入CMD的指令就是有效数据中解密后的数据,输出即回显通过管道获取,再拼接相应的格式后加密存放到发送缓冲区中。

 

 

 

 

 

 

4.3 关闭进程、线程

关闭CMD.EXE进程

 

 

  • 通信行为—发送

发送的数据格式如下表,按照自定义格式组成数据包内容后,加密发送:

 

 

 

发送数据包结构一览表

  • 总结

样本使用TCP自定义加密通信,通信成功会首先进行身份校验、然后解析数据中的指令码,根据指令码的不同执行不同的功能,其中有一个高危的功能,通过匿名管道的方式实现远程可交互式CMD,CMD执行的命令和执行结果(回显)在通信流量载荷中加密传输。

利用TCP/UDP等协议承载自定义加密载荷进行攻击的APT组织、各类黑客工具层出不穷。因自定义加密格式不定,变化灵活,因此这种加密流量检测的难度进一步提高。我们一直针对各类使用自定义加密的最新威胁保持密切跟踪,并随时更新方案进行应对。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一种使用TCP自定义加密通信的APT样本分 的相关文章

  • 利用纯净语音和噪声合成不同信噪比的训练数据

    如题 这应该算是我前往语音这座大山的第一步 在此做出记录 一 工作背景 由于需要进行单通道降噪的实验 但是现在只有纯净语音和噪声数据 而在阅读文章的过程中 大家并没有将这个细小的内容写道论文中 的确也不应该 做出来之后确实感觉蛮简单的 所以
  • python爬虫ip被封怎么办?

    用python写的爬虫 设置了headers 包括host和useragent 设置了cookies 访问的结果是 访问过于频繁 请输入验证码 但是用浏览器访问怎么刷新都没有问题 这个时候大致可以判定你被反爬虫锁定 那怎样解决 你可能不太了
  • Python无法识别csv文件

    我的报错 utf 8 codec can t decode byte 0xc9 in position 84 invalid continuation byte 大概意思是utf 8无法识别文件里的一些信息 后面将encoding里面改成下
  • 【Java编程】图书管理系统

    图书管理系统 我们用一个列表存放书籍信息 private static List

随机推荐

  • paxos算法_共识算法(8) —— PBFT 算法详解

    本文翻译自 伊利诺伊大学厄巴纳 香槟分校助理教授 Ling Ren 开设的讨论课 CS598 Consensus Algorithm 参考论文 PBFT 原论文 1999 pmg csail mit edu 前言 上一节中我们介绍了经典的P
  • IDEA项目初次上传到git(超简单)

    IDEA上传到git 1 右键项目 打开 终端 2 在打开的终端输入 git init 3 右键项目 选择 git gt 添加 add 4 右键项目 选择 git gt 提交 commit 输入 init 点击 提交并推送 commit a
  • Ehoney开源欺骗防御系统

    一 特点 支持丰富的蜜罐类型 通用蜜罐 SSH 蜜罐 Http蜜罐 Redis蜜罐 Telnet蜜罐 Mysql蜜罐 RDP 蜜罐 IOT蜜罐 RTSP 蜜罐 工控蜜罐 ModBus 蜜罐 基于云原生技术 基于k3s打造saas平台欺骗防御
  • 创建一们计算机语言_建立自己的计算机语言

    创建一们计算机语言 只需编码 如果您想构建自己的计算机语言 但又不知道该如何开始 或者您认为自己没有时间和技能来做到这一点 那么请看鲍勃 尼斯特罗姆 Bob Nystrom 的 技巧翻译 一书 即从刮 从一开始到成熟的面向对象的东西就是这样
  • JDBC工具类——JdbcUtils

    JdbcUtils 一 JDBC的工具类 二 JdbcUtils工具类的组成 1 类加载时加载驱动 2 连接池 db properties 3 ThreadLocal控制事务 4 dbcp连接池提高资源利用率 三 JDBC工具类的实例演变
  • Ubuntu opencv的搭建

    打开终端 apt install cmake 依次输入以下的命令 sudo apt get install cmake git libgtk2 0 dev pkg config libavcodec dev libavformat dev
  • Linux字符集的查看及修改

    一 查看字符集 字符集在系统中体现形式是一个环境变量 以CentOS6 5为例 其查看当前终端使用字符集的方式可以有以下几种方式 第一种 root Testa www tmp echo LANG zh CN UTF 8 第二种 root T
  • Nvidia显卡硬件编解码能力表 官方链接

    记录用 便于快速查找 从表中得知 1070支持 H265 10bit 硬件编码 似乎不错 官方链接 https developer nvidia com video encode and decode gpu support matrix
  • C++虚函数表地址偏移

    include
  • 架构图以及vue的简介

    架构图 前后端分离总架构图 前端架构设计图 MVVM 架构模式 MVVM 的简介 MVVM 由 Model View ViewModel 三部分构成 Model 层代表数据模型 也可以在Model中定义数据修改和操作的业务逻辑 View 代
  • 公务员和事业单位的差别有多大?

    公务员和事业单位是两种不同的就业形式和组织类型 它们在以下几个方面存在一些差别 1 归属关系 公务员属于政府部门的编制人员 直接依附于政府机构 而事业单位是独立法人实体 独立承担法人责任 不隶属于政府机构 2 支付方式 公务员工资由政府财政
  • 算法训练 P0505

    标题 include
  • 基于GBDT+LR模型的深度学习推荐算法

    GBDT LR算法最早是由Facebook在2014年提出的一个推荐算法 该算法分两部分构成 第一部分是GBDT 另一部分是LR 下面先介绍GBDT算法 然后介绍如何将GBDT和LR算法融合 1 1 GBDT算法 GBDT的全称是 Grad
  • flutter GridView和Wrap

    GridView有2种gridDelegate 记录小嵌套冲突的问题 SingleChildScrollView ListView GrilView嵌套问题解决 子布局添加属性 physics NeverScrollableScrollPh
  • Windows 10 Office文件图标异常处理(Word

    1 我们经常会遇到office重新安装完成后 或者换了版本后 前期做好的excel ppt word文件可以正常打开 但图标显示为白色或者异常 备注 如果不能正常打开 则是office程序没有关联到 只需要选中需打开文件 右键 更改 里面找
  • MODBUS TCP协议实例数据帧详细分析

    MODBUS TCP协议实例数据帧详细分析 1 简介 2 ModbusTCP数据帧 2 1 报文头MBAP 2 2 帧结构PDU 3 ADU详细结构 3 1 0x01 读线圈 3 2 0x02 读离散量输入 3 3 0x03 读保持寄存器
  • 达梦数据库,大小写敏感这个参数怎么设置

    达梦数据库 大小写敏感这个参数怎么设置 1 1 现象描述 达梦在安装完软件后 需要初始化数据库实例 其他大部分数据库 也是同样的操作 但是 达梦在初始化数据库实例前 有几个需要特别注意的参数 这几个参数一定要特别关注 因为如果设置错了 是不
  • pytorch学习之Condition GAN与代码的部分解析

    1 首先 GAN网络是有生成器和判别器 比如可以生成新的图像 而CGAN则是添加了条件 生成有限制的图像 比如生成带微笑的人脸 CGAN的架构如下 2 主要部分的代码 定义判别器 class Discriminator nn Module
  • IMX6学习记录(8)-更换linux配置,加速启动

    上面是我的微信和QQ群 欢迎新朋友的加入 之前启动的时候将近是1分钟 这个时间太浪费了 更新一下内核的配置 让启动速度更快一些 更新之后 启动时间大概10秒左右 一共三个内容 来源是板子附带源码里面的文件 1 配置文件 2 设备树文件 3
  • 一种使用TCP自定义加密通信的APT样本分

    概述 为了确保通信安全和隐私以及应对各种窃听和中间人攻击 越来越多的网络流量被加密 然而 攻击者也可以通过这种方式来隐藏自己的信息和行踪 近期我们捕获了一个样本 此样本就是使用了加密通信 为了深入研究此样本的加密通信机制 接下来我们来逐层剖