kayl22/ObfuscateAlchemy

GitHub: kayl22/ObfuscateAlchemy

一款整合 payload 加密(XOR/RC4)与多种格式混淆(IPv4/IPv6/MAC/UUID)的恶意软件开发辅助工具。

Stars: 1 | Forks: 0

# Alchemy

ObfuscateAlchemy

Alchemy 是一个涵盖加密和混淆 payload 全过程的工具。截至 v1.2 版本,它支持: **混淆:** - Ipv4 混淆 - Ipv6 混淆 - MAC 混淆 - UUID 混淆 **加密:** - XOR - RC4 ## 用法 ### 1. 获取 ObfuscateAlchemy 首先,将此仓库克隆到你的本地文件系统中。 ``` # 克隆 repo git clone https://github.com/kayl22/ObfuscateAlchemy cd ./ObfuscateAlchemy ``` ### 2. 编译 你可以使用 makefile 脚本通过 `gcc` 进行编译。 ``` # 使用 makefile 编译 make install ``` 这将会编译二进制文件并将其放入 `ObfuscateAlchemy` 目录中。 你也可以在 Windows 上使用这个单行命令进行编译。 ``` # 在 windows 中编译 cl.exe "./src/main.c" "./src/libs/utils/flags/flags.c" "./src/libs/utils/bin/bin.c" "./src/libs/encrypt/key/key.c" "./src/libs/encrypt/xor/xor.c" "./src/libs/encrypt/rc4/rc4.c" "./src/libs/techniques/ipv4/ipv4.c" "./src/libs/techniques/ipv6/ipv6.c" "./src/libs/techniques/mac/mac.c" "./src/libs/techniques/uuid/uuid.c" /Fe:.\alchemy.exe ``` ### 3. 使用 编译完成后,只需传入你的 payload 文件并指定混淆技术即可。如果你还想添加一层加密,也可以指定加密算法和密钥。 这是 alchemy 的帮助面板: ``` ▄▄▄· ▄▄▌ ▄▄· ▄ .▄▄▄▄ .• ▌ ▄ ·. ▄· ▄▌ ▐█ ▀█ ██• ▐█ ▌▪██▪▐█▀▄.▀··██ ▐███▪▐█▪██▌ ▄█▀▀█ ██▪ ██ ▄▄██▀▐█▐▀▀▪▄▐█ ▌▐▌▐█·▐█▌▐█▪ ▐█ ▪▐▌▐█▌▐▌▐███▌██▌▐▀▐█▄▄▌██ ██▌▐█▌ ▐█▀·. ▀ ▀ .▀▀▀ ·▀▀▀ ▀▀▀ · ▀▀▀ ▀▀ █▪▀▀▀ ▀ • By: kayl22 \(^v^)/ Obfuscating payloads with love <3 ================== Flags: )> -h / --help | Print this help Panel :D )> -i / --input | Pass the filepath with the payload to obfuscate )> -t / --technique | Specify the technique to employ for payload obfuscation )> -e / --encrypt | Specify the encryption algorithm to employ prior to obfuscation )> -k / --key | Encryption key used to encrypt the payload prior to obfuscation ======= Valid Algorithms: |> xor | xor payload before obfuscating it |> rc4 | rc4 encrypt payload before obfuscating it ======= Valid Techniques: |> ipv4 | Obfuscate payload in the form of IPv4s, 4 payload bytes each. |> ipv6 | Obfuscate payload in the form of IPv6s, 16 payload bytes each. |> mac | Obfuscate payload in the form of MAC addresses, 6 payload bytes each |> uuid | Obfuscate payload in the form of UUID strings, 16 payload bytes each ================== USAGE: # 将 raw payload 传递给 c unsigned char array ./alchemy -i [/file/path/to/file.bin] > ./payload.h # 仅混淆 raw payload ./alchemy -t [technique] -i [/file/path/to/file.bin] > ./payload.h # 仅加密 payload ./alchemy -e [algorithm] -k [key] -i [/file/path/to/file.bin] > ./payload.h # 先加密 payload 然后将其混淆 ./alchemy -e [algorithm] -k [key] -t [technique] -i [/file/path/to/file.bin] > ./payload.h ``` 如上所述,我们可以简单地使用 `-i/--input` 标志指定包含原始 payload 的输入文件,然后使用 `-t/--technique` 标志指定混淆技术。此外,如果我们想在混淆之前添加一层加密,可以使用 `-e/--encrypt` 标志来指定我们要使用的加密算法,并使用 `-k/--key` 标志提供自定义的加密密钥。 ``` # Ex. 将 raw payload 混淆为 ipv6 array ./alchemy -t ipv6 -i ./mypayload.bin > obfuscated_payload.h # Ex. 使用 "C00LCA75" key 对 payload 进行 Xor-encrypt,然后将其混淆为 ipv4 array ./alchemy -e xor -k "C00LCA75" -t ipv4 -i ./mypayload.bin > obfuscated_payload.h ``` 这会将所有生成的带有 "ipvX" 地址的 C 指针数组存储到 `obfuscated_payload.h` C 头文件中,这样我们随后就可以轻松地将其包含在我们的项目中。 这是执行上述加密+混淆命令后 `obfuscated_payload.h` 的内容。 `./alchemy -e xor -k "C00LCA75" -t ipv4 -i ./mypayload.bin > obfuscated_payload.h` **输出:** ``` const char *Ipv4Array[155] = { "42.94.67.56", "34.45.91.15", "99.83.88.41", }; const size_t Ipv4ArrayLen = (sizeof(Ipv4Array) / sizeof(Ipv4Array[0])); const char key[8] = {'C', '0', '0', 'L', 'C', 'A', '7', '5'}; const size_t key_len = 8; ``` ## 解混淆 Alchemy 涵盖了整个混淆过程,但涉及到解混淆时,你需要在你的项目中手动实现,这就是为什么会有一个 `deobfuscate` 目录,其中包含用于使用 Windows API 轻松解混淆每个生成的指针数组的库,因此对于你的 Windows maldev 项目,你可以包含这些库,以便快速实现整个解混淆过程。 ## 解密 至于解密,你也有一个 `./decrypt` 目录,其中包含用于轻松解密已解混淆 payload 的库。 ## 版本 - v1.0:发布。 - 混淆技术:ipv4、ipv6、mac 和 uuid - v1.1:加密更新 (O_o) - 加密技术:xor - 其他:展示升级 :) - v1.2:RC4 更新 - 加密技术:rc4 - 其他:修复了几个 bug / "技术问题" ## 最终想法 这个项目是在 `Maldev Academy` 的 payload 混淆模块之后创建的。我决定创建这个项目,以便能够轻松地混淆我的 payload(尽管像 `HellShell` 这样的工具已经存在 :b)。尽管如此,我打算进行未来的更新,并随着我 maldev 之旅的继续,添加更多混淆技术,同时进入“加密领域”,并在某个时候添加一些加密算法,提供随机生成密钥或手动提供自定义密钥的选项。
标签:DNS 反向解析, 中高交互蜜罐, 免杀技术, 客户端加密, 恶意软件开发, 数据加密, 暴力破解检测, 端点可见性, 载荷混淆