dmitryflynn/NetLogic
GitHub: dmitryflynn/NetLogic
NetLogic 是一款将端口扫描、服务指纹识别、CVE 实时关联和主动漏洞探测整合到单一工作流的专业级攻击面测绘与安全侦察工具。
Stars: 1 | Forks: 0
# NetLogic
**攻击面测绘与漏洞关联工具**
NetLogic 是一款专业级的网络安全侦察工具,它将主动端口扫描、服务配置错误检测、被动 OSINT、实时 CVE 关联、SSL/TLS 分析、HTTP 安全审计、WAF 检测、DNS/邮件安全评估、子域名接管检测以及主动 CVE 探测整合到单一工作流中 —— 替代了通常需要八个或更多独立工具以及数小时手动交叉引用的工作。
[](https://www.python.org/downloads/)
[](https://github.com/dmitryflynn/netlogic/blob/main/LICENSE)
[](https://github.com/dmitryflynn/netlogic)
[](https://nvd.nist.gov/)
[](https://github.com/dmitryflynn/netlogic)
## 有何独特之处?
大多数扫描器止步于端口发现。NetLogic 则更进一步:
1. **指纹识别** 正在运行的服务,并通过 22 个自定义协议探针在 43 个映射的端口/服务组合中提取确切的版本字符串(SSH, HTTP, FTP, Redis, MySQL, MongoDB, Docker, Kubernetes, etcd, Vault 等)
2. **查询实时 NIST NVD API**,在 101 个产品关键字映射中查找与每个发现的产品/版本匹配的 CVE —— 无陈旧硬编码数据库,始终保持最新
3. **检查 CISA KEV**(已知被利用漏洞目录)并自动标记正在被活跃利用的 CVE
4. **标记漏洞利用可用性**,采用分层指标:Metasploit 模块(跟踪 52 个 CVE)、公开 PoC(跟踪 88 个 CVE)或 CISA KEV
5. **主动服务探测** —— 检测 Redis, MongoDB, Elasticsearch, CouchDB, etcd, Consul, Docker API, Kubernetes API, Vault, Prometheus, RabbitMQ, InfluxDB, FTP 的未授权访问;探测 33 个 HTTP 管理面板路径
6. **特定 CVE 主动确认探测** —— 安全地确认 Apache CVE-2021-41773/42013 路径遍历、Grafana CVE-2021-43798、Shellshock、Ghostcat AJP、Spring Boot actuator 暴露、开放重定向、目录遍历、暴露的含有凭证的备份文件等
7. **深度 SSL/TLS 分析** —— 已弃用的协议、弱加密套件、POODLE/BEAST/CRIME/DROWN、证书过期、自签名证书、主机名不匹配
8. **HTTP 安全头审计** —— CSP, HSTS, X-Frame-Options, CORS 配置错误、不安全的 Cookie、服务器版本泄露
9. **技术栈指纹识别** —— 检测 CMS(WordPress, Drupal, Joomla)、框架、云服务商(AWS/Azure/GCP)、CDN 和 WAF
10. **DNS/邮件安全评估** —— SPF, DKIM, DMARC, DNSSEC, 区域传送尝试, CAA 记录, 邮件伪造评分
11. **子域名接管检测** —— 通过 CT 日志发现子域名,然后检查 25 个云服务商是否存在悬空 DNS
12. **被动 OSINT** 无需触碰目标:证书透明度日志、DNS 枚举、ASN/CIDR 查询
13. **综合风险评分** 由 CVSS + CISA KEV 利用状态 + Metasploit/PoC 可用性 + 检测置信度加权计算
14. **导出** 机器可读 JSON(SIEM 就绪)、样式化 HTML 报告和丰富的终端输出
## 安装
```
git clone https://github.com/dmitryflynn/netlogic.git
cd netlogic
# 无第三方 Python 依赖 — 纯 stdlib
python netlogic.py --version
```
## 用法
```
# 快速扫描 — 43 个端口,CVE 关联
python netlogic.py scanme.nmap.org
# 深度 TLS + Header 审计
python netlogic.py example.com --tls --headers
# 主动探测:未经身份验证的服务、默认凭据、CVE 确认
python netlogic.py 10.0.0.5 --probe
# 完整 DNS/电子邮件安全检查
python netlogic.py example.com --dns
# 技术栈 + WAF 检测
python netlogic.py example.com --stack
# 子域名接管检测
python netlogic.py example.com --takeover
# 一次性运行所有任务
python netlogic.py example.com --full --report html --out ./reports
# CIDR 块扫描(内部网络审计)
python netlogic.py 192.168.1.0/24 --cidr --report json --out ./reports
# 扩展端口范围(58 个端口)
python netlogic.py 10.0.0.5 --ports full
# 自定义端口列表
python netlogic.py 10.0.0.5 --ports custom=22,80,443,8080,9200 --timeout 3
# 仅显示 HIGH+ 级别 CVE
python netlogic.py example.com --min-cvss 7.0
# 使用 NVD API Key 加速查询(推荐用于 --full 扫描)
python netlogic.py example.com --nvd-key YOUR_KEY
# Cache 管理
python netlogic.py --cache-stats
python netlogic.py --clear-cache
python netlogic.py --preload-cache
```
## 所有参数
| 参数 | 描述 |
|---|---|
| `--ports quick\|full\|custom=...` | 端口集:quick (43 个端口), full (58 个端口), 或逗号分隔列表 |
| `--tls` | 深度 SSL/TLS 协议、加密套件和证书分析 |
| `--headers` | HTTP 安全头审计 + CORS/cookie 分析 |
| `--stack` | 技术栈 + WAF 指纹识别 |
| `--dns` | DNS/邮件安全 (SPF, DKIM, DMARC, DNSSEC, 区域传送) |
| `--takeover` | 通过 CT 日志 + 25 个服务商指纹进行子域名接管检测 |
| `--osint` | 被动侦察 (DNS, CT 日志, ASN) —— 无直接目标接触 |
| `--probe` | 主动探测:未授权服务访问、默认凭证、特定 CVE 确认 |
| `--full` | 运行以上所有选项 |
| `--report terminal\|json\|html\|all` | 输出格式 |
| `--out ` | 将报告保存到目录 |
| `--cidr` | 将目标视为 CIDR 块并扫描所有主机 |
| `--min-cvss ` | 报告的最低 CVSS 评分(默认:4.0) |
| `--nvd-key ` | NVD API 密钥,用于 10 倍更快的速率限制(或设置 `NETLOGIC_JVD_KEY` 环境变量) |
| `--timeout ` | 每端口 TCP 超时(默认:2.0) |
| `--threads ` | 最大并发扫描线程(默认:100) |
| `--cache-stats` | 显示 NVD 磁盘缓存信息 |
| `--clear-cache` | 清除 NVD 磁盘缓存 |
| `--preload-cache` | 预热常见产品的缓存 |
| `--no-color` | 禁用 ANSI 颜色 |
| `--json-stream` | 用于 Electron GUI 的换行分隔 JSON 事件 |
## 示例输出
```
══════════════════════════════════════════════════════════════════════
NetLogic Scan Report
Target : scanme.nmap.org
IP : 45.33.32.156
OS Est.: Linux/Unix
Runtime: 4.2s
══════════════════════════════════════════════════════════════════════
OPEN PORTS
PORT SERVICE PRODUCT/VERSION TLS
22 ssh OpenSSH 6.6.1p1 Ubuntu –
80 http Apache/2.4.7 –
443 https ✓ TLS
6379 redis –
9200 elasticsearch –
VULNERABILITY FINDINGS
Port 22/ssh (OpenSSH 6.6.1p1)
[✓ version confirmed]
Risk Score: 9.8/10
🔴 CRITICAL CVE-2023-38408 CVSS 9.8
OpenSSH < 9.3p2 ssh-agent RCE via PKCS#11 provider loading.
⚡ Metasploit module available
⚡ Actively exploited (CISA KEV)
🟠 HIGH CVE-2018-15473 CVSS 5.3
OpenSSH < 7.7 username enumeration via timing side-channel.
SSL/TLS ANALYSIS
Port 443 — Grade: C
Protocols : TLSv1.3, TLSv1.2, TLSv1.1
Deprecated: TLSv1.1
MEDIUM Deprecated Protocol Supported: TLSv1.1
HTTP SECURITY HEADERS — Score: 45/100 Grade: F
Missing: strict-transport-security, content-security-policy, x-frame-options
HIGH Missing HSTS Header
HIGH Missing Content-Security-Policy
DNS & EMAIL SECURITY — Spoofability: 7/10 (SPOOFABLE)
SPF ✗ MISSING — anyone can spoof this domain
DKIM ✗ No selectors found
DMARC ✗ MISSING — no policy enforcement
SERVICE MISCONFIGURATION FINDINGS (3 issues, 18 probes run)
🔴 CRITICAL Redis — No Authentication Required
Port 6379 / redis
Redis 7.0.1 is fully accessible without a password. Attackers can read/write all
data, load modules for RCE, or use SLAVEOF for lateral movement.
Evidence : INFO server returned redis_version:7.0.1
Remediation: Set 'requirepass' in redis.conf; bind to 127.0.0.1; use Redis 6+ ACLs.
🔴 CRITICAL Elasticsearch — Open Access (No Authentication)
Port 9200 / elasticsearch
Elasticsearch cluster 'prod-cluster' v8.1.0 is open without authentication.
Evidence : GET / → HTTP 200; cluster_name='prod-cluster'; indices accessible=True
ACTIVE VULNERABILITY PROBES (1 confirmed, 12 probes run)
🔴 CRITICAL Apache 2.4.49 Path Traversal — /etc/passwd Retrieved [CONFIRMED]
CVE-2021-41773
Path traversal confirmed. /etc/passwd is readable. If mod_cgi is enabled,
this escalates to unauthenticated RCE (CVSS 9.8).
Evidence : GET /cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd → HTTP 200 with passwd
Remediation: Upgrade Apache to 2.4.51+; disable mod_cgi; Require all denied.
```
## 架构
```
netlogic/
├── netlogic.py ← CLI entry point, flag routing, output orchestration
└── src/
├── scanner.py ← TCP scanner, 22 service probes, banner grabbing (43 services)
├── cve_correlator.py ← CVE correlation: NVD + 192 offline sigs, 89 banner patterns
├── nvd_lookup.py ← NIST NVD API v2.0 client, disk cache, CISA KEV, 101 products
├── service_prober.py ← Unauthenticated access, default creds, 33 admin panel paths
├── vuln_prober.py ← CVE-specific safe active probes (path traversal, RCE confirm, etc.)
├── osint.py ← DNS/DoH, CT logs (crt.sh), ASN lookup, HTTP fingerprinting
├── tls_analyzer.py ← SSL/TLS deep analysis, POODLE/BEAST/CRIME/DROWN detection
├── header_audit.py ← HTTP security header audit, CORS, cookie flags, scoring
├── stack_fingerprint.py ← CMS, framework, cloud, CDN, WAF detection
├── dns_security.py ← SPF, DKIM, DMARC, DNSSEC, zone transfer, spoofability score
├── takeover.py ← Subdomain takeover detection (25 providers)
├── reporter.py ← Terminal (ANSI), JSON, and HTML report generators
└── json_bridge.py ← Streaming JSON event emitter for Electron desktop app
```
### 扫描引擎 (`scanner.py`)
- 通过 `ThreadPoolExecutor` 进行并发 TCP 连接扫描(最多 100 个线程)
- 43 个映射的端口/服务组合;22 个特定协议探针(HTTP GET, Redis INFO, MongoDB wire protocol, Docker API, etcd, Consul, Vault, Grafana, Kibana, Prometheus, RabbitMQ, Solr, Memcached 等)
- 通过正则表达式版本提取进行 Banner 解析
- TLS 握手检查 + 证书 CN 提取
- 基于 TTL 的 OS 指纹识别(Linux / Windows / 网络设备)
### CVE 关联器 (`cve_correlator.py`) + NVD 查询 (`nvd_lookup.py`)
- 针对每个发现的产品/版本进行 **实时 NIST NVD API v2.0** 查询,覆盖 101 个产品关键字映射
- **CISA KEV 集成** —— 标记在野外被活跃利用的 CVE
- **漏洞利用跟踪** —— 52 个具有确认 Metasploit 模块的 CVE,88 个具有公开漏洞/PoC 的 CVE
- **检测置信度** —— HIGH(来自 banner 的版本)/ MEDIUM(仅产品)/ LOW(端口猜测)
- 位于 `~/.netlogic/nvd_cache/` 的 **磁盘缓存**,24 小时 TTL
- **离线回退** —— 89 种 banner 模式中的 192 个硬编码签名;当 NVD 不可达时使用
- 综合风险评分:CVSS 基础分 + KEV 加成 + Metasploit/PoC 标记 + 检测置信度
- 可选 API 密钥(`--nvd-key` 或 `NETLOGIC_NVD_KEY`)用于 10 倍更快的查询
### 服务探测器 (`service_prober.py`) — 由 `--probe` 或 `--full` 激活
对每个发现的开放端口执行安全的、只读的检查:
| 服务 | 检查 |
|---|---|
| Redis | 通过 INFO 命令进行未授权访问 |
| Memcached | 未授权 VERSION 命令 |
| MongoDB | 无凭证的 Wire 协议 isMaster |
| Elasticsearch | 无授权的集群信息 + 索引列表 |
| CouchDB | 无凭证访问 `/_all_dbs` |
| Docker API | TCP 端口 2375 上的 `/version`(主机接管向量) |
| Kubernetes API | 匿名 `/api` 访问 |
| etcd | 无授权访问 `/v2/keys` 或 `/v3/cluster`(持有 K8s secrets) |
| Consul | 无 ACL token 访问 `/v1/catalog/services` |
| Prometheus | 无认证访问 `/metrics` 和管理 API |
| HashiCorp Vault | 未初始化或解封状态检测 |
| RabbitMQ | 管理 API 上的默认 `guest:guest` 凭证 |
| InfluxDB | 无凭证 `SHOW DATABASES` |
| FTP | 匿名登录(USER anonymous) |
| HTTP(任意端口) | 33 个管理面板路径:`.env`, `.git/config`, 备份配置, Spring actuator (`/env`, `/heapdump`), Swagger, GraphQL, phpMyAdmin, Tomcat manager, JBoss 控制台, Adminer 等 |
### 漏洞探测器 (`vuln_prober.py`) — 由 `--probe` 或 `--full` 激活
特定 CVE 的安全主动探测,试图确认漏洞:
| CVE | 标题 | 确认内容 |
|---|---|---|
| CVE-2021-41773 | Apache 2.4.49 路径遍历 | 通过 `/.%2e/` 编码获取 `/etc/passwd` |
| CVE-2021-42013 | Apache 2.4.50 路径遍历 | 双重编码 `%%32%65` 变体 |
| CVE-2021-43798 | Grafana 插件路径遍历 | 通过插件路径获取 `/etc/passwd` |
| CVE-2014-6271 | Shellshock CGI RCE | 将 payload 注入 User-Agent/Cookie,检查响应 |
| CVE-2020-1938 | Ghostcat AJP | 端口 8009 上的 CPING/CPONG 握手 |
| CVE-2021-44228 | Log4Shell | JNDI 头注入;Java 错误泄露表明正在处理 |
| CWE-215 | Spring Boot Actuator | `/env`, `/heapdump`, `/httptrace`, `/mappings`, `/loggers` |
| CWE-521 | Tomcat 默认凭证 | 针对 `/manager/html` 测试 9 组常见凭证对 |
| CWE-601 | 开放重定向 | 测试 11 个常见重定向参数 |
| CWE-548 | 目录列表 | 检测常见路径下的 Apache/Nginx 索引页 |
| CWE-200 | phpinfo() 泄露 | `/phpinfo.php`, `/info.php` 及其变体 |
| CWE-200 | 备份/配置文件 | `.env`, `.git/config`, `wp-config.php.bak`, `id_rsa`, `server.key` 等 —— 并确认凭证关键字 |
| CWE-22 | Nginx Alias 遍历 | `/static../etc/passwd` 差一错误 alias 配置错误 |
| CVE-2010-2730 | IIS Tilde 枚举 | 8.3 短文件名泄露检测 |
### SSL/TLS 分析器 (`tls_analyzer.py`)
- 协议版本探测:TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
- 加密套件弱点检测:RC4, DES, 3DES, NULL, EXPORT, Anonymous DH
- 已知漏洞检查:POODLE (CVE-2014-3566), BEAST (CVE-2011-3389), CRIME (CVE-2012-4929), DROWN (CVE-2016-0800)
- 证书分析:过期、自签名、主机名不匹配、SAN 覆盖范围、通配符范围
- 字母评级:根据发现结果从 A 到 F
### HTTP 头审计器 (`header_audit.py`)
- 检查 10+ 个安全头:HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, CORP, COEP
- CORS 配置错误检测(通配符 + 凭证 = CRITICAL)
- Cookie 标志分析:每个 Cookie 的 Secure, HttpOnly, SameSite
- Server/X-Powered-By 版本泄露检测
- 0–100 评分并附带字母等级
### 技术栈指纹识别器 (`stack_fingerprint.py`)
- CMS 检测:WordPress (+ 深度扫描 login, REST API, xmlrpc.php), Drupal, Joomla, Shopify, Ghost, Squarespace, Wix, Webflow
- 框架检测:Next.js, Nuxt, Angular, React, Vue, Laravel, Django, Rails, Flask
- 云/CDN:AWS, Azure, GCP, Cloudflare, Fastly, Akamai, Vercel, Netlify
- WAF检测:Cloudflare WAF, AWS WAF, Imperva, Akamai, Sucuri, ModSecurity, F5 BIG-IP, Wordfence, Barracuda —— 包含各产品的绕过提示
### DNS 安全检查器 (`dns_security.py`)
- **SPF**:存在性、`all` 机制强度、DNS 查找计数(RFC 7208 限制为 10)
- **DKIM**:探测 25 个常见选择器,检查密钥长度
- **DMARC**:策略执行级别(`none`/`quarantine`/`reject`)、子域策略、报告地址
- **DNSSEC**:DS 和 DNSKEY 记录验证
- **CAA**:证书颁发机构授权记录
- **区域传送**:针对所有域名服务器的原始 AXFR 尝试
- **通配符 DNS**:检测 `*.domain` 解析
- **邮件伪造评分**:基于 SPF + DKIM + DMARC 态势的 0–10 综合评级
### 子域名接管检测器 (`takeover.py`)
- 通过证书透明度日志 发现子域名
- 通过 Cloudflare DoH 跟踪完整的 CNAME 链
- 25 个服务商的指纹数据库:GitHub Pages, Heroku, Amazon S3, CloudFront, Netlify, Vercel, Azure, Shopify, Fastly, Ghost, Tumblr, WordPress.com, Zendesk, Surge.sh, Webflow, Squarespace, Wix, ReadTheDocs, Bitbucket 等
### OSINT 模块 (`osint.py`)
- 所有查询均使用公共 API —— 零直接接触目标
- `crt.sh` 证书透明度子域名枚举
- Cloudflare DoH 用于 DNS 记录:A, AAAA, MX, TXT, NS, CNAME, SOA, SRV
- `ipinfo.io` 用于 ASN/组织/国家查找
### 报告器 (`reporter.py`)
- **终端**:颜色编码的严重性标签、置信度指示器、分层漏洞利用标记(Metasploit > 公开 PoC > KEV)、对齐表格
- **JSON**:与 Elastic SIEM / Splunk 兼容的结构化 schema;嵌入 TLS、头、DNS、接管和探测结果
- **HTML**:带有统计卡片和可排序表格的深色主题报告
### Electron 桌面应用 (`json_bridge.py`)
- 通过换行分隔的 JSON 事件将扫描结果实时流式传输到 GUI
- 事件:`port`, `vuln`, `osint`, `tls`, `headers`, `dns`, `stack`, `service_probes`, `vuln_probes`, `progress`, `done`, `error`
- 可通过 PyInstaller + NSIS 分发为 Windows 安装程序
## CVE 覆盖范围
### 通过实时 NVD API(101 个产品映射 —— 始终最新)
| 服务 | 漏洞类型 |
|---|---|
| OpenSSH | 通过 ssh-agent 的 RCE (KEV)、权限提升、用户名枚举、scp 注入 |
| Apache HTTPD | 路径遍历 + RCE (Metasploit)、请求走私、mod_proxy SSRF |
| Nginx | HTTP/2 Rapid Reset DoS、DNS 解析器堆溢出、alias 遍历 |
| Microsoft IIS | 蠕虫级 HTTP 栈 RCE、WebDAV 缓冲区溢出 (Metasploit)、波浪号枚举 |
| PHP | FPM path_info RCE、password_verify 溢出、反序列化注入 |
| WordPress | PHP 对象注入 RCE、SQL 注入、REST API 用户枚举 |
| Drupal | Drupalgeddon2 未授权 RCE (Metasploit)、REST API 对象注入 |
| Joomla | 通过 REST API 未授权读取配置 |
| Apache Tomcat | Ghostcat AJP 文件包含 + RCE、默认 manager 凭证 |
| Spring Framework | 通过数据绑定的 Spring4Shell RCE、actuator 凭证泄露 |
| Log4j | Log4Shell JNDI 注入 (CVE-2021-44228, CVSS 10.0) |
| Grafana | 插件目录遍历 (CVE-2021-43798)、CSRF→RCE |
| Kibana | Timelion RCE (CVE-2019-7609) |
| Confluence | OGNL 注入 RCE (CVE-2022-26134, KEV) |
| Jira | 模板注入、SSRF |
| Jenkins | 脚本控制台 RCE、Git 插件任意文件读取 |
| Redis | Lua 沙箱逃逸 RCE、整数溢出、未授权访问 |
| MongoDB | 未授权访问、证书验证绕过 MITM |
| Elasticsearch | 数据泄露、未授权集群访问 |
| CouchDB | 反序列化 RCE (CVE-2022-24706)、未授权访问 |
| Memcached | UDP DRDoS 放大(51,000 倍因子)、未授权访问 |
| Vault | 认证绕过 (CVE-2022-40186)、未初始化实例接管 |
| Consul | 未授权 API、Raft RCE (CVE-2021-37219) |
| etcd | 未授权键值访问(Kubernetes secret 泄露) |
| RabbitMQ | 默认 guest 凭证、未授权管理 API |
| InfluxDB | 认证绕过 (CVE-2019-20933)、未授权查询 |
| Prometheus | 未授权指标和目标枚举 |
| Solr | DataImportHandler RCE (CVE-2019-0193) |
| MinIO | 环境变量密钥泄露 (CVE-2023-28432) |
| Docker daemon | Socket 暴露、容器逃逸 (CVE-2019-5736) |
| Kubernetes API | 匿名访问、权限提升 (CVE-2018-1002105) |
| vsftpd | 2.3.4 后门 shell (Metasploit)、匿名登录 |
| ProFTPD | 通过 mod_copy 的未授权文件复制、匿名登录 |
| Samba | 通过 VFS fruit 模块的越界堆写入 RCE |
| OpenSSL | Heartbleed 内存泄露、X.400 ASN.1 类型混淆 |
| Exim | 本地权限提升、远程代码执行 |
| Splunk | XSLT RCE (CVE-2023-46214) |
| Exchange | ProxyLogon/ProxyShell 链(多个 KEV) |
| vCenter | 通过 JNDI/SSRF 的 RCE (CVE-2021-21985, KEV) |
| + 任意产品 | 实时 NVD API 回退 —— 在 NIST 中搜索任何产品/版本 |
## 法律声明
## 许可证
MIT © 2026 Dmitry Flynn — 详见 [LICENSE](https://github.com/dmitryflynn/netlogic/blob/main/LICENSE)
标签:AMSI绕过, CISA KEV, Claude, CVE检测, DNS安全, ESC4, HTTP安全审计, NIST NVD, OSINT, Python, Scrypt密钥派生, SSL/TLS分析, 威胁检测, 子域名接管, 安全工具包, 安全工具库, 实时处理, 密码管理, 插件系统, 攻击面测绘, 数据展示, 数据统计, 无后门, 服务指纹识别, 流量检测, 漏洞关联, 端口扫描, 系统分析, 红队, 网络分析, 网络安全, 被动侦察, 误配置检测, 隐私保护