olekgolus11/nulltrace
GitHub: olekgolus11/nulltrace
NullTrace 是一个基于 Bun、React 19 和 OpenTUI 构建的 AI 辅助渗透测试终端 UI 原型,探索通过引导式工作流和对话式交互来加速 Web 应用侦察与安全工具编排。
Stars: 1 | Forks: 0
# Nulltrace
NullTrace 是一个由 AI 辅助的渗透测试终端 UI,使用 Bun、React 19 和 OpenTUI 构建。
它是一个基于研究的原型,是关于大型语言模型如何支持 Web 应用程序渗透测试的毕业论文项目的一部分。当前的代码库专注于终端优先的工作流:引导式目标输入、用于侦察上下文的仪表板,以及用于集中运行安全工具的可复用工具外壳。
## 当前状态
本仓库是一个活跃的原型,应被视为一个正在进行中的研究项目,而不是一个成熟的安全产品。
目前该应用包括:
- 用于对目标 URL 启动评估的登录屏幕
- 由本地 SQLite 存储支持的持久化目标和会话记录
- 包含站点地图、聊天、漏洞摘要和工具目录面板的仪表板布局
- 具有工作区状态、命令编辑、持久化输出日志和键盘导航的可复用工具系统
- 已实现的带有引导式扫描选项和生成命令的 `nmap` 工作流
- 仅供目录展示的占位符,用于未来的工具,如 `nuclei`、`ffuf`、`sqlmap`、`zap` 和 `nikto`
某些视图仍由模拟数据提供支持,一些工具尚未实现,命令编排模型仍在演进中。本地持久化功能已支持会话、工具运行、输出日志和发现快照,但仪表板面板尚未端到端地消费这些存储的数据。
此仓库公开主要用于实现研究的可见性及项目文档化。
## 目前已实现的功能
- 带有轻量级面向会话导航的目标 URL 输入流程
- 保存的目标/会话浏览、重新打开,以及通过选定的侧边栏目标使用 `Ctrl+N` 创建会话
- 结合了聊天、站点地图、漏洞摘要和工具发现面板的仪表板
- 具有命令编辑、持久化运行记录和输出日志记录的共享工具工作区外壳
- 跨 TUI 的键盘驱动导航模式
- 可从引导式表单输入生成并运行命令的 `nmap` 工具流程
## 技术栈
- Bun
- TypeScript
- React 19
- OpenTUI (`@opentui/react`, `@opentui/core`)
- Zustand
- Bun SQLite (`bun:sqlite`)
## 本地运行
### 前置条件
- [Bun](https://bun.sh/)
- OpenTUI 支持的终端
### 安装
```
bun install
```
### 启动
```
bun run start
```
### 开发
```
bun run dev
```
### 类型检查
```
bunx tsc --noEmit
```
### 测试
```
bun test
```
## 架构概览
- 这是一个终端 UI,而不是浏览器 DOM 应用。
- 屏幕路由基于本地状态。
- 仪表板和输入流程使用本地 React state 和 reducers。
- 共享工具工作区由 Zustand store 管理。
- 工具外壳旨在通过通用的工作区模型托管多种安全工具。
- 会话数据使用 `bun:sqlite` 存储在本地 SQLite 数据库中。
- 当前的命令执行边界位于共享工具外壳中,并通过 `zsh -lc` 执行 shell 命令。
- 命令输出记录到持久化的工具运行日志中;从这些日志恢复以前的工作区上下文的功能仍在开发中。
- 长时间运行的命令具有基本的进程停止路径,但面向操作员的取消控制和状态优化仍在进行中。
## 本地存储
NullTrace 会创建一个本地 `nulltrace.sqlite` 数据库用于原型状态存储。
- macOS: `~/Library/Application Support/nulltrace/nulltrace.sqlite`
- Linux 和其他类 Unix 系统: `$XDG_DATA_HOME/nulltrace/nulltrace.sqlite` 或 `~/.local/share/nulltrace/nulltrace.sqlite`
- Windows: `%APPDATA%/nulltrace/nulltrace.sqlite`
该数据库当前存储目标、会话、工具运行、输出日志行和发现快照。
## 安全与授权使用
NullTrace 旨在用于授权的安全研究、防御性测试、实验室环境和教育工作。
- 仅对您拥有或获得明确授权测试的系统使用它。
- 本仓库可能包含常见安全工具的命令示例,但这并不意味着授权非法使用它们。
- 本仓库不应被视为经过加固或达到生产级安全水平的软件。
- 当前的原型是由操作员驱动且处于实验阶段的,并非一个自主的渗透测试平台。
- 未来的凭证处理和经过身份验证的测试功能需要在被认为是生产安全之前,进行专门的安全设计。
## 项目背景
该项目的更广泛目标是探索大型语言模型是否可以通过以下方式有效地协助渗透测试人员:
- 加速侦察和初始工具编排
- 帮助解释工具输出和发现
- 支持对话式、具备上下文感知的测试工作流
## 路线图
- 将工具注册表扩展到 `nmap` 之外
- 将仪表板视图与持久化的扫描/会话数据相连
- 添加更安全的命令执行控制、验证以及更清晰的取消 UX
- 引入带有安全机密处理的身份验证测试工作流
- 改进跨工具的报告和结果关联
NullTrace 是一个由 AI 辅助的渗透测试终端 UI,使用 Bun、React 19 和 OpenTUI 构建。
它是一个基于研究的原型,是关于大型语言模型如何支持 Web 应用程序渗透测试的毕业论文项目的一部分。当前的代码库专注于终端优先的工作流:引导式目标输入、用于侦察上下文的仪表板,以及用于集中运行安全工具的可复用工具外壳。
标签:AI辅助, Bun, Ffuf, Google, Nikto, Nmap, Nuclei, OpenTUI, React 19, SQLite, SQLMap, 大语言模型(LLM), 安全仪表盘, 安全测试, 密码管理, 工具编排, 插件系统, 攻击性安全, 攻击模拟, 数据展示, 研究生论文项目, 红队, 终端用户界面(TUI), 结构化查询, 自动化安全, 自动化攻击, 虚拟驱动器, 驱动签名利用, 黑白客安全