Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
NetLogic — NetLogic 是一款先进的网络分析与网络安全工具包,用于流量检查、数据包分析和威胁检测。 | Kitploit
工具/GitHubGitHub/dmitryflynn/netlogic
OSINT (开源情报)侦察漏洞扫描器Web安全网络安全渗透测试云安全子域名枚举DNS 分析AI 安全
GitHubdmitryflynn/netlogic

NetLogic

NetLogic 是一款先进的网络分析与网络安全工具包,用于流量检查、数据包分析和威胁检测。

1812天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

NetLogic

云原生攻击面映射器与漏洞关联器 — v3.0

NetLogic 是一个网络安全平台,结合了主动端口扫描、CVE 关联(实时 NVD API)、SSL/TLS 分析、HTTP 安全审计、DNS/电子邮件安全评估、子域名接管检测、被动 OSINT、主动漏洞探测、AI 驱动推理引擎、跨主机攻击链发现以及深度探测代理架构——以 Web 应用形式交付(React 仪表盘 + FastAPI)。核心扫描引擎纯 Python 3.9+ 标准库实现,无第三方依赖。

Python 3.9+ License: MIT Platform


Features

模块描述
Port ScannerTCP 连接扫描,支持 43/58 个端口、22 种服务探测、横幅抓取
CVE Correlator实时 NVD API v2.0 + 通过 FIRST.org 的 EPSS 丰富
TLS Analyzer协议版本、弱密码套件、POODLE/BEAST/CRIME/DROWN、证书过期
HTTP Header AuditHSTS、CSP、X-Frame-Options、CORS、Cookie 标志;0–100 分
Stack Fingerprint从横幅/头部/正文检测 CMS、框架、云提供商、CDN、WAF
DNS SecuritySPF、DKIM、DMARC、DNSSEC、区域传输、欺骗性评分
Passive OSINT证书透明度日志、DoH DNS、ASN 查询——无直接目标接触
Service Prober未认证 Redis/Mongo/ES/Docker/K8s/etcd 探测、33 个管理路径
Takeover DetectorCT 日志子域名发现 + 25 个云提供商 CNAME 指纹
Nuclei Integration13k+ 社区模板封装(CVE、技术、暴露、错误配置)— MIT 许可证
Fusion Pipeline多传感器信号门 → 确定性共识 → AI 裁决 → 攻击图 → 6 部分报告
Web FingerprintFavicon 哈希(兼容 Shodan 的 mmh3)、JS 密钥、版本标记、暴露文件、默认登录页检测
AI AnalysisOpenAI / Anthropic / OpenRouter / Ollama / Gemini / Groq / Kimi / Qwen — 令牌流式 SSE
Reasoning Engine自适应观察→推理→行动循环,包含证据图、假设引擎、置信度衰减、溯源、调度器、剧本、变更检测、主动验证
Deep Probe每服务代理架构:ScoutAgent(侦察)、ProbeAgent(定向 CVE 检查)、协调器、沙箱
AI Investigation AgentReAct 风格循环:在基线传感器之后,AI 驱动精炼、范围受限、可审计的工具面(约 35 个工具)来验证线索并构建攻击链——并可选启用激进工具(崩溃探测、自由形式验证、自由形式利用)用于授权目标
Verifier EngineAI 驱动的 CVE 重新验证:从 CVE 上下文设计原始 HTTP 探测计划,通过标准库套接字执行
Multi-Host Orchestration每主机完整扫描流水线 → 跨主机上下文与可达性矩阵 → 攻击链发现
AI Sensor DirectorsLLM 根据开放端口、技术栈和 CVE 决定优先使用哪些传感器
Authenticated SSH带凭证的 ssh 子进程读取实际安装的软件包版本(60+ 产品映射)
Service Enum协议级属性提取(SSH KEX、SMBv1、RDP NLA、SNMP 团体、HTTP 认证状态)
Topology Mapper反向 DNS、IPv6、traceroute、通过 ip-api.com 获取 ASN/组织/国家

How to Run

模式命令功能
Web 应用netlogic --gui启动 FastAPI 并提供 React SPA + 进程内扫描代理,自动生成密钥,并在浏览器中打开仪表盘。这是运行 Web 应用的唯一方式。
命令行netlogic <target> [flags]一次性终端扫描(无服务器),打印/写入报告。

产品界面是 Web 应用(React 仪表盘 + FastAPI)。src/ 下的扫描引擎驱动从 UI 启动的任务。


Quick Start```bash

One-time install

pip install -r requirements-api.txt pip install -e .

Run the web dashboard

netlogic --gui

→ Dashboard at http://localhost:8000, auto-generated secrets in ~/.netlogic/secrets.json

(first run builds the dashboard automatically; requires Node.js)

Or a one-shot CLI scan

netlogic scanme.nmap.org --full

root@kitploit:~
---

## CLI 参考```
netlogic [target] [flags]

入口点是 api.cli:main(定义在 pyproject.toml 中),它将任务委托给 netlogic.py:main()。所有扫描逻辑都在 src/ 目录下。

目标规范

扫描范围```

Basic scan — 43 common ports + CVE correlation

netlogic example.com

Full scan — all modules enabled

netlogic example.com --full

Deep TLS + HTTP header audit

netlogic example.com --tls --headers

Subdomain takeover detection

netlogic example.com --takeover

Passive OSINT only

netlogic example.com --osint

Technology stack + WAF fingerprinting

netlogic example.com --stack

DNS/email security (SPF, DKIM, DMARC, DNSSEC)

netlogic example.com --dns

Active service probing (unauthenticated access, default creds, CVE-specific checks)

netlogic 10.0.0.5 --probe

Everything — all flags combined

netlogic example.com --full --probe

root@kitploit:~
### 端口选择```
# Quick — 43 common ports (default)
netlogic example.com --ports quick

