cosmic-zip/NettravelerEX
GitHub: cosmic-zip/NettravelerEX
一个全功能进攻性安全工具包,聚合多种黑客能力并提供 CLI 与 WebUI 统一接口,解决复杂渗透任务的一体化编排问题。
Stars: 8 | Forks: 1


[](https://snapcraft.io/nettraveler)



[](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
[](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 = """
"""
```
## 扩展
### 什么是扩展?
**扩展** 是一种特殊类型的 **组件**,但具有非常明确的结构。这些扩展包含固定的基础结构,并必须遵循如下示例中的模式。简而言之,你将拥有一个 `` 标签,如 `` 以及一个对应的按钮,如 ``。如你所见,`SOMENAME` 有明确的作用,用于标识该部分并将其链接到 **SPA** 逻辑。该名称应始终**唯一**且**小写**。
```
haki ="""
"""
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® 数据库。
@@FTITLE
neko hackers inside >_<
标签:AI支持, CTI, ESC4, OSINT, RCE代理, Web界面, Wi-Fi破解, 创世文件, 勒索软件管理, 反向Shell, 可扩展系统, 后门管理, 备份管理, 多语言, 工具聚合, 巴西葡萄牙语, 序列化, 数字取证, 日志审计, 标准化接口, 漏洞赏金报告, 自动化构建, 自动化脚本, 自定义恶意软件, 英文, 规则驱动剧本, 解析器, 进攻性安全, 逆向工具