当前位置: 首页 > news >正文

spike:一款协议模糊测试器工具包!全参数详细教程!Kali Linux教程!

简介

当您需要分析新的网络协议是否存在缓冲区溢出或类似的漏洞时,SPIKE 是专业人士的首选工具。虽然使用它需要扎实的 C 语言知识,但它能提供业内首屈一指的结果。

这是 SPIKE,一个模糊测试器创建工具包。它拥有一个相当有趣的通用数据编组 API。示例可以在 src 目录中找到。该 API 旨在使逆向工程师或安全研究人员更容易地复制未知协议。

其中包含可运行(但尚未完全完成)的模糊测试器和支持代码。这些代码包括:

1. webfuzz:webfuzz 是由许多小工具组合而成,旨在提供一个灵活且全面的 Web 应用程序模糊测试工具。具体来说,它提供了一个 Dug Song 的 webmitm 工具的修改版本。当用作透明代理(通过修改“攻击”计算机上的 /etc/hosts 文件)时,它会将所有客户端请求记录在单独的文件中。它能够可靠地处理 SSL,并且除了 OpenSSL 之外,不需要任何其他库进行编译。这些记录的客户端请求(或由网络嗅探器(例如 Ethereal)记录的请求)将使用 SPIKE API 转换为 C 源文件。编译后,这些 C 文件 (webfuzz.c) 将自动对特定的 CGI 进行模糊测试。webfuzz.c 文件作为源文件,可以轻松修改或扩展以锁定特定的漏洞。由于 SPIKE 完全开源,因此您可以获得专有且昂贵的替代方案无法比拟的灵活性和有效性。如果您使用 emacs 和一个美观的窗口管理器主题,SPIKE还包含一个非常漂亮且高效的模糊测试 GUI,就像专有替代方案一样。此外,由于 webfuzz 完全依赖于
浏览器来生成请求,因此它始终能够正确解析Java 和脚本语言。

2. msrpcfuzz:当与 dcetest 结合使用时,msrpcfuzz 会尝试测试任意 ncan_tcp 程序。它基本上会发送随机参数。如果端口突然关闭,则表明您发现了一个潜在的严重漏洞。

安装

源码安装

通过以下命令来进行克隆项目源码。建议请先提前挂好代理进行克隆。

git clone https://github.com/guilhermeferreira/spikepp.git

进入目录并查看

cd spikepp/
ls

进入 src 目录并查看一下。

cd SPIKE/src/
ls

添加缺失的辅助文件

automake --add-missing

生成 configure 脚本

autoconf

生成 Makefile 文件。

./configure

编译

make

由于这个工具有很多,我们运行其中一个工具,输入以下命令,如果出现这个界面就说明安装成功了。

./citrix -h

APT包管理器安装

Kali Linux 默认安装好 spike 工具了。如果还未安装的话,也可以通过以下命令来进行安装。

sudo apt install spike

使用

citrix

citrix -h

citrix 192.168.174.132 22

closed_source_web_server_fuzz

closed_source_web_server_fuzz 是 SPIKE 工具集中用于模糊测试(fuzzing)闭源 Web 服务器的模块。

它通过向目标服务器发送构造恶意请求(路径、方法、扩展名、文件名等),来测试目标是否会崩溃、出错、返回异常,进而发现潜在的安全漏洞(例如 buffer overflow)。

不要忘记扩展名前的句点。
常见的扩展名有:.asa .asp .cdx .cer .htw .htr .ida .idc .idq .shtm .shtml .stm .printer .jsp .jhtml .bat .exe .com .gif .jpg .mpg .rma .wma .cfm .pl .py .pike 等。
常用方法有 OPTIONS、TRACE、GET、HEAD、DELETE、PUT、POST、COPY、MOVE、MKCOL、PROPFIND、PROPPATCH、LOCK、UNLO​​CK、SEARCH、BROWSE。
请尝试使用现有文件和不存在的文件。也可以尝试将 .dll 与 .exe 一起使用,反之亦然。
尝试所有扩展名,并进入服务器设置窗口,尝试所有方法和所有目录。如果崩溃,请申请退款。
任何显示“500 服务器错误”的异常也表明 Web 服务器存在错误,甚至可能被利用。
处理查询时捕获的错误(不是 0x80040e14,MS 出于某种原因将其用作“非溢出”的标志)也同样如此。这些都是 Web 服务器存在严重问题的迹象。

closed_source_web_server_fuzz -h

closed_source_web_server_fuzz 192.168.174.132 80 GET /admin/ admin .asp 0 0

dceoversmb

dceoversmb -h

dceoversmb 192.168.174.132 \\pipe\\srvsvc e1af8308-5d1f-11c9-91a4-08002b14a0fa 3 0 2 10 3

