Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Silverseal — Linux 后渗透框架,带有 UEFI bootkit,可在现代 Linux 系统上持久且隐蔽地加载基于 Rust 的内核模块 rootkit。 | Kitploit
工具/GitHubGitHub/idov31/silverseal
持久化机制漏洞利用后渗透利用恶意软件分析红队Payload 开发二进制利用
GitHubidov31/silverseal

Silverseal

Linux 后渗透框架,带有 UEFI bootkit,可在现代 Linux 系统上持久且隐蔽地加载基于 Rust 的内核模块 rootkit。

查看仓库
171149218天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Silverseal - Linux Bootkit 与 Rust 内核 Rootkit 框架

Silverseal Logo

rust assembly linux

Silverseal 是一个用 Rust 编写的开源 Linux bootkit 研究框架。它演示了 UEFI bootkit 如何挂钩 Linux 内核早期启动过程,以持久且隐蔽地加载基于 Rust 的内核模块 rootkit。

该项目探索了 UEFI bootkit 开发、Linux 内核启动链挂钩、rootkit 加载以及现代 Linux 系统上的预操作系统持久化。

  • silverseal-bootkit:一个用 Rust 实现的 UEFI bootkit,它挂钩 Linux 内核的早期启动过程以加载 rootkit 模块。
  • silverseal-rootkit:一个基于 Rust 的 Linux 内核模块。

设计

Silverseal Design Diagram

安装依赖

Ubuntu

安装 Rust-for-Linux 外部模块构建所需的软件包,如有需要则安装 rustup,将默认工具链切换为 stable,添加 rust-src,安装 bindgen-cli,并在当前运行的内核未暴露 CONFIG_RUST=y 时发出警告。

./scripts/install_dependencies.sh

WSL

[!IMPORTANT]
如果你使用的是 WSL,请确保设置 WSL 2 并安装 Ubuntu。此脚本会构建一个启用了 Rust 的自定义 WSL2 内核,准备一个模块 VHDX,并可选地写入一条 Windows .wslconfig 条目,将 WSL 指向生成的内核。

./scripts/wsl_setup.sh

该脚本会自动安装 Ubuntu 构建依赖,克隆匹配的 Microsoft WSL2 内核源代码,启用 CONFIG_RUST,使用 LLVM 构建内核,并为外部模块构建配置 /lib/modules/<release>/build。

查看支持的选项:

./scripts/wsl_setup.sh --help

要针对你想要的目标内核构建 rootkit,你需要在构建机器(WSL 或原生 Linux 机器)上运行以下脚本:

./scripts/ubuntu_target_setup.sh <uname -r of your target kernel>

此流程会安装匹配的 linux-headers-<kernel> 和 linux-lib-rust-<kernel> 软件包,安装 generic-kernel 流程所使用的 Ubuntu 打包的 Rust 1.82 工具链,修复 /usr/src/linux-headers-<kernel>/rust(如果该符号链接已损坏),并打印之后要使用的确切 make 命令。

构建

Rootkit

使用内核构建系统构建 rootkit。不要使用 Cargo 进行真正的模块构建。

cd Silverseal/silverseal-rootkit
make

构建完成后,模块产物会被暂存到 silverseal-rootkit/target/ 中。

从 WSL 为 Ubuntu generic 目标内核构建 rootkit:

cd Silverseal/silverseal-rootkit
make clean
PATH=/usr/bin:/bin:$PATH \
RUST_LIB_SRC=/usr/src/rustc-1.82.0/library \
make RUST_MIN_TOOLCHAIN= \
KDIR=/usr/src/linux-headers-6.17.0-20-generic \
CC=x86_64-linux-gnu-gcc-13 \
RUSTC=rustc-1.82 \
RUSTDOC=rustdoc-1.82

模块 Makefile 会自动检测 /usr/src/linux-headers-* 目标,并通过 Kbuild 的 Rust 标志变量传递 Rust 兼容性 cfg,以便较新的 Ubuntu module! 元数据模式使用 authors 而不是较旧的 author 键。

构建完成后,验证目标内核版本已正确嵌入:

modinfo target/silverseal_rootkit.ko | grep vermagic

Bootkit

bootkit 构建需要 PATH 中有 nasm。该 crate 已配置为以 x86_64-unknown-uefi 为目标,构建脚本会将 asm/x64/lkm_loader.asm 和 asm/x64/lkm_stager.asm 汇编为嵌入 EFI 镜像的扁平二进制 blob。

cd Silverseal/silverseal-bootkit
cargo build --release

生成的 EFI 二进制文件写入:

Silverseal/target/x86_64-unknown-uefi/release/silverseal-bootkit.efi

测试

部署脚本目前期望仓库根目录中有一个名为 silverseal-bootkit.efi 的文件。构建 bootkit 后,将 EFI 产物复制到那里,然后从仓库根目录运行安装脚本。

cd Silverseal
cp target/x86_64-unknown-uefi/release/silverseal-bootkit.efi ./silverseal-bootkit.efi
sudo ./scripts/setup_silverseal.sh

该脚本在 EFI 分区上执行直接替换:

  • 将 /boot/efi/EFI/ubuntu/grubx64.efi 移动到 /boot/efi/EFI/ubuntu/grubx64.efi.original
  • 将 ./silverseal-bootkit.efi 移动到 /boot/efi/EFI/ubuntu/grubx64.efi 的位置

移除 Silverseal

要移除 Silverseal,请从 .original 备份恢复原始 GRUB 二进制文件:

cd Silverseal
sudo ./scripts/restore_silverseal.sh

串口日志设置

Linux

  • 识别串口:
ls -la /dev/ttyS*

常见端口:/dev/ttyS0 (COM1)、/dev/ttyS1 (COM2)

  • 使用 minicom 监控串口输出:
sudo minicom -D /dev/ttyS0 -b 115200

# Or with `screen`:
sudo screen /dev/ttyS0 115200

# Or with `picocom`:
sudo picocom -b 115200 /dev/ttyS0

Windows

  • 下载并运行 PuTTY
  • 选择 "Serial" 连接类型
  • 输入你在虚拟机中创建的串口线路(例如 \\.\pipe\com_1)
  • 将速度设置为 115200
  • 在 Connection > Serial 下,将 "Flow control" 设置为 "None",将 "Parity" 设置为 "None"
  • 点击 Open

你也可以使用辅助脚本,它会以 115200 波特率持续将 PuTTY 重新连接到 \\.\pipe\com_1:

powershell -ExecutionPolicy Bypass -File .\scripts\connect-vm.ps1

资源

  • UEFI Crate
  • Elixir Bootlin
  • memN0p's Bootkit
下载工具