Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
fuzzowski — 我们想要使用的网络协议模糊测试工具。 | Kitploit
工具/GitHubGitHub/nccgroup/fuzzowski
漏洞分析模糊测试网络安全渗透测试
GitHubnccgroup/fuzzowski

fuzzowski

我们想要使用的网络协议模糊测试工具。

查看仓库
79311454年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Fuzzowski

root@kitploit:~
       █      █       
       ████████       
      ██████████      
     ██  ████  ██     
     ██  ████  ██     
    ████      ████    
   █ ████████████ █   
   █  ██████████  █   Fuzzowski 网络模糊测试器
   █    █     █   █           🄯  Fuzzers, inc.
       ██     ██                作者:Mario Rivas

Travis

这个理念是打造我们__真正__想要使用的网络协议模糊测试器。

该工具的目标是协助完成网络协议模糊测试的全过程,允许定义通信内容,帮助识别导致服务崩溃的“可疑点”,并提供更多功能。

最近更新

[2019年12月16日]

  • 数据生成模块 已完全重写(原语、块、请求)
    • 改进了字符串模糊测试库,同时支持自定义列表、文件和回调命令
    • 变量数据类型,可获取由会话、用户或响应设置的变量值
  • 会话 已完全重写。现在基于 TestCase(测试用例),每个测试用例包含执行请求、检查响应、存储接收到的错误等所需的所有信息
  • 响应 已添加。现在可以使用 s_response() 定义响应,从而检查服务器的响应、设置变量,甚至对响应执行额外测试以判断是否出现异常
  • 监控器 现在会在失败时自动将测试用例标记为可疑
  • 新增了 IPP(互联网打印协议) 模糊测试器,我们在打印机研究项目中利用它发现了多个不同品牌打印机的漏洞(https://www.youtube.com/watch?v=3X-ZnlyGuWc&t=7s)

特性

  • 数据生成基于 Sulley Fuzzer(https://github.com/OpenRCE/sulley)
  • 实际上,Fork 自 BooFuzz(而 BooFuzz 是 Sulley 的一个 Fork)https://github.com/jtpereyda/boofuzz
  • Python3
  • 非随机(有限数量的可能性)
  • 需要使用类型来“创建数据包”(Spike Fuzzer 风格)
  • 也允许从参数创建“原始”数据包,并带有注入点(对模糊简单协议非常有用)
  • 拥有一个友好的控制台,可以暂停、审查和重新测试任何可疑点(prompt_toolkit 功不可没)
  • 允许跳过导致错误的参数,自动或通过控制台操作
  • 可疑数据包的友好打印格式(精确显示被模糊测试的部分)
  • 当你将一个测试用例标记为崩溃时,它会自动以 Python 脚本形式保存 PoC
  • 监控模块用于收集目标信息,检测异常行为并标记可疑点
  • 重启模块,当连接丢失时自动重启目标(例如,关闭和打开智能插头)

已实现的协议

  • LPD(行式打印守护进程):完全实现
  • IPP(互联网打印协议):部分实现
  • BACnet(楼宇自动化和控制网络协议):部分实现
  • Modbus(工业控制通信协议):部分实现

安装

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 网络模糊测试器
   █    █     █   █           🄯  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
                        设置一个请求允许的崩溃次数,超过则跳过(默认 9999)
  --threshold-element CRASH_THRESHOLD_ELEMENT
                        设置一个原语允许的崩溃次数,超过则跳过(默认 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: <插头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 测试用例

asciicast

下载工具