greenbone/gvm-tools
GitHub: greenbone/gvm-tools
用于远程控制 Greenbone 漏洞管理平台的官方 Python 工具集,通过 GMP/OSP 协议实现扫描任务的自动化调度与管理。
Stars: 194 | Forks: 93

# Greenbone 漏洞管理工具
[](https://github.com/greenbone/gvm-tools/releases)
[](https://pypi.org/project/gvm-tools/)
[](https://codecov.io/gh/greenbone/gvm-tools)
[](https://github.com/greenbone/gvm-tools/actions/workflows/ci-python.yml)
Greenbone 漏洞管理工具 `gvm-tools` 是一组工具集合,旨在帮助远程控制 Greenbone Enterprise Appliance 和 Greenbone Community Edition 安装。这些工具协助访问通信协议 GMP (Greenbone Management Protocol) 和 OSP (Open Scanner Protocol)。
该模块包含交互式和非交互式客户端。编程语言 Python 直接支持交互式脚本。但也可以在不使用 Python 编程的情况下发出远程 GMP/OSP 命令。
## 目录
- [文档](#documentation)
- [安装](#installation)
- [需求](#requirements)
- [版本](#version)
- [使用方法](#usage)
- [gvm-cli](#gvm-cli)
- [示例](#examples)
- [gvm-script](#gvm-script)
- [示例脚本](#example-script)
- [更多示例脚本](#more-example-scripts)
- [gvm-pyshell](#gvm-pyshell)
- [示例程序用法](#example-program-use)
- [支持](#support)
- [维护者](#maintainer)
- [贡献](#contributing)
- [许可证](#license)
## 文档
`gvm-tools` 的文档可以在 [https://greenbone.github.io/gvm-tools/](https://greenbone.github.io/gvm-tools/) 找到。更多细节请参考文档,因为本 README 仅提供简短概述。
## 安装
有关所有支持的安装选项,请参阅[文档](https://greenbone.github.io/gvm-tools/install.html)。
### 需求
支持 Python 3.9 及更高版本。
### 版本
请考虑始终使用最新版本的 `gvm-tools` 和 `python-gvm`。我们经常更新这些项目以添加功能并保持无 Bug。因此建议使用 pip 安装 `gvm-tools`。
**若要将 `gvm-tools` 与旧的 GMP 版本(7, 8, 9)配合使用,必须使用 `<21.06` 的发布版本,并结合 `<21.05` 的 `python-gvm` 版本。**
**在 `21.06` 版本中,已放弃对这些旧版本的支持。**
## 使用方法
有多种客户端可通过 GMP/OSP 进行通信。所有客户端都具备以多种方式建立连接的能力:
* Unix Socket
* TLS Connection
* SSH Connection
### gvm-cli
此工具发送纯 GMP/OSP 命令并将结果打印到标准输出。
#### 示例
返回服务器当前使用的协议版本:
```
gvm-cli socket --xml " "
```
返回提供的凭据对应的 GMP 用户可见的所有任务:
```
gvm-cli --gmp-username foo --gmp-password bar socket --xml " "
```
读取包含 GMP 命令的文件并返回结果:
```
gvm-cli --gmp-username foo --gmp-password bar socket myfile.xml
```
请注意,当命令被服务器拒绝时,`gvm-cli` 默认会打印错误消息并以非零退出代码退出。如果不希望进行这种错误处理,可以使用 `--raw` 参数请求未解析的 XML 响应:
```
gvm-cli socket --raw --xml " "
```
### gvm-script
该工具比简单的 `gvm-cli` 客户端拥有更多功能。您可以使用 [python-gvm 库](https://github.com/greenbone/python-gvm) 和 Python 3 本身的命令,创建自己的自定义 gmp 或 osp 脚本。
#### 示例脚本
```
# 获取当前 GMP 版本
version = gmp.get_version()
# 以美观格式打印 XML
from gvmtools.helper import pretty_print
pretty_print(version)
# 获取所有 tasks
tasks = gmp.get_tasks()
# 获取 task 名称
task_names = tasks.xpath('task/name/text()')
pretty_print(task_names)
```
#### 更多示例脚本
在 ["scripts/"](scripts/) 文件夹中有一个不断增长的 gmp-scripts 集合。其中一些可能正是您所需要的,并且所有这些脚本都有助于编写您自己的 gmp 脚本。
### gvm-pyshell
此工具用于交互式运行 gmp 或 osp 脚本。它使用 [python-gvm 库](https://github.com/greenbone/python-gvm) 提供与 [gvm-script](#gvm-script) 相同的 API。
#### 示例程序用法
使用给定的凭据通过 Unix domain socket 连接并打开交互式 shell:
```
gvm-pyshell --gmp-username user --gmp-password pass socket
```
通过 SSH 连接并打开交互式 shell:
```
gvm-pyshell --hostname 127.0.0.1 ssh
```
## 支持
有关 `gvm-tools` 或 gmp 脚本使用的任何问题,请使用 [Greenbone Community Portal](https://community.greenbone.net/c/gmp)。如果您发现软件有问题,请在 GitHub 上[创建一个 issue](https://github.com/greenbone/gvm-tools/issues)。
## 维护者
该项目由 [Greenbone AG](https://www.greenbone.net/) 维护。
## 贡献
非常感谢您的贡献。请在 GitHub 上[创建一个 pull request](https://github.com/greenbone/gvm-tools/pulls)。对于较大的更改,请先在 [issues](https://github.com/greenbone/gvm-tools/issues) 中进行讨论。
对于开发,您应该使用 [poetry](https://python-poetry.org/) 将 Python 包分隔在不同的环境中。首先通过 pip 安装 poetry
```
python3 -m pip install --user poetry
```
之后在 `gvm-tools` 的检出目录(包含 `pyproject.toml` 文件的目录)中运行
```
poetry install
```
以安装所有依赖项,包括仅用于开发的包。
之后通过 [autohooks](https://github.com/greenbone/autohooks) 激活用于自动格式化和 linting 的 git hooks。
```
poetry run autohooks activate --force
```
## 许可证
Copyright (C) 2017-2024 [Greenbone AG](https://www.greenbone.net/)
根据 [GNU General Public License v3.0 or later](LICENSE) 授权。
标签:AES-256, GET/POST请求分析, GMP, GPT, GraphQL引擎检测, Greenbone, GVM, GVM-Tools, OpenVAS, OSP, PHP, Python, 企业安全, 内存分配, 安全扫描, 密码管理, 底层编程, 插件系统, 数字取证, 无后门, 时序注入, 漏洞管理, 漏洞评估, 网络安全, 网络资产管理, 自动化脚本, 远程控制, 逆向工具, 隐私保护