Forblaze:一款功能强大的macOS隐写Payload生成器

2021-08-24 15:53:09 浏览数 (1)

项目介绍

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环境(用于项目编译)

工具使用

代码语言:javascript复制
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 “x6ex60x…””。 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:https://github.com/asaurusrex/Forblaze

参考资料

https://blogs.blackberry.com/en/2017/02/running-executables-on-macos-from-memory

0 人点赞