NovaLdr ⚜️
NovaLdr 是一个用 Rust 编写的无线程模块踩踏(Threadless Module Stomping)工具,旨在作为探索恶意软件开发世界的学习项目。它使用间接系统调用和字符串加密等高级技术来实现其功能。该项目并非旨在成为完整或完善的产品,而是深入恶意软件技术层面的旅程,展示各种技术和特性。
功能概览 💡
- 间接系统调用
- 字符串加密
- Shellcode 加密: 简单 XOR 并将 Shellcode 字节转换为 MAC 地址
- 无线程执行
- 无线程注入: 将蹦床写入给定 DLL 内的指定函数,并重定向以加载另一个 DLL。
- JMPThreadHijack: 在不调用 SetThreadContext 的情况下劫持线程。仍需改进,因为我懒惰且未完全实现以维持线程原始功能。只是一个快速而粗糙的 PoC(注意负载执行控制。浏览器往往会多次执行负载)。
- 模块取消链接
- 覆盖 DOS 头魔术字节。
- 从目标进程中清除 DLL 基地址。
- 从目标进程中消除 DLL 名称字符串。
- 从模块列表中取消链接模块
- 生成进程: 使用 NtCreateUserProcess 生成挂起的进程,并欺骗 PPID 并将进程设置为 Block DLL
- Ntdll 取消挂钩: 使用 Parun 的 Fart 技术进行远程和本地 Ntdll 取消挂钩
- 没有 GetModuleHandleA 和 GetProcAddress: 使用 NT 函数的自定义函数
- 睡眠加密: 自定义睡眠函数,在睡眠期间使用单独的线程加密堆栈。
- HWBP: 进程内无补丁 AMSI + ETW 绕过,对所有线程使用 HWBP。
用法 🛠️
- 生成 Shellcode 文件:
msfvenom -p windows/x64/messagebox TITLE=NovaLdr TEXT='In memory of all those murdered in the Nova party massacre 7.10.2023' ICON=WARNING EXITFUNC=thread -b '\xff\x00\x0b' -f raw -e none -o Nova_MSG.bin
- 加密 Shellcode 文件并将其转换为 MAC 地址格式
python bin2mac.py Nova_MSG.bin > nova_msg.txt
- 将输出文件的内容复制并粘贴到 main.rs 文件中
- 编译程序只需运行文件
compile.bat
免责声明 📢
NovaLdr 仅供教育和研究目的使用。作者不对因使用本程序而引起的任何误用或损坏负责。在对任何目标进行测试之前,请务必获得许可。
贡献 📈
由于本项目是一个学习之旅,欢迎贡献、建议和改进,使 NovaLdr 成为学习 Rust 恶意软件开发的有价值资源。
资源与致谢 📍
POC

PE-SIEVE
