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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
fuzzowski — 사용하고자 하는 네트워크 프로토콜 퍼저 | Kitploit
도구/GitHubGitHub/nccgroup/fuzzowski
Vulnerability AnalysisFuzzingNetwork SecurityPenetration Testing
GitHubnccgroup/fuzzowski

fuzzowski

사용하고자 하는 네트워크 프로토콜 퍼저

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Fuzzowski

root@kitploit:~
       █      █       
       ████████       
      ██████████      
     ██  ████  ██     
     ██  ████  ██     
    ████      ████    
   █ ████████████ █   
   █  ██████████  █   Fuzzowski Network Fuzzer
   █    █     █   █           🄯  Fuzzers, inc.
       ██     ██                by Mario Rivas

Travis

아이디어는 우리가 사용하고 싶은 네트워크 프로토콜 퍼저가 되는 것입니다.

이 도구의 목표는 네트워크 프로토콜 퍼징의 전체 과정을 지원하고, 통신을 정의하며, 서비스를 충돌시키는 '용의자'를 식별하는 데 도움을 주는 등 다양한 기능을 제공하는 것입니다.

최근 변경사항

[16/12/2019]

  • 데이터 생성 모듈 완전 재코딩 (Primitives, Blocks, Requests)
    • 향상된 문자열 퍼징 라이브러리, 이제 사용자 지정 목록, 파일 및 콜백 명령도 허용
    • 변수 데이터 타입, 세션, 사용자 또는 Response에 의해 설정된 변수를 취함
  • Session 완전 재코딩. 이제 TestCase를 기반으로 하며, 요청 수행, 응답 확인, 수신된 오류 등 데이터 저장에 필요한 모든 정보를 포함합니다.
  • Responses 추가. 이제 s_response()로 응답을 정의할 수 있습니다. 이를 통해 서버의 응답을 확인하고, 변수를 설정하며, 응답에 대한 추가 테스트를 수행하여 문제가 있는지 확인할 수 있습니다.
  • Monitors는 이제 실패 시 TestCase를 자동으로 용의자로 표시합니다.
  • IPP (Internet Printing Protocol) 퍼저 추가. 이 퍼저는 프린터 연구 프로젝트 중 여러 프린터 브랜드의 취약점을 찾는 데 사용되었습니다. (https://www.youtube.com/watch?v=3X-ZnlyGuWc&t=7s)

기능

  • 데이터 생성을 위해 Sulley Fuzzer 기반 [https://github.com/OpenRCE/sulley]
  • 실제로는 BooFuzz (Sulley의 포크)에서 포크됨 [https://github.com/jtpereyda/boofuzz ]
  • Python3
  • 무작위가 아님 (유한한 가능성)
  • 타입으로 패킷을 생성해야 함 (spike 퍼저 스타일)
  • 또한 매개변수로 "원시" 패킷을 생성할 수 있으며, 주입 지점이 있음 (간단한 프로토콜 퍼징에 매우 유용)
  • 용의자를 일시 중지, 검토 및 재테스트할 수 있는 멋진 콘솔 제공 (prompt_toolkit ftw)
  • 오류를 유발하는 매개변수를 자동 또는 콘솔을 통해 건너뛸 수 있음
  • 용의자 패킷에 대한 깔끔한 출력 형식 (무엇이 퍼징되었는지 정확히 알 수 있음)
  • 테스트 케이스를 크래시로 표시하면 PoC를 파이썬 스크립트로 저장
  • 대상의 정보를 수집하고 이상 행동을 감지하여 용의자를 표시하는 모니터 모듈
  • 연결이 끊어지면 대상을 다시 시작하는 재시작 모듈 (예: 스마트 플러그 전원 끄고 켜기)

구현된 프로토콜

  • LPD (Line Printing Daemon): 완전 구현
  • IPP (Internet Printing Protocol): 부분 구현
  • BACnet (Building Automation and Control networks Protocol): 부분 구현
  • Modbus (ICS communication protocol): 부분 구현

설치

root@kitploit:~
virtualenv venv -p python3
source venv/bin/activate
pip install -r requirements.txt

도움말

root@kitploit:~
usage: python -m fuzzowski [-h] [-p {tcp,udp,ssl}] [-b BIND] [-st SEND_TIMEOUT]
                    [-rt RECV_TIMEOUT] [--sleep-time SLEEP_TIME] [-nc] [-tn]
                    [-nr] [-nrf] [-cr]
                    [--threshold-request CRASH_THRESHOLD_REQUEST]
                    [--threshold-element CRASH_THRESHOLD_ELEMENT]
                    [--ignore-aborted] [--ignore-reset] [--error-fuzz-issues]
                    [-c CALLBACK | --file FILENAME] -f
                    {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}
                    [-r FUZZ_REQUESTS [FUZZ_REQUESTS ...]]
                    [--restart module_name [args ...]]
                    [--restart-sleep RESTART_SLEEP_TIME]
                    [--monitors {IPPMon} [{IPPMon} ...]] [--path PATH]
                    [--document_url DOCUMENT_URL]
                    host port

       █      █       
       ████████       
      ██████████      
     ██  ████  ██     
     ██  ████  ██     
    ████      ████    
   █ ████████████ █   
   █  ██████████  █   Fuzzowski Network Fuzzer
   █    █     █   █           🄯  Fuzzers, inc.
       ██     ██       

필수 인수:
  host                  대상 호스트
  port                  대상 포트

선택적 인수:
  -h, --help            이 도움말 메시지를 표시하고 종료

연결 옵션:
  -p {tcp,udp,ssl}, --protocol {tcp,udp,ssl}
                        프로토콜 (기본값 tcp)
  -b BIND, --bind BIND  포트 바인딩
  -st SEND_TIMEOUT, --send_timeout SEND_TIMEOUT
                        send() 타임아웃 설정 (기본값 5초)
  -rt RECV_TIMEOUT, --recv_timeout RECV_TIMEOUT
                        recv() 타임아웃 설정 (기본값 5초)
  --sleep-time SLEEP_TIME
                        각 테스트 사이의 대기 시간 (기본값 0)
  -nc, --new-conns      동일한 테스트의 각 패킷 후 새 연결 열기
  -tn, --transmit-next-node
                        퍼징된 노드의 그래프에서 다음 노드 전송

RECV() 옵션:
  -nr, --no-recv        각 전송 후 소켓에서 recv() 하지 않음
  -nrf, --no-recv-fuzz  퍼징된 요청 전송 후 소켓에서 recv() 하지 않음
  -cr, --check-recv     recv() 에서 데이터 수신 확인

크래시 옵션:
  --threshold-request CRASH_THRESHOLD_REQUEST
                        Request에서 허용되는 크래시 수를 설정한 후 건너뜁니다 (기본값 9999)
  --threshold-element CRASH_THRESHOLD_ELEMENT
                        Primitive에서 허용되는 크래시 수를 설정한 후 건너뜁니다 (기본값 3)
  --ignore-aborted      ECONNABORTED 오류 무시
  --ignore-reset        ECONNRESET 오류 무시
  --error-fuzz-issues   퍼징된 노드에 연결 문제가 있을 때 오류로 기록

퍼즈 옵션:
  -c CALLBACK, --callback CALLBACK
                        일반 변형 대신 콜백 생성기로 퍼징할 콜백 주소 설정
  --file FILENAME       퍼즈 변형에 파일 내용 사용

퍼저:
  -f {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}, --fuzz {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}
                        사용 가능한 프로토콜
  -r FUZZ_REQUESTS [FUZZ_REQUESTS ...], --requests FUZZ_REQUESTS [FUZZ_REQUESTS ...]
                        퍼징할 프로토콜의 요청, 기본값 모두
                          dhcp: [opt82]
                          ipp: [http_headers, get_printer_attribs, print_uri_message, send_uri, get_jobs, get_job_attribs]
                          lpd: [long_queue, short_queue, ctrl_file, data_file, remove_job]
                          telnet_cli: [commands]
                          tftp: [read]
                          raw: ['\x01string\n' '\x02request2\x00' ...]

재시작 옵션:
  --restart module_name [args ...]
                        재시작 모듈:
                          run: '<실행 파일> [<인수> ...]' (명령과 인수를 하나의 인수로 묶어 따옴표 안에 전달)
                          smartplug: 스마트 플러그를 껐다가 켭니다
                          teckin: <PLUG_IP>
  --restart-sleep RESTART_SLEEP_TIME
                        크래시 후 계속하기 전 대기 시간 설정 (기본값 5)

모니터 옵션:
  --monitors {IPPMon} [{IPPMon} ...], -m {IPPMon} [{IPPMon} ...]
                        모니터 모듈:
                          IPPMon: 대상에 get-attributes IPP 메시지 전송

기타 옵션:
  --path PATH           HTTP 기반 프로토콜 퍼징 시 경로 설정 (기본값 /)
  --document_url DOCUMENT_URL
                        print_uri를 위한 문서 URL 설정

예제

기본 옵션으로 IPP get_printer_attribs 작업 퍼징:

python -m fuzzowski printer1 631 -f ipp -r get_printer_attribs --restart smartplug

asciicast

IPP의 raw 기능을 사용하여 finger 프로토콜 퍼징:

python -m fuzzowski printer 79 -f raw -r '{{root}}\n'

asciicast

IPP의 raw 기능을 사용하여 finger 프로토콜 퍼징, 하지만 미리 정의된 변형 대신 파일 사용:

python -m fuzzowski printer 79 -f raw -r '{{root}}\n' --file 'path/to/my/fuzzlist'

상태 저장 퍼저 예제: s_response와 s_variable을 사용하여 요청을 퍼징하는 데 필요한 토큰을 얻는 방법을 보여줍니다. 이 예제는 mock http server test case를 기반으로 합니다.

asciicast

도구 다운로드