首页 > 其他分享 >【Cobalt Strike】 Beacon 通讯协议分析

【Cobalt Strike】 Beacon 通讯协议分析

时间:2024-11-04 20:59:40浏览次数:2  
标签:CMD Cobalt CALLBACK Beacon 65 4byte Strike TYPE 97

原创 cxcc backdoor

元数据上报

数据包格式


+-----------------+-----------------+-----------------+-----------------+-------------------+-----------------+
|  固定开头 (4B)  |   数据长度 (4B) | AES密钥 (16B)  |  编码1 (2B)     |  编码2 (2B)       |  会话ID (4B)    |
+-----------------+-----------------+-----------------+-----------------+-------------------+-----------------+
|   magic number   |   数据实际长度  |   AES密钥部分   |  编码类型 1     |  编码类型 2       |  beacon session ID|
+-----------------+-----------------+-----------------+-----------------+-------------------+-----------------+
|   PID (4B)      |   SSH端口 (2B)  |  系统和程序标识 |  Windows NT版本 |  Windows Build号   |  未知作用 (4B)  |
+-----------------+-----------------+-----------------+-----------------+-------------------+-----------------+
|  ptr_gmh (4B)   |  ptr_gpa (4B)   | 内网IP地址 (4B) | 计算机信息      |                   |                 |
+-----------------+-----------------+-----------------+-----------------+-------------------+-----------------+

数据包格式文字解答:

https://xz.aliyun.com/t/12546?time__1311=GqGxuiD%3DiQLxlrzd0%3DAmODmh4fEq7TymD&u_atoken=5e0d1b0f22c6cd147d8471acc50da034&u_asig=1a0c39d517305973725098259e003e#toc-8

4byte:元数据的固定开头magic number 48897
4byte:数据长度
16byte:把这16位进行sha256加密,得出的32位二进制结果的前16位就是通信的aes密钥,后16位就是hmac hash
2byte:大端字节序表示的编码,具体对应关系在WindowsCharsets.getName
2byte:大端字节序表示的编码,具体对应关系在WindowsCharsets.getName
4byte:beacon session id,用来标识每个会话
4byte:pid
2byte:ssh port
1byte:用来判断系统和程序位数,和是否system权限,初始值为0,如果是64位系统就+4,如果是64位程序就+2,如果是system权限就+8,报错获取不到就+1,这里用按位与的方法来累加判断,用非常少的代码就表实现了这个判断,很巧妙。
2byte:windows nt 版本
2byte:window 系统build 号
4byte:未知作用
4byte:ptr_gmh
4byte:ptr_gpa
4byte:大端字节序表示的内网ip地址


计算机信息:从输入的metadata 的第59位开始截取到末尾,截取的数据就是计算机名\n用户名\n程序名

元数据及对应解析结果:

+++++++++++++++元数据格式解析+++++++++++++++
原始数据:  [0 0 190 239 0 0 0 98 1 162 254 43 204 151 152 151 148 205 223 57 183 86 194 164 233 253 233 253 0 13 178 162 0 0 26 14 0 0 2 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 76 50 168 192 77 97 99 66 111 111 107 45 80 114 111 45 45 45 99 120 97 113 104 113 46 108 111 99 97 108 32 40 68 97 114 119 105 110 41 9 99 120 97 113 104 113 9 109 97 105 110]
魔数: 48879
数据长度: 98
AES 密钥: 8d7b19390812af8d9ae8c09eabaacb92
HMAC: 26a61f715dffae444b6400d31c2743ec
编码 1: 59901, 编码 2: 59901
会话 ID: 897698
进程 ID: 6670
SSH 端口: 0
操作系统状态: 2
Windows NT 版本: 3840, Build: 0
未知字段 1: 0
指针 GMH: 0, GPA: 0
内网 IP 地址: 192.168.50.76
计算机信息(原始字节数据转换为字符串): MacBook-Pro---cxaqhq.local (Darwin)    cxaqhq  main
计算机信息,原始字节数据:
 [77 97 99 66 111 111 107 45 80 114 111 45 45 45 99 120 97 113 104 113 46 108 111 99 97 108 32 40 68 97 114 119 105 110 41 9 99 120 97 113 104 113 9 109 97 105 110]
