文档首页 · 使用:使用者指南 · 本页用于查询参数,完整操作流程见对应主题。
本文档是 cyber 的完整参考,涵盖命令结构、配置、LLM Provider、各扫描器用法、资源查询和常见问题。
aiscan [全局参数] <subcommand> [子命令参数]
| 命令 | 类型 | 功能 |
|---|---|---|
agent |
agentic | LLM Agent;无任务输入时进入交互式 REPL;--ioa-url 增加协作连接,不改变任务模式 |
scan |
pipeline | 服务、Web、认证和 POC 的事件流水线,可选后续 AI 验证与情报搜索 |
gogo |
scanner | 主机存活、端口、服务、banner 和指纹发现 |
spray |
scanner | Web 探测、HTTP 指纹、常见文件、爬取和路径检查 |
zombie |
scanner | 授权弱口令检测 |
neutron |
scanner | 模板化 POC 检测 |
proton |
scanner | 敏感信息扫描(API 密钥、令牌、凭证、密码),支持管道输入 |
katana |
scanner | Web 爬虫(仅 full 版) |
passive |
scanner | 网络空间搜索 FOFA/Hunter(仅 full 版) |
arsenal |
tool mgr | 安全工具包管理(install/update/remove) |
cyberhub |
query | 查询已加载的指纹和 POC 模板 |
ioa serve |
service | 启动 IOA HTTP server |
ioa spaces/messages/context/nodes |
query | IOA 查询 |
查看帮助:aiscan -h、aiscan scan -h、aiscan neutron -h
配置文件发现、优先级、初始化、profile 选择和 Web 保存规则统一见配置与初始化。下列结构用于查阅字段;具体发行版只加载其已声明的扩展。
# LLM Provider
llm:
provider: "" # 协议类型:openai(默认,兼容所有 OpenAI API)或 anthropic
base_url: "" # API base URL(留空使用 provider 默认值)
api_key: "" # API key(建议使用环境变量)
model: "" # 模型名称
context_window: 0 # 真实 Token 数;0 表示按模型推断,未知模型默认 128000
max_tokens: 0 # 单次最大输出;0 使用默认值 16384
proxy: "" # 访问 LLM API 的 HTTP proxy
# 多 LLM profile 配置(可选;只手动切换,不自动 fallback)
active_profile: deepseek
providers:
- id: deepseek
name: DeepSeek
provider: openai
base_url: https://api.deepseek.com/v1
api_key: "sk-..."
model: deepseek-chat
context_window: 128000
max_tokens: 16384
- id: openai
name: OpenAI
provider: openai
api_key: "sk-..."
model: gpt-4o
# Cyberhub 资源服务
cyberhub:
url: ""
key: ""
mode: "" # merge(默认)或 override
proxy: "" # scanner/工具出口代理:socks5://、trojan://、vless://、clash://
mitm: true # 记录工具流量(默认开);false = 纯代理路由,不拦截/不抓包
# IOA 协作
ioa:
url: ""
node_name: ""
space: ""
# Agent 交互输出
output:
preset: "default" # default、verbose 或 full
# reasoning: "hidden" # hidden 或 full
# tool_calls: "compact" # hidden 或 compact
# tool_arguments: "hidden" # hidden、preview 或 full
# tool_results: "hidden" # hidden、preview 或 full
# live_status: true # thinking/tooling/talking 瞬时状态
# usage: true # 瞬时状态中的 token/上下文用量
# 扫描默认值
scan:
verify: "" # on / off;留空由执行节点按模型是否存在决定
# 通用选项
misc:
debug: false
quiet: false
no_color: falseoutput.preset 提供三组基线;未注释的细粒度字段会覆盖所选 preset:
| 输出项 | default |
verbose / -v |
full / -vv |
|---|---|---|---|
| reasoning | hidden | full | full |
| tool_calls | compact | compact | compact |
| tool_arguments | hidden | preview | preview |
| tool_results | hidden | preview | full |
| live_status | true | true | true |
| usage | true | true | true |
默认输出只保留紧凑的工具调用摘要,不显示 reasoning、结构化参数或工具结果。tool_calls: hidden 是总开关,同时隐藏工具参数和结果。live_status: false 只关闭动态状态,仍按策略输出静态工具摘要;usage: false 只隐藏动态状态中的 token 和上下文用量,不产生或删除永久统计行。
输出优先级为 -q > -vv > -v > output 配置 > default。-q 只显示最终回答;-v 和 -vv 会完整覆盖 output 中的 preset 和细粒度字段。此配置只影响 Agent 交互输出,不改变 scanner 输出或 --debug 日志,也不改变最终回答的 stdout 输出。
交互模式下 Ctrl+O 按 default → thinking → full → default 循环固定 preset。当前为自定义细粒度配置时,第一次按键先切换到 default,之后再继续循环。
全局参数建议放在子命令之前。只有 scan 支持在命令之后继续写全局参数并自动提取;其他 scanner 后面的参数原样传给对应引擎,避免短参数冲突。
| 参数 | 说明 |
|---|---|
--provider |
LLM 协议类型:openai(OpenAI-compatible)或 anthropic |
--base-url |
LLM API base URL |
--api-key |
LLM API key(也可用环境变量) |
--model |
模型名称(默认 gpt-4o) |
--context-window |
模型上下文窗口;自定义模型 ID 建议显式设置 |
--max-tokens |
单次 LLM 响应的最大输出 token 数 |
--llm-proxy |
访问 LLM API 的 HTTP 代理 |
--ai |
将单扫描器命令与意图交给 Agent 执行和分析 |
| 参数 | 说明 |
|---|---|
-p, --prompt |
自然语言任务描述,或已存在的 prompt 文件路径 |
-i, --input |
目标输入(IP、URL、IP:port、CIDR),可重复 |
-s, --skill |
指定 skill 名称或文件路径,可重复 |
--task-file |
从文件读取任务描述 |
--heartbeat <分钟> |
heartbeat 间隔(0 表示关闭,默认 0) |
--timeout <秒> |
整体超时(默认 3600) |
-e, --eval |
目标评估标准 — 独立 LLM 判断任务是否达成 |
--eval-rounds |
数字设定评估硬上限,自然语言提供评估节奏指导;默认上限 20 |
--observe <列表> |
安装指定观测处理器:tools,commands,processes,files,http |
-o, --output <路径> |
将 canonical AOP 事件流写入新的 ProtoJSONL 文件 |
--output-format <格式> |
One-shot stdout:text、json 或 stream-json |
--json |
One-shot --output-format=json 的别名 |
-r, --resume <路径> |
只读 AOP 历史并创建 continuation,不修改源文件或隐式开启输出 |
context_window 使用真实整数,例如 128K 窗口填写 128000,不是 128K。所有正整数都可保存;Web 设置页会对小于 8192 的值显示非阻塞风险提示。
max_tokens 并非无条件发送:Cyber 会预估消息和工具 schema 的 token 数,并按 context_window - 当前上下文 - 4096 自动收紧。若安全预留后没有输出空间,请求会在发送前返回包含窗口、预估输入和预留量的明确错误。上下文接近窗口时会按 Pi 的默认策略自动压缩;服务端返回上下文溢出时会压缩并自动重试一次。
全局参数应放在 scanner 命令之前;命令之后的参数由该 scanner 自己解释。例如,aiscan -o events.jsonl gogo ... -o jl 会把 canonical AOP 事件写入 events.jsonl,同时让 gogo 以 JSON Lines 输出原生结果。
| 参数 | 说明 |
|---|---|
--proxy |
Scanner 代理,支持 socks5://、trojan://、vless://、clash://(订阅自动负载均衡) |
--mitm |
是否记录工具流量(默认开启)。关闭后为纯代理路由,不拦截/不抓包 |
--cyberhub-url |
Cyberhub 资源服务 URL |
--cyberhub-key |
Cyberhub API key |
--cyberhub-mode |
资源模式:merge(默认)或 override |
| 参数 | 说明 |
|---|---|
--ioa-url |
IOA server URL |
--server-token |
当前 IOA 命令作用域的服务凭据 |
--node-id |
通用节点 ID |
--node-name |
通用节点名称,供注册使用 |
--space |
IOA 空间名(默认 default) |
--json |
IOA 查询结果以 JSON 输出 |
| 参数 | 说明 |
|---|---|
--debug |
输出调试日志 |
-v, --verbose |
显示完整 reasoning 和预览后的工具参数/结果;重复为 -vv,显示完整工具结果 |
-q, --quiet |
只显示最终回答(优先于 -v/-vv) |
--no-color |
禁用 ANSI 颜色 |
--version |
输出版本号并退出 |
参数名冲突说明:顶层参数和 scanner 子命令参数可能同名。例如
aiscan agent -p中-p是自然语言 prompt,aiscan gogo -p中-p是端口参数,aiscan zombie -p中-p是密码参数。cyber 会根据子命令自动区分。
| 协议 | 用途 | 默认 Base URL | 环境变量 |
|---|---|---|---|
openai |
OpenAI 及 DeepSeek、OpenRouter、Groq、Moonshot、Ollama 等 OpenAI-compatible API | https://api.openai.com/v1 |
OPENAI_API_KEY / OPENAI_BASE_URL / OPENAI_MODEL |
anthropic |
Anthropic Messages API 及兼容网关 | https://api.anthropic.com/v1 |
ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL / ANTHROPIC_MODEL |
除 Anthropic 协议外,其余模型服务统一使用 openai,通过 base_url、model 和 api_key 指定实际服务。其他 provider 名称会直接报错。
llm.providers 的每项支持 id、name、provider、base_url、api_key、model、proxy、timeout、max_tokens 和 context_window。选择、合并与保存规则见模型 profiles,当前会话模型的操作见Agent 指南。
# 环境变量
export CYBER_API_KEY="sk-..."
aiscan agent -p "检查目标" -i http://target.example
# DeepSeek(OpenAI-compatible)
aiscan agent --provider openai --base-url https://api.deepseek.com/v1 --api-key "sk-..." --model deepseek-chat
# Ollama(OpenAI-compatible;部分部署可使用任意非空 API key)
aiscan agent --provider openai --model llama3 --base-url http://localhost:11434/v1 --api-key local
# 任意 OpenAI 兼容 API
aiscan agent --base-url https://my-proxy.example/v1 --api-key "$MY_KEY" --model my-model
# 通过代理访问 LLM API
aiscan agent --llm-proxy http://127.0.0.1:7890--proxy 参数为扫描器设置代理:
aiscan scan -i http://target.example --proxy socks5://127.0.0.1:1080
aiscan scan -i http://target.example --proxy trojan://password@server:443
aiscan scan -i http://target.example --proxy vless://uuid@server:443?security=tls
aiscan scan -i http://target.example --proxy clash://https://subscribe.example/linkAgent 模式下还可通过 proxy 工具在运行时动态管理代理,详见 Agent 模式详解。
运行期本地 MITM Hub 为接入出口配置的内置客户端和遵循代理环境变量的外部程序提供路由。外部程序忽略环境变量、自建连接或使用不支持的协议时,不能保证其流量经过 Hub。
- 稳定前端:Hub 监听固定本地地址,一次性注入到所有工具(env + 内置 client),地址不变。
- 动态后端:出口代理链由
proxy命令驱动(节点/订阅/负载均衡),proxy switch/auto切换 Hub 后续连接的上游,已建立的 TCP 连接不会因此迁移。
两个命令职责分明,均为命令行优先:
proxy—— 管理代理(订阅、切换、负载均衡、一次性proxy <url> <cmd>直连)。mitm—— 查看已捕获流量:mitm flows [--host --status --type --last]、mitm flow <id>、mitm analyze、mitm clear。
捕获默认开启,可用 --mitm=false 或配置 mitm: false 关闭(转为纯路由,不拦截 HTTPS、不抓包、无需信任 CA)。HTTPS 捕获会为工具注入 Hub CA(CURL_CA_BUNDLE/SSL_CERT_FILE 等);对裸 IP 目标的 HTTPS 因证书无 IP SAN 可能被严格校验拒绝,使用主机名不受影响。
作为 Cairn Runner 运行时,每次工具执行的流量元数据和 body 前缀会作为 http.exchange.v1 证据进入流量表(敏感头在 Runner 侧脱敏),覆盖实际通过 Hub 且被捕获的工具流量。单个 request/response body 最多保留 8 MiB,超出部分会在 Flow 的 error 中标记为 truncated;保留中的 body 总量默认不超过 2 GiB,淘汰流量时对应文件会一并回收。
--llm-proxy 单独为 LLM API 请求设置 HTTP 代理:
aiscan agent --llm-proxy http://127.0.0.1:7890 -p "检查目标" -i http://target.exampleaiscan gogo -i 192.168.1.0/24 -p top2
aiscan gogo -i 10.0.0.10 -p 80,443,8080
aiscan gogo -i targets.txt -p allaiscan spray -u http://target.example
aiscan spray -u http://target.example --finger
aiscan spray -l urls.txt --fingeraiscan zombie -i ssh://127.0.0.1:22 --top 3
aiscan zombie -i ssh://admin@127.0.0.1:22 -p admin123注意:
zombie -p是密码参数,不是 agent 的 prompt 参数。
| 参数 | 说明 |
|---|---|
-u, --target |
URL、host 或 ip:port,可重复 |
-l, --list |
目标文件 |
-t, --templates |
自定义模板文件或目录 |
--id |
按模板 ID 执行 |
--finger |
按指纹过滤模板 |
--tags |
按 tag 过滤模板 |
-s, --severity |
按严重性过滤 |
-c, --concurrency |
模板并发数 |
--rate-limit |
每秒执行上限 |
-j, --json |
JSON Lines 输出 |
--template-list |
列出匹配模板(不执行) |
aiscan neutron -u http://target.example -s critical,high
aiscan neutron -u http://target.example --finger nginx
aiscan neutron -l targets.txt --tags cve,rce -c 10 --rate-limit 20
aiscan neutron -u http://target.example -t ./pocs --id shiro-detect -j| 参数 | 说明 |
|---|---|
-i, --input |
目标文件或目录 |
-l, --list |
包含多个目标路径的文件 |
-e, --expression |
自定义正则表达式(可重复) |
-t, --templates |
自定义模板文件或目录 |
-c, --category |
内置模板类别:keys, spray, all(默认 keys) |
--id |
按规则 ID 过滤 |
--tags |
按 tag 过滤 |
-s, --severity |
按严重性过滤 |
-j, --json |
JSON Lines 输出 |
-o, --output |
将 proton 原生结果写入文件;canonical AOP 输出使用命令前的全局 -o |
--template-list |
列出匹配规则(不执行) |
aiscan proton -i /path/to/project
aiscan proton -i . --tags cloud --severity high
aiscan proton -i . -e "AKIA[0-9A-Z]{16}" -e "password\s*[:=]"
aiscan proton --template-list -c keys
# 管道输入
curl -s http://target/api | aiscan proton
cat .env | aiscan proton -c keysaiscan katana -u https://target.example -d 3 -jc
aiscan katana -u https://target.example -hl -d 3 -jc # headless
aiscan katana -u https://target.example -hh -d 2 # hybrid| 参数 | 说明 |
|---|---|
-hl, --headless |
启用 headless 浏览器爬取 |
-hh, --hybrid |
启用 headless hybrid 爬取 |
-cwu, --chrome-ws-url |
连接已有 Chrome 实例 |
aiscan passive -s fofa 'domain="example.com"'
aiscan passive -s hunter 'domain.suffix="example.com"'| 数据源 | 凭据参数 | 环境变量 |
|---|---|---|
fofa |
--fofa-key |
FOFA_KEY |
hunter |
--hunter-api-key |
HUNTER_API_KEY |
shodan-idb |
无需 API key | — |
Cyberhub 提供外部指纹库和 POC 模板,可以扩充或替换内置资源。
aiscan scan -i http://target.example --cyberhub-url http://127.0.0.1:9000 --cyberhub-key "$CYBER_CYBERHUB_KEY"资源模式:merge(默认,合并内置和远程)或 override(远程覆盖内置)。
aiscan cyberhub search --finger tomcat
aiscan cyberhub search --cve CVE-2021-44228
aiscan cyberhub search --vendor apache --product tomcat
aiscan cyberhub list poc --severity critical --limit 10
aiscan cyberhub id tomcat结构化查询标志:--finger、--cve、--vendor、--product、--poc、--tag、-s、--limit、-j。
本地缓存位于 ~/.cyber/cache/,TTL 24 小时。
行为与执行范围见扫描指南,当前二进制的参数以 aiscan scan -h 为准。
| 参数 | 含义 | 默认 |
|---|---|---|
-i, --input |
URL、IP、IP:port 或 CIDR,可重复 | 无 |
-l, --list |
每行一个目标的文件 | 无 |
--mode |
quick 或 full | quick |
--ports |
资源端口集合、范围或列表 | quick 为 all,full 为 - |
--thread |
引擎容量缩放基准,不是聚合硬上限 | 1000 |
--timeout |
每个探测超时秒数 | 5 |
--dict、--rule |
字典与变形规则文件,可重复 | 无 |
--word |
路径词汇生成表达式 | 无 |
--default-dict、--advance |
默认字典、advance 插件 | 关闭 |
--user、--pwd |
认证检测候选用户名、密码,可重复 | 无覆盖 |
--zombie-top |
默认弱口令组合数量 | 由引擎解析 |
--max-neutron-per-finger |
每个指纹的模板上限 | 20 |
--broad-poc |
无匹配指纹时也运行 POC | 关闭 |
--verify |
on、off | 未指定时采用节点配置,否则有模型开启、无模型关闭 |
--sniper |
指纹的后续漏洞情报搜索 | 关闭 |
-j, --json |
完成后输出 gogo/spray 原生 JSON Lines | 关闭 |
--trace、--debug |
调度观察、底层日志 | 关闭 |
--no-color |
关闭终端颜色 | 关闭 |
-o 保存全局 AOP 事件;-F 读取历史,--view-format markdown -f report.md 输出回放的 Markdown。--report 不是当前 scan 解析器接受的参数。
scan:
verify: "auto" # 当前执行限制见扫描指南;明确启用时在 CLI 指定级别| 值 | 说明 |
|---|---|
auto |
配置默认值;当前 CLI 移除该值但未转为 high,不能据此保证执行验证 |
off |
关闭验证 |
low / medium / high / critical |
验证对应优先级及以上的发现 |
模型配置统一推荐 CYBER_API_KEY、CYBER_BASE_URL、CYBER_MODEL、CYBER_PROVIDER,无需为 aiscan、cyber-audit 等入口分别配置。优先级为显式 CLI > CYBER_* > 配置文件 > 兼容的 LLM_* / provider 环境变量。后者仅补充尚未配置的值。搜索、测绘等独立服务的凭据仍使用各自名称。
| 变量 | 说明 |
|---|---|
OPENAI_API_KEY |
OpenAI API key |
OPENAI_BASE_URL |
OpenAI-compatible API base URL |
OPENAI_MODEL |
OpenAI/Codex 风格模型名 |
ANTHROPIC_API_KEY |
Anthropic API key |
ANTHROPIC_BASE_URL |
Anthropic-compatible API base URL |
ANTHROPIC_MODEL |
Claude Code 风格模型名 |
CYBER_API_KEY |
统一模型 API key,所有 Cyber 二进制共用;覆盖配置文件,显式 CLI 优先 |
CYBER_BASE_URL |
统一 LLM API base URL |
CYBER_MODEL |
统一模型名 |
CYBER_PROVIDER |
协议类型:openai 或 anthropic |
CYBER_LLM_PROXY |
LLM API 请求代理 |
CYBER_DATA_DIR |
数据目录;优先级低于显式 --data-dir |
CYBER_PROXY |
扫描工具代理 |
CYBER_CYBERHUB_URL |
Cyberhub URL |
CYBER_CYBERHUB_KEY |
Cyberhub API key |
CYBER_CYBERHUB_MODE |
Cyberhub 资源模式 |
TAVILY_API_KEY |
Tavily Web Search API key,多个 key 可逗号分隔 |
FOFA_KEY |
FOFA API key |
HUNTER_API_KEY |
Hunter API key |
RECON_PROXY |
被动测绘出站代理 |
SHODAN_API_KEY、QUAKE_TOKEN、ZOOMEYE_API_KEY、NETLAS_API_KEY |
Uncover 数据源凭据 |
CENSYS_API_TOKEN / CENSYS_ORGANIZATION_ID |
Censys 凭据 |
CRIMINALIP_API_KEY、PUBLICWWW_API_KEY、HUNTERHOW_API_KEY |
Uncover 数据源凭据 |
BINARYEDGE_API_KEY、ONYPHE_API_KEY、GREYNOISE_API_KEY |
Uncover 数据源凭据 |
DRIFTNET_API_KEY、DAYDAYMAP_API_KEY、ODIN_API_KEY、NERDYDATA_API_KEY |
Uncover 数据源凭据 |
GOOGLE_API_KEY / GOOGLE_API_CX |
Google Search 凭据 |
CYBER_RENDER |
终端渲染模式:interactive、static、forwarded |
CYBER_REPL |
REPL 输入模式:readline 或 fast |
PLAYWRIGHT_CLI_SESSION |
Playwright 默认 session |
运行时业务环境变量只在 pkg/config 解析一次,再通过运行时配置下传。PATH、子进程环境继承以及 Go 标准库的 HTTP_PROXY / HTTPS_PROXY / NO_PROXY 属于操作系统级行为,不纳入业务配置优先级。前端开发服务器的 CYBER_BACKEND_URL 是 Vite 构建期配置,也不进入 Go 运行时配置。
有可停止的工作时,Ctrl+C 提交停止请求;没有可停止工作时,CLI 提示再次按键退出,随后 5 秒内再次按 Ctrl+C 以退出码 130 结束进程。交互任务控制见Agent 指南,该退出路径不保证业务资源已完成清理。