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

新闻资讯   2023-07-19 18:58   93   0  


关于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):




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



 工具处理效果 


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



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



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



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



 许可证协议 


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


 项目地址 


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


FreeBuf粉丝交流群招新啦!

在这里,拓宽网安边界

甲方安全建设干货;

乙方最新技术理念;

全球最新的网络安全资讯;

群内不定期开启各种抽奖活动;

FreeBuf盲盒、大象公仔......

扫码添加小蜜蜂微信回复“加群”,申请加入群聊




文章引用微信公众号"FreeBuf",如有侵权,请联系管理员删除!

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。