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.c和EntropyReducer.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开源许可证协议。
EntropyReducer:https://github.com/Maldev-Academy/EntropyReducer
【FreeBuf粉丝交流群招新啦!
在这里,拓宽网安边界
甲方安全建设干货;
乙方最新技术理念;
全球最新的网络安全资讯;
群内不定期开启各种抽奖活动;
FreeBuf盲盒、大象公仔......
扫码添加小蜜蜂微信回复“加群”,申请加入群聊】
文章引用微信公众号"FreeBuf",如有侵权,请联系管理员删除!