report命令
生成测试报告命令。
命令参数:report [报告名称]。
注:只有执行过起码一次完整的插件检测才能生成报告,而不是专项漏洞检测,即exec 插件名称,而不是exec插件名称、模块名称。
输入命令:report webscan。
按照提示显示的目录,打开测试报告,报告格式是html的:
好了,以上就是使用扫描器的所有命令和完整的执行流程。
插件的编写
大家按章节一的下载地址下载工具后,用vscode或者你顺手的工具打开,插件扫描器就在scan目录下。
我们的插件编写,先从scan\lib\utils\settings.py全局配置文件开始。
第一步:先看基础路径配置,整个项目的目录结构就在这里。
第二步,配置字典路径,漏洞检测模块需要用到的字典,统一放在这个路径下。
第三步:配置插件路径,新增的插件统一按下面的格式配置。
第四步:配置插件描述信息,和第三步的插件路径是对应的。
第五步:配置漏洞模块描述信息,和第四步的插件描述是对应的。
第六步:配置漏洞模块路径信息,和第四步的插件描述是对应的。
第七步:编写插件的加载模块方法。统一命名规则,插件名成_plugins()[全部模块执行方法];spec_插件名称_plugins(key:str)。
第八步:编写检测漏洞模块,以attacks插件下的bshi(破壳漏洞检测)检测模块为例,导入必须的核心库:
创建漏洞检测类,继承Request类,类名需与文件名一致。
编写的漏洞检测方法,统一命名为check:
最后编写run方法,命名不建议修改,如果实在需要修改的话,还需要在第九步中修改对应的模块导入逻辑:
第九步:在localapi.py文件下编写本地API调用。
为什么有本地API调用,因为我打算再写个远程API调用方法,结合安全工具的web服务使用(这一步不是必须的,只有在扩展新的插件才用到,如果在原有插件的基础上新增漏洞检测模块,则可以跳过这一步)。
本地API函数的格式和基本路径,参考下图:
总结下扩展逻辑就是,命名插件便于统一管理模块,模块编写按固定格式,本地API编写用于按指定插件运行检测模块,该扫描器的检测模块,我会持续更新,谢谢大家关注。
作者:小猪