# Full — 58 extended ports
netlogic example.com --ports full

# Custom list
netlogic example.com --ports custom=22,80,443,8080,9200

AI 分析```

OpenRouter (default)

netlogic example.com --ai --ai-key $KEY

OpenAI

netlogic example.com --ai --ai-provider openai --ai-key $KEY --ai-model gpt-4o-mini

Anthropic

netlogic example.com --ai --ai-provider anthropic --ai-key $KEY

Gemini

netlogic example.com --ai --ai-provider gemini --ai-key $KEY --ai-model gemini-2.0-flash

Local Ollama

netlogic example.com --ai --ai-provider ollama

Custom OpenAI-compatible endpoint

netlogic example.com --ai --ai-provider custom --ai-base-url https://... --ai-model model-name

root@kitploit:~
### 支持的AI提供商

| 提供商 | 默认模型 | API 风格 |
|---|---|---|
| `openrouter` | `anthropic/claude-sonnet-4` | OpenAI |
| `openai` | `gpt-4o-mini` | OpenAI |
| `anthropic` | `claude-3-5-sonnet-20241022` | Anthropic Messages |
| `kimi` (Moonshot) | `kimi-k2.6` | OpenAI |
| `qwen` (Alibaba) | `qwen-plus` | OpenAI |
| `groq` | `llama-3.3-70b-versatile` | OpenAI |
| `gemini` (Google) | `gemini-2.0-flash` | OpenAI |
| `ollama` | `llama3` | OpenAI |
| `custom` | 用户指定 | OpenAI |

### 推理引擎```
# Adaptive observe→reason→act loop (deterministic by default; AI-augmented with --ai)
netlogic example.com --reason

# Multi-host world modeling — discovers in-scope neighbours, reasons per host
netlogic example.com --reason --multi-host

# Change detection — diffs against prior saved report
netlogic example.com --since-last

# Active validation — confirms hypotheses with safe non-destructive GETs
netlogic example.com --reason --active-validate

# Deep probe — per-service agent architecture with context isolation
netlogic example.com --deep-probe

AI 调查代理

基线传感器运行后,一个可选的 ReAct 风格智能体让 AI 能够自行驱动其工具来验证线索并构建攻击链,而不是将版本/横幅 CVE 命中作为未经验证的线索搁置。AI 提出工具调用;确定性运行时执行它们——每个工具都限定范围于目标,经过清理,并作为观察记录。AI 从不直接接触网络。```

AI chooses tools after baseline (needs --ai)

netlogic example.com --ai --ai-agent

Depth mode — higher budgets, chases CVE leads + attack chains, blocks early stop

netlogic example.com --ai --agent-depth --agent-max-steps 24 --agent-max-requests 80

root@kitploit:~
该代理默认拥有约35个只读/安全活跃工具:HTTP/TLS/DNS 探测器、`dir_enum`、`confirm_tech`、
`timing_probe`、`cve_probe`(精选的已知 CVE 标记检查)、`sqli_boolean`/`sqli_time`、`ssrf_canary`、
`idor_diff`、`file_disclosure`、`browser_get`(无头模式,通过 JS 挑战),以及 HackerOne 记账功能
(`record_poc`、`severity_suggest`、`submit_readiness`)。

**选择加入的攻击性工具** — 默认关闭,**仅限授权/拥有范围内的目标**(绝不用于公开或陌生人扫描)。每个都需要 `--ai-agent`:

| 标志 | 工具 | 解锁内容 | 保留限制 |
|---|---|---|---|
| `--allow-crash-probes` | `crash_probe` | 精选的崩溃/DoS CVE 检查(http.sys、MS15-034),可能导致主机崩溃 | 固定的 3-CVE 目录 — 非自由格式 |
| `--allow-freeform-proof` | `http_proof` | C 级:自由格式的 GET/HEAD/OPTIONS(+ 对搜索/登录/类 GraphQL 路径的 POST) | 破坏性模式 + PUT/PATCH/DELETE 被阻止;证明,而非修改 |
| `--allow-exploit-requests` | `exploit_request` | E 级:**任意方法**(包括 PUT/PATCH/DELETE)+ 针对目标的任意路径/标头/主体 | 作用域限制;在大量破坏性模式(DROP/TRUNCATE TABLE、`rm -rf`)和 CR/LF 标头注入上失败关闭;每个请求均被审计 |

确定性的 ActionGate 将核心保持在 `safe_active`;这三个标志是其上的明确、经审计的选择加入。示例(拥有实验室箱子 + 本地模型):```
netlogic YOUR_LAB_HOST --full --ai --ai-agent --agent-depth \
  --allow-crash-probes --allow-exploit-requests \
  --ai-provider ollama --ai-model gemma4:31b-cloud \
  --ai-base-url http://localhost:11434/v1 --ai-key ollama

已认证扫描```

SSH key-based — reads real installed package versions

netlogic example.com --ssh-user admin --ssh-key ~/.ssh/id_rsa

SSH password (requires sshpass)

netlogic example.com --ssh-user admin --ssh-pass SECRET

Custom SSH port

netlogic example.com --ssh-user admin --ssh-key ~/.ssh/id_rsa --ssh-port 2222

root@kitploit:~
### 基准测试```
# Fusion pipeline benchmark against recorded cassettes (oracle mode — perfect AI upper bound)
netlogic --benchmark

