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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
litefuzz — 사용자 영역 바이너리, 네트워크 클라이언트 및 서버를 테스트하는 멀티플랫폼 퍼저 | Kitploit
도구/GitHubGitHub/sec-tools/litefuzz
Vulnerability AnalysisExploitationFuzzingPenetration TestingBinary Analysis
GitHubsec-tools/litefuzz

litefuzz

사용자 영역 바이너리, 네트워크 클라이언트 및 서버를 테스트하는 멀티플랫폼 퍼저

저장소 보기
6910289개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

litefuzz

사용자 공간 바이너리, 클라이언트 및 서버를 테스트하기 위한 다중 플랫폼 퍼저입니다.

이 도구는 유수 기업과 오픈 소스의 50개 이상의 앱 및 라이브러리에서 버그를 발견했습니다.

Linux, Mac 및 Windows에서 퍼징을 시작하기 위한 간단한 설정.

  • litefuzz
    • intro
    • why
    • how it works
      • what it does
      • what it doesn't do
    • support
      • python versions
      • linux
      • mac
      • windows
      • targets
      • triage
    • getting started
      • tests
        • unit tests
        • crashing app tests
    • options
      • crash directory
      • insulate mode
      • timeout
      • mutators
      • ReportCrash
      • pause
      • reusing crashes for variant finding
      • memory debugging helpers
      • checking live target output
      • client and server modes
      • local network examples
      • remote network examples
        • client
        • server
          • TLS
        • multiple data exchange modes
      • attaching to a process
      • crash artifacts
      • golang
      • repros
      • remove file
      • minimization
      • command
    • examples
      • local app
        • quick look
        • enumerating file handlers on Ubuntu
        • enumerating file handlers on OS X
      • client
        • quick look
        • local client
        • remote client
      • server
        • quick look
        • local server
        • remote server
  • command line
  • trophies
  • FAQ
    • how did this project come about?
    • is this project actively maintained?
    • how do you know the fuzzer is working well and did you measure it against others?
    • what would you change if you were to re-write it today?
    • how stable is litefuzz?
    • are there unsupported scenarios for litefuzz?
    • what guarentees are given for this project or it's code?
    • author / references

intro

Litefuzz는 한 가지 목적을 위해 만들어졌습니다: 모든 주요 플랫폼에서 퍼징 및 트라이지를 수행하고, CLI/GUI 앱, 네트워크 클라이언트 및 서버를 지원하여 보안 관련 버그를 찾는 것입니다.

이 도구는 프로세스를 단순화하고, 몇 가지 정직한 절충안을 통해 여러 플랫폼의 다양한 대상에서 보안 버그를 쉽게 발견할 수 있도록 합니다.

속도, 확장성 또는 학계에서 상을 받기 위해 만들어진 것이 아닙니다. 다양한 각도에서 간단한 기술을 적용하여 결과를 얻습니다. 콘솔 기반 파일 퍼징에는 AFL을 사용하는 것이 좋습니다. AFL은 뛰어난 성능, 계측 기능(및 더 빠른 비계측 실행), 확장성을 갖추고 있으며 공중에서 jpeg를 만들어낼 수 있습니다. 네트워크 퍼징의 경우, 재생할 PCAP이 있다면 mutiny 퍼저도 잘 작동하며 frizzer도 유망해 보입니다. 하지만 이 도구를 사용해보고 싶다면, 하나의 도구만으로 플랫폼 전반에서 그러한 종류의 대상을 퍼징할 수 있습니다.

