工具更新:Myosotis-免杀框架-1.1.0

admin 2025年3月12日19:53:00评论21 views字数 2694阅读8分58秒阅读模式

Myosotis-免杀框架-1.1.0

简介

本项目旨在实现免杀模板动态化、私有化,而不是直接提供一键生成免杀项目,需要使用人员本身具有一定的rust语言基础。

通过模块化一个完整loader的各个功能,自动组装模块生成免杀项目;

通过模块导入功能实现模块私有化,增加loader寿命;

添加链式加密后加密方式更加灵活,可交叉生成更多模板,同时加解密模板统一输入输出方便读者自行编写模板导入。

本次更新加入链式加密,通过排列组合可产生的加密链条成几何倍数增加,知识星球内11种加密方式理论上可以产生上亿条加密链条。

工具更新:Myosotis-免杀框架-1.1.0

已知问题

1、首次使用由于rust需要下载库,因此可能卡住几分钟,换源耐心等待即可,加载过的库后续使用就很快了。

2、链式加密可能导致项目失败,推荐使用成熟的加密算法有bug可手动调试项目或提issue。

3、尽管已经去掉项目调试信息,但部分库仍然会将机器路径带到exe中,建议虚拟机编译使用谨防溯源。

更新功能

·模板分类

·进程注入路径自定义

·模板导入检测

·链式加密

编译环境

环境问题参考网上安装教程即可

Visual Studio 2022(集成mingw64)

rustc 1.83.0 (90b35a623 2024-11-26)

项目结构

config:包含用户导入模板以及部分默认功能模板output:项目输出output.log:日志方便排查问题

项目功能

运行主程序选择相关参数,即可在output目录下生成rust项目,编译好的程序在output随机项目名targetrelease

考虑到免杀的及时性,项目内仅提供部分基础加密加载模板,有rust基础可自行编写模板,或选择文末加入我的知识星球获取更多模板

基础配置:shellcode:各个远控生成的二进制shellcode(必选)单体加载:生成单文件exe项目分离加载:在项目目录下生成encryption.bin,使用时exe直接跟加密文件即可,可重命名远程加载:填写远程加载url,在项目目录下会生成encryption.bin,然后将encryption.bin放到对应vps即可,文件名和填写的url对应代码配置:代码分类用于对部分loader只支持特定系统以及进程注入的路径进行自定义加载方式:主要是选择执行shellcode的模板(必选)加密方式:选择对shellcode的加密链,先选先加密(至少选一个)反虚拟机:反沙箱和分析等,也可以加入自己的小功能(可选、可多选)花指令:增加代码混淆等(可选、可多选)其他配置:图标:exe图标(可选)捆绑文件:需要释放的word或pdf等(可选)伪造签名:利用签名复制工具sigthief实现(可选)
工具更新:Myosotis-免杀框架-1.1.0

模板导入:

模板导入检测功能已更新,简单检测几个关键点,新增加载模板分类,主要为了对进程注入类注入进程进行自定义,如:Early Bird等

工具更新:Myosotis-免杀框架-1.1.0
模板导入

模板导入说明

模板导入功能主要实现各种轮子的导入,导入模板需要满足下面内容

加解密模板

需要导入cargo.toml的除项目信息内容

例:

[dependencies]base64 = "0.21"

加密模板:

需要导入主要代码,其中加密函数为pub且只有这一个pub方法,输入&[u8],输入Vec<u8>

例:

use base64::encode;use std::fs::File;use std::io::{self, Read, Write};pubfnbase64_encrypt(input: &[u8]) -> Vec<u8> {// 执行 base64 编码let encoded = encode(input);// 返回编码后的字节数组    encoded.into_bytes()}

解密模板:

需要导入主要代码,其中加密函数为pub且只有这一个pub方法,输入&[u8],输入Vec<u8>

use base64::decode;use std::fs::File;use std::io::{self, Read};pubfnbase64_decrypt_to_shellcode(input_data: &[u8]) -> Vec<u8> {// 将 Base64 编码的数据解码为字节数组    decode(input_data).expect("")}

加载模板

需要导入cargo.toml的除项目信息内容

例:

[dependencies]winapi = { version = "0.3.9", features = ["memoryapi", "winnt"] }

加载代码:

加载代码是唯一需要写main函数的模板,解密函数用#encryption#代替,输入字节内容用#encryption_shellcode#代替

当选择进程注入类时还需要用#process_name#代替进程名

use std::ptr::null_mut;use winapi::um::memoryapi::VirtualAlloc;use winapi::um::winnt::{MEM_COMMIT, PAGE_EXECUTE_READWRITE};/// 分配可执行内存并运行 baseunsafefnexecute_base(base: &[u8]) {//你的加载代码}fnmain() {let base_en: &[u8] =#encryption_shellcode#;let base = #encryption#(base_en);unsafe {        execute_base(&base);    }}

花指令模板和反虚拟机模板

需要导入cargo.toml的除项目信息内容

例:

[dependencies]rand = "0.8"  # 添加 rand crate 来支持随机数生成

代码模板:

只需要实现pub,无输入输出

use rand::Rng;use std::{thread, time};pubfncalculate_pi() -> f64 {//你的花指令模板和反虚拟机代码}

注意事项

模板名称不要包含特殊字符

导入库文件时不要使用换行如下

use windows_sys::Win32::System::Memory::{    VirtualAllocEx, VirtualProtectEx, MEM_COMMIT, MEM_RESERVE, PAGE_EXECUTE, PAGE_READWRITE,};

这会导致识别失败,同一个导入只占用一行

部分生成模板免杀测试

工具更新:Myosotis-免杀框架-1.1.0
360&火绒
工具更新:Myosotis-免杀框架-1.1.0
cs上线

项目地址:

https://github.com/1ucky7/Myosotis-1.0.0

 

原文始发于微信公众号(攻有道):工具更新:Myosotis-免杀框架-1.1.0

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月12日19:53:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   工具更新:Myosotis-免杀框架-1.1.0https://cn-sec.com/archives/3834743.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息