# With real AI model
netlogic --benchmark --benchmark-ai

# Export report
netlogic --benchmark --benchmark-export report.md

# Verbose per-subject output
netlogic --benchmark --benchmark-verbose

输出```

Report format

netlogic example.com --report terminal # terminal output (default) netlogic example.com --report json # JSON file netlogic example.com --report html # HTML report netlogic example.com --report all # terminal + JSON + HTML

Output directory

netlogic example.com --out ./reports

CVSS threshold

netlogic example.com --min-cvss 7.0

Colour

netlogic example.com --no-color

root@kitploit:~
### NVD 缓存管理```
netlogic --cache-stats
netlogic example.com --nvd-key YOUR_NVD_KEY

杂项```

netlogic --version # Show version and exit netlogic --gui # Start web dashboard

root@kitploit:~
---

## 融合流程

融合流程是一个 **传感器 → 门控 → AI 裁决 → 综合** 漏斗,它用精确的门控取代了单一的 AI 调用。它位于 `src/fusion/` 目录下(共 12 个文件)。

### 信号模式 (`src/fusion/signals.py`)

承载证据的数据契约。每个传感器发出 `Signal` 对象:
- `source`: `probe`/`banner`/`nuclei`/`wappalyzer`/`nvd`/`osv`/`tls`/`dns`
- `kind`: `vuln`/`tech`/`exposure`/`misconfig`/`service`
- `claim`: 规范化主题(例如 `"CVE-2021-44228"`、`"nginx"`)
- `host`、`port`、`service`、`evidence`(最多 600 个字符)
- `confidence`(0..1)、`reliability`(`high`/`medium`/`low`)
- `kev`、`epss`(0..1)、`cvss`(0..10)、`exploit_available`、`version_matched`、`probe_confirmed`
- `exposure` 字典(可达性、WAF、观测点)
- `observed_data`(发送给 AI 的原始字节——而非传感器名称或严重性,以防止标签偏差)
- `ai_view()` 剥离传感器元数据,仅返回观察到的实事

### 门控 (`src/fusion/gate.py`)

确定性协议——给定 `list[Signal]`,按主题分组并返回 `list[Verdict]`:

| 条件 | 裁决 |
|---|---|
| 已列入 KEV 或探针确认或严重+利用/高 EPSS | **已确认**(固定——不可丢弃) |
| ≥2 个独立来源一致,且 ≥1 个高可靠性 | **已确认**(除非全部版本匹配 → 灰色) |
| 单个低可靠性、低/中影响、无佐证 | **已丢弃** |
| 其他所有情况 | **灰色**(消耗一个 AI token) |

### AI 裁决 (`src/fusion/adjudicator.py`)

仅处理灰色区域。安全约束在代码中强制执行(而非提示):
- 高/严重灰色项目绝不能丢弃——最坏情况下降级为 `potential`
- 仅版本匹配限制为 `potential`(发行版可能在不增加版本号的情况下进行向后移植)
- AI 还会从完整的主机上下文中发现新发现
- 软故障:AI 故障时灰色区域保持为 `potential` —— 无静默数据丢失

### 综合 (`src/fusion/synthesis.py`)

`build_attack_graph(verdicts)` → 从 CONFIRMED 发现中生成确定性的可达性图。
`full_synthesize(...)` → 6 部分 AI 报告:
1. 执行摘要
2. 关键发现(表格)
3. 攻击链(基于图,LLM 描述真实边)
4. 已知 CVE 之外
5. 误报与噪音
6. 修复建议

### 传感器

| 传感器 | 文件 | 输出内容 |
|---|---|---|
| 引擎桥接 | `engine_bridge.py` | 将扫描产物转换为来自 NVD、探针、栈、Nuclei、验证器的 Signal |
| Wappalyzer | `sensors/wappalyzer.py` | 零依赖的 Wappalyzer 兼容 HTTP 响应指纹识别 |
| Nuclei | `sensors/nuclei.py` | 针对响应运行 YAML 模板(Nuclei 语法子集) |
| Cassette | `cassette.py` | 从 HTTP 磁带记录/重放(离线基准数据) |

### 跨主机 (`src/fusion/cross_host.py`)

裁决后的跨主机按共享服务+版本分组,用于综合中的多跳攻击链叙述。

### 流程流水线```
Engine artifacts / Cassette data
    ↓
engine_bridge.py / cassette.py     → Signal list
    ↓
gate.py::adjudicate()              → Verdict list (confirmed/discarded/gray)
    ↓
adjudicator.py::run_adjudication() → AI on gray band only
    ↓
synthesis.py::full_synthesize()    → 6-section report + attack graph

推理引擎

位于 src/reasoning/(约58个文件)。多阶段、安全门控的观察→推理→行动循环。通过 --reason 启用。

核心循环(src/reasoning/director.py — ReconDirector.run())

  1. 阶段2 传感器扫描:StrategyManager 选择角色 → Scheduler 选取行动 → SensorStep 执行 → EvidenceGraph 整合观察 → ConfidenceEngine 更新信念
  2. 阶段3 AI循环:确定性生成器填充目标/假设 → AI代理提出带类型的 Proposal 信封 → AICoordinator 标准化/排序/验证 → 接受的提案播种状态 → Compiler → ExecutionPlanner → ExecutionKernel 运行探测 → InferenceEngine 解析
  3. 阶段6c 多主机:通过 CrossHostGraph 进行跨主机发现,生成子 HostReasoner 实例
  4. 阶段8 规划遍历:GoalPlanner 生成调查计划

