春节快乐-D2发布-新的开始
2025-1-27 03:27:0 Author: mp.weixin.qq.com(查看原文) 阅读量:1 收藏

新的开始
这是新的开始,D2 v0.1 bate,好看也好用是D2的第一原则,我基本重构了UI,应该是市面上最好看的C2,没有之一。CobaltStrike经过10多年的发展,有很多废弃且基本不会使用的功能依旧存在,因此D2 v0.1主要是精简。例如:我删除了针对msf的兼容支持,这个支持会导致checksum8问题无法彻底解决。还有browserPivot、Java Applet等基本不会使用的功能,也一并删除。
arsenal-kit支持到了cobaltstrike 4.9,最新的4.10.1的套件后续更新兼容(todo),主要是BeaconGate的是一个不错的功能,可以融入到D2之中。
针对几个固定密钥做了自定义处理,以对抗各种自动分析工具,例如:配置信息xor的密钥,使用Aggressor.prop和TeamServer.prop中的settings.xor.key参数, 这2个文件都要修改。我把原始的Aggressor.prop文件移到了启动目录下,使用前请修改Aggressor.example.prop为Aggressor.prop,并自定义相关参数。关于teamserver的认证魔法字符串,通常是测绘和爆破中经常使用的判断规则,同样在Aggressor.prop和TeamServer.prop中需要自定义:
teamserver.authenticate.magic=FFAABBaggressor.authenticate.magic=EEFF22
其中UI界面启动的时候在根目录下需要存在Aggressor.prop和TeamServer.prop,TeamServer启动的时候根目录下需要TeamServer.prop存在。
最后D2会存在2个版本,社区版和商业版。社区版发展的目标是框架,插件化所有功能,仅仅保留骨架,星球小伙伴可以自定义各种功能。商业版的发展目标是OPSEC和定制培训,商业版正式上线预计2025年末。
截图预览

开发日志

【注意】(20250101 - D2 v0.1) - CobaltStrike星球专版正式更名D2更新拉......

如有BUG星球提问,最好附加报错截图和使用环境。(请在JDK11下使用)

本版本基于cs4.5源码构建,使用idea+openjdk11+win10+vs2008+vs2012环境编译。

本项目主要用于学习研究,仅限合法合规项目使用,请勿用于非法项目,一切法律后果与本人无关。

本项目主要用于学习研究,仅限合法合规项目使用,请勿用于非法项目,一切法律后果与本人无关。

本项目主要用于学习研究,仅限合法合规项目使用,请勿用于非法项目,一切法律后果与本人无关。

--20250101-----

1. 修复开启sleepmask的情况下,smb和tcp不能使用bug

2. 彻底删除和msf兼容导致的checksum8问题

3. 精简过时功能,例如:browserPivot、Java Applet等

4. 完全重构UI,支持黑白模式切换,更名为D2。

5. 本地配置信息文件放入程序当前目录下,防止被预测路径读取

6. 修复文件读取函数效率低下问题

7. 404页面指纹修改

8. 自定义配置常见指纹信息

8.1 自定义配置xor key, 分为客户端配置和服务端配置,客户端配置可以通过界面修改Aggressor.prop,服务端配置需要在启动teamserver的时候写入配置文件TeamServer.prop,服务端主要是分阶段的时候使用,客户端在生成植入体的时候使用

8.2 认证指纹自定义

--20231110----

1. 修复dns beacon x86文件名错误

--20231025-----

1. 修复CVE-2022-39197漏洞在文件浏览中依旧可以触发的问题,本次修复无脑转义所有标签。

--20231023-----

1. 修复pre-urdl中在32位程序获取loader基地址问题

--20231012-----

1. 修复BOF API因顺序问题而导致的bug

2. 修复net相关命令不能使用bug

--20231011-----

1. 修复@slience 发现的spawn崩溃bug

--20230928-----

2. PROCESS_INJECT_SPAWN增加了rdl偏移参数,使得smart inject依旧正常使用

3. dllinject只能使用pre-rdl, 这个后续修改为正常dll使用。

4. post-ex完成pre-rdl改造,默认cleanup,清理所有内存,并支持自定义pre-rdl,和cs4.9的差异在自定义pre-rdl不支持browserpivot,主要是这个功能实战基本不能用,没有改的必要,c2profile中post-ex.cleanup、post-ex.transform-x64 、 post-ex.transform-x86 都没有,其中cleanup,没有必要,默认清理。transform留到下个版本。c2profile 这一块我一致想做热加载,统一修改。

5. 增加BOF函数(比4.9多加了一个函数):

BeaconInformation(BEACON_INFO * pBeaconInfo)BeaconAddValue(const char * key, void * ptr)BeaconGetValue(const char * key)BeaconRemoveValue(const char * key)BeaconModifyValue(const char * key, void * newptr)

有了这个,其他的关于cs4.9在beacon中持久存储的功能都可以自定义实现,因此我就没有实现对应功能比如:cs4.9的beacon data store。这个功能可以基于以上函数自定义实现。4.8的存储token也类似。

6. beacon默认使用pre-rdl, 并支持自定义pre-rdl。支持cs4.9的导出无rdl的beacon, BEACON_RDLL_SIZE为0时,为使用无rdl的beacon。

7. 适配最新cs4.9 sleepmask kit,并使得每次sleep使用不同随机key

--20230914-----

1. 进程浏览增加文件路径回显

2. 针对注入行为后内存残留清理,包括自注入

--20230704(0901fix)-----

1.更新混淆中亦或算法的key

2.更新部分jdk11废弃的语法,因此请使用jdk11或更高版本

3.cs4.7:增加了BOF中.xdata .pdata .bbs区段的解析,并把动态调用函数提升到64个,并修复可能发送的数据位置和代码位置相差大于4G的情况。

4.cs4.8:升级sleepmask功能,使之能够使用cs最新套件。

5.配置信息加密方式改成多字节加密

6.修复BOF ___chkstk_ms未链接问题。

7.增加BOF Loader对__C_specific_handler支持

8.修复pivot中密钥bug

9.增加关闭jtable、jlist、jtree的html解析

10.修复.stage.transform-x64 results in a stage that's too large报错

11.修复忘记删除beacon以外的其他listener的水印验证

--20230612-----

1.cs4.6:修复了在 BOF 中调用 BeaconFormatToString 时错误地要求传递字符串长度地址的问题。

2.修复修改CheckSum8后,导致使用spawn派生到MSF6不能上线问题

3.注释掉了一些没有实际功能的测试代码,例如:TestCall

4.把黑色图标修改成白色图标,更改一些文字配色,适应暗黑主题

5.修复掉各种废弃函数,防止意外错误。

--20230607-----

1. 删除破解对抗代码和水印,把代码中所有对抗相关代码全部清楚,主要包含各种javaagent检测、完整性校验,过期校验,其中很多点很是奇葩,例如执行几个小时后才出问题,或者篡改发送的命令等等。最后把beacon中和jar包中的水印功能也去掉了,但是目前这个版本没有拿掉配置中的jar包hash。

2. 更换主题flatlaf-3.1.1.jar,并修复图标问题和背景色问题。由于老主题代码实在太老在高版本中运行太多异常,因此换成了flatlaf,这个也是网上大部分人的方案。主题使用的是模仿idea的主题,但是配色和图标上个人觉得还是有点问题,后面慢慢修复。这个版本主要修复功能为主。

3. 修复CVE-2022-39197, 这个xss漏洞修复,我没有测试,修复方式是在修复主题session图标问题的时候,直接关了JLabel的html解析。

4. 默认启用TLS1.0至TLS1.2,修复无补丁Windows7的https支持。这个网上方法。

5. 修复foreign派生错误的bug,暂时不能使用自定义反射loader

这个是直接返回的原始beacondll,我在实战中确实很少用到这个,所以按照网上的方式修复了。没有深入分析。

6. 修改默认配置信息亦或密钥,这个多加了一层亦或。如果jar包被分析,找到key,还是能解。

7. 修复CVE-2022-23317和CheckSum8, 这个修复比较是改了校验值和长度,但是如果知道值,还是能被爆破出来。所以最好不用还是关了stager。原计划之间严格,想了想夜莺C2竟然在后面版本加入了分阶段,应该就是有需求的。

8. 增加自定义编码输出,这个功能比较实用感谢@yougar0x00 指导,命令位charset xxx,妈妈再也不用担心乱码了。

9. 修改团队服务认证默认字符,常规操作,一个默认值,被加入规则也是不保险的。

10. bypass BeaconEye,就是为了改这儿导致卡了我好几天,最后发现才是这个问题,我开始是想直接改掉type值,从123 改成456,但是不知道为什么无情报错,导致beacon崩溃,我调试插件配置解析,是能够解出来的,不知道代码中可能有地方对type值的使用,导致不能修改。最后无奈还是用了网上1字节bypass的方法,但是我看了很多关于这个的文章,有部分是理解错误的,说type值是4字节只用了2字节是错误的说法,代码中type始终是short。

11. yara特征修改若干(肯定不完全),改了我以前主题中提到过的一个特征,这个特征后期不用sleepmask的情况下很难改,所以直接修改了。

本项目主要用于学习研究,仅限合法合规项目使用,请勿用于非法项目。


文章来源: https://mp.weixin.qq.com/s?__biz=MzIxMDI0MzQzNQ==&mid=2650416407&idx=1&sn=9b8c96ba91a0e21e291d6afc156427ae&chksm=8f691f13b81e9605d0c04246123189c15bd8df8a98c759c24ab9f3b029b4c1e33968ae3bf07a&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh