cosmic-zip/NettravelerEX

GitHub: cosmic-zip/NettravelerEX

一个全功能进攻性安全工具包,聚合多种黑客能力并提供 CLI 与 WebUI 统一接口,解决复杂渗透任务的一体化编排问题。

Stars: 8 | Forks: 1

!['banner'](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/96a55b5835234231.png) ![banner](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9ddf26ba6c234232.png) [![nettraveler](https://snapcraft.io/nettraveler/badge.svg)](https://snapcraft.io/nettraveler) ![NettravelerEX](https://img.shields.io/github/actions/workflow/status/cosmic-zip/NettravelerEX/netex.yml) ![GitHub issues](https://img.shields.io/github/issues/cosmic-zip/NettravelerEX) ![GitHub top language](https://img.shields.io/github/languages/top/cosmic-zip/NettravelerEX) [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) ## NettravelerEX NettravelerEX 是一个进攻性安全工具包,它聚合工具、序列化功能,并为各种任务(包括 Wi-Fi 黑客攻击、Web 扫描、漏洞扫描、OSINT、取证、备份管理、SQL 注入、后门和勒索软件管理、定制恶意软件构建、反向 Shell、RCE 代理、生成报告(RBR)以及基于规则的剧本(RPB))提供标准化交互接口。 它还提供了一个 WebUI,可访问所有 CLI 功能并包含自定义扩展。WebUI 是自动生成的,因此用户所做的所有修改在执行 `build.web` 子命令后都会生效。 该系统通过一个“创世”文件工作,该文件注册所有命令、别名、绑定和功能,以及它们的文档和超字符串。每个超字符串包含关于外部软件或内部功能的预定义选项的信息。通过这种设计,以及文档和手册自动生成,我们拥有一个完整、可扩展且健壮的运行系统。 NettravelerEX 具备基于 OWASP 漏洞数据库和 AI 支持的自动剧本生成系统。它支持英文和巴西葡萄牙语版本。该系统也用于生成漏洞赏金报告。 从创世文件出发,解析器结合模板引擎(从零构建)生成 Web、CLI 和 API 接口。最常用的为 CLI 和 Web。API 接口是实验性的,可能无法正常运行。 **重要:该项目使用 Go 从零开始实现了一个自定义 Web 服务器。该服务器允许代码执行和远程命令执行,因此不得将其暴露在任何网络上。始终在 localhost 或 NAT 虚拟机中运行。** 用户(你)仅与接口交互,这些接口提供了一种标准化的方式来使用所有子模块、扩展、插件和原生功能。 NettravelerEX 不依赖第三方库。它仅使用直接用 Python 编写的代码,使其高度便携、耐用且易于安装。只要存在 GNU/coreutils 或兼容 coreutils 的系统,NettravelerEX 即可运行。 ## 环境变量 * `NT_DATAROOT` - 设置剧本目录的完整路径(例如 `/opt/nettraveler/spellbook`) ## 安装 ### Snapstore [![Get it from the Snap Store](https://snapcraft.io/en/dark/install.svg)](https://snapcraft.io/nettraveler) ### 发行版软件包 为了方便起见,我们提供了使用 Nuitka 预编译的版本。如果你不信任预编译的二进制文件,请从源代码编译。 **注意**:这些软件包包含以下内容的编译版本: - llama.cpp - Web 服务器(使用 Go 构建) - BusyBox(可选) ### 可用版本 NettravelerEX 提供两个变体: | 版本 | 大小 | 描述 | |---------|------|-------------| | `nettraveler_lite.tar.gz` | 93 MB | 不含 LLM 模型的轻量版本 | | `nettraveler_full.tar.gz` | 2.5 GB | 包含 Llama 3B 未过滤模型的完整版本 | **建议**:使用完整版本以获得完整功能。 ## 使用方法: ``` nettraveler [submodule] --arg1 value --arg2 option --arg3 123 ``` 每当在 NettravelerEX 中执行任何功能时,你总是先定义要使用的子模块,然后跟上使用 `--` 编写的参数。参数名称不再标准化,但其含义可以在 rocketdb.json 中找到。 关于子模块 cosmic:cosmic 是我的昵称,我用它来指代那些较小且自包含的子模块,以避免产生不必要的开销。 示例: ``` chmod +x nettraveler.py ./nettraveler.py version ``` ## 输出模式 ### color(默认) 使用 UNIX 转义码添加 **ANSI 终端颜色**。适用于 **交互式终端**。不适合日志文件或自动化。 示例: ``` ./nettraveler version ``` ### none 输出 **纯 UTF-8 文本**,无颜色或格式。适用于 **脚本**、**日志** 和 **自动化**。 示例: ``` ./nettraveler version --output_mode_none ``` ### html 生成使用内联 `` 和 `style` 的 **HTML 格式输出**。用于 **仪表板**、**报告** 和 **网页预览**。 示例: ``` ./nettraveler version --output_mode_html ``` ## 阅读手册! ``` ./nettraveler manual ``` # FLAGS SCLF 标准命令行标志(SCLF)包括: - `account`:账户信息或令牌的参数。 - `address`:IPv4/IPv6 或域名。 - `ip`:IPv4/IPv6 地址。 - `device`:虚拟/物理设备(例如 HDD、SSD)。 - `dns/domain`:域名。 - `database_name`:数据库名称。 - `data`:输入数据(例如 "some data here!")。 - `file`:文件位置。 - `folder`:文件夹路径。 - `host`:主机名或 IP 地址。 - `image`:图像文件位置。 - `interface`:网络设备。 - `keyspace_name`:Cassandra keyspace 名称。 - `message`:消息字符串。 - `output`:输出文件路径。 - `overwrite`:覆盖现有文件。 - `password`:明文密码。 - `path`:文件路径。 - `port`:端口号。 - `protocol`:通信协议。 - `recursive`:启用递归模式。 - `secret`:要隐藏的文件(数据)。 - `share`:共享资源(例如文件夹、文件、打印机)。 - `snapshot_name`:快照名称。 - `table_name`:数据库表名。 - `target`:IPv4/IPv6 或域名。 - `timeout`:超时持续时间。 - `url`:带有 http/https 的完整 URL 路径。 - `username`:用户名设置。 - `wait`:以秒为单位的延迟持续时间。 - `verbose`:启用详细模式。 - `wordlist`:单词列表文件路径。 ## 如何创建插件 在 NettravelerEX 中有三种创建插件的方式:使用 rocketdb.json、在 `auxiliary/modules` 中创建新域,或修改 WebUI。通常:外部 shell 命令添加到 rocketdb 作为超字符串,Python 代码分为逻辑和实现。逻辑位于 `auxiliary/modules/mod_name`,实际实现位于 `infra/`(例如网络功能、无头浏览器或其他低级功能)。最终所有内容都必须在 rocketdb 中注册,除了扩展、模板和 WebUI 组件。 每个文件可以导出多个函数,但只能返回最终函数。所有函数必须接受 `argsv` 作为参数,即使未使用。在上面的示例中,`sample_scan` 未使用 `argsv`,但仍需要 `_`(下划线)作为参数。 -- auxiliary/settings.lua ``` from nettraveler.interface.web.generator import gen_wrapper from nettraveler.modules.genreport.reporter import gen_report_wrapper from nettraveler.modules.osint.keyword_scanner import keyword_scanner_wrapper from nettraveler.modules.scanner.dns import scanner_dns from nettraveler.modules.scanner.ip_score import scanner_ip_score_addr from nettraveler.modules.scanner.nmapper import nmapper from nettraveler.modules.server.server import server_wrapper, server_llama_wrapper, server_default_wrapper FN_REGISTRY = { "scanner.keyword": keyword_scanner_wrapper, "scanner.dns": scanner_dns, "scanner.ip": scanner_ip_score_addr, "scanner.nmapper": nmapper, "server": server_wrapper, "server.yuri": server_llama_wrapper, "server.default": server_default_wrapper, "build.web": gen_wrapper, "gen.report": gen_report_wrapper, } ``` -- data/database/rocketdb.json ``` { "index": [ { "arguments": { "value": { "description": "Dummy example" } }, "command": "echo @@value", "description": "Random summy bind for testing", "extends": {}, "name": "test.dummy", "type": "shell" } ] } ``` 如你所见,`native.` 术语会通知解析器这是一个函数,而不是外部软件调用。类似 `address` 和 `option` 的参数标记为 `@@`,表示它们是 magic_docs 参数。 要定义预定义选项: -- data/database/rocketdb.json ``` { "index": [ { "arguments": { "scripts": { "description": "Setup one of nmap default scripts", "options": [ "auth", "broadcast", ... ... "traveler" ] }, "target": { "description": "Refers to an IPv4 or IPv6 or domain name" } }, "command": "scan.nmapper @@target @@scripts", "description": "Perform NMAP scanning", "name": "native.scanner.nmapper" }, ] } ``` 现在,`@@option` 告诉解析器 `foo` 和 `bar` 是 `option` 参数的有效预定义选项。执行如下: ``` nettraveler scanner.myapp --address 172.16.123.123 --option foo ``` ## 外部别名和绑定如何工作 第一个示例展示了一个不需要任何参数的简单别名。第二个示例需要一个名为 `address` 的参数。 ``` { "index": [ { "command": "ss -tupran", "description": "Scan local open connections", "extends": {}, "name": "map.local", "type": "shell" }, { "command": "curl ip.me", "description": "Show the current ip address", "extends": {}, "name": "map.myip", "type": "shell" } ] } ``` 执行示例: ``` nettraveler map.local nettraveler ftp.connect --address 172.16.123.123 ``` ## WebUI **WebUI** 是一个使用 **HTMX** 从头开始构建的简单 **SPA**(单页应用)。选择 **HTMX** 而非 **React** 或其他库的原因是由于其简洁性,以及你无需安装任何依赖(除 **coreutils** 和一些 CLI 工具如 **nmap**)。未来可能会在 `data` 文件夹下新增 `mod/webui` 目录;放置在此文件夹中的任何文件都会被包含在最终的 **SPA** 中。 在创建框架时,有时需要填写表单,但直接在终端中操作感觉受限。因此有了这个想法:为什么不使用一个 **HTML** 表单和一个 **API**?基于这个想法,经过三次尝试,这个 **WebUI** 被创建出来。它是便携、简单、可扩展的:它通过 `nettraveler build.web` 生成,便于通过 **扩展系统** 进行维护和升级。 WebUI 必须在与服务器相同的 IP 地址和端口上运行。例如,如果 WebUI 配置为 127.0.0.1:5500,服务器也必须使用该地址——否则请求会失败。此外,WebUI 和服务器必须共享相同的令牌。该令牌不是用于认证,而是作为所有者标识符。请注意,所有通信都以明文传输,因此仅应在安全环境中使用此设置。 ## 模板 ### 什么是模板? **模板** 是一个包含 **HTML** 代码和 `@@UPPERCASE` 占位符的 **Python 变量**。在模块末尾,你应只导出(返回)表格。模板应**简单、小巧且可复用**。如果你的代码是独特且非通用用途的,你可能更倾向于构建一个或多个**扩展**来替代。 示例: ``` section_form_select = """

@@FTITLE

""" ``` ## 扩展 ### 什么是扩展? **扩展** 是一种特殊类型的 **组件**,但具有非常明确的结构。这些扩展包含固定的基础结构,并必须遵循如下示例中的模式。简而言之,你将拥有一个 `
` 标签,如 `
` 以及一个对应的按钮,如 ``。如你所见,`SOMENAME` 有明确的作用,用于标识该部分并将其链接到 **SPA** 逻辑。该名称应始终**唯一**且**小写**。 ``` haki ="""

neko hackers inside >_<

""" haki = { "section": haki, "button": '' } ``` ## 内嵌服务器 该服务器解决了多个关注点:它是**便携**的、**静态链接**的,并且**没有外部依赖**,与项目的整体设计保持一致。它还使得**网页界面**可以轻松被提供,甚至在**受限环境**(如 **Orange Pi** 或 **智能手机**)中也能运行。 要使用该服务器提供 WebUI,请运行: ``` nettraveler server --host 127.0.0.1 --port 5500 --folder webui/ ``` 服务器将创建一个名为 `evil_server.log` 的日志文件,其中包含所有 **POST 请求**。如果你提供的 IP 地址与 WebUI 中 `GEN_HOST` 全局变量的值匹配,服务器将按预期运行并正常提供页面。然而,如果配置了不同的 IP 或端口,页面仍会被提供,但**命令请求默认会被阻止**。 要手动提供静态或恶意页面,请使用以下命令: ``` nettraveler server --host 127.0.0.1 --port 5500 --folder data/evilpages/default ``` 如果希望强化 `GEN_HOST` 行为或实现回退逻辑,请告知我。 ## 人工智能助手 这是默认的 LLaMA,并经过一些调整,使用未过滤的 AI 模型。要使用 WebUI 配合 AI 助手,你至少需要 12 GB 的内存,并且必须使用 `--full yes` 运行完整 Web 服务器。 ``` nettraveler server.yuri --host 127.0.0.1 --port 5500 --folder webui/ --full yes ``` **或使用默认选项** ``` nettraveler server.default ``` ## 剧本和报告 `cosmic.report` 模块是一个**全面功能**,用于生成手动和自动化的安全报告。它最初是为**漏洞披露**设计的,但不仅限于此——它可以支持任何结构化的红队或评估报告。所有生成的报告保存在路径:`DATAROOT/reports`(通常为 `data/reports/`)。 该模块包含两个主要阶段: 1. **选择阶段**:生成指定语言(例如 **英文** `en` 或 **葡萄牙语** `br`)的漏洞和攻击列表。这些列表基于 OWASP 进行映射。 2. **配置阶段**:定义一组参数以自定义报告生成方式。 下表说明了报告生成可用的每个参数: | 参数 | 可选 | 描述 | | ----------------- | -------- | ---------------------------------------------------------------------------------- | | `title` | 否 | 设置报告标题。这也决定了输出文件名。 | | `lang` | 否 | 设置报告语言。当前支持 `en`(英文)和 `br`(葡萄牙语)。 | | `vulns_options` | 是 | 列出所有可用的基于 OWASP 的漏洞供选择。 | | `attacks_options` | 是 | 列出所有可用的基于 OWASP 的攻击类型供选择。 | | 参数 | 可选 | 描述 | | ------------- | -------- | -------------------------------------------------------------------------------- | | `noprint` | 是 | 如果设置为 `yes`,报告不会写入磁盘。 | | `system_type` | 是 | 定义目标堆栈或平台,例如 `web/html`、`web/api`、`mobile/apk`。 | | `vector` | 是 | 指定被测试的域名、URL 或应用程序名称。 | | `stack` | 是 | 描述使用的技术:`html`、`css`、`js`、`java`、`asp` 等。 | | `vulns` | 是 | 要包含的漏洞 ID 列表,例如 `1`、`1,2` 或 `1,44,22`。 | | `attacks` | 是 | 要包含的攻击 ID 列表,格式与 `vulns` 相同。 | wdwdwdnada? **风险评级系统** | 等级(0-10) | 严重性 | | ------------------ | ----------------------------------------------------------------------------------- | | **10 - 关键** | 利用可能导致严重损害(例如数据泄露、完整系统妥协)。 | | **7-9 - 高** | 显著的漏洞,但可能需要特定条件才能利用。 | | **4-6 - 中等** | 中等影响,通常与其他缺陷结合时可被利用。 | | **1-3 - 低** | 风险最小,通常与配置不当相关。 | | **0 - 可忽略** | 无直接安全影响,但改进可能。 | ## 宇宙黑客指南 ### 查看 [宇宙维基](https://cosmic-zip.github.io/) ## 许可证 本项目根据 GNU 通用公共许可证 v3.0 授权。NettravelerEX 包含 IP2Proxy® LITE 和 cinsscore® 数据库。
标签:AI支持, CTI, ESC4, OSINT, RCE代理, Web界面, Wi-Fi破解, 创世文件, 勒索软件管理, 反向Shell, 可扩展系统, 后门管理, 备份管理, 多语言, 工具聚合, 巴西葡萄牙语, 序列化, 数字取证, 日志审计, 标准化接口, 漏洞赏金报告, 自动化构建, 自动化脚本, 自定义恶意软件, 英文, 规则驱动剧本, 解析器, 进攻性安全, 逆向工具