状态层次结构(src/reasoning/state.py)

关键组件

AI 子系统(src/reasoning/ai/)

流水线:生成 → 标准化 → 排序 → (元推理器剪枝) → 验证 → 存储


深度探测架构

位于 src/deep/(7个文件)。与 --deep-probe 一起使用。用于上下文隔离探测执行的每个服务代理架构。

DeepCoordinator.run() 流程:

  1. 构建AI传感器计划(通过 sensor_director 的 _build_sensor_plan)
  2. 派遣 ScoutAgent 进行被动侦察
  3. 按服务分组发现 → 每个服务的 ProbeAgent 实例(每个具有隔离的CVE/技术上下文)
  4. 运行服务枚举、Nuclei(AI选择的标签)、验证器引擎、接管、AI引导的子网探测、拓扑、认证SSH、扫描差异、可达性探测

验证器引擎

位于 src/verifier/(3个文件)。AI驱动的CVE确认,带有针对性探测。

阶段2 重新验证(reverify_with_context)提供完整主机上下文以完善失败的测试。


AI传感器指导器

位于 src/directors/(4个文件)。LLM驱动的扫描参数选择。


多主机编排

位于 src/orchestrator.py。由逗号分隔的目标触发。对每个主机运行 run_scan(),聚合结果,从组合的融合判定中构建跨主机上下文。跨主机组检测跨主机的共享服务/版本,用于多跳攻击链叙述。


CVE覆盖

在线:NVD API v2.0 (src/nvd_lookup.py)

  • 对未覆盖产品/版本的实时查找
  • 192个离线签名用于气隙环境
  • 具有原子写入的磁盘缓存
  • 用于更高速率限制的NVD API密钥(--nvd-key)

富化

  • EPSS (src/epss.py): FIRST.org API,每批100个CVE ID,24小时磁盘缓存位于 ~/.netlogic/epss_cache.json,软故障到0.0
  • CISA KEV: 在野外被积极利用的CVE
  • 公开漏洞利用跟踪: Metasploit 和 PoC 标记

Nuclei集成