信息: MacBook-Pro---cxaqhq.local (Darwin) cxaqhq  main
+++++++++++++++元数据格式解析+++++++++++++++

TeamServer 下发任务

数据格式

+-----------------+-----------------+-----------------+-----------------+-------------------+
|    时间戳 (4B)  |   任务数据长度 (4B) |  命令类型 (4B)   | cmdbuf长度 (4B) |   cmd buf (N)     |
+-----------------+-----------------+-----------------+-----------------+-------------------+

数据格式文字说明:

https://xz.aliyun.com/t/12546?time__1311=GqGxuiD%3DiQLxlrzd0%3DAmODmh4fEq7TymD&u_atoken=5e0d1b0f22c6cd147d8471acc50da034&u_asig=1a0c39d517305973725098259e003e#toc-8

4byte 时间戳
4byte 任务数据长度
任务数据
    4byte 命令类型
    4byte cmdbuf长度
    cmd buf

pwd 任务下发

解析结果,cmdType: 39 为pwd 命令,具体cmdType 可见文末部分。

+++++++++++++++任务数据格式解析+++++++++++++++
原始返回数据:  [53 186 77 13 96 199 175 8 208 35 189 31 249 27 85 158 2 5 23 238 25 84 50 40 154 21 248 0 174 132 82 150 114 73 122 46 67 99 54 37 11 156 141 177 103 225 102 69]
AES解密数据:  [103 39 14 19 0 0 0 8 0 0 0 39 0 0 0 0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65]
前四字节:  [103 39 14 19]
4-8字节 长度:  [0 0 0 8]
时间戳: 1730612755
任务数据长度: 8
命令类型: 39
cmdbuf 长度: 0
cmd buf:
cmdType: 39
cmdBufferString:
cmdBuffer: []
返回任务执行结果
callbackType:  19
执行结果:  [47 85 115 101 114 115 47 99 120 97 113 104 113 47 116 111 111 108 115 47 67 50 47 103 101 97 99 111 110 95 112 114 111 95 116 101 115 116]
执行结果字符串: /Users/cxaqhq/tools/C2/geacon_pro_test
+++++++++++++++任务数据格式解析+++++++++++++++

命令行PS和页面PS命令区别

命令行PS 下发的任务数据

前四字节:  [103 38 250 90]
4-8字节 长度:  [0 0 0 12]
时间戳: 1730607706
任务数据长度: 12
命令类型: 32
cmdbuf 长度: 4
cmd buf: 00000000
cmdType: 32
cmdBufferString:
cmdBuffer: [0 0 0 0]

页面PS 下发的任务数据

前四字节:  [103 38 250 113]
4-8字节 长度:  [0 0 0 12]
时间戳: 1730607729
任务数据长度: 12
命令类型: 32
cmdbuf 长度: 4
cmd buf: 00000001
cmdType: 32
cmdBufferString:
cmdBuffer: [0 0 0 1]

区别就在于cmdbuf 内容是否存在

Beacon 结果回传

数据包格式

+-----------------+-------------------+-----------------+-------------------+-----------------+---------------------+
|    数据长度 (4B)  |    AES 加密数据 (N)   |  CS 防重放整数 (4B) |   数据长度 (4B)   |  任务类型 (4B)   |  任务结果数据 (M)  |
|                 |                   |                 |                   |                 |                     |
|                 |                   |                 |                   |                 |                     |
+-----------------+-------------------+-----------------+-------------------+-----------------+---------------------+
|                       其他数据 (X)                                    |
+-----------------------------------------------------------------------+
|                               HMAC (16B)                             |
+-----------------------------------------------------------------------+

数据包格式文字说明:

