CS反制之批量伪装上线
创始人
2024-05-24 17:11:02
0

分析原理:
我们利用Wireshark抓包工具分析一下Cobalt Strike的上线过程是怎么样的
在这里插入图片描述
点击木马,主机上线并抓包
在这里插入图片描述
查看数据包
在这里插入图片描述
在这里插入图片描述
可以看到cookie是一串非对称RSA加密类型,需要一个私钥Private Key才能对其进行解密
我们对Cookie解密看看,网上找到了相关的代码提取Private Key与Public Key
(注意,实战中我们肯定拿不到Private Key的,这里只是弄出来分析一下加密的Cookie里有啥)
代码如下:
DumpKeys.java:

import java.io.File;
import java.util.Base64;
import common.CommonUtils;
import java.security.KeyPair;class DumpKeys
{   public static void main(String[] args){try {File file = new File(".cobaltstrike.beacon_keys");if (file.exists()) {KeyPair keyPair = (KeyPair)CommonUtils.readObject(file, null);System.out.printf("Private Key: %s\n\n", new String(Base64.getEncoder().encode(keyPair.getPrivate().getEncoded())));System.out.printf("Public Key: %s\n\n", new String(Base64.getEncoder().encode(keyPair.getPublic().getEncoded())));}else {System.out.println("Could not find .cobaltstrike.beacon_keys file");}}catch (Exception exception) {System.out.println("Could not read asymmetric keys");}}
}

有一个坑点:
代码注意要在JDK11版本下运行。还要把这个java文件放置在CS服务器的CS文件夹下,与“cobaltstrike.jar“同一个目录下。
命令:

java -cp cobaltstrike.jar DumpKeys.java

在这里插入图片描述
用rsa网站解密https://the-x.cn/cryptography/Rsa.aspx

在这里插入图片描述
可以看到解密出的数据有我们的元数据,HTTP类型Beacon上线包里的Cookie是RSA加密过的主机元数据
既然知道上线的流量过程,那么我们模拟Cobalt Strike模拟重放一下上线的过程
写类似爬虫请求:

import requestsurl = "http://185.239.225.205:83/en_US/all.js"header = {"User-Agent" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0)","Accept" : "*/*","Cookie" : "FRfwPoK21T48W80c9VZm8C0vw1116g/X6T4nxjYGNqQJquF9Z7M2AS2QDP6yHz+ca7rOpxi0f/fnitfMLVfy/wOwMrHDZdsxpAp2j77425op8AV9DCNYftCVowPrBtSaN4d6q3LBkXXcAbYcD9k/NDRIXB/TrWHu015XmrCibnA=","Connection" : "Keep-Alive","Cache-Control" : "Cache-Control"
}r = requests.get(url,headers=header);
print(r.url)
print(r.text)
print(r.headers)
print(r.status_code)

在这里插入图片描述
在这里插入图片描述
可以看到时间为1s,跟之前的43s比,这是最新的请求,如下:
在这里插入图片描述
数据包中的核心是加密后的Cookie,我们进行伪造,达到假的主机上线效果
Stager Url校验算法Beacon配置的解密算法
其实Stager就是小马拉大马的操作,上线的时候先投递一个小巧的Stager Payload,然后通过Stager 去Beacon Staging Server的某个URL下载完整的Stage(也就是体积更大功能更复杂的Payload),并将其注入内存。
(这个URL作为特征也可以用来识别CS服务器,做网络测绘,某Quake就是这么做的)
如何得到那个URL?
CS中Stager URL校验算法,就是生成4位的随机校验码,将校验码拼接到URL后面即可请求到Stage的代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
拿到Stage

Beacon配置解密
这里进行解密操作:
https://github.com/Sentinel-One/CobaltStrikeParser

在这里插入图片描述

解密后可以看到:公钥PublicKey以及CS服务器地址
坑点:
Public key别忘了要删点后面的无效Padding正确的格式是MIGfXXXXXXXXXXXXXXXX==也就是说我图中的Public Key 后面那一堆AAAAA要删掉

这里直接使用脚本来解密beacon的publickey
脚本链接:https://github.com/LiAoRJ/CS_fakesubmit
命令:

python3 cs_fakesubmit.py

使用方法:
在这里插入图片描述
脚本效果如下:
在这里插入图片描述

可以看到成功伪造上线,对攻击者造成大量混乱
在这里插入图片描述

这是50次的效果

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...