您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

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

时间:2022-07-01 10:23:47  来源:  作者:北京观成科技
  1. 概述

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

域名

*.dDNS.NET

威胁类型

木马

样本性质

曾关联海莲花等APT组织

  1. 准备工作

解密硬编码字符串

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

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

 

字符串

作用

*.ddns.net

C2服务器域名

Softwaremicrosoftwindows NTCurrentversion

注册表键

ProductName

注册表键,系统版本

ComSpec

环境变量:CMD.EXE的路径

2q36kj8*6t9w5

密钥:数据加密解密时使用的密钥

  1. 通信行为-接收

3.1 建立通信

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

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

 

3.2 接收、校验数据

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

包类型

1、2、3、4、5字节

6、7字节

8、9字节

10、11字节

后续

连接包

会话ID

/

/

/

/

命令与控制包

会话ID

数据大小

指令码

是否解密标志位

传输的数据

备注

单次会话值相同

做大小校验

不同指令执行不同的操作

为0则不解密数据,大于0解密

需要解密的数据

接收数据包格式一览表

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

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

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

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

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

 

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

3.3 解密数据

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

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

 

  1. 执行指令

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

指令大致分为三类

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

4.1 获取信息

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

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

 

4.2 操作CMD.EXE

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

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

 


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

 


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

 

4.3 关闭进程、线程

关闭CMD.EXE进程

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

 

  1. 通信行为—发送

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

指令码

操作

发包格式1、2、3、4、5字节

发包格式6、7字节

数据

备注

3017

结束指定线程,断开连接,然后重新启动网络连接

/

/

/

不发包

3000

获取电脑基本信息

会话ID

3000

电脑名称|系统版本|用户名|主模块全路径|AN|.10*

单个数据包

3001

获取磁盘盘符信息

会话ID

3001

C:\D:\(电脑所有盘符信息)|

单个数据包

3002

遍历文件信息

会话ID

3002

<>文件名:?文件大小:?文件时间字符串:?

单个数据包

数据信息小于9084字节

 

遍历文件信息

会话ID

3003

xxxx(多次发包的个数INT)xxxx(多个包的实际大小)

单个数据包

数据信息大于9084字节

发送数据总大小

3004

文件信息

会话ID

3004

9084字节数据(或者剩下不足9084字节的数据)

多个数据包

3005

创建文件

会话ID

3010

q7gf

创建文件失败

 

创建文件

会话ID

3006

1

创建文件成功

3006

写文件

会话ID

3006

x(文件操作次数)

单个数据包

3007

文件大小

会话ID

3008

xxxx(假设9084字节为页,这里记录的页数INT)xxxx(文件的实际大小)

单个数据包

3009

文件数据

会话ID

3009

9084字节数据(或者剩下不足9084字节的数据)

多个数据包

3012

创建远程可交互式CMD匿名管道传输数据

会话ID

3013

回显数据

单个数据包

数据信息小于9084字节

 

匿名管道传输数据

会话ID

3014

xxxx(多次发包的个数INT)xxxx(多个包的实际大小)

单个数据包

数据信息大于9084字节

发送数据总大小

3013

给CMD传输命令

会话ID

3013

回显数据

单个数据包

数据信息小于9084字节

 

给CMD传输命令

会话ID

3014

xxxx(多次发包的个数INT)xxxx(多个包的实际大小)

单个数据包

数据信息大于9084字节

发送数据总大小

3015

发送回显数据

会话ID

3015

9084字节数据(或者剩下不足9084字节的数据)

多个数据包

3016

关闭CMD进程

/

/

/

不发包

3019

遍历TCP、UDP终结点表

会话ID

3019

TCP信息UDP信息

单个数据包

数据信息小于9084字节

 

遍历TCP、UDP终结点表

会话ID

3020

xxxx(多次发包的个数INT)xxxx(多个包的实际大小)

单个数据包

数据信息大于9084字节

发送数据总大小

3021

负责TCPUDP表信息传输

会话ID

3021

9084字节数据(或者剩下不足9084字节的数据)

多个数据包

3022

关闭指定进程

会话ID

3022

t

关闭进程成功

 

关闭指定进程

会话ID

3022

#%r

关闭进程失败

3023

遍历进程信息

会话ID

3023

(进程ID)8tr$(进程名字)8tr$(AD)t#21

单个数据包

数据信息小于9084字节

 

遍历进程信息

会话ID

3024

