Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Silverseal — UEFI 부트킷을 갖춘 Linux 포스트 익스플로잇 프레임워크로, 최신 Linux 시스템에서 Rust 기반 커널 모듈 루트킷을 지속적이고 은밀하게 로드합니다. | Kitploit
도구/GitHubGitHub/idov31/silverseal
Persistence MechanismsExploitationPost-ExploitationMalware AnalysisRed TeamingPayload DevelopmentBinary Exploitation
GitHubidov31/silverseal

Silverseal

UEFI 부트킷을 갖춘 Linux 포스트 익스플로잇 프레임워크로, 최신 Linux 시스템에서 Rust 기반 커널 모듈 루트킷을 지속적이고 은밀하게 로드합니다.

저장소 보기
171149218일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Silverseal - Linux 부트킷 및 Rust 커널 루트킷 프레임워크

Silverseal Logo

rust assembly linux

Silverseal은 Rust로 작성된 오픈소스 Linux 부트킷 연구 프레임워크입니다. UEFI 부트킷이 초기 Linux 커널 부팅 과정을 후킹하여 Rust 기반 커널 모듈 루트킷을 지속적이고 은밀하게 로드하는 방법을 보여줍니다.

이 프로젝트는 UEFI 부트킷 개발, Linux 커널 부트 체인 후킹, 루트킷 로딩, 그리고 최신 Linux 시스템에서의 pre-OS 지속성을 탐구합니다.

  • silverseal-bootkit: Linux 커널의 초기 부팅 과정을 후킹하여 루트킷 모듈을 로드하는 Rust로 구현된 UEFI 부트킷입니다.
  • 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를 준비하며, 선택적으로 WSL이 생성된 커널을 가리키도록 Windows .wslconfig 항목을 작성할 수 있습니다.

./scripts/wsl_setup.sh

이 스크립트는 Ubuntu 빌드 의존성을 자동으로 설치하고, 일치하는 Microsoft WSL2 커널 소스를 클론하며, CONFIG_RUST를 활성화하고, LLVM으로 커널을 빌드하며, 외부 모듈 빌드를 위해 /lib/modules/<release>/build를 연결합니다.

지원되는 옵션을 확인하려면:

./scripts/wsl_setup.sh --help

원하는 대상 커널에 대해 루트킷을 빌드하려면 빌드 머신(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 명령을 출력합니다.

빌드

루트킷

커널 빌드 시스템으로 루트킷을 빌드하세요. 실제 모듈 빌드에는 Cargo를 사용하지 마세요.

cd Silverseal/silverseal-rootkit
make

모듈 아티팩트는 빌드 후 silverseal-rootkit/target/에 배치됩니다.

WSL에서 Ubuntu generic 대상 커널용 루트킷을 빌드하려면:

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! 메타데이터 스키마가 이전 author 키 대신 authors를 사용하도록 합니다.

빌드 후 대상 커널 버전이 올바르게 포함되었는지 확인하세요:

modinfo target/silverseal_rootkit.ko | grep vermagic

부트킷

부트킷 빌드에는 PATH에 nasm이 필요합니다. 크레이트는 이미 x86_64-unknown-uefi를 대상으로 구성되어 있으며, 빌드 스크립트는 asm/x64/lkm_loader.asm과 asm/x64/lkm_stager.asm을 모두 EFI 이미지에 포함되는 플랫 바이너리 블롭으로 어셈블합니다.

cd Silverseal/silverseal-bootkit
cargo build --release

결과 EFI 바이너리는 다음 위치에 작성됩니다:

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

테스트

배포 스크립트는 현재 저장소 루트에 silverseal-bootkit.efi라는 파일이 있을 것으로 예상합니다. 부트킷을 빌드한 후 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" 연결 유형 선택
  • VM에서 생성한 시리얼 라인 입력 (예: \\.\pipe\com_1)
  • 속도를 115200으로 설정
  • Connection > Serial에서 "Flow control"을 "None"으로, "Parity"를 "None"으로 설정
  • Open 클릭

115200 보드레이트로 \\.\pipe\com_1에 PuTTY를 지속적으로 재연결하는 헬퍼 스크립트를 사용할 수도 있습니다:

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

리소스

  • UEFI Crate
  • Elixir Bootlin
  • memN0p's Bootkit
도구 다운로드