danielcunn123/vulnmd
GitHub: danielcunn123/vulnmd
VulnMD 是一款通过导入 CherryTree 数据构建本地 Markdown 漏洞库,并自动获取漏洞与修复版本源码以生成确定性补丁和分析报告的工具。
Stars: 0 | Forks: 0
# VulnMD
Vulnmd 是一款专为网络安全专业人员设计的工具,旨在帮助他们获取存在漏洞的产品的源代码。
本项目以 cherrytree 的示例数据库为基础,用于生成包含修复版本和漏洞版本源代码的本地数据库——涵盖多种 Linux 发行版。
* Debian
* Ubuntu
* Kylin Linux
* Astra Linux
* Kali Linux
* BOSS Linux
* RedStar OS
* Parrot OS
本项目的目标在于了解什么是安全公告(advisories),简化报告流程,并确定常用的 Linux 发行版中存在哪些漏洞。
## 1. 安装系统包
```
sudo apt update
sudo apt install -y \
python3 \
python3-pytest \
git \
ca-certificates \
jq \
ripgrep \
unzip \
zip
```
不使用任何 pip 包、`deb-src` 或 `apt-get source`。
当可执行文件名为 `gemini-cli` 时,请选择 Gemini CLI:
```
export VULNMD_GEMINI_COMMAND=gemini-cli
```
## 2. 构建本地 Markdown 仓库
```
python3 main.py -i database.json -o vuln_db
```
内置的完整数据库会生成系统、安全公告、CVE、软件包、分析、
Gemini 和源码目标页面。
## 3. 获取不需要 Gemini 的安全公告
`DSA-4502-1` 存在于有证据支持的本地目录中:
```
python3 main.py fetch-sources vuln_db \
--advisory DSA-4502-1 \
--no-resolve
```
它映射到:
```
repository: https://github.com/FFmpeg/FFmpeg.git
vulnerable revision: n4.1.3
fixed revision: n4.1.4
```
`DLA-3068-1` 也已预先解析:
```
python3 main.py fetch-sources vuln_db \
--advisory DLA-3068-1 \
--no-resolve
```
## 4. 获取五个安全公告,严重者优先
```
python3 main.py fetch-sources vuln_db \
--limit 5 \
--resume \
--model gemini-2.5-pro \
```
## 5. 确定性比较
此过程不会调用 Gemini:
```
python3 main.py analyse-sources vuln_db \
--advisory DSA-4502-1 \
--no-gemini
```
输出:
```
vuln_db/analysis/DSA-4502-1.md
vuln_db/source/reports/DSA-4502-1/
vuln_db/source/patches/DSA-4502-1/
```
## 6. 确定性比较外加一次 Gemini 摘要
使用单次请求的摘要预算:
```
python3 main.py analyse-sources vuln_db \
--advisory DSA-4502-1 \
--with-gemini \
--model gemini-2.5-pro \
--force-gemini \
```
标签:GPT, 漏洞管理, 网络安全研究, 补丁分析, 逆向工具