跳转至

插件管理

在我们的扫描器中,插件是用于检测不同漏洞的模块。我们的扫描器提供了一些内置的插件,但您也可以编写自己的插件,以便扫描特定的漏洞或特定的Web应用程序。

插件分组:同一类型或者同一架构相关的插件划分为同一个插件分组。在创建扫描时,可以根据分组批量选择插件。

我们的插件分为 内置插件 和 nuclei插件(nuclei社区提供的yaml模版)。

  • 内置插件:分组是系统内置。
  • nuclei插件:从开源插件列表同步或者自己编写,分组是除系统内置外的其他分组。
  • 用户新增插件时,使用yaml规则编写插件。

1、插件列表⚓︎

插件列表能够在创建扫描任务时提供可选择的插件

插件列表

  • 启用:会创建扫描项目时会显示该插件且节点会自动同步插件。
  • 批量启用或者禁用:先选择条件,然后会按照条件进行启用和禁用。

  • 新增插件:

插件

表单字段说明如下:

名称 描述 示例
插件名称 插件名称 xss
类型 对应漏洞类型;添加类型 web漏洞/XSS
危害级别 对应漏洞级别 低危
插件分组 插件对应分组,方便查询和扫描时批量选择 系统内置
描述信息 插件的描述 跨站脚本攻击
tag 任意自定义标签 xss
插件规则 参考插件规则需要去除官方模版中info及id,只包含请求部分,如下 如下示例

插件规则例子

requests:
  - method: GET
    path:
      - "{{ BaseURL }}/.git/config"
    matchers:
      - type: word
        words:
          - "[core]"

2、开源插件⚓︎

开源插件列表主要是作为插件列表的一个来源,开源插件需要先添加进插件列表,才能进行使用

开源插件是从nuclei模版仓库同步获取插件。你可以点击 更新开源插件 按钮 ,来从模版仓库获取最新插件。

开源插件列表字段及操作说明:

操作类型

操作类型是对于旧开源插件列表来说的

  • 新增:开源插件列表之前没有,同步后新增的
  • 更新:开源插件内容和之前不同

状态说明

  • 待审核:表示本次更新还没有进行处理(没有同步或者忽略操作)。
  • 已审核:代表本次插件变更已经添加到插件列表
  • 忽略:忽略插件本次内容变更,不添加进插件列表

操作

  • 点击审核->同步到插件库可以将当前插件添加(更新)到插件列表。(无则添加,有则更新)
  • 点击忽略则不做操作,即不添加进插件列表

3、插件测试⚓︎

进入 插件列表->编辑->下一步进行插件测试

插件

请求参数

  • method:请求方法
  • target:请求url
  • data:post请求体
  • env:扫描环境 :1(内网节点);2(外网节点)

测试结果

  • err:任务错误日志
  • status: 任务状态;running(运行中)、complete(完成)、canceled(取消)
  • vul:漏洞详情,漏洞字段说明如下:
字段名称 描述
name 此处展示对应插件名称
url 漏洞url
host 漏洞url的host
port 漏洞url的端口
path 漏洞url的路径
level 漏洞级别对应插件级别
meta 漏洞中涉及的元数据:爆破成功的用户名及密码、payload等
time 发现时间
request 漏洞的请求数据包
response 漏洞的响应数据包
culCommand 漏洞请求的curl命令
interaction.rawRequest 发送的dns请求
interaction.rawResponse 对应的dns响应
templateId 对应的插件ID
taskId 对应的任务ID
status 漏洞状态 (插件测试无需关注)

请求记录

开源插件在测试时会记录请求和响应详情,系统内置插件不支持请求记录

4、历史测试⚓︎

查看测试历史,记录插件的所有测试结果。

  • 你可以通过列表操作栏的 更多->取消 按钮:来取消当前测试任务

插件

5、字典管理⚓︎

管理插件中使用的爆破字典,此功能需要配置文件服务器。

  • 字典文件格式:每个数据(比如:用户名、密码数据)都需要用换行分开,如下示例:
    admin
    root
    
  • 上传文件后会自动同步到节点。

  • 内置插件字典上传时需要按照对应文件名上传,否则不生效。对应名称如下:

插件名称 用户名文件名称 密码文件名称
401 weak password(http-basic弱口令) 401_username 401_password
mysql weak password(mysql弱口令) mysql_username mysql_password
rdp weak password(rdp弱口令) rdp_username rdp_password
smb weak password(smb弱口令) smb_username smb_password
ssh weak password (ssh弱口令) ssh_username ssh_password
telnet weak password(telnet弱口令) telnet_username telnet_password

例如:为 《mysql weak password》 插件添加用户名文件

插件

  • 用户自定义字典使用
    • 文件名不可重复,否则将会覆盖旧文件
    • 上传完成后,在列表找到对应文件的文件路径。编写插件时直接使用文件路径。如下:
requests:
  - raw:
      - |
        POST /?file={{ path }} HTTP/1.1
        User-Agent: {{ header }}
        Host: {{ Hostname }}

    payloads:
      path: helpers/wordlists/prams.txt
      header: helpers/wordlists/header.txt