使用 LoadLibraryA 和 GetProcAddress 从 ntdll 获取 NtQueueApcThreadEx 函数。
使用 VirtualAlloc 分配远程内存。
使用 STD::PTR::COPY 将 SHELLCODE 复制到分配的内存。
使用 VirtualProtect 将内存权限更改为可执行文件。
使用 GetCurrentThread 获取当前线程句柄。
使用 NtQueueApcThreadEx 执行 SHELLCODE
和我之前开发的 go 千机一样,一样是一键化生成,别问,问就是为了最大化的简便,目录结构如下
解压打开文件目录,把 beacon_x64.bin 放置在当前目录下,点击 一键生成.bat output 文件夹下,随机六位数命名 捆绑文件选择 捆绑文件存放在 bundle 文件夹下,默认放置打开损坏文档
如果不需要捆绑文件,把 main.rs 文件的 45 行注释掉 如果更换捆绑文件需要修改 src\forgery\bundle.rs 代码对应位置 编译选项优化 cargo clean cargo build --release cargo.toml 文件,默认已添加 [profile.release] opt-level = "z" lto = true codegen-units = 1 debug = false
panic = "abort" 在 static 目录下放置了四个常见图标,可修改对应名称进行调用 360 和火绒 安装 rust
安装 Rust 一门帮助每个人构建可靠且高效软件的语言。 https://www.rust-lang.org/zh-CN/tools/install
下载安装相应的版本,双击运行,默认选择模式 1 进行安装
配置环境变量 C:\Users\MSI-NB\.cargo\bin
输入 rustc -V 出现下图表示安装成功
rustup set profile minimal rustup update rustup update stable rustup default stable 更换 rust 下载源 为了速度更快,我们需要修改 rust 的配置文件来使用其它国内源作为默认下载源。 步骤如下: 找到当前用户目录下 /Users/ 用户名 /.cargo/ 的.cargo 文件夹,Winl 是 C:\Users\ 用户名.cargo 进入名为.cargo 的文件夹(目录) 新建一个空文本文件,命名为:config
将以下文本粘贴进去,保存关闭 [source.crates-io] registry = "https://github.com/rust-lang/crates.io-index" replace-with = 'ustc' [source.ustc] registry = "git://mirrors.ustc.edu.cn/crates.io-index" 同样,也可以配置阿里云源: [source.crates-io] registry = "https://github.com/rust-lang/crates.io-index" replace-with = "rustcc" [source.rustcc] registry = "https://code.aliyun.com/rustcc/crates.io-index" 为防止 cargo 下载失败报 SSL connect error 错误,还可以在 config 文件添加以下配置 : [http]
check-revoke = false ble rustup default stable
|