Codecepticon是一个 .NET 应用程序,允许您混淆 C#、VBA/VB6(宏)和 PowerShell 源代码,并且是为攻击性安全活动(例如 Red/Purple Teams)而开发的。Codecepticon 与其他混淆器的不同之处在于它以源代码而不是编译后的可执行文件为目标,并且是专门为规避 AV/EDR 而开发的。
Codecepticon 允许您混淆和重写代码,还提供重写命令行等功能。
先读这个
!在我们开始之前!
本文档仅介绍如何安装和使用 Codecepticon。不提供 Rubeus 和 SharpHound 等工具的编译、使用和支持。有关详细信息,请分别参阅每个项目的存储库。
Codecepticon 在 VS2022 中积极开发/测试,但它也应该在 VS2019 中工作。为 VS2019 及以下版本创建的任何票证/问题将不会被调查,除非该问题可在 VS2022 中重现。所以请使用最新最好的VS2022。
以下包必须是 v3.9.0,因为较新的版本有以下问题仍未解决:dotnet/roslyn#58463
Microsoft.CodeAnalysis.CSharp.Workspaces
Microsoft.CodeAnalysis.Workspaces.MSBuild
Codecepticon 在运行时检查这些包的版本,如果版本与 v3.9.0 不同,则会通知您。
这一点怎么强调都不为过:始终首先在本地测试您的混淆代码。
先决条件
Visual Studio 专业版/社区 2022
如果您想深入了解 Codecepticon 的功能,请查看此文档。
有关您可以使用的提示,请查看此文档。
C#
混淆 C# 项目很简单,只需选择您希望针对的解决方案即可。请注意,不会对解决方案本身进行备份,当前的备份将被混淆。在尝试针对它运行 Codecepticon 之前,请确保您可以独立编译目标项目。
VBA/VB6
VBA 混淆是针对源代码本身而不是 Microsoft Office 文档进行的。这意味着您不能将doc(x)或xls(x)文件传递??给 Codecepticon。它必须是模块本身的源代码(按 Alt-F11 并从那里复制代码)。
电源外壳
由于 PowerShell 脚本的复杂性,以及它在如何编写脚本方面提供的自由,覆盖所有边缘情况并确保混淆结果将完全发挥作用是一项挑战。尽管预计 Codecepticon 可以在简单的脚本/功能上正常工作,但在 PowerView 等复杂的脚本/功能上运行它是行不通的——这是一项正在进行的工作。
混淆命令行参数
混淆应用程序或脚本后,命令行参数很可能也已重命名。对此的解决方案是使用 HTML 映射文件来查找新名称。例如,让我们转换以下命令行: