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 章节),这些文件 存储在
目前应用程序版本 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 文件可以被视为模板,这些仅仅是纯文本文件,接受某种特殊词汇, 这些文件存储在例如,对于 FTP 协议,
一旦建立与远程主机的连接,应用程序就开始读取相应的 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短链接分析, 加密, 协议分析, 堆栈溢出, 应用层安全, 服务探测, 权限提升, 渗透测试框架, 漏洞扫描器, 漏洞验证, 缓冲区溢出检测, 网络漏洞评估, 防御