iricartb/buffer-overflow-vulnerability-services-tester-tool

GitHub: iricartb/buffer-overflow-vulnerability-services-tester-tool

用于检测远程/本地基于栈的缓冲区溢出漏洞的协议测试工具,支持通过自定义模板对FTP、IMAP、POP3、SMTP等服务进行安全测试。

Stars: 54 | Forks: 13

BOVSTT

缓冲区溢出漏洞服务测试工具

用于检测是否存在远程/本地基于栈的缓冲区溢出漏洞的程序, 通过针对每个服务的标准通信协议进行检测。

该应用程序允许通过模板自定义每个服务的测试机制,这些 模板仅仅是纯文本文件,接受某种特殊词汇(参见 STF 章节),这些文件 存储在 文件夹中,通过扩展名 STF (Service Tester File) 建立 协议与模板之间的直接关联。

目前应用程序版本 2.5 支持 FTP、IMAP、POP3 和 SMTP 协议。

为了执行此任务,应用程序允许指定不同类型的参数。

参数

应用层协议

描述:指定要测试的协议类型。
是否必填:是
选项:-ap --application-layer-protocol <protocol>
接受的值:FTP, POP3 或 SMTP

目标主机名 IP

描述:指定要测试的主机/IP 地址。
是否必填:是
选项:-th --target-hostname-ip <hostname>
接受的值:任何有效的主机/IP 地址。

目标端口

描述:指定服务的目标端口。
是否必填:否
选项:-tp --target-port <port>
接受的值:1 - 65535
如果用户未输入此参数,应用程序将根据服务类型和加密类型自动尝试连接到默认的 目标端口。
例如,对于 POP3 服务和 SSL 加密,默认端口为 995。

加密安全协议

描述:指定服务加密的类型。
是否必填:否
选项:-cp --cryptographic-security-protocol <crypt protocol>
接受的值:SSL, TLS
注意:尚不支持。

登录用户名

描述:指定凭据的用户名。
是否必填:否
选项:-lu --login-username <username>
接受的值:字母数字值。
此参数允许自定义协议的身份验证机制。
应用程序一旦在与协议关联的 STF 文件中读取到 #AUTH 宏,就会立即启动通过用户名/密码进行的身份验证协议。如果用户名/密码验证失败, 程序将取消执行。
每当应用程序在 STF 文件中读取到关键字 <login-username> 时,它将被替换为此参数的值。

登录密码

描述:指定凭据的密码。
是否必填:否
选项:-lu --login-password <password>
接受的值:字母数字值。
此参数允许自定义协议的身份验证机制。
每当应用程序在 STF 文件中读取到关键字 <login-password> 时,它将被替换为此参数的值。

缓冲区大小长度

描述:指定缓冲区大小。
是否必填:否
选项:-bs --buffer-size-length <size>
接受的值:大于 0 的数值。
默认值:1024
此参数允许自定义要发送的缓冲区大小。
每当应用程序在 STF 文件中读取到关键字 <buffer> 时,它将被替换为 语句 { --buffer-character } * { --buffer- size-length },在此例中例如 A*1024。

缓冲区字符

描述:指定缓冲区字符。
是否必填:否
选项:-bc --buffer-character <character>
接受的值:字母数字值。
默认值:‘A’

详细输出

描述:指定用户是否希望在与远程主机的协商过程中获取更多信息。
是否必填:否
选项:-ov --output-verbose
接受的值:无

致谢

描述:查看程序的作者。
是否必填:否
选项:-c --credits
独立使用:是,不能与其他参数结合使用。

版本

描述:查看程序的版本。
是否必填:否
选项:-v --version
独立使用:是,不能与其他参数结合使用。

STF 文件

STF 文件可以被视为模板,这些仅仅是纯文本文件,接受某种特殊词汇, 这些文件存储在 文件夹中,通过扩展名 STF (Service Tester File) 建立 协议与模板之间的直接关联。

例如,对于 FTP 协议, 文件夹中有一个名为 FTP.stf 的 STF 文件,对于 SMTP,有一个 名为 SMTP.stf 的 STF 文件,依此类推。

一旦建立与远程主机的连接,应用程序就开始读取相应的 STF 文件,随后它将逐行读取,直到文件结束或遇到错误。

文件的每一行代表发送给远程主机的命令,其特点在于它接受 一系列将在运行时被翻译的关键字,这些关键字如下:

  • <login-username>:每当应用程序在 STF 文件中发现此标签时,它将被替换为用户输入的参数 -lu --login-username 的值。
  • <login-password>:每当应用程序在 STF 文件中发现此标签时,它将被替换为用户输入的参数 -lp --login-password 的值。
  • <buffer>:每当应用程序在 STF 文件中发现此标签时,它将被替换为用户输入的参数 { --buffer-character } * { --buffer- size-length } 的值。
  • <remote-domain>:每当应用程序在 STF 文件中发现此标签时,它将被替换为用户输入的参数 -th --target-hostname-ip 的域值。
这些文件还接受一系列允许更改测试机制行为的宏,这些 宏如下:

  • #AUTH:必须单独输入,不带其他信息,意味着随后所有的语句只有在身份验证过程成功后才会被执行。身份验证过程 是自动的,为此重要的是用户已在应用程序中将用户名和密码作为参数输入。
    它的使用不是强制性的,但如果应用它,我们可以向远程服务器发送命令,而只有经过身份验证的用户才能访问这些命令。
  • #RETURN <VALUE> : <COMMAND>:只有在上一次发送过程中返回了返回值 的情况下,才会发送命令 <COMMAND>,否则测试程序将停止,这可以被视为条件命令,如果远程主机在其上一条命令中回答了某个特定值,系统将继续测试。
标签:BOVSTT, CISA项目, FTP安全, IMAP安全, Maven, POP3安全, Python安全工具, SMTP安全, URL短链接分析, 加密, 协议分析, 堆栈溢出, 应用层安全, 服务探测, 权限提升, 渗透测试框架, 漏洞扫描器, 漏洞验证, 缓冲区溢出检测, 网络漏洞评估, 防御