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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
fisy-fuzz — 이것은 제가 2020년 4월에 열린 Hack in the Box 2020 Lockdown Edition 컨퍼런스에서 발표한 전체 파일 시스템 퍼징 프레임워크입니다. | Kitploit
도구/GitHubGitHub/0xricksanchez/fisy-fuzz
Vulnerability AnalysisExploitationFuzzing
GitHub0xricksanchez/fisy-fuzz

fisy-fuzz

이것은 제가 2020년 4월에 열린 Hack in the Box 2020 Lockdown Edition 컨퍼런스에서 발표한 전체 파일 시스템 퍼징 프레임워크입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

FI(le) SY(stem) - FUZZer

이것은 제가 4월에 열린 Hack in the Box 2020 Lockdown Edition 컨퍼런스에서 발표한 전체 파일 시스템 퍼징 프레임워크입니다.

  • 컨퍼런스 발표
    • 컨퍼런스 발표 단일 영상
  • 컨퍼런스 자료

프레임워크 개요

목표

이 프레임워크의 목표는 BSD 시스템에 중점을 두고 UNIX 시스템에서 커널 보안 버그를 발견하는 것입니다. FreeBSD, OpenBSD, NetBSD를 대상으로 개발 및 집중 테스트가 이루어졌으며, Linux 호스트에 대한 일부 기본 지원도 포함되어 있습니다. UFS 및 EXT 기반 파일 시스템에서 100개 이상의 고유한 커널 버그를 성공적으로 발견하였으며, 최근 추가된 ZFS에 대한 많은 통찰력도 얻을 수 있었습니다.

테스트 케이스 생성기

makeFS2.py는 다양한 유효한 파일 시스템을 생성하는 독립 실행형 유틸리티로 사용할 수 있습니다. 자세한 사용법은 컨퍼런스 자료 저장소에 설명되어 있습니다.

요구 사항

프레임워크는 Ubuntu 18.04에서만 테스트되었습니다. KVM, QEMU 및 libvirt에 의존합니다. Requirements.sh가 필요한 모든 종속성을 설정합니다. 프레임워크는 최신 Ubuntu 20.04 릴리스에서 완전히 작동할 수 있습니다. apt 기반이 아닌 다른 호스트 시스템도 쉽게 지원할 수 있으며, 에서 약간의 변경만 필요합니다. 요구 사항 설정이 완료되면 설정 단계를 계속 진행하세요!

Requirements.sh

설정

SETUP.md를 참조하세요. 일부 단계가 명확하지 않은 경우 연락주세요!

퍼징!

퍼저를 시작하려면 python3 run.py를 실행하기만 하면 됩니다. 설정에 따라 sudo 권한이 필요할 수 있습니다. 모든 것이 성공적으로 시작되면 다음 명령으로 tmux 퍼징 세션에 연결할 수 있습니다:

root@kitploit:~
(sudo) tmux attach-session -t fsfuzzer

설정

프레임워크는 스크립트 src/config/fuzzing_config.py로 구성할 수 있습니다:

root@kitploit:~

# [fuzzing task specs]
# 각 퍼징 인스턴스를 지정하는 딕셔너리 목록
fuzzer = [
    {
        "name": "fuzz1",  # 내부 기록용 이름
        "fs_creator_vm": "genBox",  # 파일 시스템 생성을 담당하는 VM의 libvirt 이름, 모든 인스턴스에서 동일할 수 있음
        "fuzzing_vm": "fuzzBox_0",  # 파일 시스템 생성을 담당하는 VM의 libvirt 이름
        "mutation_engine": "radamsa, 0",  # 사용할 변이 엔진 및 변이 크기 (radamsa는 크기 인수 없음)
        "target_fs": "ufs2",  # 대상 파일 시스템
        "target_size": 15,  # 최대 파일 시스템 크기 (MB)
        "populate_with_files": 10,  # 생성할 파일 개수
        "max_file_size": 1024,  # 각 생성 파일의 최대 크기 (바이트)
        "enable_dyn_scaling": False,  # 동적 크기 조정: 주기적으로 파일 시스템 크기 증가
    },
]