dltest

dltest 是 SPIKE 的一个测试工具,专门用来加载 .spk 文件(SPIKE 脚本)并运行模糊测试。

dltest -h

dltest test.spk

do_post

do_post 是 SPIKE 工具集中用于发送 HTTP POST 请求 的模糊测试工具。这个工具会对 POST 请求的数据部分进行 fuzz,寻找目标 Web 服务器是否会因为处理异常 POST 数据而崩溃或抛出异常。

do_post -h

do_post 192.168.174.132 80 /login

generic_chunked

SPIKE 工具集中的 generic_chunked,用于对 Web 服务器进行带有 chunked 编码的 HTTP 请求模糊测试。

generic_chunked -h

generic_chunked exchange1 80 owa1.spk 0 0

generic_listen_tcp

它的作用是启动一个 TCP 监听服务端,并使用指定的 .spk SPIKE 脚本来响应客户端的请求。

generic_listen_tcp -h

generic_listen_tcp 70 gopherd.spk

generic_send_tcp

用于向目标 TCP 服务发送基于 .spk 脚本的测试数据。

generic_send_tcp -h

generic_send_tcp 192.168.174.132 701 something.spk 0 0

generic_send_udp

对目标的 UDP 服务发送构造好的 fuzz 数据。

generic_send_udp -h

generic_send_udp 192.168.174.132 80 file.spk 0 0 5000

generic_web_server_fuzz

用于对 Web 服务器 进行模糊测试,尝试发现如缓冲区溢出或其他潜在漏洞。

generic_web_server_fuzz -h

generic_web_server_fuzz 192.168.174.132 80 owa1.spk 0 0 

generic_web_server_fuzz2

用于检测 Web 服务器在接收特定请求时是否存在崩溃或漏洞,特别是缓冲区溢出。

generic_web_server_fuzz2 -h

generic_web_server_fuzz2 192.168.174.132 80 owa1.spk 0 0

gopherd

gopherd 是 SPIKE 工具包中的一个模拟 Gopher 协议服务端 的工具,通常用于测试客户端程序(或漏洞利用)是否能处理 Gopher 协议中的异常或恶意数据。

gopherd

gopherd 70

halflife

用于测试 Half-Life 游戏服务器(HLDS)漏洞 的 fuzz 工具。

halflife -h

halflife 192.168.174.132 27010 

line_send_tcp

向 TCP 服务发送逐行数据进行模糊测试(Line-based Fuzzing)

line_send_tcp -h

line_send_tcp 192.168.174.132 701 something.spk 0 0

msrpcfuzz

这是由 Dave Aitel 编写的一个早期的 MSRPC(Microsoft Remote Procedure Call)模糊测试工具,用于测试 MSRPC 接口中的漏洞。

这个工具属于 SPIKE Fuzzer 系列的一部分,适用于 Windows 系统的 RPC 服务漏洞挖掘。

msrpcfuzz -h

msrpcfuzz 192.168.174.132 135 e1af8308-5d1f-11c9-91a4-08002b14a0fa 3 0 2 10 3

msrpcfuzz_udp

用于通过 UDP 协议模糊测试 MSRPC 接口,目标通常是运行在 Windows 上的 RPC 服务。

msrpcfuzz_udp -h

msrpcfuzz_udp 192.168.174.132 135 e1af8308-5d1f-11c9-91a4-08002b14a0fa 3 0 2 10 3 

ntlm2

用来针对 NTLM认证(Windows 网络身份验证协议) 进行密码爆破的工具。

ntlm2 -h

ntlm2 192.168.174.132 80 msfadmin password /secure_area/ 

ntlm_brute

具用来针对目标服务器的 NTLM 认证机制进行密码爆破。

ntlm_brute -h 

ntlm_brute 192.168.174.132 80 msfadmin password /secure_area/ 

pmspike

这是一个针对 Print Manager(打印服务) 的 fuzz 工具或者漏洞测试工具

pmspike

pmspike 192.168.174.132

post_fuzz

用于模糊测试 Web 服务器对 POST 请求处理能力的工具,目的是帮助发现服务端解析 POST 数据时的漏洞,例如缓冲区溢出、未处理的输入异常等。

post_fuzz -h

post_fuzz 192.168.174.132 80 /bob2.php

post_spike

专用于向目标 Web 服务器发送模糊测试的 POST 请求,用于测试 Web 应用处理 POST 数据时是否存在缓冲区溢出或输入验证不足等漏洞。

post_spike -h

post_spike 192.168.174.132 80

quake

针对 Quake 游戏服务器的模糊测试工具。它可以向指定的 Quake 服务端口发送构造数据包,以检测是否存在缓冲区溢出或其他安全漏洞。

quake -h

quake 192.168.174.132 27960

