CS4.5完全和谐版,支持自定义水印

渗透技巧 2年前 (2022) admin
1,238 0 0

好久没有水文章了,随便水篇文章活跃下账号吧

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。

CS4.5完全和谐版,支持自定义水印


不过既然检验逻辑都在dll里面,肯定是能够逆向还原出来的,尤其是这玩意的用户都是这些牛逼的黑阔,这东西真的能顶用?

于是我这个连逆向都没入门的菜鸡决定试一下,看看这个算法到底多牛逼。

之前通过Bindiff找到了关键的函数,往回找,入口就是这个函数。

CS4.5完全和谐版,支持自定义水印

从java代码里可以知道,37是watermark,36是watermarkHash。

CS4.5完全和谐版,支持自定义水印

具体逆向过程就不展开了,总之,我发现这玩意就是个AES CBC的加密。

watermarkHash本质上就是对水印进行了一些处理后用AES加密后的密文。beacon运行的时候会将watermarkHash解密,如果和水印对不上就调用exit退出进程。

知道原理就好办了,我写了个python脚本,可以任意指定水印值进行计算

CS4.5完全和谐版,支持自定义水印


另外,CSAgent这个版本更新了配置方式,现在将配置统一放到CSAgent.properties文件里

sleeved.decryption.key=f38eb3d1a335b252b58bc2acde81b542beacon.watermark.value=666666beacon.watermark.hash=MYhXSMGVvcr7PtOTMdABvA==# 翻译开关,是否启用翻译功能,值:Y/Nneed.translation=Y# 是否只使用翻译功能,用于加载自己魔改过的版本,值:Y/Ntranslation.only=N


CSAgent项目地址:https://github.com/Twi1ight/CSAgent

水印计算脚本也在里面,watermark.py

原文始发于微信公众号(孟疾杂记):CS4.5完全和谐版,支持自定义水印

版权声明:admin 发表于 2022年6月29日 下午9:23。
转载请注明:CS4.5完全和谐版,支持自定义水印 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...