./ 그리고 당신의 대상에... 약간의 lite fuzz를 가해보세요.``` $ sudo apt install -y latex2rtf

$ ./litefuzz.py -l -c "latex2rtf FUZZ" -i input/tex -o crashes/latex2rtf -n 1000 -z --========================-- --======| litefuzz |======-- --========================--

[STATS] run id: 3516 cmdline: latex2rtf FUZZ crash dir: crashes/latex2rtf input dir: input/tex inputs: 1 iterations: 1000 mutator: random(mutators)

@ 1000/1000 (3 crashes, 127 duplicates, ~0:00:00 remaining)

[RESULTS]

completed (1000) iterations with (3) unique crashes and 127 dups

check crashes/latex2rtf for more details

이것은 AFL++가 완벽하게 처리할 수 있는 간단한 로컬 타겟이며, 예시로 빠르게 제시한 것입니다. Litefuzz는 네트워크 및 GUI 퍼징 측면에서 훨씬 더 많은 기능을 제공하도록 설계되었으므로, 실제로 사용해보면 알게 될 것입니다.

## 이유

네, 또 다른 퍼저입니다. 그리고 현재의 트렌드와 관례에 잘 맞지 않는 퍼저입니다. 특정 요구사항을 충족하기 위해 트레이드오프가 이루어졌습니다. 이러한 요구사항은 기본적으로 여러 플랫폼에서 작동하고, 로컬 및 네트워크 타겟을 모두 퍼징하며, 사용하기 매우 쉬운 퍼저입니다. 누군가를 설득하려는 것이 아니라, 맥락을 제공하려는 것입니다. 일부 타겟은 AFL과 같은 퍼저를 빌드 체인에 통합하는 데 많은 노력이 필요합니다. 이 퍼저는 계측(instrumentation)을 필요로 하지 않으므로 문제가 되지 않으며, 계측을 통해 얻는 정확한 커버리지는 희생하되 사용 편의성과 이식성을 얻었습니다. AFL은 기본적으로 네트워크 퍼징을 지원하지 않으며, 이를 지원하는 프로젝트들이 있지만 사용하기가 간단하지 않고 일반적으로 더 많은 코드 수정과 하네스가 필요합니다 ([Libfuzzer](https://llvm.org/docs/LibFuzzer.html)와 비슷한 이야기입니다).

병렬 퍼징을 하지 않으며, [영구 모드](https://lcamtuf.blogspot.com/2015/06/new-in-afl-persistent-mode.html)가 제공하는 엄청난 속도 향상도 지원하지 않으므로, 그러한 기능을 가진 퍼저들에 비해 확장할 수 없습니다. 다시 말하지만, 이것은 최첨단 퍼저가 아닙니다. 그러나 소스 코드, 빌드 설정 또는 특정 OS 기능이 필요하지 않습니다. 일부 네트워크 클라이언트 GUI 및 대화형 앱도 퍼징할 수 있습니다. 여러 측면에서 '있는 그대로' 동작하며, 변이기 및 최소화와 같은 많은 기능은 처음부터 직접 작성되었습니다.

그냥 작동하도록 설계되었으며, 필요한 몇 가지 종속성에 대한 설정 및 설치를 자동화하는 데 노력을 기울였습니다. 이 퍼저는 목적을 위해 작성되었으며, 다양한 타겟 시나리오와 환경에서 가치를 제공하고, 무엇보다도 모든 퍼저가 궁극적으로 평가되어야 할 기준인 버그를 찾는 능력에서 가치를 제공합니다. 그리고 **실제로** [버그](https://github.com/sec-tools/beta/blob/main/README.md#trophies)를 찾습니다. 타겟 소스 코드가 있다고 가정하지 않으므로, 폐쇄 소스 소프트웨어를 상당히 잘 커버할 수 있습니다. 약간의 수정만으로 자동화의 일부로 실행될 수 있지만, 취약점 연구자들이 사용하기에 재미있도록 설계되었습니다. 그러나 완전한 제품보다는 R&D 프로젝트로 생각하는 것이 더 도움이 됩니다. 또한, 기본적으로 약간 망가져 있거나 최신 운영 체제에서 실행하기 위해 추가 작업이 필요한 복잡한 설정은 없습니다.

Ubuntu Linux, Mac 및 Windows에서 작동하는 것으로 테스트되었으며, 퍼징 준비 환경을 설정하기 위해 거의 모든 작업을 자동으로 수행하는 완전한 기능의 스크립트가 함께 제공됩니다.

**설정 스크립트가 완료되면, 다양한 타겟을 퍼징하는 데 몇 분밖에 걸리지 않습니다.**

## 작동 방식

**Litefuzz는 로컬, 클라이언트, 서버의 세 가지 모드를 지원합니다.**

로컬 모드는 로컬 바이너리를 대상으로 하며, Linux/Mac에서는 하위 프로세스로 실행되어 GDB 및 LLDB 트라이지(triage) 지원을 각각 크래시 시에 제공하고, Windows에서는 [WinAppDbg](https://github.com/MarioVilas/winappdbg)를 통해 제공됩니다. 크래시는 로컬 크래시 디렉터리에 기록되며, 읽기/쓰기 AV 또는 SIGABRT/SIGSEGV와 같은 결함 유형과 파일 해시별로 정렬됩니다. 모든 고유 크래시는 퍼징 중에 트라이지되며, 이 데이터와 타겟 출력(가능한 경우)도 캡처되어 동일한 디렉터리에 아티팩트로 배치됩니다. 또한 `--replay` 옵션과 크래시 파일을 제공하여 크래시를 재현할 수도 있습니다. `local` 클라이언트 모드에서는 입력 디렉터리에 서버 인사말, 응답 또는 클라이언트가 서버에 연결할 때 기대하는 데이터가 포함되어야 합니다.

현재로서는 복잡한 세션 지원 없이 네트워크 퍼징을 위한 하나의 '샷'만 구현되어 있습니다. 클라이언트는 명령줄을 통해 실행되며, 파일 퍼징과 동일한 방식으로 디버깅됩니다. 이 시나리오를 지원하기 위해 리스너가 설정됩니다. 느리고 거의 수동 노동에 가깝지만 작동합니다. 크래시가 감지되면 gdb에서 재현되어 트라이지 세부 정보를 얻습니다. `remote` 클라이언트 모드에서는 로컬 디버깅/크래시 트라이지가 없다는 점을 제외하고 동일하게 작동합니다. *로컬* 서버 모드는 로컬 클라이언트 모드와 유사하며, `remote` 서버 모드는 지정된 타겟에 연결하고 사용자가 입력으로 지정한 변이된 샘플 클라이언트 데이터를 보내지만, '여전히 연결할 수 있는가, 그렇지 않으면 마지막 데이터에서 크래시가 발생했을 가능성이 높다'는 간단한 트라이지만 제공합니다.

처음부터 작성된 몇 가지 변이 함수가 있으며, 대부분 `-i` 플래그로 지정된 입력의 무작위 선택으로 무작위 변이를 수행합니다. 파일 퍼징의 경우 로컬 모드를 선택하고 타겟 명령줄에 앱이 파싱할 파일 이름을 나타내는 FUZZ를 전달합니다(예: `tcpdump -r FUZZ`). 또한 변이할 '좋은 파일'의 입력 디렉터리를 제공합니다. 네트워크 클라이언트 퍼징의 경우 로컬 퍼징과 유사하지만, `-a`를 통해 연결 세부 정보도 제공합니다. 서버를 퍼징하려면 서버 모드를 선택하고 클라이언트와 마찬가지로 `protocol://address:port`를 제공합니다.

