Forblaze:一款功能强大的macOS隐写Payload生成器
作者:admin | 时间:2021-8-12 06:50:09 | 分类:黑客工具 隐藏侧边栏展开侧边栏
项目介绍
Forblaze是一款功能强大的macOS隐写Payload生成器,该项目旨在给研究人员提供针对macOS Payload的隐写能力。该工具基于Python 3开发,它所构建出的Obj-C文件经过编译之后可以从隐写文件中提取所需的加密URL,然后通过HTTPS获取Payload,并直接在内存中执行它们。该工具使用的是自定义加密算法,这样可以有效防止反病毒引擎检测到它。
Forblaze可以利用页眉和页脚字节来识别加密字节在隐写文件中的位置,并使用compile_forblaze.m文件中硬编码的密钥来进行揭秘。这个密钥可以被存储下来,并进行复用,这样可以允许使用不同的URL来获取不同的Payload,同时也可以保证相同的Forblaze经过编译之后仍然能够稳定运行,并成功执行Payload。
工具要求
Python 3环境(9+)
其他相关的Python库(可通过pip3完成安装)
Clang环境(用于项目编译)
工具使用
usage: forblaze_url.py [-h] [-innocent_path PATH] [-o OUTPUT] [-len_key LENGTH_OF_KEY] [-compile_file COMPILE_FILE] [-url_to_encrypt URL] [-supply_key SUPPLIED_KEY] [-stego_location STEGO_LOCATION] [-compiled_binary COMPILED_BINARY]
参数选项
-h, --help:显示帮助信息和退出程序。
innocent_path PATH:提供需要处理文件的完整路径。
-o:提供隐写文件的存储完整路径。
-len_key LENGTH_OF_KEY:提供一个一个正整数,它将作为密钥的长度(以字节为单位),默认值为16。这个整数必须介于10和150字节之间,我们可以自行控制,但是更大的密钥会增加你Payload的体积。
-compile_file COMPILE_FILE:提供需要编辑的C++文件完整路径。
-url_to_encrypt URL:需要嵌入至编译文件中的URL地址。
supply_key SUPPLIED_KEY:设置需要使用的指定密钥,其格式必须为“-supply_key "\x6e\x60\x..."”。
stego_location STEGO_LOCATION:设置隐写文件在目标主机上的注入位置,需要使用严格的完整地址,比如说“/Users/<>/Documents/file.jpg”。
-compiled_binary COMPILED_BINARY:设置需要从中提取URL的已编译源码(将在内存中运行)名称,默认为forblaze。
检测和防御
隐写术其实很难被发现,如果你知道隐写文件的准确位置,你可以在常规文件的结尾EOF(例如jpeg的“FFD9”之后)处提取可疑字节,但这些可疑字节仍将包括实际加密的Payload和无意义的随机字节,我们很难将它们区分开来。
对于检测和防御的角度来说,我们知道Forblaze指定的头和尾字节,就可以通过查看这些字节并查找重复字节的模式来进行检测了。如果捕捉到了Payload,就可以重新重新设置二进制文件并尝试定位隐写文件,然后尝试使用硬编码密钥和页眉/页脚反转所调用的URL来进行安全防御或检测了。
测试平台
本工具已经在各种版本的macOS系统上进行过测试,其中包括Big Sur和Catalina。
项目地址
Forblaze:【GitHub传送门】
参考资料
https://blogs.blackberry.com/en/2017/02/running-executables-on-macos-from-memory