xxxx(多次发包的个数INT)xxxx(多个包的实际大小)

单个数据包

数据信息大于9084字节

发送数据总大小

3025

进程信息传输

会话ID

3025

9084字节数据(或者剩下不足9084字节的数据)

多个数据包

/

每60秒

xxxx(与接收数据包前4字节相同)

/

/

每当间隔大于60秒判断一次,如果发送的数据不是多包中的数据则发送一个单独的包

发送数据包结构一览表

  1. 总结

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

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



Tags:TCP   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
从零开始了解网络协议:TCP/IP详解
从零开始了解网络协议:TCP/IP详解 在当今数字化的时代,网络协议已经成为我们生活中不可或缺的一部分。作为互联网的基础,网络协议规定了数据如何在不同的网络设备之间传输。TC...【详细内容】
2024-02-01  Search: TCP  点击:(62)  评论:(0)  加入收藏
从零开始学习Python网络编程:探索TCP协议与实例演示!
Python 是一种高级的编程语言,拥有广泛的网络编程库。这些库允许 Python 开发者能够使用 TCP 和其他网络协议进行通信。在本文中,我们将探讨 TCP 协议,并通过一个简单的例子来...【详细内容】
2023-11-23  Search: TCP  点击:(220)  评论:(0)  加入收藏
TCP分段技术:克服IP和MAC层内存限制的关键
IP和MAC层在发送数据包时都面临内存受限的问题,这就导致它们对消息的长度有所限制。为了克服这个限制,TCP在将数据传递给IP层之前,需要将可变长度的字节打包成多个段,确保每个段...【详细内容】
2023-11-22  Search: TCP  点击:(245)  评论:(0)  加入收藏
TCP发送窗口、接收窗口以及其工作原理
可用窗口的计算是理解TCP滑动窗口的关键,要了解可用窗口的计算,我们需要理解三个指针&mdash;&mdash;SND.UNA、SND.NXT和RCV.NXT。上面的图表是从发送方的角度拍摄的快照。我们...【详细内容】
2023-11-13  Search: TCP  点击:(357)  评论:(0)  加入收藏
Wireshark抓包分析TCP协议:三次握手和四次挥手
前言 面试中我们经常会被问到TCP协议的三次握手和四次挥手的过程,为什么总喜欢问这个问题呢? 其实我们平时使用的很多协议都是应用层协议,比如HTTP协议,https协议,DNS协议,FTP协议...【详细内容】
2023-11-01  Search: TCP  点击:(242)  评论:(0)  加入收藏
一台服务器​最大并发 TCP 连接数多少
以一道运维面试题开局:你接触过的单机最大并发数是多少?操作系统最大文件打开数是65535,服务器又是怎么做到支持10w并发的?你认为当前正常配置的服务器物理机最大并发数可以到多...【详细内容】
2023-10-04  Search: TCP  点击:(71)  评论:(0)  加入收藏
C# 如何判断某个 TCP 端口是否被占用?
在C#中使用TcpClient或者其他通用的方式建立的Socket,该如何判断这个端口是否被占用?比如下面的代码:TcpClient tc = new TcpClient(ip,port);在C#中,可以使用 System.Net.Netwo...【详细内容】
2023-09-26  Search: TCP  点击:(62)  评论:(0)  加入收藏
网络层协议详解:理解TCP/IP、HTTP、FTP等协议的功能与工作原理
在计算机网络中,网络层是计算机通讯的重要组成部分,它负责处理数据包的传输和路由,是实现网络通信的必不可少的组件之一。网络层引入了三个协议:IP协议、ARP协议和路由协议。IP...【详细内容】
2023-09-06  Search: TCP  点击:(253)  评论:(0)  加入收藏
TCP与UDP协议:网络通信中的两大重要角色
引言在这个像点点滴滴组成的虚拟宇宙中,网络通信就像是我们的超级高速公路系统,让信息在世界间飞速穿梭。想象一下,如果网络是一条繁忙的交通道路,那么协议就是交通信号灯,确保数...【详细内容】
2023-09-01  Search: TCP  点击:(231)  评论:(0)  加入收藏
TCP、UDP是如何流量、拥塞控制的?今天一口气讲透!
一、TCP TCP首部 流量控制 拥塞控制 三次握手,四次挥手 tcp 怎样保证数据正确性?流量控制是为了让接收方能来得及接收,而拥塞控制是为了降低整个网络的拥塞程度1、TCP首部源端...【详细内容】
2023-07-18  Search: TCP  点击:(254)  评论:(0)  加入收藏
▌简易百科推荐
学生偷看“不良网站”,手机上3个痕迹无法清除,网友:咋不早说
众所周知,中国的常规教育中,总是“谈性色变”,但在这个信息爆炸的互联网时代,即便是一些年纪很小的孩子,也能轻易接触到一些所谓的不良网站,因此这一方面的教育缺失,其实是很可怕的...【详细内容】
2024-03-28    叶姐生活指南  Tags:不良网站   点击:(18)  评论:(0)  加入收藏
什么是网络中的路由器?核心功能解释
路由器是互联网连接的核心元素,是一种允许多个设备连接到互联网,并促进将数据包转发到各自的目标地址的设备。使用动态路由技术,路由器检查数据并在各种可用路径中选择最有效的...【详细内容】
2024-03-07    千家网  Tags:路由器   点击:(34)  评论:(0)  加入收藏
过年该不该升级Wi-Fi 7路由?看完就知道
打开电商网站不难发现,从2023年第三季度到现在,Wi-Fi 7路由器新品越来越多。而且价格不再是高高在上,已经基本和Wi-Fi 6路由价格差不多了。看到这些Wi-Fi 7新品路由,不少朋友就...【详细内容】
2024-02-27    中关村在线  Tags:Wi-Fi   点击:(44)  评论:(0)  加入收藏
聊聊 Kubernetes 网络模型综合指南
这篇详细的博文探讨了 Kubernetes 网络的复杂性,提供了关于如何在容器化环境中确保高效和安全通信的见解。译自Navigating the Network: A Comprehensive Guide to Kubernete...【详细内容】
2024-02-19  云云众生s  微信公众号  Tags:Kubernetes   点击:(42)  评论:(0)  加入收藏
SSL协议是什么?关于SSL和TLS的常见问题解答
SSL(安全套接字层)及其后继者TLS(传输层安全)是用于在联网计算机之间建立经过身份验证和加密的链接的协议。尽管SSL协议在 1999年已经随着TLS 1.0的发布而被弃用,但我们仍将这些...【详细内容】
2024-02-06  IDC点评网    Tags:SSL协议   点击:(73)  评论:(0)  加入收藏
从零开始了解网络协议:TCP/IP详解
从零开始了解网络协议:TCP/IP详解 在当今数字化的时代,网络协议已经成为我们生活中不可或缺的一部分。作为互联网的基础,网络协议规定了数据如何在不同的网络设备之间传输。TC...【详细内容】
2024-02-01    简易百科  Tags:TCP/IP   点击:(62)  评论:(0)  加入收藏
BGP路由属性:互联网路由的灵活控制器
在互联网的庞大网络中,边界网关协议(BGP)是确保不同自治系统(AS)间路由信息有效交换的关键协议。然而,BGP的功能远不止于此。其核心组成部分,即BGP路由属性,赋予了BGP强大的灵活性,使...【详细内容】
2024-01-26  诺诺爱生活    Tags:互联网路由   点击:(44)  评论:(0)  加入收藏
简易百科之什么是网络延迟?
简易百科之什么是网络延迟?随着互联网的普及和发展,网络已经成为我们生活中不可或缺的一部分。然而,我们在使用网络时可能会遇到一种情况,那就是网络延迟。那么,什么是网络延迟呢...【详细内容】
2024-01-24    简易百科  Tags:网络延迟   点击:(162)  评论:(0)  加入收藏
网络延迟与网络速度有什么区别?分享具体的答案
通常,许多人抱怨网速测试。速度还是不错的,但是他们玩游戏的时候怎么会卡住,还是断开连接等等问题,这一系列问题始终困扰着大家。那么,网络延迟与网络速度有什么区别呢?请不要担心...【详细内容】
2024-01-24  萌新小郭    Tags:网络延迟   点击:(53)  评论:(0)  加入收藏
揭秘IP地址的网络威胁与攻击类型
在当今数字化时代,网络攻击已经成为网络安全的一大挑战。IP地址,作为互联网通信的基础,也成为网络威胁和攻击的焦点之一。本文将深入探讨不同类型的网络威胁和攻击,以及如何防范...【详细内容】
2024-01-22  IP数据云    Tags:IP地址   点击:(88)  评论:(0)  加入收藏
站内最新
站内热门
站内头条