[Fuzzing] WinAFL을 이용한 개념정리

2024. 5. 5. 17:56·Hacking/Window
728x90
반응형

Definition | 정의

Fuzz testing or fuzzing is an automated software testing method that injects invalid, malformed, or unexpected inputs into a system to reveal software defects and vulnerabilities. A fuzzing tool injects these inputs into the system and then monitors for exceptions such as crashes or information leakage. Put more simply, fuzzing introduces unexpected inputs into a system and watches to see if the system has any negative reactions to the inputs that indicate security, performance, or quality gaps or issues.
  • 소프트웨어 결함 및 취약성을 드러내기 위해 시스템에 잘못된 입력, 예상치 못한 입력을 주입하는 자동화된 소프트웨어 테스트 방법
  • 퍼징 도구 (ex. WinAFL )는 충돌 또는 정보 유출같은 예외를 모니터링

WinAFL이란?

퍼징 툴 중에 하나로, 특정 함수 / dll 부분을 집중적으로 퍼징할 수 있도록 해주는 역할을 함

  • 넓은 코드 커버리지
  • 루프 실행을 통한 빠른 속도

1. 타겟 함수 도달

2. 코드 커버리지 기록

3. 타겟 함수 실행 (input 파일이 다시 회수될 때까지 실행해야함)

4. 코드 커버리지 회수 / input 파일 수정 후 2번으로 복귀 

5. 타겟 프로세스 종료

 

WinAFL 환경설정

필요한 것

  • Visual Studio
  • DynamoRIO
  • cmake
  • WinAFL

[WinAFL] -> git clone

https://github.com/googleprojectzero/winafl

 

GitHub - googleprojectzero/winafl: A fork of AFL for fuzzing Windows binaries

A fork of AFL for fuzzing Windows binaries. Contribute to googleprojectzero/winafl development by creating an account on GitHub.

github.com

[DynamoRIO] -> git clone

https://github.com/DynamoRIO/dynamorio/releases

 

Releases · DynamoRIO/dynamorio

Dynamic Instrumentation Tool Platform. Contribute to DynamoRIO/dynamorio development by creating an account on GitHub.

github.com

 

1. 명령어로 설정

mkdir build64
cd build64
cmake -G"Visual Studio 16 2019" -A x64 .. -DDynamoRIO_DIR=C:\path\to\DynamoRIO\cmake -DINTELPT=1
cmake --build . --config Release

 

2. cmake GUI로 설정

cmake

Addentry를 통해 필요한 변수를 설정 → configure → Generate 후

build64 파일에서 cmake --build . --config Release 실행

 

Harness

타겟 함수에 어떤 입력을 줄 것인지에 대한 대략적인 틀을 지정해주는 것 

 

 

 

728x90
반응형

'Hacking > Window' 카테고리의 다른 글

[Mitigation] Window VS Linux  (0) 2024.11.27
MuseScore DoS Vulnerability Write Up  (2) 2024.07.18
PE(Portable Executable) file format  (0) 2024.05.06
BitLocker  (0) 2024.02.06
SAM(Security Account Manager)  (1) 2024.02.03
'Hacking/Window' 카테고리의 다른 글
  • MuseScore DoS Vulnerability Write Up
  • PE(Portable Executable) file format
  • BitLocker
  • SAM(Security Account Manager)
min_zu
min_zu
  • min_zu
    민주제도
    min_zu
  • 전체
    오늘
    어제
    • ._. (176)
      • AI (2)
        • DeepLearning (2)
        • CS231n (0)
      • Web (2)
        • ReactJS (0)
      • CS (83)
        • OS (7)
        • Data Structure (23)
        • Computer Architecture (8)
        • Computer Network (20)
        • Algorithm (25)
      • Linux (3)
        • KaliLinux (0)
        • Docker (1)
      • Hacking (83)
        • Write Up (25)
        • Pwnable (13)
        • Reversing (2)
        • Cryptography (12)
        • Web Hacking (4)
        • Window (6)
        • Network (7)
        • Web3 (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Search
    WinAFL
    OS
    UTM
    Web
    Sort
    ComputerArchitecture
    Tree
    Graph
    DeepLearning
    AI
    Linux
    DataStructure
    Mac
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
min_zu
[Fuzzing] WinAFL을 이용한 개념정리
상단으로

티스토리툴바