如何使用EntropyReducer降低Payload的熵并进行混淆处理

admin 2024年10月18日23:06:44评论3 views字数 981阅读3分16秒阅读模式
如何使用EntropyReducer降低Payload的熵并进行混淆处理

如何使用EntropyReducer降低Payload的熵并进行混淆处理

关于EntropyReducer 

EntropyReducer是一款针对Payload隐蔽性增强的安全工具,在该工具的帮助下,广大研究人员能够有效地降低Payload的熵,并对Payload代码使用串行链表进行混淆处理。

 工具下载 

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

git clone https://github.com/Maldev-Academy/EntropyReducer.git

接下来,将项目代码导入至Visual Studio并进行代码编译即可。

 工具使用 

EntropyReducer可以直接通过命令行来读取原始的Payload文件,并将混淆处理后的版本以相同文件名(带.ER前缀)的形式写入到输出目录中。

经过混淆处理后的最终版本Payload大小取决于BUFF_SIZE和NULL_BYTES的值,计算方式如下:

FinalSize = ((OriginalSize + BUFF_SIZE - OriginalSize % BUFF_SIZE ) / BUFF_SIZE) * (BUFF_SIZE + NULL_BYTES + sizeof(INT))

在自己的项目中使用EntropyReducer

我们可以直接将EntropyReducer.cEntropyReducer.h文件导入至自己的项目中,并调用相关的混淆/反混淆函数即可。

具体使用方法请参考项目提供的PoC/main.c文件。

 工具输出样例 

在下面的例子中,BUFF_SIZE被设置为了3,NULL_BYTES的值被设置为了1。

原始Payload的第一个数据块如下(FC 48 83):

如何使用EntropyReducer降低Payload的熵并进行混淆处理

相同的Payload代码块,但位于不同的偏移量:

如何使用EntropyReducer降低Payload的熵并进行混淆处理

 工具处理效果 

Megasploit生成的x64 calc Shellcode的熵为5.883:

如何使用EntropyReducer降低Payload的熵并进行混淆处理

相同的文件使用AES加密后的熵为7.110:

如何使用EntropyReducer降低Payload的熵并进行混淆处理

RC4算法处理相同文件后的熵结果为7.210:

如何使用EntropyReducer降低Payload的熵并进行混淆处理

使用EntropyReducer处理相同文件后的熵为4.093:

如何使用EntropyReducer降低Payload的熵并进行混淆处理

 许可证协议 

本项目的开发与发布遵循Apache-2.0开源许可证协议。

 项目地址 

EntropyReducerhttps://github.com/Maldev-Academy/EntropyReducer

原文始发于微信公众号(FreeBuf):如何使用EntropyReducer降低Payload的熵并进行混淆处理

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月18日23:06:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何使用EntropyReducer降低Payload的熵并进行混淆处理https://cn-sec.com/archives/1880475.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息