exploitintel/eip-search
GitHub: exploitintel/eip-search
一款以 Exploit Intelligence Platform 为驱动的 searchsploit 替代工具,整合多源漏洞情报并按质量排序,支持在线与离线模式及本地 LLM 生成利用代码。
Stars: 2 | Forks: 0
# Exploit Intel Platform CLI 搜索工具
包/命令:`eip-search`
| eip-search download -x
Also Known As
- EDB: EDB-51996
- GHSA: GHSA-v475-xhc9-wfxg
References
- [Vendor Advisory] https://security.paloaltonetworks.com/CVE-2024-3400
- [Exploit, Vendor Advisory] https://unit42.paloaltonetworks.com/cve-2024-3400/
...
```
漏洞利用按 **质量分组**(Metasploit 模块优先,其次为已验证的 ExploitDB,最后是按星数排名的 GitHub PoC),并按 **综合评分排序**。
### 木马检测
BlueKeep(CVE-2019-0708)有 127 个漏洞利用。其中一个是木马。eip-search 会发出警告:
```
$ eip-search info CVE-2019-0708
```
```
╭──────────────────────────────╮
│ CVE-2019-0708 CRITICAL KEV │
╰──────────────────────────────╯
CVE-2019-0708 BlueKeep RDP Remote Windows Kernel Use After Free
CVSS: 9.8 EPSS: 94.5% (100.0th percentile)
Exploits (127)
MODULES
#47841 metasploit ruby cve_2019_0708_bluekeep_rce.rb
Rank: manual LLM: working_poc has code
#47840 metasploit ruby cve_2019_0708_bluekeep.rb
LLM: working_poc has code
VERIFIED
#9123 exploitdb ruby EDB-47416
LLM: working_poc ✓ verified has code
PROOF OF CONCEPT
#72412 ★ 1187 nomisec Ekultek/BlueKeep
#72419 ★ 497 nomisec n1xbyte/CVE-2019-0708
#72417 ★ 389 nomisec k8gege/CVE-2019-0708
...
... and 113 more PoCs (use --all to show)
SUSPICIOUS
#72431 ★ 2 nomisec ttsite/CVE-2019-0708-
⚠ TROJAN — flagged by AI analysis
Tip: eip-search view | eip-search download -x
```
Metasploit 模块和已验证的 ExploitDB 条目排在最前面。木马则沉底并附带明确警告。
### 风险分级排班
“哪些关键 Fortinet 漏洞附带公开利用且应立即关注?”
```
$ eip-search triage --vendor fortinet --severity critical
```
```
TRIAGE — vulnerabilities with exploits, sorted by exploitation risk
Filters: vendor=fortinet, severity=critical, EPSS>=0.5
┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━┳━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃CVE ┃ Sev ┃ CVSS ┃ EPSS ┃ Exp ┃ ┃ Title ┃
┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━╇━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│CVE-2018-13379 │ CRITICAL │ 9.1 │ 94.5% │ 14 │ KEV │ Fortinet FortiProxy Path … │
│CVE-2022-40684 │ CRITICAL │ 9.8 │ 94.4% │ 30 │ KEV │ Fortinet FortiProxy Auth … │
│CVE-2023-48788 │ CRITICAL │ 9.8 │ 94.2% │ 1 │ KEV │ Fortinet FortiClient SQL … │
│CVE-2024-55591 │ CRITICAL │ 9.8 │ 94.2% │ 8 │ KEV │ Fortinet FortiProxy Auth … │
│CVE-2022-42475 │ CRITICAL │ 9.8 │ 94.0% │ 7 │ KEV │ Fortinet FortiOS Buffer … │
└─────────────────┴────────────┴───────┴────────┴──────┴─────┴──────────────────────────────┘
Page 1/1 (17 total results)
```
分级默认展示附带公开利用且 EPSS >= 0.5 的漏洞,按利用概率排序。这里每个结果都确认正在被主动利用(KEV)、拥有数十个公开利用,并且被野外利用概率超过 94%。
### Nuclei 模板与侦察 Dork
获取可直接粘贴的 Shodan、FOFA 和 Google 侦察 Dork:
```
$ eip-search nuclei CVE-2024-27198
```
```
╭──────────────────────────────────╮
│ CVE-2024-27198 Nuclei Templates │
╰──────────────────────────────────╯
TeamCity < 2023.11.4 - Authentication Bypass
Nuclei Templates (1)
CVE-2024-27198 ✓ verified critical
TeamCity < 2023.11.4 - Authentication Bypass
Author: DhiyaneshDk
Tags: cve, cve2024, teamcity, jetbrains, auth-bypass, kev, vkev, vuln
Recon Queries:
Shodan: http.component:"TeamCity" || http.title:teamcity || http.component:"teamcity"
FOFA: title=teamcity
Google: intitle:teamcity
Run: nuclei -t CVE-2024-27198 -u https://target.com
```
### 浏览漏洞利用
可直接按来源、语言、厂商、作者或攻击类型搜索漏洞利用 — 无需 CVE ID:
```
# 所有 Metasploit RCE 模块
eip-search exploits --source metasploit --attack-type RCE
# 适用于 Fortinet 的 Python 漏洞利用(附带可下载代码)
eip-search exploits "fortinet" --language python --has-code
# 针对特定 CVE 的漏洞利用
eip-search exploits --cve CVE-2024-3400
# 按 GitHub 星标排序的特定作者漏洞
eip-search exploits --author "Chocapikk" --sort stars_desc
```
```
$ eip-search exploits "mitel" --has-code -n 5
```
```
┏━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ID ┃ CVE ┃ Sev ┃ Source ┃ Lang ┃ ★ ┃ Name ┃
┡━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 426906 │ CVE-2024-41713 │ CRITICAL │ nomisec │ │ 19 │ watchtowrlabs/Mitel-M… │
│ 426908 │ CVE-2024-41713 │ CRITICAL │ nomisec │ │ │ Sanandd/cve-2024-CVE… │
│ 426907 │ CVE-2024-41713 │ CRITICAL │ nomisec │ │ │ zxj-hub/CVE-2024-417… │
│ 426615 │ CVE-2024-35315 │ MEDIUM │ nomisec │ │ 1 │ ewilded/CVE-2024-353… │
│ 426909 │ CVE-2024-41713 │ CRITICAL │ nomisec │ │ │ amanverma-wsu/CVE-20… │
└─────────┴──────────────────┴────────────┴─────────────┴────────┴─────┴─────────────────────────┘
Page 1/5 (89 total results)
Tip: eip-search view | eip-search download -x
```
每个结果均包含漏洞利用 ID、关联 CVE、严重性、来源、语言与 GitHub 星数。可直接使用漏洞利用 ID 配合 `view` 或 `download`。
### 参考数据
浏览作者、CWE、厂商与产品,或将其他标识符解析为 CVE:
```
# 顶级漏洞作者
eip-search authors
# 作者个人资料及其漏洞
eip-search author Metasploit
eip-search author "Chocapikk" --page 2
# 按漏洞数量排名的 CWE 类别
eip-search cwes
# CWE 详情
eip-search cwe 79
eip-search cwe CWE-89
# 按漏洞数量排名的顶级供应商
eip-search vendors
# 供应商产品(发现用于过滤的确切 CPE 名称)
eip-search products apache
eip-search products microsoft
# 将 ExploitDB 或 GHSA ID 解析为其 CVE
eip-search lookup EDB-45961
eip-search lookup GHSA-jfh8-c2jp-5v3q
```
`products` 命令尤其适用于发现可用于 `--product` 过滤器的确切产品名称。产品名称遵循 CPE 约定(例如 `http_server` 而非 `apache httpd`,`exchange_server` 而非 `exchange`)。
### 查看漏洞利用源代码
在终端中阅读带语法高亮的漏洞利用代码。传入漏洞利用 ID 或 CVE ID:
```
# 按漏洞利用 ID(来自搜索、信息或 exploits 输出)
$ eip-search view 77423
# 按 CVE ID — 显示交互式选择器以选择漏洞利用
$ eip-search view CVE-2024-3400
```
```
Exploits for CVE-2024-3400:
[1] #48006 metasploit ruby panos_telemetry_cmd_exec.rb
Rank: excellent working_poc
[2] #9546 exploitdb text EDB-51996
working_poc
[3] #370108 ★ 161 github http h4x0r-dz/CVE-2024-3400
working_poc
Select [1-43, default=1]: 1
```
```
panos_telemetry_cmd_exec.rb
1 ##
2 # This module requires Metasploit: https://metasploit.com/download
3 # Current source: https://github.com/rapid7/metasploit-framework
4 ##
5
6 class MetasploitModule < Msf::Exploit::Remote
7 Rank = ExcellentRanking
8 ...
```
当漏洞利用包含多个文件时,eip-search 会自动选择最相关的代码文件。可使用 `--file` 指定特定文件。
### 下载漏洞利用代码
下载并可选地解压漏洞利用归档。传入漏洞利用 ID 或 CVE ID:
```
# 按 CVE ID — 交互式选择器,自动提取
$ eip-search download CVE-2024-3400 --extract
```
```
Exploits with code for CVE-2024-3400:
[1] #48006 metasploit ruby panos_telemetry_cmd_exec.rb
Rank: excellent working_poc
[2] #9546 exploitdb text EDB-51996
working_poc
...
Select [1-43, default=1]: 1
Downloaded: metasploit-modules_exploits_linux_http_panos_telemetry_cmd_exec.rb.zip
ZIP password: eip (exploit archives are password-protected to prevent AV quarantine)
Extracted: metasploit-modules_exploits_linux_http_panos_telemetry_cmd_exec.rb/
Files (1):
- panos_telemetry_cmd_exec.rb
```
```
# 按漏洞利用 ID — 直接下载,无需选择器
$ eip-search download 77423 --extract
```
```
Downloaded: nomisec-fullhunt_log4j-scan.zip
ZIP password: eip (exploit archives are password-protected to prevent AV quarantine)
Extracted: nomisec-fullhunt_log4j-scan/
Files (10):
- fullhunt-log4j-scan-07f7e32/.gitignore
- fullhunt-log4j-scan-07f7e32/Dockerfile
- fullhunt-log4j-scan-07f7e32/log4j-scan.py
- fullhunt-log4j-scan-07f7e32/requirements.txt
...
```
### 高级搜索
`search` 子命令暴露了完整的过滤器集合:
```
# 所有带有公共漏洞利用的 SQL 注入漏洞,按 CVSS 排序
eip-search search --cwe 89 --has-exploits --sort cvss_desc
# 高概率被利用的关键 KEV 条目
eip-search search --kev --severity critical --min-epss 0.9
# 带有漏洞利用的最新 npm 漏洞
eip-search search --ecosystem npm --has-exploits --sort newest
# Microsoft Exchange 关键漏洞
eip-search search --product exchange --severity critical --has-exploits
```
```
$ eip-search search --cwe 89 --has-exploits --sort cvss_desc -n 5
```
```
┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━┳━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃CVE ┃ Sev ┃ CVSS ┃ EPSS ┃ Exp ┃ ┃ Title ┃
┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━╇━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│CVE-2024-3605 │ CRITICAL │ 10.0 │ 64.9% │ 1 │ │ Thimpress WP Hotel Booking… │
│CVE-2024-3922 │ CRITICAL │ 10.0 │ 88.5% │ 3 │ │ Dokan Pro Plugin SQL Inje… │
│CVE-2024-39911 │ CRITICAL │ 10.0 │ 68.3% │ 1 │ │ Fit2cloud 1panel SQL Inje… │
│CVE-2025-52694 │ CRITICAL │ 10.0 │ 9.7% │ 1 │ │ Advantech IoT Edge SQL In… │
│CVE-2024-43918 │ CRITICAL │ 10.0 │ 48.9% │ 1 │ │ Woobewoo Product Table SQ… │
└─────────────────┴────────────┴───────┴────────┴──────┴─────┴──────────────────────────────┘
Page 1/817 (4,082 total results)
```
### JSON 输出用于脚本编程
大多数数据/查询命令支持 `--json`,便于通过 `jq`、脚本或 SIEM 进行处理:
```
$ eip-search search "log4j" --has-exploits --sort epss_desc -n 5 --json
```
```
{
"total": 15,
"page": 1,
"per_page": 5,
"total_pages": 3,
"items": [
{
"cve_id": "CVE-2021-44228",
"title": "Log4Shell HTTP Header Injection",
"severity_label": "critical",
"cvss_v3_score": 10.0,
"epss_score": 0.94358,
"is_kev": true,
"exploit_count": 401
},
...
]
}
```
```
# 获取所有关键 KEV CVE ID 的平面列表
eip-search search --kev --severity critical -n 100 --json | jq -r '.items[].cve_id'
# 输入 nuclei
eip-search search --has-nuclei --severity critical --json | jq -r '.items[].cve_id' | xargs -I{} nuclei -t {} -u https://target.com
```
`--json` 目前支持:`search`、`info`、`triage`、`exploits`、`nuclei`、`stats`、`authors`、`author`、`cwes`、`cwe`、`vendors``products` 和 `lookup`。
### 平台统计
```
$ eip-search stats
```
```
╭───────────────────────────────╮
│ Exploit Intelligence Platform │
╰───────────────────────────────╯
┌──────────────────────────────┬─────────────────────┐
│ Total Vulnerabilities │ 370,791 │
│ Published │ 191,380 │
│ With CVSS Scores │ 238,607 │
│ With EPSS Scores │ 315,656 │
│ Critical Severity │ 29,145 │
│ CISA KEV Entries │ 1,522 │
│ │ │
│ Vulns with Exploits │ 90,481 │
│ Total Exploits │ 105,731 │
│ With Nuclei Templates │ 404 │
│ │ │
│ Vendors Tracked │ 37,508 │
│ Exploit Authors │ 23,281 │
│ │ │
│ Last Updated │ 2026-02-17 23:07:26 │
└──────────────────────────────┴─────────────────────┘
```
### 使用本地 LLM 生成漏洞利用
为任意 CVE 生成 PoC 漏洞利用,使用本地运行的 [Ollama](https://ollama.com) 实例。该工具从平台获取所有可用情报 — 写本文本、现有漏洞利用代码及截图 — 然后通过两阶段 LLM 流水线生成简洁、原始的 Python PoC。
```
# 首先检查可行性(无需 Ollama)
$ eip-search generate CVE-2026-2686 --check
```
```
CVE-2026-2686 — SECCN Dingcheng G10 Command Injection
CVSS 9.8 | RCE | trivial | Feasibility: EXCELLENT (11)
Reasons: web-based (RCE), trivial, has writeup, HTTP details in summary, known CWE pattern
Files: 1 text, 8 screenshots
```
```
# 生成漏洞利用
$ eip-search generate CVE-2026-2686 -o exploit.py
```
```
CVE-2026-2686 — SECCN Dingcheng G10 Command Injection
CVSS 9.8 | RCE | trivial | Feasibility: EXCELLENT (11)
Analyzing 8 screenshots...
img-001: telnet session, root shell on BusyBox (8.9s)
img-003: POST /cgi-bin/session_login.cgi with injection payload (10.7s)
img-008: Burp capture with full request headers (16.9s)
2 screenshots skipped (no actionable details)
Generating PoC with kimi-k2:1t-cloud... done (11s)
(syntax-highlighted Python exploit)
Saved: exploit.py
```
生成器根据可用资源工作在三种模式:
- **写本 + 截图** → 视觉模型提取技术细节,代码模型在增强上下文下生成 PoC
- **现有漏洞利用代码** → 代码模型重写/修复为简洁、标准化的 Python PoC
- **仅 CVE 描述** → 基于 NVD 描述和 LLM 分析生成(质量较低)
生成的 PoC 均为最小化概念验证(注入 `id` 获取 RCE,提取 `@@version` 获取 SQLi)— 无后门、无反向 Shell 或武器化。每个脚本均明确标记为 LLM 生成且未经测试。
**要求:** 本地运行 [Ollama](https://ollama.com) 并已拉取代码模型。视觉模型可选(用于截图分析)。
```
# 安装 Ollama,然后拉取模型
ollama pull kimi-k2:1t-cloud # code generation (required)
ollama pull qwen3-vl:235b-instruct-cloud # screenshot analysis (optional)
```
```
# 选项
eip-search generate CVE-ID # full pipeline (vision + code)
eip-search generate CVE-ID --check # feasibility check only
eip-search generate CVE-ID --no-vision # skip screenshots (faster)
eip-search generate CVE-ID -m glm-5:cloud # override code model
eip-search generate CVE-ID -o exploit.py # save to file
```
在 `~/.eip-search.toml` 中配置默认值:
```
[generate]
ollama_url = "http://127.0.0.1:11434"
code_model = "kimi-k2:1t-cloud"
vision_model = "qwen3-vl:235b-instruct-cloud"
```
## 全部命令
| 命令 | 描述 |
|---|---|
| `eip-search "query"` | 快速搜索(自动路由 CVE ID 到详情视图) |
| `eip-search search "query" [filters]` | 搜索漏洞(支持完整过滤器) |
| `eip-search exploits "query" [filters]` | 直接浏览/搜索漏洞利用 |
| `eip-search info CVE-ID` | 漏洞的完整情报简报 |
| `eip-search generate CVE-ID` | 使用本地 LLM 生成 PoC(需 Ollama) |
| `eip-search triage [filters]` | 按风险排序的待关注列表 |
| `eip-search nuclei CVE-ID` | 漏洞利用 + Nuclei 模板 + Shodan/FOFA/Google Dork |
| `eip-search view ID-or-CVE` | 语法高亮的漏洞利用源代码 |
| `eip-search download ID-or-CVE` | 下载漏洞利用代码(ZIP) |
| `eip-search stats` | 全平台统计 |
| `eip-search authors` | 按漏洞数量排名的顶级漏洞作者 |
| `eip-search author NAME` | 作者个人资料及其漏洞利用 |
| `eip-search cwes` | 按漏洞数量排名的 CWE 分类 |
| `eip-search cwe ID` | CWE 详情(接受 `79` 或 `CWE-79`) |
| `eip-search vendors` | 按漏洞数量排名的顶级厂商 |
| `eip-search products VENDOR` | 某厂商的产品(用于发现可用于 `--product` 过滤器的 CPE 名称) |
| `eip-search analysis ID-or-CVE` | 漏洞利用的完整 AI 分析(分类、MITRE、木马指标) |
| `eip-search lookup ALT-ID` | 将 EDB/GHSA 标识符解析为 CVE |
| `eip-search update-db` | 下载/更新离线 SQLite 数据库 |
`view`、`download` 和 `analysis` 命令接受漏洞利用 ID(例如 `77423`)或 CVE ID(例如 `CVE-2024-3400`)。给定 CVE 时,会显示按漏洞利用质量排序的交互式选择器。
### 离线模式
所有只读命令在本地 SQLite 数据库下均可离线使用:
```
eip-search update-db # download the database (~200 MB compressed)
eip-search --offline search "apache httpd" # search locally
eip-search --offline info CVE-2024-3400 # full detail from local DB
eip-search --db /path/to/eip.db search "log4j" # custom DB path (implies --offline)
```
#### 离线漏洞利用代码
同步漏洞利用归档以启用 `view` 和 `download` 离线使用:
```
rsync -avz rsync://rsync.exploit-intel.com/exploits/ ~/eip-exploits/
```
在 `~/.eip-search.toml` 中配置:
```
[offline]
exploits_dir = "~/eip-exploits"
```
随后 `view` 和 `download` 在无网络连接时仍可工作:
```
eip-search --offline view CVE-2024-3400 # view exploit source code locally
eip-search --offline download 77423 -x # copy and extract local archive
```
归档包含数万个仓库(数十 GB)。数据库与归档均每日多次刷新。
## 搜索过滤器
| 过滤器 | 缩写 | 描述 |
|---|---|---|
| `--severity` | `-s` | critical、high、medium、low |
| `--has-exploits` | `-e` | 仅显示包含公开漏洞利用的 CVE |
| `--kev` | `-k` | 仅显示 CISA KEV 漏洞 |
| `--exploited` | `-x` | 仅显示已在野外被利用的 CVE(CISA + VulnCheck + InTheWild) |
| `--ransomware` | | 仅显示确认被勒索软件利用的 CVE |
| `--has-nuclei` | | 仅显示包含 Nuclei 扫描模板的 CVE |
| `--vendor` | `-v` | 按厂商名称过滤 |
| `--product` | `-p` | 按产品名称过滤 |
| `--ecosystem` | | npm、pip、maven、go、crates |
| `--cwe` | | CWE ID(例如 `79` 或 `CWE-79`) |
| `--year` | `-y` | CVE 发布年份 |
| `--min-cvss` | | 最低 CVSS 评分(0-10) |
| `--min-epss` | | 最低 EPSS 评分(0-1) |
| `--date-from` | | 起始日期(YYYY-MM-DD) |
| `--date-to` | | 结束日期(YYYY-MM-DD) |
| `--sort` | | newest、oldest、cvss_desc、epss_desc、relevance |
| `--json` | `-j` | 用于脚本编程的 JSON 输出 |
## 漏洞利用过滤器
`exploits` 命令拥有独立的过滤器集合,专用于漏洞利用中心搜索:
| 过滤器 | 缩写 | 描述 |
|---|---|---|
| `--source` | | github、metasploit、exploitdb、nomisec |
| `--language` | `-l` | python、ruby、go、c 等 |
| `--classification` | | LLM 分类:working_poc、scanner、trojan |
| `--attack-type` | | RCE、SQLi、XSS、DoS、LPE、auth_bypass、info_leak |
| `--complexity` | | trivial、simple、moderate、complex |
| `--reliability` | | reliable、unreliable、untested |
| `--author` | | 按漏洞利用作者名称过滤 |
| `--min-stars` | | 最小 GitHub 星数 |
| `--has-code` | `-c` | 仅包含可下载代码的漏洞利用 |
| `--cve` | | 按 CVE ID 过滤 |
| `--vendor` | `-v` | 按厂商名称过滤 |
| `--product` | `-p` | 按产品名称过滤 |
| `--sort` | | newest、stars_desc |
| `--json` | `-j` | 用于脚本编程的 JSON 输出 |
位置参数会自动识别:CVE ID 映射到 `--cve`,其他文本映射到 `--vendor`。
## 漏洞利用排名机制
当某个 CVE 拥有数十或数百个漏洞利用时,eip-search 按质量对它们进行排序,使最优质的排在前面:
| 来源 | 基础分 | 原因 |
|---|---|---|
| Metasploit(excellent) | 1000 | 由 Rapid7 维护的同行评审模块 |
| Metasploit(其他等级) | 500-900 | 仍经过策展和测试 |
| ExploitDB(verified) | 550 | 由 Offsec 人工验证 |
| ExploitDB(unverified) | 300 | 已发布但未验证 |
| nomi-sec / GitHub | log10(stars) * 100 + 奖励 | 社区信号( 星数) |
在基础分之上,LLM 分类修饰符会应用:`working_poc` 加 +100,`scanner` 加 +50,而 `trojan` 减 -9999(始终排在最后并附带警告)。
漏洞利用来源包括:ExploitDB(~88K)、nomi-sec(~11K)、Metasploit(~3.3K)和 GitHub(~2.2K)。
## 架构
```
Terminal user
│
│ eip-search [flags]
▼
eip_search/cli.py ← Typer app — command definitions, arg parsing, offline routing
│
├── eip_search/client.py ← httpx → https://exploit-intel.com/api/v1/… (online)
│
└── eip_search/local_client.py ← SQLite → ~/.local/share/eip-search/eip.db (--offline)
│
▼
eip_search/models.py ← Shared data models
eip_search/ranking.py ← Exploit quality ranking + grouping
eip_search/display.py ← Rich output rendering
eip_search/generate.py ← Ollama PoC generation (optional)
```
CLI 会自动路由裸参数:如果第一个位置参数看起来像 CVE ID,则路由到 `info`;否则路由到 `search`。`client.py` 与 `local_client.py` 共享同一接口 — 添加新命令需要在两者中同步实现。
## 部署
分发通过两个渠道进行:
- **PyPI** — `pip install eip-search` / `pipx install eip-search`
- **APT 仓库** — `repo.exploit-intel.com`(适用于 Kali、Debian、Ubuntu 的原生包)
发布流程使用 Makefile:
```
# CI 驱动的发布(推荐):提升版本、提交、打标签、推送;GitHub Actions 构建并上传
make tag-release VERSION=X.Y.Z
# 本地传统发布路径:除非有意需要手动路径,否则请避免
make release VERSION=X.Y.Z
```
版本会在 `pyproject.toml` 和 `eip_search/__init__.py` 中通过 `scripts/bump_version.py` 原子递增。
## 配置
可选配置文件位于 `~/.eip-search.toml`:
```
[api]
base_url = "https://exploit-intel.com"
api_key = "your-key-here" # optional, for higher rate limits
[display]
per_page = 20 # default results per page
```
无需 API 密钥。公共 API 允许每分钟 60 次请求。
## 安全性
- **ZIP 路径穿越防护**:所有 ZIP 提取路径均经过验证以防止目录遍历攻击
- **文件名净化**:下载文件名会剥离路径组件和特殊字符
- **下载大小上限**:50 MB 硬限制,防止内存耗尽攻击
- **标记注入防护**:所有 API 数据在终端渲染前均会转义
- **TLS 验证**:所有连接均使用标准证书验证
## Git 工作流
**永远不要直接推送至 `main` 分支。** 所有变更均需通过分支和 PR。
```
git checkout -b
# 进行更改
git push origin
gh pr create
```
PR 合并前需经过审查。
## 许可证
MIT
标签:AI助手集成, AI风险缓解, APT包, CTF工具, CVE, CVSS, EDB, EPSS, Exploit Intelligence Platform, FOGA, GHSA, Google dork, KEV, LLM评估, MCP服务器, Nuclei模板, Ollama, PoC生成, Python包, searchsploit替换, SQLite, 情报平台, 排序筛选, 数字签名, 本地LLM, 漏洞搜索, 离线数据库, 终端客户端, 运行时操纵, 逆向工具, 风险评分