src/external/nuclei_runner.py 封装了Nuclei二进制文件(MIT许可证)。可选 — 当找不到二进制文件时优雅降级。结果作为类型信号馈入融合流水线(去除严重性标签以防止LLM偏差)。```

Install Nuclei

scoop install nuclei # Windows brew install nuclei # macOS go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest # Linux

root@kitploit:~
---

## 融合基准测试

`src/fusion/benchmark.py` — 离线测量,与标记的 HTTP 磁带进行对比(`benchmark/*.json` 和 `src/fusion/data/`)。指标:

| 指标 | 门限阈值 |
|---|---|
| FP 降低 | ≥ 80% |
| 关键召回率 | = 100% |

两种模式:
- **Oracle**(`--benchmark`):完美 AI 上限 —— 仅测量确定性机制
- **真实模型**(`--benchmark --benchmark-ai`):使用配置的 LLM 进行测量

---

## 架构```
netlogic/
├── netlogic.py                  ← Local launcher (`--gui`, optional CLI helpers)
│
├── src/                         ← Scan engine (used by the web API)
│   ├── scanner.py               ← TCP scanner, 22 service probes, banner grabbing
│   ├── engine.py                ← Orchestrator: SensorStep pipeline, all scan modules + fusion
│   ├── orchestrator.py          ← Multi-host: per-host scan → cross-host context
│   ├── ai_analyst.py            ← LLM integration (9 providers, stdlib-only transport)
│   ├── cve_correlator.py        ← CVE matching: NVD 
│   ├── nvd_lookup.py            ← NVD API v2.0 client, disk cache, CISA KEV
│   ├── epss.py                  ← EPSS enrichment (FIRST.org, 24h cache)
│   ├── service_prober.py        ← Unauthenticated service access, default creds, admin paths
│   ├── vuln_prober.py           ← CVE-specific safe active probes
│   ├── osint.py                 ← DoH, CT logs, ASN lookup
│   ├── tls_analyzer.py          ← SSL/TLS deep analysis
│   ├── header_audit.py          ← HTTP security header audit
│   ├── stack_fingerprint.py     ← CMS, framework, cloud, CDN, WAF detector
│   ├── web_fingerprint.py       ← Favicon mmh3, JS secrets, version files, exposed paths, lander detection
│   ├── dns_security.py          ← SPF, DKIM, DMARC, DNSSEC, zone transfer
│   ├── takeover.py              ← Subdomain takeover (25 provider fingerprints)
│   ├── authenticated.py         ← SSH subprocess: dpkg/rpm/apk parsing, 60+ product mappings
│   ├── topology.py              ← PTR, IPv6, traceroute, ASN/org/country
│   ├── reachability_prober.py   ← Lateral movement matrix from subnet adjacency
│   ├── network_prober.py        ← /24 subnet sweep: live-host → full port scan
│   ├── service_enum.py          ← Protocol attribute extraction (SSH KEX, SMBv1, RDP NLA, SNMP)
│   ├── ssl_utils.py             ← Configurable SSL context management, TLS probe
│   ├── scan_diff.py             ← Change-over-time: diffs against prior JSON report
│   ├── json_bridge.py           ← Streaming JSON events for agent / REST API
│   ├── reporter.py              ← Terminal, JSON, HTML output renderers
│   │
│   ├── fusion/                  ← Precision funnel (12 files)
│   │   ├── signals.py           ← Signal schema
│   │   ├── gate.py              ← Deterministic agreement
│   │   ├── adjudicator.py       ← AI adjudication (gray band only)
│   │   ├── synthesis.py         ← Attack graph + 6-section report
│   │   ├── ai.py                ← CompleteFn/StreamCompleteFn adapter
│   │   ├── engine_bridge.py     ← Artifacts → Signals → verdicts
│   │   ├── benchmark.py         ← Offline benchmark (oracle + real model)
│   │   ├── cassette.py          ← HTTP cassette record/replay
│   │   ├── corpus.py            ← Cassette→case conversion + CLI
│   │   ├── cross_host.py        ← Cross-host verdict correlation
│   │   ├── sensors/nuclei.py    ← Nuclei YAML → Signal conversion
│   │   └── sensors/wappalyzer.py← Wappalyzer fingerprint → Signal
│   │
│   ├── directors/               ← AI sensor directors (4 files)
│   │   ├── sensor_director.py   ← LLM selects which sensors to enable
│   │   ├── reprobe.py           ← LLM designs re-probe plans
│   │   ├── nuclei_selector.py   ← LLM selects Nuclei template tags
│   │   └── subnet_director.py   ← LLM directs subnet probing
│   │
│   ├── verifier/                ← AI CVE verification (3 files)
│   │   ├── engine.py            ← Verifier orchestration
│   │   ├── planner.py           ← Built-in + AI-generated probe plans
│   │   └── runner.py            ← Raw TCP/TLS probe execution
│   │
│   ├── deep/                    ← Deep probe agents (7 files)
│   │   ├── coordinator.py       ← Full deep pipeline orchestrator
│   │   ├── scout_agent.py       ← Passive recon agent
│   │   ├── probe_agent.py       ← Per-service probe agent
│   │   ├── chain.py             ← Exploit chain planning + PoC generation
│   │   ├── sandbox.py           ← Restricted PoC execution
│   │   ├── base_agent.py        ← Abstract base
│   │   └── models.py            ← Mission/AgentReport data models
│   │
│   ├── reasoning/               ← Adaptive reasoning engine (~58 files)
│   │   ├── director.py          ← ReconDirector (main loop)
│   │   ├── state.py             ← WorldModel/InvestigationState/ExecutionState
│   │   ├── hypothesis.py        ← Hypothesis engine (competing candidates)
│   │   ├── evidence_graph.py    ← Temporal entity graph (content-addressed obs)
│   │   ├── confidence.py        ← Noisy-OR belief computation
│   │   ├── provenance.py        ← Observation→Inference→Hypothesis edges
│   │   ├── scheduler.py         ← Information-gain action selection
│   │   ├── strategy.py          ← Meta-reasoning: personas, explore/exploit
│   │   ├── strategies.py        ← Concrete strategy implementations
│   │   ├── action_gate.py       ← Risk-tiered probe authorisation
│   │   ├── change_detection.py  ← Phase 7: observation-level diff
│   │   ├── active_validation.py ← Phase 8b: SAFE_ACTIVE probes
│   │   ├── cross_host.py        ← Cross-host world modeling
│   │   ├── objective.py         ← Objective DAG management
│   │   ├── intent.py            ← Intent model + EvidenceType enum (29 types)
│   │   ├── candidate.py         ← Action candidate with lazy factory
│   │   ├── actions.py           ← Action model with RiskTier + Predicate
│   │   ├── compiler.py          ← Intent → InvestigationGraph
│   │   ├── execution_planner.py ← InvestigationGraph → ProbePlanGraph
│   │   ├── execution_kernel.py  ← Probe execution with validators
│   │   ├── probe_executor.py    ← Read-only probe backends
│   │   ├── primitive_registry.py← Probe primitive catalogue
│   │   ├── generators.py        ← Deterministic objective/hypothesis population
│   │   ├── playbooks.py         ← YAML playbook system
│   │   ├── planning_pass.py     ← GoalPlanner integration
│   │   ├── budget.py            ← Probe budget management
│   │   ├── inference.py         ← Deterministic rule-based inference
│   │   ├── novel_inference.py   ← Novel-vuln hypothesis rules
│   │   ├── investigation_planner.py  ← Goal-directed investigation planning
│   │   ├── investigation_memory.py   ← Strategy attempt memory
│   │   ├── observation_translator.py ← Raw data → structured observations
│   │   ├── observation.py       ← Immutable, content-addressed observation
│   │   ├── reflect.py           ← PlannerFeedback generation
│   │   ├── reasoning_validator.py ← Continuous integrity audit
│   │   ├── builder.py           ← State population from artifacts
│   │   ├── trace.py             ← Execution tracing
│   │   ├── explanation.py       ← Explanation records
│   │   ├── ai/                  ← AI cognitive layer (subsystem)
│   │   ├── packs/               ← Technology pack calibration
│   │   ├── playbooks/           ← YAML playbook templates
│   │   └── rules/               ← JSON inference rules
│   │
│   └── external/nuclei_runner.py ← Nuclei binary wrapper
│
├── api/                         ← FastAPI controller
│   ├── main.py                  ← App factory, lifespan, middleware stack
│   ├── cli.py                   ← Typer -> netlogic.py bridge
│   ├── db.py                    ← PostgreSQL connection + migration runner
│   ├── crypto.py                ← Fernet seal/unseal (AES-128-CBC + HMAC-SHA256)
│   ├── auth/
│   │   ├── api_keys.py          ← Dual-store (memory/PG), SHA-256 hashed
│   │   ├── jwt_handler.py       ← Stdlib-only HS256 JWT
│   │   ├── oidc.py              ← Clerk/IdP OIDC (RS256 + JWKS)
│   │   ├── license.py           ← LicenseManager (stub → real payment API)
│   │   ├── rate_limit.py        ← Sliding-window, IP banning
│   │   ├── provisioning.py      ← Clerk auto-provisioning
│   │   └── dependencies.py      ← require_org FastAPI dependency
│   ├── agents/
│   │   ├── registry.py          ← Agent lifecycle (concurrency-aware, JSON persistence)
│   │   └── local_agent.py       ← Built-in in-process agent
│   ├── jobs/
│   │   ├── manager.py           ← ScanJob lifecycle, capped event deque (10k), SSE, Postgres
│   │   └── executor.py          ← Dispatch (capability/selector, least-loaded, reclaimer)
│   ├── middleware/audit.py      ← X-Request-ID + structured audit + SIEM shipping
│   ├── models/
│   │   ├── scan_request.py      ← Pydantic ScanRequest (ipaddress validation)
│   │   └── agent.py             ← AgentRegistration constraints
│   ├── routes/
│   │   ├── auth.py              ← /v1/auth/*
│   │   ├── jobs.py              ← /v1/jobs/*
│   │   ├── agents.py            ← /v1/agents/*
│   │   ├── health.py            ← /health + /v1/health
│   │   ├── license.py           ← /v1/license/*
│   │   └── settings.py          ← /v1/settings/*
│   └── storage/
│       ├── json_store.py         ← 10 MB cap, 500 file cap, atomic writes
│       ├── pg_store.py           ← Postgres JSONB upsert
│       └── reasoning_store.py    ← Dual-store for reasoning state
│
├── dashboard/                   ← React SPA (Vite + TypeScript + Tailwind + Clerk)
│   └── src/
│       └── pages/               ← Dashboard, NewScan, ScanDetail, Agents, Targets,
│                                   TargetTimeline, Settings, License, Login, SignUp, Legal
│
├── docs/                        ← Design documentation
│   ├── DEPLOY_SAAS.md, saas-auth.md
│   ├── REASONING_ENGINE_DESIGN.md
│   ├── LEGAL_COMPLIANCE.md
│   ├── ENTERPRISE_READINESS.md
│   └── DESIGN_PARTNER_PACK.md
│
├── db/migrations/               ← PostgreSQL schema migrations
└── benchmark/                   ← HTTP cassette recordings for fusion benchmark

API 参考

所有路由均位于 /v1/ 前缀下。认证方式:

  • 机器:API 密钥 → POST /v1/auth/token → HS256 JWT(默认 1 小时过期)
  • 人类:Clerk OIDC 会话 JWT → require_org 依赖项通过 JWKS 验证

认证```

POST /v1/auth/token Exchange API key for JWT [10/min/IP] POST /v1/auth/keys Create API key (X-Admin-Key) [admin] GET /v1/auth/keys List keys (masked) [admin] DELETE /v1/auth/keys Revoke key (body, not URL) [admin]

root@kitploit:~
### 职位```
POST   /v1/jobs                Create scan job                    [30/min/org]
GET    /v1/jobs                List recent jobs
GET    /v1/jobs/history/{target}  Scan history for target
GET    /v1/jobs/{id}           Job detail
GET    /v1/jobs/{id}/stream    SSE event stream                   [60/min/org]
GET    /v1/jobs/{id}/export    Export (format=json|md|raw)
POST   /v1/jobs/{id}/explore-beyond  AI deep-dive on finding
POST   /v1/jobs/{id}/cancel    Cancel job
DELETE /v1/jobs/{id}           Remove job

代理```

POST /v1/agents/register Register agent [5/hr/IP] POST /v1/agents/{id}/heartbeat Keep-alive [3/min] GET /v1/agents/{id}/tasks Poll pending jobs POST /v1/agents/{id}/tasks/{job_id}/events Submit events [60/min, 500/batch] POST /v1/agents/{id}/tasks/{job_id}/complete Mark done/failed GET /v1/agents List agents (org-scoped) GET /v1/agents/{id} Agent detail DELETE /v1/agents/{id} Deregister POST /v1/agents/{id}/activate Enable agent POST /v1/agents/{id}/deactivate Disable agent

root@kitploit:~
### 许可证 / 设置```
GET    /v1/license              License status
POST   /v1/license/activate     Activate key                    [3/hr/IP]
GET    /v1/settings/ai          Get org AI config (key masked)
POST   /v1/settings/ai          Update org AI config (encrypted)
POST   /v1/settings/ai/test     Test AI connection

系统```

GET /health Service status + uptime GET /docs OpenAPI docs GET /redoc ReDoc docs

root@kitploit:~
---

## 环境变量

### 控制器

| 变量 | 默认值 | 描述 |
|---|---|---|
| `NETLOGIC_ENV` | _(unset)_ | `production`/`prod` = 启动时密钥验证 |
| `NETLOGIC_JWT_SECRET` | `changeme-in-production` | HS256 签名密钥,≥32 个字符 |
| `NETLOGIC_JWT_EXPIRY` | `3600` | JWT 生命周期(秒) |
| `NETLOGIC_ADMIN_KEY` | `admin-changeme` | 管理员凭证,生产环境≥32 个字符 |
| `NETLOGIC_API_KEYS` | _(empty)_ | 种子密钥:`key1:org1,key2:org2,...` |
| `NETLOGIC_CORS_ORIGINS` | _(empty)_ | 允许的来源(空则禁用 CORS) |
| `NETLOGIC_PORT` | `8000` | 绑定端口 |
| `NETLOGIC_HOST` | `0.0.0.0` | 绑定地址 |
| `NETLOGIC_NO_BROWSER` | _(unset)_ | `1` 禁用自动打开 |
| `NETLOGIC_OIDC_ISSUER` | _(unset)_ | Clerk 前端 API 地址 → OIDC 登录 |
| `NETLOGIC_OIDC_AUDIENCE` | _(unset)_ | OIDC 受众 |
| `NETLOGIC_OIDC_DEFAULT_ORG` | _(unset)_ | OIDC 用户的后备组织 ID |
| `NETLOGIC_DATABASE_URL` | _(unset)_ | PostgreSQL 连接字符串 |
| `NETLOGIC_SECRETS_KEY` | _(unset)_ | Fernet 密钥用于静态凭据加密 |
| `NETLOGIC_AGENT_TOKEN_MAX_AGE` | `604800` | Agent 令牌生命周期(7天) |
| `NETLOGIC_AGENT_PENDING_CAP` | `50` | 每个 Agent 的最大排队任务数 |
| `NETLOGIC_MAX_AGENTS_PER_ORG` | `100` | 最大注册 Agent 数 |
| `NETLOGIC_AI_PROVIDER` | `openrouter` | 默认 AI 提供商 |
| `NETLOGIC_AI_API_KEY` | _(empty)_ | 默认 AI 密钥 |
| `NETLOGIC_AI_MODEL` | provider default | 默认模型 |
| `NETLOGIC_AI_BASE_URL` | provider default | 自定义基础 URL |
| `NETLOGIC_NVD_KEY` | _(empty)_ | NVD API 密钥 |
| `NETLOGIC_VALID_LICENSES` | _(empty)_ | 开发/测试许可证覆盖 |
| `NETLOGIC_LICENSE_KEY` | _(empty)_ | 实例许可证密钥 |
| `NETLOGIC_SCANS_DIR` | _(default)_ | 扫描存储目录 |
| `NETLOGIC_SIEM_ENDPOINT` | _(empty)_ | 审计日志传输地址 |
| `NETLOGIC_WAPPALYZER_DATA` | _(built-in)_ | Wappalyzer 指纹路径 |

### Agent

| 变量 | 默认值 | 描述 |
|---|---|---|
| `NETLOGIC_CONTROLLER` | `http://localhost:8000` | 控制器基础 URL |
| `NETLOGIC_API_KEY` | _(unset)_ | 注册用 API 密钥 |

---

## 安全架构

### 中间件栈(应用顺序)
1. **AuditMiddleware** — `X-Request-ID` 关联、结构化 JSON 审计日志、SIEM 传输
2. **RequestSizeLimitMiddleware** — 10 MB 请求体限制(DoS 防护)
3. **LicenseMiddleware** — 未授权时阻止所有 `/v1/` 路由(返回 402)
4. **SecurityHeadersMiddleware** — HSTS(1年)、CSP(区分 HTML 与 API)、X-Frame-Options、X-Content-Type-Options、Permissions-Policy、Referrer-Policy
5. **OriginCheckMiddleware** — POST/PUT/DELETE Origin 验证(CSRF 纵深防御)
6. **CORSMiddleware** — 限制性:无通配符,仅限特定来源

### 身份验证
- **API 密钥**:静态存储时 SHA-256 哈希;仅在 `create()` 和 `verify()` 时请求体中的明文
- **JWT**:使用标准库 HS256(`hashlib`+`hmac`+`base64`),验证前固定 `alg` 字段(防止 alg=none),开发时使用临时随机回退
- **OIDC**:Clerk/Auth0/WorkOS — RS256 + JWKS,首次登录时自动配置用户和组织
- **Agent 令牌**:注册表中 SHA-256 哈希,常量时间比较,7 天过期

### 速率限制
内存滑动窗口。按端点、按范围(IP、org_id、agent_id)。10 分钟内 5 次令牌交换失败后 IP 封禁(封禁 1 小时)。

### 数据保护
- LLM API 密钥:静态时 Fernet 加密(AES-128-CBC + HMAC-SHA256)。生产环境安全失败:需要 `NETLOGIC_SECRETS_KEY`
- 多租户:所有数据限定在 `org_id` 内;跨组织查询返回 404(而非 403)
- 路径遍历:所有存储路径经过验证,拒绝分隔符和 `..`

---

## CI / 测试```bash
pip install -r requirements-dev.txt
python -m pytest

CI 流水线(.github/workflows/ci.yml)—— 5 个作业:

  1. test — 1000 多个 pytest 测试用例
  2. postgres-integration — 数据库迁移 + 持久化作业 + 按组织密钥
  3. fusion-benchmark — FP 降低 ≥ 80% + 关键召回率 = 100%
  4. security — Bandit(高严重度)+ pip-audit
  5. build-dashboard — npm ci + npm run build

法律声明

NetLogic 仅用于授权的安全评估、渗透测试和网络管理。 未经明确书面许可扫描或探测主机在大多数司法管辖区属于违法行为。 作者对未经授权的使用不承担任何责任。


许可证

MIT © 2026 Dmitry Flynn — 参见 LICENSE.txt

下载工具
Reachability Prober入侵后横向移动矩阵,基于子网邻接
Network Prober主动子网扫描(/24 私有邻居),两阶段发现(活跃扫描 → 全端口扫描)
Scan Diff随时间变化:针对每个目标,将当前扫描与最近一次 JSON 报告进行差异比较
License Management商业许可证系统,密钥激活(Stripe/Paddle/Lemon Squeezy 桩模块)
Per-Org AI Config每个组织通过 Fernet 存储其自己的 LLM 凭据,静态加密
OIDC / Clerk通过 Clerk 发布的会话 JWT 进行人类登录,使用公共 JWKS 验证,并自动配置
PostgreSQL完整多租户持久化,自动应用迁移(扫描任务、组织设置、推理状态、审计)
Fusion Benchmark离线基准测试,基于录制的 HTTP 磁带;精确率/召回率/关键召回率/误报减少指标
格式示例模式
主机名example.com单主机扫描
IPv410.0.0.5单主机扫描
CIDR192.168.1.0/24CIDR 段扫描(仅扫描器,无融合)
逗号分隔target1,target2多主机编排(跨主机上下文)
  • 持续:ReasoningValidator 完整性审计 → ProvenanceBuilder 记录边 → 状态持久化
  • 层类跟踪内容
    WorldModelWorldModelEvidenceGraph, 观察, 信念, 主机, 技术, 可达性
    InvestigationStateInvestigationState目标(DAG), 假设, 矛盾, 死胡同, 当前角色
    ExecutionStateExecutionState预算, probe_history, 来源, investigation_plans, AI 记录
    LearnedPatternsLearnedPatterns跨扫描启发式 + 剧本
    组件文件描述
    EvidenceGraphevidence_graph.py去重的时间实体图(通过 SHA-256 内容寻址的观察)
    Hypothesis enginehypothesis.py具有可能性、熵、信息增益、后验分辨率的竞争候选者
    ConfidenceEngineconfidence.py对不同来源的噪声或运算;仅版本时上限为 0.60;KEV/探测固定为 0.97
    ProvenanceBuilderprovenance.py观察→推理→假设边,内容哈希寻址
    Schedulerscheduler.py信息增益行动选择,带有探索储备 (10%)
    StrategyManagerstrategy.py元推理:角色选择、探索/利用模式、平台检测
    ActionGateaction_gate.py纵深防御:风险等级(READ_ONLY < SAFE_ACTIVE < INTRUSIVE < EXPLOIT),核心最高为 SAFE_ACTIVE
    InferenceEngineinference.py来自 rules/*.json 的确定性规则,从不写入置信度
    NovelInferenceEnginenovel_inference.py用于缓存中毒、请求走私、认证绕过等的规则
    ExecutionKernelexecution_kernel.py验证 + 执行 + 追踪探测(范围 → 只读 → 预算 → 去重 → 深度)
    Playbook systemplaybooks.py带有触发条件和意图模板的 YAML 剧本
    Change detectionchange_detection.py阶段7:对不可变观察(而非状态)进行差异比较,生成 DeltaEvents 的 ScanDelta
    Active validationactive_validation.py阶段8b:通过 ActionGate 的非破坏性 SAFE_ACTIVE 探测
    文件组件
    coordinator.pyAICoordinator — 分阶段流水线编排
    proposals.py带类型 Proposal 信封,包含特定类型的载荷、来源、经济性
    normalize.pyProposalNormalizer — 总体验证门
    rank.pyProposalRanker — 分数 = raw_score × prob_correct × reputation_weight
    meta_reasoner.py确定性剪枝(循环检测、不确定性降低)
    verifier.py4阶段:语法 → 语义 → 证据 → 安全
    store.pyProposalStore — 生命周期分类账
    transcript.pyInvestigationTranscript — 因果链记录
    evaluation.py基于 Cassette 的确定性评估框架
    reputation.pyAgentReputation — 追踪每个代理的接受/拒绝率
    agents/hypothesis_generator.pyC1 — 提出竞争性解释 + 新型漏洞假设
    agents/counterfactual.pyC11 — 提出反驳目标
    agents/investigation_designer.pyC2 — 设计证据收集计划
    组件文件描述
    DeepCoordinatorcoordinator.py编排完整深度流水线:AI传感器计划 → ScoutAgent → 每个服务的 ProbeAgent → 服务枚举 → Nuclei → 验证器 → 接管 → 子网探测 → 拓扑 → 认证 → 差异 → 可达性
    ScoutAgentscout_agent.py被动侦察:TLS、头部、栈、DNS、OSINT
    ProbeAgentprobe_agent.py使用隔离的CVE/技术上下文针对一个服务 — 运行探测 + 验证器
    ExploitChainchain.py在融合确认的判定上进行BFS攻击路径规划,PoC生成
    Sandboxsandbox.py用于PoC验证的受限子进程(临时目录、超时、清理)
    Mission / AgentReportmodels.py代理指令和结果的数据模型
    组件文件描述
    run_verifier()engine.py编排:生成计划 → 执行 → 构建探测确认的信号
    generate_plans_for_cves()planner.py每个CVE(CVSS ≥ 7.0):检查约20个内置计划 → AI生成原始HTTP计划(方法、路径、头部、体、预期状态/体)
    run_test()runner.py原始TCP/TLS socket执行,手动HTTP/1.0解析,预期体模式匹配
    指导器文件决定内容
    SensorDirectorsensor_director.py根据开放端口 + 技术栈 + CVE,决定启用/禁用哪些传感器以及优先级
    ReprobeDirectorreprobe.py判断潜在发现是否可以通过针对性HTTP探测解决
    NucleiSelectornuclei_selector.py包含/排除哪些Nuclei模板标签(减少不相关运行)
    SubnetDirectorsubnet_director.py探测哪些相邻主机、哪些端口、何种深度(跳过/快速/标准/深入)