# [credentials]
# VM의 root 사용자 자격 증명
# 모든 인스턴스에서 동일할 것으로 예상되지만 반드시 root일 필요는 없음
user = "root"
pw = "root"

사용 가능한 변이 엔진:

  • radamsa
  • byte_flip_seq
  • byte_flip_rnd
  • metadata

동적 크기 조정은 처음에 파일 시스템 크기가 가능한 충돌에 영향을 미치는지 테스트하기 위해 구현되었습니다. 파일 시스템 크기에 대한 충돌 변화 트리거 값을 식별할 수 없었으므로 이 플래그는 비활성화 상태로 유지해도 됩니다. 또한 더 큰 파일 시스템은 변이에 더 오래 걸리므로 장기 실행 시 성능 저하를 방지할 수 있습니다.

나머지 설정 매개변수는 설명이 필요 없습니다.

PoC

아래 동영상은 radamsa로 변이된 UFS2와 무작위 바이트 플립된 EXT 파일 시스템을 모두 FreeBSD를 대상으로 하는 두 개의 퍼징 인스턴스의 빠른 데모를 보여줍니다. 변이된 UFS 파일 시스템이 직접 충돌을 일으켜 얼마나 빠르게 커널을 충돌시킬 수 있는지 보여줍니다.

asciicast

퍼징 예시

기능 세트

  • FFS, UFS, EXT, ZFS 파일 시스템 완전 지원
    • APFS 부분 지원
  • FreeBSD, NetBSD, OpenBSD 완전 지원
    • Ubuntu (및 기타 Debian 기반 파생 제품) 실험적 지원
  • 다음을 통한 변이
    • radamsa
    • 전역 무작위 바이트 플립
    • 전역 무작위 바이트 시퀀스 변경
    • 슈퍼블록만 변경
  • 손상되었지만 마운트된 파일 시스템에 접근/변경하기 위한 완전 무작위 사용자 에뮬레이션
  • 충돌 데이터베이스
  • 충돌 확인
  • 스냅샷을 통한 VM 재설정
  • 완전 자동화된 퍼징 프로세스
  • 명령줄에서 합리적인 사용자 인터페이스

향후 작업

  • 더 많은/다른 변이 엔진 지원
  • 자동화된 VM 설정
  • 사용 가능한 스냅샷 확인 및 없을 경우 퍼징 전에 생성
  • macOS 지원
  • 성능 개선
    • 프레임워크 비동기화
      • 퍼징 실행을 기다리지 않고 지속적인 샘플 생성
    • 새 샘플을 생성하기 전에 동일한 샘플을 다른 변이로 사용
    • 속도 향상을 위한 알고리즘/상호작용 재작업
  • 코드 정리 및 리팩토링
    • 로깅 상세도 토글 가능

트로피

이 설정으로 FreeBSD, NetBSD, OpenBSD에서 UFS 및 EXT 기반 파일 시스템에 대해 100개 이상의 고유한 커널 버그를 찾을 수 있었습니다. 이 충돌 중에는 매우 흥미로운 것들이 많이 있었습니다:

  • 범위를 벗어난 읽기
  • 범위를 벗어난 쓰기
  • EXT의 이중 결함
  • UFS의 삼중 결함
  • 6개 이상의 고유한 코어 덤프를 가진 비결정적 커널 버그

대부분의 충돌은 커널 DoS였습니다. 또한, 발견된 대부분의 충돌은 현재(2020년 5월 기준)까지도 수정되지 않았습니다. 그러니 파일 시스템 구현에서 커널 버그를 찾아보세요!

면책 조항

이 모든 것은 '신뢰 기반 개발'로 구축되었습니다. 즉, 단순한 PoC 아이디어에서 너무 빠르게 너무 커졌습니다. 따라서 테스트도 없고 버그도 있을 가능성이 높습니다. 커널 패닉과 관련되지 않은 충돌이 발생하면 사과드리지만, PR을 보내거나 연락 주시면 최대한 빨리 수정하겠습니다!

연락처

트위터: @0xricksanchez

도구 다운로드