roeyk/Bywaf

GitHub: roeyk/Bywaf

Bywaf 是一个可审计的 Python 命令行框架,用于编排链式渗透测试工作流程,解决传统测试中数据散乱、难以追溯的问题。

Stars: 4 | Forks: 0

# waf" as is, but that's not a translation to Chinese. The user wants the heading translated to Simplified Chinese. Bywaf 是一个用于授权 Web 应用程序和 网络测试工作流程的 Python 3 命令行框架。它为操作员提供了一个交互式 shell、插件 命令行工具、持久的 SQLite 支持的事件、工件、笔记、运行时元数据, 以及面向报告的结果工作流程。 Bywaf 插件**不是** Veil 模块、Metasploit 模块、`info` 字典, 或 `run/exploit` 入口点脚本。当前的插件 API 是基于命令行工具的: 插件作者使用 `@commandlet`、`@argument`、`@option`、`CommandletBase`、 `CommandContext`、一个 `plugin()` 工厂函数以及一个 `bywaf.plugin.toml` 清单。 核心思想很简单: ``` hostscanner 192.168.1.0/24 | portscanner | http_probe | webfin | nikto ``` 每个管道步骤向项目数据库发出规范化的事件。后续的 步骤、报告、工件搜索、审计导出和未来的前端检查 那些记录的事实,而不是抓取终端回滚。 仅在您拥有明确授权的系统和网络上使用 Bywaf。 ## 目录 - [为何选择 Bywaf](#why-bywaf) - [安装与运行](#install-and-run) - [快速开始](#quick-start) - [核心概念](#core-concepts) - [插件](#plugins) - [文档](#documentation) - [开发](#development) ## 为何选择 Bywaf 典型的评估工作流程通常涉及运行工具、复制输出、 进行转换、在别处保存笔记、运行另一个工具,以及稍后 尝试重建发生了什么。Bywaf 旨在将这种来源信息 保存在工作流程内部。 | 工具 | 擅长之处 | Bywaf 的区别 | | --- | --- | --- | | Bash | 快速 shell 脚本粘合 | 内置持久事件流、运行时记录、笔记、工件和来源追踪。 | | Metasploit | 漏洞利用工作流程和模块生态系统 | Bywaf 专注于基于规范评估数据的、可审计的事件驱动编排。 | | Airflow | 调度数据管道 | Bywaf 是交互式的、操作员驱动的,并围绕实时安全评估工作流程构建。 | | Python 脚本 | 最大灵活性 | Bywaf 为脚本提供通用的 shell、插件 API、事件存储、审计跟踪和可重用的工作流程状态。 | ## 安装与运行 关于特定操作系统的依赖项和包构建前置条件,请参阅 [INSTALL.md](INSTALL.md)。 在开发期间,从仓库根目录运行 Bywaf: ``` python3 -m bywaf --help python3 -m bywaf ``` 要进行可编辑的本地安装: ``` python3 -m pip install -e . bywaf --help bywaf ``` 要构建本地 pip 包: ``` scripts/build_pip_package.sh python3 -m pip install dist/bywaf-0.12.2-py3-none-any.whl bywaf --help ``` 捆绑包装器命令行工具使用的可选外部工具包括 `nmap`、 `nikto`、`eyewitness` 和 `kismet`。 ## 快速开始 启动 REPL: ``` bywaf ``` 运行一个小型本地管道: ``` bywaf> hostscanner 127.0.0.1 | portscanner ``` 检查运行时状态和事件: ``` bywaf> job bywaf> pipeline bywaf> step bywaf> job host=192.0.2.10 bywaf> pipeline host=192.0.2.10 bywaf> step host=192.0.2.10 bywaf> event host.found bywaf> event step=1 ``` 在开发期间加载本地插件: ``` bywaf> plugin load=./plugins/myplugin --force ``` 设置插件变量: ``` bywaf> set network/portscanner.port=22,80,443 bywaf> portscanner host=127.0.0.1 ``` 查看面向结果的输出: ``` bywaf> report bywaf> report pipeline=1 ``` ## 核心概念 - **命令行工具 (Commandlet)**:由插件或框架提供的一个小型命令。 - **管道 (Pipeline)**:一个命令表达式或由一个或多个 管道步骤组成的附加工作流程。 - **管道步骤 (Pipeline step)**:管道内的一个命令行工具调用。使用 `step=...` 进行选择。 - **作业 (Job)**:运行一个或多个步骤的受监督的前台或后台执行生命周期。 - **事件 (Event)**:由命令行工具或框架服务发出的持久的主题/负载记录。 - **工件 (Artifact)**:存储在配对的工件数据库中,并链接到步骤、管道或作业来源的证据文件。 - **结果 (Finding)**:规范化的候选或已确认的安全问题,通常 派生自较低级别的事实事件。 精确定义请参见 [docs/TERMINOLOGY.md](docs/TERMINOLOGY.md)。 ## 插件 捆绑的插件位于 [bywaf/plugins](bywaf/plugins)。较大的插件使用 如下目录布局: ``` bywaf/plugins/http/repo_exposure/ plugin.py command.py detect.py findings.py models.py bywaf.plugin.toml ``` 插件创作指南始于 [docs/plugin_author/README.md](docs/plugin_author/README.md)。用于 原生、基于库、包装进程和漏洞检测插件的 骨架位于 [docs/plugin_skeletons](
标签:Python安全, Python 框架, SQLite 数据库, Web 应用测试, 事件驱动, 交互式 Shell, 反取证, 安全评估, 审计跟踪, 工件管理, 工作流管理, 归一化事件, 报告系统, 插件架构, 管道命令, 网络安全, 网络测试, 运行时元数据, 逆向工具, 隐私保护