Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
efi_fuzz — 커버리지 기반 퍼저로, UEFI NVRAM 변수를 대상으로 Qiling 에뮬레이션과 AFL++를 사용하여 자동화된 입력 변형 및 충돌 탐지를 통해 펌웨어 취약점을 발견합니다. | Kitploit
도구/GitHubGitHub/sentinel-one/efi_fuzz
Embedded Systems SecurityDynamic Analysis (Sandboxing)Vulnerability AnalysisFuzzingBinary AnalysisFirmware AnalysisArchived
GitHubsentinel-one/efi_fuzz

efi_fuzz

커버리지 기반 퍼저로, UEFI NVRAM 변수를 대상으로 Qiling 에뮬레이션과 AFL++를 사용하여 자동화된 입력 변형 및 충돌 탐지를 통해 펌웨어 취약점을 발견합니다.

저장소 보기
1541981년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Gitter chat


efi_fuzz

UEFI NVRAM 변수를 위한 간단한 커버리지 기반 퍼저입니다. Qiling과 AFL++를 기반으로 합니다.
Itai Liba (@liba2k)와 Assaf Carlsbad (@assaf_carlsbad)가 작성했습니다.

사용 방법

Docker 환경 사용

  1. 이미지 빌드:
    docker build -t efi_fuzz .

  2. 환경 테스트:
    docker run -v $PWD:/efi_fuzz -it efi_fuzz sh -c "cd efi_fuzz/tests/ && pytest -s -v -W ignore::DeprecationWarning"

  3. 환경 사용:
    docker run -v $PWD:/efi_fuzz -it efi_fuzz sh -c "cd /efi_fuzz ; bash"

  4. 에뮬레이트된 NVRAM 환경 준비 (rom 이미지를 제공해야 함):
    python3 scripts/prepare_nvram.py rom.bin nvram.pickle

  5. NVRAM 변수를 위한 초기 코퍼스 준비:
    python3 scripts/prepare_afl_corpus.py rom.bin afl_inputs

  6. 퍼저 드라이 런 수행:
    python3 efi_fuzz.py <target> <nvram> <varname> <seed>

  7. 성공하면 본격적인 퍼징 진행:
    afl-fuzz -i afl_inputs/<varname> -o afl_outputs/ -U -- python3 efi_fuzz.py <target> <nvram> <varname> @@

환경 로컬 설치

  1. Windows에서 실행하는 경우 WSL을 설치하세요. 때때로 느릴 수 있는 원래 WSL보다 WSL2를 권장합니다. Windows 10의 전체 설치 지침은 여기에서 확인할 수 있습니다: https://docs.microsoft.com/en-us/windows/wsl/install-win10

  2. WSL 배포판 내에서 C 소스 코드를 컴파일하는 데 필요한 일부 패키지를 설치합니다:
    sudo apt install build-essential automake

  3. Unicorn 모드 지원과 함께 AFL++를 설치합니다.
    3.1. 저장소 클론:
    git clone https://github.com/AFLplusplus/AFLplusplus
    3.2. 핵심 AFL++ 바이너리 빌드:
    make
    3.3. Unicorn 지원 기능 빌드:
    cd unicorn_mode
    ./build_unicorn_support.sh
    3.4. 모든 것 설치:
    make install

  4. 퍼징하려는 UEFI 펌웨어를 획득하고 압축을 풉니다. 실제로 이 작업이 수행되는 전체 기술적 세부 사항은 여기 또는 여기를 참조하세요.

  5. 퍼저를 클론하고 필요한 종속성을 설치합니다:
    git clone https://github.com/Sentinel-One/efi_fuzz
    pip install -r efi_fuzz/requirements.txt

오염 전파를 위해 Triton이 필요합니다.
Triton 설치 지침은 여기에서 찾을 수 있습니다:
https://triton.quarkslab.com/documentation/doxygen/#install_sec

  1. 에뮬레이트된 NVRAM 환경 준비:
    python scripts/prepare_nvram.py rom.bin nvram.pickle

  2. NVRAM 변수를 위한 초기 코퍼스 준비:
    python scripts/prepare_afl_corpus.py rom.bin afl_inputs

  3. 퍼저 드라이 런 수행:
    python efi_fuzz.py <target> <nvram> <varname> <seed>

  4. 성공하면 본격적인 퍼징 진행:
    afl-fuzz -i afl_inputs/<varname> -o afl_outputs/ -U -- python efi_fuzz.py <target> <nvram> <varname> @@

명령줄 옵션

  • -e, --end: 에뮬레이션 종료 주소를 지정합니다.
  • -t, --timeout: 에뮬레이션의 새 타임아웃 값을 ms 단위로 지정합니다.
  • -o, --output: 디버깅 목적으로 출력 형식을 지정합니다. 유효한 값: trace, disasm, debug, off (기본값: off).
  • -n, --no-sanitize: 메모리 sanitizer를 비활성화합니다 (기본값: False).
  • -u, --track-uninitialized: Triton 및 오염 전파를 통해 초기화되지 않은 메모리를 추적합니다 (실험적!).
  • -x, --extra-modules: 대상의 종속성을 충족하기 위해 로드할 추가 모듈 목록입니다.

추가 자료

UEFI 펌웨어 일반 및 efi_fuzz 에 대한 추가 정보는 여기에서 확인할 수 있습니다:

  • Moving From Common-Sense Knowledge About UEFI To Actually Dumping UEFI Firmware
  • Moving From Manual Reverse Engineering of UEFI Modules To Dynamic Emulation of UEFI Firmware
  • Moving From Dynamic Emulation of UEFI Modules To Coverage-Guided Fuzzing of UEFI Firmware
도구 다운로드