找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

  • QQ空间
  • 回复
  • 收藏
Invoke-DOSfuscation v1.0-命令混淆发生器和检测测试



介绍


Invoke-DOSfuscation是一个PowerShell v2.0 +兼容的cmd.exe命令混淆框架。采用的无数混淆和逃避技术。用来逃避检测。APT32和FIN7能够吸引最诱人的混淆技术


攻击者越来越多地使用混淆技术来在很大程度上基于命令行参数值来逃避检测。该框架的唯一目的是使防御者能够随机生成数以千计的唯一混淆的示例命令,以针对这些技术测试和调整其检测功能。我在这个版本中包含了我的完整测试工具,可以自动执行这个检测测试过程。这个框架使得防御者能够模糊cmd.exe的模糊技术,并且在构建这个工具时,我发现了许多额外的混淆机会,这在我的最初研究中并未发现。

用法

所有混淆组件都构建为独立的正式函数,但大多数用户会发现该Invoke-DOSfuscation函数是探索和可视化此框架支持的混淆技术的最简单方法。为了对每个混淆类别的众多调优选项进行模糊和深入探索,建议将各个函数直接用于Invoke-DOSfuscation 函数包装器之外。

为了使防御者能够轻松地开始模糊和测试检测想法,该框架还包含一个额外的模块,Invoke-DOSfuscationTestHarness.psm1 该模块会随项目的其余部分自动导入。这个模块的两个关键功能是防御者:


1.Invoke-DosTestHarness - 从有效负载完整性和检测目的的测试命令列表中生成1000个随机模糊命令(使用默认参数设置)。每个测试用具迭代随机化所有可用的函数参数,并直接调用四个模糊函数,而不是使用-ObfuscationLevelInvoke-DOSfuscation菜单驱动函数默认使用的更标准化值(1-3)。这产生了更大范围的混淆输出,人们可以构建更彻底的检测结果。然后针对第二个函数检查每个混淆命令:
2.Get-DosDetectionMatch- 检查输入命令(字符串)与输入到$regexDetectionTerms函数中数组的所有正则表达式检测值。这会自动调用, Invoke-DosTestHarness但也可以以独立方式调用。

在每个测试工具调用结束时,会显示正确的命令执行和检测的统计信息,以便维护人员可以快速识别哪些命令有0个或仅有1-2个检测匹配,哪些可能需要更好的覆盖范围。

最后,为了避免需要维护者不得不运行测试工具来开始,我已经 在四个混淆函数的每一个中分解出的Samples目录中提供了1000个示例命令。格式包括.txt文件,Security和Sysmon .evtx文件。我在$regexDetectionTerms数组中包含了一对样本检测规则Invoke-DOSfuscationTestHarness.psm1,但在测试样本混淆命令时,您会希望添加和测试更多规则)。除了使用原始命令的.txt文件之外,还有包含1000个样本命令中的每一个的过程执行日志(Sysmon EID 1事件)的.evtx文件。这些事件日志对构建基于细微子进程执行的指示器非常有用,这些执行是构建Invoke-DOSfuscation的几种构建块技术的副产品。


要开始使用,只需运行以下命令即可显示与当前检测规则不匹配的样本混淆命令:


  1. (Get-Content .\Samples\STATIC_1-of-4_Out-DosConcatenatedCommand.txt) | where-object { -not (Get-DosDetectionMatch -Command $_).Detected }
复制代码

要从Security EID 4688中记录的执行事件日志中测试混淆的命令和子进程,只需运行:


  1. (Get-WinEvent -Path .\Samples\DYNAMIC_SECURITY_EID4688_1-of-4_Out-DosConcatenatedCommand.evtx) | where-object { $_.Message } | foreach-object { ($_.Message.Split("`n") | select-string '^\tProcess Command Line:\t') -replace '^\tProcess Command Line:\t','' } | where-object { -not (Get-DosDetectionMatch -Command $_).Detected }
复制代码

安装


Invoke-DOSfuscation的源代码托管在Github上,你可以从这个仓库下载,分叉和查看(https://github.com/danielbohannon/Invoke-DOSfuscation)。请通过与此项目相关的Github错误跟踪器报告问题或功能请求。


安装:
  1. <p class="MsoNormal"><span lang="EN-US">Import-Module .\Invoke-DOSfuscation.psd1</span></p><p class="MsoNormal"><span lang="EN-US"> </span></p><p class="MsoNormal"><span lang="EN-US">Invoke-DOSfuscation</span></p>
复制代码








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表评论
您需要登录后才可以回帖 登录 | 注册