前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Codecepticon对C#、VBA宏和PowerShell源代码进行混淆处理

如何使用Codecepticon对C#、VBA宏和PowerShell源代码进行混淆处理

作者头像
FB客服
发布2023-02-10 15:10:21
1.9K0
发布2023-02-10 15:10:21
举报
文章被收录于专栏:FreeBufFreeBuf

关于Codecepticon

Codecepticon是一款功能强大的代码混淆处理工具,该工具专为红队和紫队渗透测试安全活动而开发,在该工具的帮助下,广大研究人员可以轻松对C#、VBA5/VBA6(宏)和PowerShell源代码进行混淆处理。

Codecepticon与其他代码混淆处理工具的区别在于,该工具主要针对的是源代码,而不是编译后的可执行文件,并且能够绕过AV或EDR产品的检测。

除了代码混淆功能之外,Codecepticon还允许我们重写代码,也提供了相关的命令行功能选项。

工具要求

Visual Studio Pro/Community 2022

Roslyn编译器

打开和编译

打开Codecepticon,等待所有的NuGet包下载完成后,就可以构建工具解决方案了。

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

代码语言:javascript
复制
git clone https://github.com/Accenture/Codecepticon.git

工具使用

该工具支持高度自定义配置,并且Codecepticon提供了两种使用方法,要么将所有参数放在命令行中。我们可以使用CommandLineGenerator.html快速生成工具命令:

命令行生成器的输出格式为命令行输出或XML,具体可以自行选择,终端命令可以通过下列方式执行:

代码语言:javascript
复制
Codecepticon.exe --action obfuscate --module csharp --verbose ...etc
代码语言:javascript
复制
(向右滑动、查看更多)

如果使用了XML配置文件,则命令如下:

代码语言:javascript
复制
Codecepticon.exe --config C:\Your\Path\To\The\File.xml
代码语言:javascript
复制
(向右滑动、查看更多)

C#

运行工具后,直接选择对应的解决方案,即可对C#项目进行混淆处理。在尝试对目标项目运行Codecepticon之前,请确保该项目可以被独立编译,并做好备份。

VBA/VBA6

VBA混淆针对的是宏文件源代码本身,而非Microsoft Office文档。这也就意味着,我们无法向Codecepticon传递一个doc(x)或xls(x)文件,因此需要传递模块本身源代码。(按Alt+F11或直接将源码拷贝进去)

PowerShell

由于由于PowerShell脚本的复杂性,以及它在编写脚本方面提供的自由度,要覆盖所有边缘情况并确保混淆的结果完全正常运行是一项挑战。虽然Codecepcon可以很好地处理简单的脚本/函数,但在PowerView等复杂脚本/功能上运行它是行不通的,不过开发人员目前正在解决这个问题。

命令行参数(混淆)

在对一个应用程序或脚本进行混淆处理之后,相关的命令行参数很有可能会发生变化。下面的例子中,我们使用了HTML映射文件来寻找新的参数名称。比如说,我们尝试转换下列命令:

代码语言:javascript
复制
SharpHound.exe --CollectionMethods DCOnly --OutputDirectory C:\temp\
代码语言:javascript
复制
(向右滑动、查看更多)

通过搜索HTML映射文件中的每一个参数,我们将会获取到下列信息:

替换所有的字符串后,结果如下:

代码语言:javascript
复制
ObfuscatedSharpHound.exe --AphylesPiansAsp TurthsTance --AnineWondon C:\temp\
代码语言:javascript
复制
(向右滑动、查看更多)

但是,某些值可能存在于多个分类:

因此,我们要养成在本地环境先进行测试的习惯。

项目地址

Codecepticon:

https://github.com/Accenture/Codecepticon

参考资料:

https://blog.xpnsec.com/building-modifying-packing-devops/ https://twitter.com/EmericNasi/status/1460640760928296966 https://github.com/MagicMau/ProceduralNameGenerator https://github.com/uwol/proleap-vb6-parser https://github.com/dwyl/english-words

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于Codecepticon
  • 工具要求
    • Visual Studio Pro/Community 2022
      • Roslyn编译器
        • 打开和编译
        • 工具下载
        • 工具使用
          • C#
            • VBA/VBA6
              • PowerShell
                • 命令行参数(混淆)
                • 项目地址
                • 参考资料:
                相关产品与服务
                网站渗透测试
                网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档