https://xz.aliyun.com/t/12546?time__1311=GqGxuiD%3DiQLxlrzd0%3DAmODmh4fEq7TymD&u_atoken=5e0d1b0f22c6cd147d8471acc50da034&u_asig=1a0c39d517305973725098259e003e#toc-8

4byte:数据长度
    aes 加密数据
        4byte:cs 防重放int
        4byte:数据长度
            4byte:数据对应任务类型
            任务结果数据
            其他数据
    16byte:hmac hash签名

任务类型(Callback): 19,具体Callback可见文末部分。

+++++++++++++++上报数据格式解析+++++++++++++++
加密后原始数据:  [0 0 0 80 76 249 176 87 29 175 60 99 241 216 76 224 237 233 157 78 87 1 133 248 49 69 23 163 44 209 63 97 143 65 255 166 240 222 185 170 6 6 62 224 67 143 214 248 216 113 100 195 198 230 250 9 74 121 55 65 219 143 124 205 105 92 120 235 140 155 97 71 135 170 129 187 141 184 215 6 135 3 97 241]
加密后原始数据 (hex): 000000504cf9b0571daf3c63f1d84ce0ede99d4e570185f8314517a32cd13f618f41ffa6f0deb9aa06063ee0438fd6f8d87164c3c6e6fa094a793741db8f7ccd695c78eb8c9b614787aa81bb8db8d706870361f1
数据长度: 80
AES 长度: 64
AES 数据: 4cf9b0571daf3c63f1d84ce0ede99d4e570185f8314517a32cd13f618f41ffa6f0deb9aa06063ee0438fd6f8d87164c3c6e6fa094a793741db8f7ccd695c78eb
AES 数据:  [76 249 176 87 29 175 60 99 241 216 76 224 237 233 157 78 87 1 133 248 49 69 23 163 44 209 63 97 143 65 255 166 240 222 185 170 6 6 62 224 67 143 214 248 216 113 100 195 198 230 250 9 74 121 55 65 219 143 124 205 105 92 120 235]
KEY : 0bdd5db92d8dbe82e8b98d7c754af58d
IV : 6162636465666768696a6b6c6d6e6f70
解密结果: */Users/cxaqhq/tools/C2/geacon_pro_testAAAAAAAAAAAAAA
解密数据长度: 64
CS 防重放整数: 1
数据长度: 42
任务类型: 19
任务结果数据: /Users/cxaqhq/tools/C2/geacon_pro_testAAAA
其他数据: 41414141414141414141
HMAC hash 签名: 8c9b614787aa81bb8db8d706870361f1
+++++++++++++++上报数据格式解析+++++++++++++++

AES解密

AES 数据 (hex): c1523d7fb9925c88dd6515a8c8967468ad9a9b063c7bcff92a9882a776c4802ab0da181dafad1e503d6536fecb65873e5cd1731243baca9bf45f091d79262a00
AES KEY (hex): 9d2154fb874d9929b01c170be95a5a42
AES IV (hex): 6162636465666768696a6b6c6d6e6f70

CMD_TYPE

常见cmdType

    CMD_TYPE_SLEEP                      = 4
    CMD_TYPE_PAUSE                      = 47
    CMD_TYPE_SHELL                      = 78
    CMD_TYPE_UPLOAD_START               = 10
    CMD_TYPE_UPLOAD_LOOP                = 67
    CMD_TYPE_DOWNLOAD                   = 11
    CMD_TYPE_EXIT                       = 3
    CMD_TYPE_CD                         = 5
    CMD_TYPE_PWD                        = 39
    CMD_TYPE_FILE_BROWSE                = 53
    CMD_TYPE_SPAWN_X64                  = 44
    CMD_TYPE_SPAWN_X86                  = 1
    CMD_TYPE_EXECUTE                    = 12
    CMD_TYPE_GETUID                     = 27
    CMD_TYPE_GET_PRIVS                  = 77
    CMD_TYPE_STEAL_TOKEN                = 31
    CMD_TYPE_PS                         = 32
    CMD_TYPE_KILL                       = 33
    CMD_TYPE_DRIVES                     = 55
    CMD_TYPE_RUNAS                      = 38
    CMD_TYPE_MKDIR                      = 54
    CMD_TYPE_RM                         = 56
    CMD_TYPE_CP                         = 73
    CMD_TYPE_MV                         = 74
    CMD_TYPE_REV2SELF                   = 28
    CMD_TYPE_MAKE_TOKEN                 = 49
    CMD_TYPE_PIPE                       = 40
    CMD_TYPE_PORTSCAN_X86               = 89
    CMD_TYPE_PORTSCAN_X64               = 90
    CMD_TYPE_KEYLOGGER                  = 101
    CMD_TYPE_EXECUTE_ASSEMBLY_X64       = 88
    CMD_TYPE_EXECUTE_ASSEMBLY_X86       = 87
    CMD_TYPE_EXECUTE_ASSEMBLY_TOKEN_X64 = 71
    CMD_TYPE_EXECUTE_ASSEMBLY_TOKEN_X86 = 70
    CMD_TYPE_IMPORT_POWERSHELL          = 37
    CMD_TYPE_POWERSHELL_PORT            = 79
    CMD_TYPE_INJECT_X64                 = 43
    CMD_TYPE_INJECT_X86                 = 9
    CMD_TYPE_BOF                        = 100
    CMD_TYPE_RUNU                       = 76
    CMD_TYPE_ARGUE_QUERY                = 85
    CMD_TYPE_ARGUE_REMOVE               = 84
    CMD_TYPE_ARGUE_ADD                  = 83

CALLBACK

常见Callback

    CALLBACK_OUTPUT            = 0
    CALLBACK_KEYSTROKES        = 1
    CALLBACK_FILE              = 2
    CALLBACK_SCREENSHOT        = 3
    CALLBACK_CLOSE             = 4
    CALLBACK_READ              = 5
    CALLBACK_CONNECT           = 6
    CALLBACK_PING              = 7
    CALLBACK_FILE_WRITE        = 8
    CALLBACK_FILE_CLOSE        = 9
    CALLBACK_PIPE_OPEN         = 10
    CALLBACK_PIPE_CLOSE        = 11
    CALLBACK_PIPE_READ         = 12
    CALLBACK_POST_ERROR        = 13
    CALLBACK_PIPE_PING         = 14
    CALLBACK_TOKEN_STOLEN      = 15
    CALLBACK_TOKEN_GETUID      = 16
    CALLBACK_PROCESS_LIST      = 17
    CALLBACK_POST_REPLAY_ERROR = 18
    CALLBACK_PWD               = 19
    CALLBACK_JOBS              = 20
    CALLBACK_HASHDUMP          = 21
    CALLBACK_PENDING           = 22
    CALLBACK_ACCEPT            = 23
    CALLBACK_NETVIEW           = 24
    CALLBACK_PORTSCAN          = 25
    CALLBACK_DEAD              = 26
    CALLBACK_SSH_STATUS        = 27
    CALLBACK_CHUNK_ALLOCATE    = 28
    CALLBACK_CHUNK_SEND        = 29
    CALLBACK_OUTPUT_OEM        = 30
    CALLBACK_ERROR             = 31
    CALLBACK_OUTPUT_UTF8       = 32

标签:CMD,Cobalt,CALLBACK,Beacon,65,4byte,Strike,TYPE,97
From: https://www.cnblogs.com/o-O-oO/p/18526273

