【渗透工具】Cobalt Strike反制之批量上线

admin 2024年6月20日18:16:28评论52 views字数 3476阅读11分35秒阅读模式

 

简介

Cobalt Strike是红队必备神器,在每年HW中也是经常出现的后渗透测试工具,目前针对Cobalt Strike修改特征一些手段来逃避流量检测工具,在各种威胁情报中对Cobalt Strike也打上了标记。本文主要针对作为蓝队在遇到Cobalt Strike采用什么方法进行反制。

本文主要参考:

https://forum.butian.net/share/708
https://mp.weixin.qq.com/s/i79ziHSIVaJ7mqBfnewRZQ

工具

kali:10.168.2.128
本文主要采用CobaltStrike4.8版本
文中提到的工具可通过回复关键字获取

CS上线

设置监听

Cobalt Strik ==》监听器
【渗透工具】Cobalt Strike反制之批量上线

生成木马并抓流量

生成exe文件格式的木马,关闭测试机器上的杀毒软件(本文不针对免杀做详述),运行木马并通过wireshark工具进行抓包

选择刚生成的监听器,生成木马文件
【渗透工具】Cobalt Strike反制之批量上线
打开wireshark工具抓取数据包,执行木马文件
【渗透工具】Cobalt Strike反制之批量上线
筛选数据包:
http && ip.addr==10.168.2.128
【渗透工具】Cobalt Strike反制之批量上线
分析数据包内容
数据包中携带的字段有一段加密后的Cookie,当前Cookie是经过非对称RSA加密,需要获取到私钥Private Key后就可以解密
实战中是无法获取到攻击者的私钥