quakeserver

用于配合 quake 工具进行漏洞测试。这个程序可以模拟一个基本的 Quake 游戏服务器环境,接收客户端(比如 fuzz 工具)发送的数据包,分析它们的行为。

quakeserver -h

quakeserver 192.168.174.132 27960

sendmsrpc

用于测试 MSRPC(Microsoft Remote Procedure Call) 接口的小工具。它可用于直接向指定主机的指定端口发送某个函数编号对应的 MSRPC 请求,以测试是否存在漏洞或是否响应异常。

sendmsrpc -h

sendmsrpc 192.168.174.132 135 1

ss_spike

用于模糊测试某种协议(可能是 SOCKS 或简单服务)的服务器端口。

ss_spike

ss_spike 192.168.174.132

statd_spike

专门针对 rpc.statd 服务的 fuzz 工具。rpc.statd 是 Linux 系统上 NFS(网络文件系统)的一部分,历史上曾有多次漏洞。

statd_spike

statd_spike 192.168.174.132

sunrpcfuzz

1. 帮助文档

sunrpcfuzz

2. 常规使用

用法:sunrpcfuzz -h <target host> <-s and/or -a> [optional args]sunrpcfuzz -h 192.168.174.132 -a

3. -s <n>

测试特定的 RCP 程序 'n' [需要 -v 和 -p]

sunrpcfuzz -h 192.168.174.132 -s 100000 -v 2 -p 6

4. -a

测试所有已注册的 RPC 程序

sunrpcfuzz -h 192.168.174.132 -a

5. -v <program version>

程序版本

6. -p <protocol number>

协议号,UDP 为 17,TCP 为 6

sunrpcfuzz -h 192.168.174.132 -s 100000 -v 3 -p 17 

7. -i <n>

每个程序执行 n 条模糊测试消息

sunrpcfuzz -h 192.168.174.132 -s 100 -v 2 -p 6 -i 10 

8. -l <n>

n 为最后一个要测试的程序

sunrpcfuzz -h 192.168.174.132 -s 100 -v 2 -p 6 -l 10

9. -f <n>

n 为第一个要测试的程序

sunrpcfuzz -h 192.168.174.132 -s 100 -v 2 -p 6 -f 5

10. -r <n>

将 n 个随机 xdr 项目推送到 SPIKE

sunrpcfuzz -h 192.168.174.132 -s 100 -v 2 -p 6 -r 10

webfuzz

webfuzz

x11_spike

x11_spike

x11_spike 192.168.174.132

总结

Spike 是一款功能强大的模糊测试工具,广泛应用于漏洞挖掘和安全测试中。通过构造各种边界值和异常输入,Spike 能有效帮助研究人员发现协议实现中的潜在缺陷。虽然使用门槛相对较高,但其高度自定义与强大的协议支持能力,使其在漏洞研究领域仍具不可替代的地位。对于想深入了解协议安全的测试人员来说,Spike 是值得掌握的一项重要工具。

在此特别强调,本教程仅在合法授权的情况下进行测试和研究,请勿用于其他用途。未经授权使用此类工具可能会侵犯他人隐私,触犯相关法律,任何因此引发的法律或利益纠纷与本人无关。

欢迎各位大佬,小白来找我交流。

相关文章:

  • 构建跨平台C/C++项目的基石:现代构建套件设计指南
  • 趋势触发策略
  • 关于spring @Bean里调用其他产生bean的方法
  • vFile文件的精读
  • 酷柚易汛ERP仓储物流解决方案
  • 怎样把B站的视频保存到本地
  • NodeRAG: 基于异构节点的基于图的RAG结构
  • 红黑树简单模拟实现
  • 复杂度讲解
  • 金融科技应用:基于XGBoost与SHAP的信用评分模型构建全流程解析
  • 【项目需求分析文档】:在线音乐播放器(Online-Music)
  • 串扰与反射对信号完整性的影响
  • 大数据治理:理论、实践与未来展望(二)
  • QWidget类关系图
  • 地理特征类相关可视化图像总结
  • Windows逆向工程提升之IMAGE_RESOURCE_DIRECTORY
  • Java 垃圾回收
  • 光模块(Optical Module)的工作原理、技术参数、应用场景及行业趋势
  • 【MPC控制 - 从ACC到自动驾驶】2 车辆纵向动力学建模与离散化:MPC的“数字蓝图”
  • Python学习心得:代码森林的冒险
  • 网页设计作业网站素材和效果图/ip营销的概念
  • php 企业网站cms/友情链接检查工具
  • 软件系统网站建设/抖音seo排名系统
  • 网站如何调用微博/龙南黄页全部电话
  • 网站建设的资源整合与系统设计/万网域名管理入口
  • html5 可以做网站吗/分销系统