相关文章

  • 蓝牙室内定位算法-蓝牙ibeacon室内定位技术方案
    随着科技的飞速发展,室内定位技术已成为现代生活中的重要组成部分。在众多室内定位技术中,蓝牙技术凭借其低功耗、高精确度以及广泛的设备兼容性,逐渐在室内定位领域崭露头角。其中,蓝牙iBeacon技术更是凭借其独特的优势,成为室内定位领域的佼佼者。本文将深入探讨蓝牙iBeacon室内定......
  • afcore.dll文件丢失影响Omega Strikers运行?Omega Strikers玩家必看afcore.dll文件丢失
    在沉浸于OmegaStrikers这款快节奏、竞技性强的游戏时,突然遭遇afcore.dll文件丢失的问题,无疑会给玩家带来不小的困扰。这一关键文件的缺失,可能导致游戏无法正常启动、运行卡顿,甚至频繁崩溃,严重影响游戏体验。然而,面对这一挑战,玩家无需过度焦虑,因为通过一系列自救措施,你完全有能......
  • 浅谈红队攻防之道-Cobalt Strike实战
    我不想一辈子被人踩在脚下,你以为我是臭要饭的,我努力了三年,就是要等一个机会,我要争一口气,不是想证明我了不起;我是要告诉人家,我失去的东西一定要拿回来!成果cs获取shellmsf已经拿到了meterpreter现在把这个meterpreter的shell派生到CS上面,也就是让CS也也拿到一个shellms......
  • XSStrike的简单认识与使用
    XSStrike是一个用于检测XSS漏洞的工具,可以检测反射型、DOM型XSS漏洞,集成了模糊匹配、多线程爬取、WAF绕过、Payload生成、XSS盲注以及通过字典文件枚举等功能。它不像其他工具那样注入有效负载并检查其工作,而是通过多个解析器分析相应,然后通过模糊引擎集成的上下文分析来保证有......
  • 网络信标(Web Beacon)滥用会产生的结果(非技术研讨)
    这篇文章是怎么来的?自从Youdao客户端接入LanguageModels后,我的PC出现了一些不同以往的异常现象,我无法确定是否是它或其他进程导致的,只是将这个宣传较广泛的事件作为一个读者更好理解和代入的时间节点。今天我照常在执行惯用的工作模式,并且每天检查我电脑中的活动程序与进......
  • Mergesort Strikes Back
    MergesortStrikesBack题意给你两个正整数\(n,k\),问长度为\(n\)的随机排列,做深度为\(k\)的归并排序(\(k=1\)就是不排)后,期望逆序对个数。对给定素数取模。思路首先如果\(k\ge\logn\)就可以排好序,逆序对个数为\(0\)。否则,假设排列给定,那么最后一次分治形成的若干个......
  • cobaltstrike权限维持
    1.注册表启动注意:优先用这种方式来进行权限维持task.exe是CS生成的后门文件,这里后门文件可以对其做免杀隐藏文件shellattribC:\Windows\task.exe  +s+h注册表启动后门文件shellregaddHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run/vWindowsUpdate/tREG_SZ/d......
  • [CVPR2024]DeiT-LT Distillation Strikes Back for Vision Transformer Training on L
    在长尾数据集上,本文引入强增强(文中也称为OOD)实现对DeiT的知识蒸馏的改进,实现尾部类分类性能的提升。动机ViT相较于CNN缺少归纳偏置,如局部性(一个像素与周围的区域关系更紧密)、平移不变性(图像的主体在图像的任意位置都应该一样重要)。因此需要大型数据集进行预训练。长尾数据学习......
  • Havoc的demon开发环境配置(使用vscode二开beacon)
    二开havoc需要看一下之前的几篇文章,感谢chatAI让我少吃了很多苦头,二开beacon(demon)环境终于搭建好了,之前想过使用ollvm编译demon,以便于源码级的混淆,但是试了以下,llvm能让人吃更多苦头,我没有测试过demon能不能使用llvm编译,因为llvm本身就很难编译成功,以至于我不想在llvm上花费任......
  • CF1286E Fedya the Potter Strikes Back 题解
    题目链接点击打开链接题目解法牛题!题目实际上是要每次加入一个字符,求所有的\(border\)的神秘度之和考虑从前\(i-1\)个字符到前\(i\)个字符\(border\)的变化如果\(str_1=str_i\),会加入长度为\(1\)的\(border\),这一部分可以暴力加且只会保留\(i-1\)的\(border......