타겟이 데이터를 소비하고 종료하는 속도(대부분의 CLI 애플리케이션의 경우)만큼 빠르게 퍼징하거나, 로컬 실행 또는 네트워크 연결 시간이 초과되기 전에 사용자가 결정한 시간 동안 퍼징하므로 훨씬 느릴 수 있습니다. 여기에는 화려한 exec 또는 커널 트릭이 없습니다. 물론 입력을 파싱하고 빠르게 종료하는 하네스를 작성하여 타겟의 특정 부분을 커버하는 것도 도움이 됩니다. 그러나 그 정도로 타겟에 근접할 수 있다면, [영구 모드](https://lcamtuf.blogspot.com/2015/06/new-in-afl-persistent-mode.html)나 다른 퍼저가 제공하는 유사한 기능을 사용하는 것이 더 나을 것입니다.

간단히 말해서...

### 기능
- linux, windows, mac에서 실행되며 py2/py3 지원
- 파일/stdin에서 읽는 CLI/GUI 바이너리 퍼징
- 네트워크 클라이언트 및 서버 퍼징 (오픈 소스 또는 독점, 로컬 또는 원격 디버깅 가능)
- 크래시의 diff, 최소화, 재현, 정렬 및 자동 트라이지
- TLS 지원, golang 바이너리 퍼징 및 Mac용 일부 추가 기능 등 기타
- 다양한 내장 변이기 + pyradamsa (Linux)로 입력 변이

### 하지 않는 것
- 네이티브 계측
- 동시 작업으로 확장
- 복잡한 세션 퍼징
- 원격 클라이언트 및 서버 모니터링 (연결과 같은 기본 검사만)

## 지원
도구 다운로드