恶意软件作者和渗透测试者经常会利用二进制修改技术来绕过 YARA 规则以及静态杀毒引擎的检测。Beatrice.py 就是这么一款工具,它通过使用相同大小的替代 x64 汇编操作码,对二进制文件中的机器代码进行修补,从而改变可执行文件的特征。该工具还会严格匹配机器指令,避免破坏原始程序的功能结构。

用法
python3 beatrice.py
@@@@@@@ @@@@@@@@ @@@@@@ @@@@@@@ @@@@@@@ @@@ @@@@@@@ @@@@@@@@ @@@@@@@ @@@ @@@
@@@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@ @@@@@@@@ @@@ @@@@@@@@ @@@@@@@@ @@@@@@@@ @@@ @@@
@@! @@@ @@! @@! @@@ @@! @@! @@@ @@! !@@ @@! @@! @@@ @@! !@@
!@! @!@ !@! !@! @!@ !@! !@! @!@ !@! !@! !@! !@! @!@ !@! @!!
@!@!@!@! @!!!:! @!@!@!@! @!! @!@!!@! !!@ !@! @!!!:! @!@@!@! !@!@!
!!!@!!!! !!!!!: !!!@!!!! !!! !!@!@! !!! !!! !!!!!: !!@!!! @!!!
!!: !!! !!: !!: !!! !!: !!: :!! !!: :!! !!: !!: !!:
:!: !:! :!: :!: !:! :!: :!: !:! :!: :!: :!: :!: :!:
:: ::: :: :: ::: :: ::: :: :: ::: :: ::: ::: ::
:: : : :: : : : : : : : : : : :: :: ::: : :
Usage: beatrice.py <binary>
-h for usage and flags
-v for Verbose mode
-s for Safer mode, normal mode already mostly safe but still may break some binaries
这个工具的功能
它将:
- 生成简单的 x64 汇编指令及其替代指令的模式,将它们转换为机器代码,如果匹配则修补机器代码。
- 构建不同的汇编指令列表,其中包含立即数和其他不易转换为模式的指令,并对其应用适当的更改。
- 尽可能采用其他方式对指令进行编码。
- 创建一个功能完全相同的二进制文件,但应用上述补丁,这将有助于绕过 YARA 规则和一些防病毒解决方案。
它不会:
- 成为一种万能的解决方案。
- 仅在专业版中可修改字符串。
- 修改对 Windows API 函数的导入或调用,这可能会被某些杀毒软件和 EDR 检测到。
- 完全绕过基于行为的检测。虽然这种方法修改了机器代码,足以偶尔欺骗基于行为的检测,但不会改变其核心功能,因此仍然存在被检测的可能性。
虽然该工具本身可以使某些二进制文件绕过杀毒软件,但最好将其与其他规避技术结合使用(例如:修改 shellcode 以便与加载器一起使用,借助自定义或修改的工具)。
项目地址: https://github.com/raskolnikov90/Beatrice.py
想深入了解这类基于指令替换的免杀技术,以及更多逆向工程的玩法,可以到云栈社区的安全板块交流经验。
|