EXOCET 优于 Metasploit 的“Evasive Payloads”模块,因为 EXOCET 在 GCM 模式(Galois/Counter 模式)下使用 AES-256。Metasploit 的 Evasion Payloads 使用易于检测的 RC4 加密。虽然 RC4 可以更快地解密,但 AES-256 很难确定恶意软件的意图。
可以使用 Metasploit 构建 Evasive Payload,然后将其与 EXOCET 链接。因此 EXOCET 将通过 AES-256 解密,然后 Metasploit Evasive Payload 从 RC4 解密自身。
EXOCET 不限于运行 Python 的单个代码库或平台。EXOCET 适用于 Go 支持的所有平台和架构。
它摄取现在可被防病毒引擎检测到的危险恶意软件
然后加密它们并生成它自己的 Go 文件
然后该 Go 文件可以交叉编译为 99% 的已知架构
执行后,加密的有效负载被写入磁盘并立即在命令行上执行
或者,它会使用 amenzhinsky 的 go-memexec 模块github.com/amenzhinsky/go-memexec在内存中执行重构的 shellcode,而不是文件删除
一个自定义的shellcode executor正在开发中,它需要普通的C shellcode,经过num-transform后,它会在分配正确的虚拟地址空间并在Windows上授予它RWX权限后创建一个新进程来运行它
EXOCET,无论您使用哪个二进制文件来运行它,都需要 Golang 才能工作。默认情况下,它会生成一个 crypter .go 文件。
Windows 用户:安装 Go Here
Linux 用户:运行 sudo apt-get update && sudo apt-get install -y golang
您必须在 golang 中安装 EXOCET 源文件 go get github.com/tanc7/EXOCET-AV-Evasion
子需求也将被下载和安装
对于 Windows 和 Mac x64 用户,预编译的二进制文件位于 /bin 文件夹中
运行:
go run EXOCET.go detectablemalware.exe outputmalware.go
系统会自动为您生成密钥。密钥长度为 64 个字符,完全由 bash 和 cmd.exe 外壳管道重定向器组成,通过在取证分析员的设备上引起不可预测的破坏性行为来混淆和破坏对密钥的蛮力尝试。
对于 64 位 Windows 目标
env GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o outputMalware.exe outputmalware.go
出来一个outputmalware.exe
文件
对于 64 位 MacOS 目标
env GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w" -o outputMalware.macho outputmalware.go
对于 64 位 Linux 目标
env GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o outputMalware.elf outputmalware.go
更新:
内联挂钩
通过模拟 BlackRota 和 gobfuscate 模块进行混淆
工艺镂空
反射 DLL 注入
远程进程注入
ThreadLocalStorage 回调
顶级异常处理程序的注册
定制 UPX 包装
实验:
生成 shellcode,这可以来自 msfvenom Meterpreter 有效载荷、Cobalt Strike Beacons 或您自己的 C 兼容格式的自定义 shellcode
第 2 步:仅将 shellcode 的字节复制到像 sc.txt 这样的文本文件中,不包括引号
第 3 步:您的 shellcode 文件应如下所示。原始shellcode
第 4 步:现在运行命令 go run exocet-shellcode-exec.go sc.txt shellcodetest.go KEY
详细项目地址:https://github.com/tanc7/EXOCET-AV-Evasion