分析原理:
我们利用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次的效果

CS反制之批量伪装上线相关推荐

  1. 帝国cms 未审核 showinfo.php,帝国CMS批量修改文章未审核状态及批量修改上线时间...

    帝国CMS批量修改审核文章未审核状态,批量自定义指定文件上线时间! 用法: 后台增加自定义页面  PHP CODE:$infouptime=to_time('2016-06-12 10:50:19') ...

  2. 服装批量下单php,搜款网批量下单上线啦

    搜款网批量下单上线啦,非常方便进货量大的零售商使用,不需要再将商品一个个下单,批量下单能提高操作效率,节省您的进货时间,详细的操作说明如下: 1.进入「个人中心」页面,您可从网站首页点击「个人中心」或 ...

  3. CS不出网各种上线姿势

    CS不出网各种上线姿势 0x00 SMB Beacon 0x01 中转 Listener 0x02 使用HTTP代理 0x03 TCP Beacon(正向) 0x04 pystinger 正向 Soc ...

  4. unity 解决乱码_unity3d 中文乱码解决方法——cs代码文件格式批量转化UTF8

    在Unity3d中经常会碰到中文乱码的问题,比如代码中的[AddComponentMenu("GameDef/AI/战机AI")],注释,中文文本等等 其原因在于,unity本身是 ...

  5. CS木马的几种上线方式总结

    CATALOG 前言 windows相关上线方式 1.利用mshta与wmic上线 2.利用powershell上线 3.利用msbuild上线 4.远程加载宏木马 5.C#远程加载远程文件到本地执行 ...

  6. CS反制-CS服务器新特征

    CobaltStrike是一款基于Java编写的全平台多方协同后渗透攻击框架,几乎覆盖了APT攻击链中所需要用到的各个技术环节. 基本描述 CobaltStrike的HTTP(S)监听器对请求URL未 ...

  7. 对正在打野发育的红队同学的一次反制

    文章目录 故事开始 其他反制思路 隐蔽C2 CS重定向器实验 故事开始 真的是对同学的反制哈,我们最近都在学习内网&钓鱼就互相"攻击",就有那么一天我就在想我偷懒把CS登录 ...

  8. 不出网上线CS的各种姿势

    原文出处:奇安信攻防社区-不出网上线CS的各种姿势 (butian.net) 常见不出网情况下,上线CS的方式,作为一个备忘录. 以下截图在不同时间/环境截取,IP会有些不同 0x01 存在一台中转机 ...

  9. 端口扫描的CS木马样本的分析

    序言 病毒.木马是黑客实施网络攻击的常用兵器,有些木马.病毒可以通过免杀技术的加持躲过主流杀毒软件的查杀,从而实现在受害者机器上长期驻留并传播. CobaltStrike基础 Cobalt Strik ...

最新文章

  1. FZU 2297 Number theory【线段树/单点更新/思维】
  2. Java基础笔记17
  3. python制作动态条形图-python – 动态更新matplotlib中的条形图
  4. 虚拟化四路服务器,专为虚拟化设计 戴尔R905四路服务器评测
  5. 《Beginning C# Objcets》学习笔记
  6. {'张三丰': 101, '无忌': 102, '赵敏': 102} (Python)
  7. 中缀转后缀表达式,带括号的后缀表达式综合计算器,Java栈数据结构实现
  8. php鼠标悬停显示图片,鼠标滑过出现预览的大图提示效果
  9. python打印多个变量_在Python中打印多个变量
  10. 阿里小二平时和商家交流的时候,明确告知流量喜欢什么样的产品?
  11. Linux基础命令---lpq查看打印队列
  12. python判断是否有重复单词_Python:在字符串列表中查找未知的重复单词
  13. 南京超过广州,4 月程序员工资统计出炉,平均14596元
  14. penuppendown在python中是啥意思_pen down是什么意思
  15. oracle 并置,Oracle Coherence中文教程二:安装Oracle Coherence
  16. wow3.13大脚插件
  17. 数据从阿里云迁移到腾讯云
  18. 2018年全国高中数学联合竞赛一试和加试参考答案(B卷)
  19. 微电子电路——PMOS网表详解
  20. 计算机多通道存储器工作原理,多通道大容量的采集存储器的设计与实现 - 全文...

热门文章

  1. 动手学深度学习:6.4 循环神经网络的从零开始实现
  2. HTML行内元素标签:b、strong、i、u、del、sub、sup
  3. 2022年春 · 我的读书心得 | TOP 10 书单 by 傅一平
  4. 详解本地主机如何与外部互联网通信
  5. 怎样更改IE临时文件夹路径
  6. SAS500系列高性能信号采集存储分析仪
  7. 算法入门之二分法(LeetCode)
  8. Web前端系列技术之移动Web开发(从基础开始)①
  9. 【网易】游历魔法王国
  10. 【MC】​《我的世界》命令方块指令大全​