好久没有水文章了,随便水篇文章活跃下账号吧
TL;DR
主要是关于CSAgent的更新,现在支持4.5版本了,6月10号的时候更新过一个版本,不过当时只内置了一个固定的水印和hash值(这个得感谢钓鱼佬,是他给了我一个能用的auth文件)。这次更新了水印及计算水印hash的脚本,支持任意修改水印值。
CS4.5版本开始,官方在原有水印的基础上加了个水印hash的检验,原文是这样的:
Those changes made it significantly more difficult to tamper with the authorization ID and locate the ever-changing hidden watermarks, therefore making it easier for us to trace stolen copies of Cobalt Strike back to specific customers. if the watermarks in the 4.5 release are tampered with, it will simply no longer work.
大意就是说现在没办法随便修改水印了,如果修改水印就会导致无法使用,这样我们就能通过水印追踪到底是哪个客户把客户端泄露了。
本质上是官方在beacon.dll里面加了水印hash检校代码,通过bindiff比较4.5和4.4可以明显看到差别,如果检校失败,就直接调用exit。
不过既然检验逻辑都在dll里面,肯定是能够逆向还原出来的,尤其是这玩意的用户都是这些牛逼的黑阔,这东西真的能顶用?
于是我这个连逆向都没入门的菜鸡决定试一下,看看这个算法到底多牛逼。
之前通过Bindiff找到了关键的函数,往回找,入口就是这个函数。
从java代码里可以知道,37是watermark,36是watermarkHash。
具体逆向过程就不展开了,总之,我发现这玩意就是个AES CBC的加密。
watermarkHash本质上就是对水印进行了一些处理后用AES加密后的密文。beacon运行的时候会将watermarkHash解密,如果和水印对不上就调用exit退出进程。
知道原理就好办了,我写了个python脚本,可以任意指定水印值进行计算
另外,CSAgent这个版本更新了配置方式,现在将配置统一放到CSAgent.properties文件里
sleeved.decryption.key=f38eb3d1a335b252b58bc2acde81b542
beacon.watermark.value=666666
beacon.watermark.hash=MYhXSMGVvcr7PtOTMdABvA==
need.translation=Y
translation.only=N
CSAgent项目地址:https://github.com/Twi1ight/CSAgent
水印计算脚本也在里面,watermark.py
CSAgent
CobaltStrike 4.x通用白嫖及汉化加载器
采用javaagent+javassist的方式动态修改jar包,可直接加载原版cobaltstrike.jar,理论上支持到目前为止的所有4.x版本
PS:汉化原理部分代码白嫖于外面公开的汉化版本,非我原创
这可能是迄今为止最全面、最详细、最牛逼的汉化版本,主要体现在:
- 汉化内容更详细,非机翻,所有文字是我一句句人工翻译的,不只简单的汉化了菜单,各类错误、说明信息都有汉化,尤其是用正则表达式覆盖了各类动态生成的错误信息
- 汉化范围更全面,之前的各类汉化版都是没有完全汉化按钮的,因为这里涉及到java的一个坑,汉化后可能导致按钮功能失效,本版本对所有按钮全覆盖; 另外,针对Beacon终端交互内的命令及命令帮助也都有详尽的汉化说明,部分命令还加上了我个人的说明见解
- 汉化方式更先进,并非纯粹的正则替换,针对菜单、命令、命令帮助说明的汉化利用了Cobalt Strike加载资源文件的特性,直接翻译资源文件即可,无需再做动态替换,性能更高,后续版本更新也更方便 针对界面的各类说明、标签汉化,全部写入配置文件中,后续版本只需修改这部分配置即可,无需再修改java代码
使用方法
-
下载CSAgent.zip解压,将原版cobaltstrike.jar放到解压目录中,确保CSAgent.jar、resources文件夹、scripts文件夹和cobaltstrike.jar处于同级目录
-
替换CSAgent.properties文件中的sleeved.decryption.key的值为官方解密key,目前内置的key为4.5版本
各个版本的官方解密key:
4.0 1be5be52c6255c33558e8a1cb667cb06 4.1 80e32a742060b884419ba0c171c9aa76 4.2 b20d487addd4713418f2d5a3ae02a7a0 4.3 3a4425490f389aeec312bdd758ad2b99 4.4 5e98194a01c6b48fa582a6a9fcbb92d6 4.5 f38eb3d1a335b252b58bc2acde81b542
-
正常使用teamserver和cobaltstrike脚本启动即可,用法与以前无任何差别,windows使用cobaltstrike.bat启动
常见问题
-
无法启动
可能原因有以下几种:
- CSAgent默认没有提供官方正版的cobaltstrike.jar,需要自己从其他渠道获取jar文件,并放到CSAgent目录下
- teamserver中的证书默认密码已被修改为Microsoft,不是123456,如果看到相关密码错误提示,可能是这个问题
-
关闭汉化
只需将CSAgent.properties配置文件中的need.translation值修改为N即可
-
只使用汉化
只需将CSAgent.properties配置文件中的translation.only改为Y即可
-
修改watermark
4.5版本官方加入了watermarkHash验证,watermark和watermarkHash需要对应才行,所以无法随意修改watermark值。
CSAgent提供了watermark.py脚本用于生成自定义watermark,仅支持python3,需要安装pycryptodome。
使用命令:python3 watermark.py 88888
然后将输出的hash填入CSAgent.properties文件中的beacon.watermark.hash值,同时修改beacon.watermark.value值为88888
效果
主界面
Console
命令帮助
生成payload
监听器
偏好设置
版本信息
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论