GET /ptj HTTP/1.1
Accept: */*
Cookie: L+wLZB0qBut6HWR3edwJLeyoMonVKDG4KttPYCmyjDOardP1W1Ic5dcPts6a+AaCUGcjgfVYyRsHJamNXhtE1OzelRNWvqd/UfLTgAyRhv4rljdCDzZmRiJWG5tzZfmfsqAeW3UntPbNfmv3hgdcQszLnczsA85Q836MwtbY7FI=
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; .NET4.0C)
Host: 10.168.2.128
Connection: Keep-Alive
Cache-Control: no-cache

HTTP/1.1 200 OK
Date: Wed, 12 Jun 2024 07:03:48 GMT
Content-Type: application/octet-stream
Content-Length: 0

通过yakit或者burp等工具进行重放
把CS之前上线的会话删除,重放数据包发现又成功上线
【渗透工具】Cobalt Strike反制之批量上线
重放同一数据包只会上线一条会话,只会刷新会话
这参考其他文章中解密cookie
【渗透工具】Cobalt Strike反制之批量上线
也可以下载工具Dumpkeys.java,但是需要在java11版本以下使用,还要把这个java文件放置在CS服务器的CS文件夹下,与“cobaltstrike.jar“同一个目录下。
java -cp “cobaltstrike.jar” Dumpkeys.java
解密完可以看到HTTP类型Beacon上线包里的Cookie是RSA加密过的主机元数据。
解密网站:
https://the-x.cn/cryptography/Rsa.aspx
要想批量上线需要了解一下核心

Stager Url校验算法
Beacon配置的解密算法
其实Stager就是小马拉大马的操作
上线的时候先投递一个小巧的Stager Payload,然后通过Stager 去Beacon Staging Server的某个URL下载完整的Stage(也就是体积更大功能更复杂的Payload),并将其注入内存。
(这个URL作为特征也可以用来识别CS服务器,做网络测绘,某Quake就是这么做的)
如何得到那个URL?
CS中Stager URL校验算法,就是生成4位的随机校验码,将校验码拼接到URL后面即可请求到Stage的代码

【渗透工具】Cobalt Strike反制之批量上线
【渗透工具】Cobalt Strike反制之批量上线
CS中Stager URI校验算法,就是生成4位的随机校验码,将校验码拼接到URI后面即可请求到Stage的代码。
在这里面提到生成4位的随机校验码,使用的算法是Stager URI校验算法checksum8
当前的checksum8算法执行方法:

从a-z、A-Z、0-9字母中,随机使用选择四个字符,在这四个字符计算ASCII码的值后求和取模,如果结果等于92的为32位的,等于93为64位的,代码如下:

import requests
import random,time

def generate_checksum(input):
    trial = ''
    total = 0
    while total != input:
        total = 0
        trial = ''.join(random.choice("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
                        for i in range(4))
        # print(trial)
        for i in range(4):
            # tmp = trial[i:i+1]
            # print('total的值', total)
            # print('tmp的值:',tmp)
            # print('ord的值:',ord(tmp))
            # print('除后的值:', ord(tmp) % 256)
            # time.sleep(2)
            total = (total + ord(trial[i:i+1])) % 256
            # print(total)
    print('64位的stage:',trial)
    return total
    # print(total)

for j in range(0,6):
    # generate_checksum(92) # 32位
    generate_checksum(93) # 64位

【渗透工具】Cobalt Strike反制之批量上线
通过生成的4位随机值下载stage文件
直接拼接访问下载
【渗透工具】Cobalt Strike反制之批量上线
下载后对stage进行解密:
使用CobaltStrikeParser工具进行解密,使用前需要下载所依赖的第三方库,使用pip3 install -r requirements.txt进行安装
【渗透工具】Cobalt Strike反制之批量上线
将下载好的stage文件复制到CobaltStrikeParser工具目录下,执行命令
python3 parse_beacon_config.py TKTj --json > xiaoc.json
【渗透工具】Cobalt Strike反制之批量上线
也可以使用浏览器访问json文件,美化下看着更舒服些
【渗透工具】Cobalt Strike反制之批量上线

得到PublicKey,需要删除无效的值,获取到的值为Public.txt

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCEMNeZPkq0EDvGR9d8Py0f8EYAtFFJHpAuL3ZQDQkQBOr4f90M4NKZ7I2NmouTtpnoGVBXDvXXRhbKi+HhON+Y8Z5vlobJAlTzEL1owtq4UOFQ3hl0h8sPjFHrcoh75WrrXki/Dop42sY8I5SnaRiT5qSmLjsn9gFM4m+FuVQmowIDAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

正确的公钥为:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCEMNeZPkq0EDvGR9d8Py0f8EYAtFFJHpAuL3ZQDQkQBOr4f90M4NKZ7I2NmouTtpnoGVBXDvXXRhbKi+HhON+Y8Z5vlobJAlTzEL1owtq4UOFQ3hl0h8sPjFHrcoh75WrrXki/Dop42sY8I5SnaRiT5qSmLjsn9gFM4m+FuVQmowIDAQAB==

得到公钥后就可以模拟上线了
模拟上线可以参考其他师傅写的脚本,直接替换代码中的参数运行
直接把刚才得到的公钥替换到Public.txt文件中,注意格式后面得带上==
【渗透工具】Cobalt Strike反制之批量上线
运行脚本前需要装第三方库rsa,如已安装就直接运行
运行后需要输入目标C2 Server地址,可以在之前抓取数据包得wireshark中获取

【渗透工具】Cobalt Strike反制之批量上线

【渗透工具】Cobalt Strike反制之批量上线

【渗透工具】Cobalt Strike反制之批量上线
批量上线成功!!!!!!!!!!!

下载链接

链接:https://pan.baidu.com/s/1yHUSH0XReyOF0bJINp9Brg?pwd=87xb
提取码:87xb
解压密码:6171bfe836af5c1e577c3feaf68ec90271a7836e6ee599c6052685ff08649ee1

 

原文始发于微信公众号(小C学安全):【渗透工具】Cobalt Strike反制之批量上线

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月20日18:16:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【渗透工具】Cobalt Strike反制之批量上线https://cn-sec.com/archives/2848382.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息