作者: Arno0x0x - @Arno0x0x
该工具的作用是获取一个文件(任何类型的文件),对其进行加密,并将其作为资源嵌入到HTML文件中,同时包含一个自动下载程序,模拟用户点击嵌入的资源。
然后,当用户浏览该HTML文件时,嵌入的文件会即时解密,保存到临时文件夹中,并呈现给用户,如同从远程站点下载一样。根据用户的浏览器和呈现的文件类型,文件可能由浏览器自动打开。
该工具有两种形态,提供相同的整体功能,但在使用方式上略有不同:
一个Python脚本,基于模板生成输出HTML文件,使用RC4加密例程,并将解密密钥嵌入输出文件中。生成的HTML既可以由目标用户浏览,也可以作为附件发送。
一个HTML/JavaScript,你可以将文件拖入其中进行加密,生成输出HTML文件,使用WebCrypto API,但不嵌入解密材料(密钥和计数器)。相反,解密材料作为一组URL参数显示,需添加到指向生成的HTML文件的URL中:http(s)://hosting.server.com/result.html#hexencodedkey!hexencodedcounter。因此生成的HTML文件不能作为附件发送。
这种技术的主要优点是解密材料不嵌入到文件本身中,从而防止任何不拥有完整URL的系统(例如:拦截代理)分析和获取载荷。
附注:
该工具的灵感来源于伟大的 'demiguise' 工具:https://github.com/nccgroup/demiguise
用于二进制输入(来自XLL文件)的 b64AndRC4 函数是以下两个代码的混合体: https://gist.github.com/borismus/1032746 和 https://gist.github.com/farhadi/2185197
查看 https://gist.github.com/Arno0x/f71a9db515ddea686ccdd77666bebbaa 了解如何轻松创建恶意XLL文件,这是一个恶意文档的完美示例,可通过此方法交付。
在HTML模板(html.tpl文件)中,建议在下面的位置插入你自己的环境密钥派生函数,以替代 'keyFunction'。你应该从环境中派生密钥,以便它仅适用于你的目标环境(而非沙箱中)。
payloads_examples 目录中提供了几个载荷示例文件。例如 calc.xll 是一个Excel加载项(XLL)文件,包含用于x86进程的metasploit shellcode,以启动 calc.exe 进程。
使用Python脚本
1/ 从XLL文件生成恶意HTML文件,并带有密钥:
python embedInHTML.py -k mysecretkey -f example_calc.xll -o index.html
2/ 将HTML文件放置在Web服务器上(可以通过 -w 标志为你启动一个服务器)
使用HTML/JavaScript
1/ 在浏览器中打开 embedInHTML.html 文件
2/ 将载荷文件拖入页面(你可以选择更改输出文件名)
3/ 保存结果文件,并记下作为URL参数添加到文件名中的解密材料,格式为:http(s)://hosting.server.com/result.html#hexencodedkey!hexencodedcounter
最后...
将目标浏览器指向HTML文件,让魔法发生:
本工具仅用于合法且正当的目的:
引用Empire作者的话: 要构建对合法信息安全行业有用的攻击性工具,同时防止恶意行为者滥用它们,这是不可能的。