一种使用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
<>文件名:?文件大小:?文件时间字符串:?
单个数据包
【一种使用TCP自定义加密通信的APT样本分析】数据信息小于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执行的命令和执行结果(回显)在通信流量载荷中加密传输 。


推荐阅读