MrEchoFi/BannerGrapV2
GitHub: MrEchoFi/BannerGrapV2
一款基于 Go 语言构建的高速网络侦察与漏洞发现框架,集成了服务指纹识别、弱口令检测和实时 CVE 交叉比对能力。
Stars: 10 | Forks: 3
🎯 BannerGrapV2
### 高级网络侦察与漏洞发现工具
[](https://github.com/MrEchoFi/BannerGrapV2/stargazers)
[](https://github.com/MrEchoFi/BannerGrapV2/network/members)
[](LICENSE)
[](https://golang.org)
[](https://github.com/MrEchoFi/BannerGrapV2)
**一款使用 Go 语言为现代安全专业人员构建的极速、全面的侦察工具。**
[🚀 快速开始](#-quick-start) • [📖 使用文档](#-documentation) • [✨ 功能特性](#-features) • [🤝 参与贡献](#-contributing) • [💬 社区交流](#-community)
## 观看视频以更好地了解:
https://github.com/user-attachments/assets/d4bfc9ff-5fc2-4932-bc7e-e6d827cabf0b
## 🌟 为什么选择 BannerGrapV2?
BannerGrapV2 是一款专为**红蓝双队**设计的下一代侦察工具,将速度、准确性和全面的报告整合到一个强大的包中。
**通过这款基于 DevSecOps 的工具,您可以-> 侦察、漏洞发现、暴力破解、攻击面映射、报告生成、漏洞利用探测、资产管理、漏洞管理、凭据卫生、暴露监控、应急响应 (IR)、合规性审计。**
### 🎯 适用对象:
- 🔴 **红队行动** - 攻击面映射与漏洞利用
- 🔵 **蓝队防御** - 资产盘点与漏洞管理
- 🐛 **Bug Bounty 猎人** - 快速侦察与发现
- 🛡️ **安全审计员** - 合规性与安全评估
- 🔧 **DevSecOps 工程师** - CI/CD 安全集成
## ✨ 功能特性
|
### 🔍 侦察
- **多线程** banner 抓取
- 跨越 1000+ 协议的**服务指纹识别**
- **SSL/TLS 证书**分析
- **HTTP 标头**枚举
- **DNS 信息**收集
- **与 Nmap 集成**
|
### 🛡️ 安全分析
- **漏洞检测**引擎
- **弱凭据**检测
- **错误配置**识别
- **漏洞利用建议**框架
|
|
### ⚡ 性能
- **并发扫描**(最多 10,000 台主机)
- **自适应速率限制**
- **智能超时处理**
- **内存高效**设计
- **恢复失败的扫描**
|
### 📊 报告
- **JSON、XML、HTML、CSV** 输出格式
- **色彩丰富的终端**输出
- **执行摘要**
- **集成就绪的** API
|
## 🚀 快速开始
### 前置条件
- Go 1.23 或更高版本(参见 `go.mod`)
- Linux、macOS 或 Windows
- Root/管理员权限(用于某些扫描类型)
### 安装
#### 选项 1:下载预编译二进制文件(推荐)
针对所有主要平台/架构提供了经过精简的预编译二进制文件:
| 平台 | 架构 | 二进制文件 |
|---|---|---|
| Linux | x86_64 | `bannergrapv2-linux-amd64` |
| Linux | arm64 | `bannergrapv2-linux-arm64` |
| macOS | Intel (x86_64) | `bannergrapv2-darwin-amd64` |
| macOS | Apple Silicon (arm64) | `bannergrapv2-darwin-arm64` |
| Windows | x86_64 | `bannergrapv2-windows-amd64.exe` |
```
# Linux (x86_64)
curl -L https://github.com/MrEchoFi/BannerGrapV2/releases/latest/download/bannergrapv2-linux-amd64 -o bannergrapv2
# Linux (arm64)
curl -L https://github.com/MrEchoFi/BannerGrapV2/releases/latest/download/bannergrapv2-linux-arm64 -o bannergrapv2
# macOS (Intel)
curl -L https://github.com/MrEchoFi/BannerGrapV2/releases/latest/download/bannergrapv2-darwin-amd64 -o bannergrapv2
# macOS (Apple Silicon)
curl -L https://github.com/MrEchoFi/BannerGrapV2/releases/latest/download/bannergrapv2-darwin-arm64 -o bannergrapv2
chmod +x bannergrapv2
sudo mv bannergrapv2 /usr/local/bin/
bannergrapv2 -version
bannergrapv2 -h
```
```
# Windows (PowerShell, x86_64)
Invoke-WebRequest -Uri "https://github.com/MrEchoFi/BannerGrapV2/releases/latest/download/bannergrapv2-windows-amd64.exe" -OutFile "bannergrapv2.exe"
.\bannergrapv2.exe -version
```
**验证下载(推荐):** 每次发布都会附带一个包含所有五个二进制文件 SHA-256 校验和的 `CHECKSUMS.txt`。
```
curl -L https://github.com/MrEchoFi/BannerGrapV2/releases/latest/download/CHECKSUMS.txt -o CHECKSUMS.txt
sha256sum --ignore-missing -c CHECKSUMS.txt
```
#### 选项 2:从源码编译
```
# Clone the repository
git clone https://github.com/MrEchoFi/BannerGrapV2.git
cd BannerGrapV2
# 为当前平台进行构建
go build -o bannergrapv2 .
# 可选:全局安装
sudo mv bannergrapv2 /usr/local/bin/
```
**为其他平台交叉编译:**
```
GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o bannergrapv2-linux-amd64 .
GOOS=linux GOARCH=arm64 go build -trimpath -ldflags="-s -w" -o bannergrapv2-linux-arm64 .
GOOS=darwin GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o bannergrapv2-darwin-amd64 .
GOOS=darwin GOARCH=arm64 go build -trimpath -ldflags="-s -w" -o bannergrapv2-darwin-arm64 .
GOOS=windows GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o bannergrapv2-windows-amd64.exe .
```
#### 选项 3:通过 Go 安装
```
go install github.com/MrEchoFi/BannerGrapV2@latest
```
#### 选项 4:通过 Docker 安装
```
# 在安全/实验环境中使用 "Docker" 进行容器化运行:
git clone
cd BannerGrapV2
[+] run the tool and follow its 'bannerGrap_Guid or Usage.txt';
but specially read & follow this-> 'New_advanced_bashScripts.md' for full usage of guidelines.
By this guidline u can use this tool in aggressive mode, basic mode and intermediate mode.
# 构建 Docker 镜像
docker build -t bannerv2 .
# 然后运行:
docker run bannerv2
### 在更干净的容器中测试工具(可选):
docker run --rm bannerv2
[+]NOTE: follow the guidline- 'New_advanced_bashScripts.md' for better bash scripting.
```
#### 选项 5:通过 Kubernetes + Docker 安装
```
### Minikube Setup:
# 这将使用您的 WSL2 Docker 启动本地 K8s 集群
minikube start --driver=docker
# 可选:启用默认的 storageclass 和 dashboard
minikube addons enable default-storageclass
minikube addons enable dashboard
# 或者您可以直接运行这个:
chmod +x start_banner.sh
# 然后运行:
./start_banner.sh
[+] run the tool and follow its 'bannerGrap_Guid or Usage.txt';
but specially read & follow this-> 'New_advanced_bashScripts.md' for full usage of guidelines.
By this guidline u can use this tool in aggressive mode, basic mode and intermediate mode.
# Convert using 'chmod':
chmod +x run_bannerv2.sh
# 然后像这样运行:
./run_bannerv2.sh --proto http https --threads 20 --timeout 8 --o scan.csv --v
[+] //follow the guidline- 'New_advanced_bashScripts.md' for better bash scripting ..
```
### 🔑 NVD API Key 配置(推荐)
BannerGrapV2 可以将其指纹识别到的每个服务/版本与**国家漏洞数据库 (NVD) CVE API 2.0** 进行交叉比对,以报告真实的、匹配的 CVE —— 而不仅仅是静态的本地列表。这种实时查询受 `NVD_API_KEY` 环境变量的控制。
- **无 Key:** 该工具在 banner 抓取、指纹识别等方面仍然完全可用 —— NVD 查找将被静默跳过(如果您在 `NVD_DEBUG=1` 下运行,您会看到 `NVD_API_KEY not set - skipping NVD lookup`)。
- **有 Key:** 您将获得更高的 NVD 速率限制(见下文),并且 CVE 结果将合并到您的扫描输出中。
#### 1. 获取免费的 NVD API Key
1. 前往 NVD API Key 申请页面:**https://nvd.nist.gov/developers/request-an-api-key**
2. 输入您的电子邮件地址并提交申请。
3. NIST 会给您发送一封包含激活链接的电子邮件 —— 点击它以激活该 Key。
4. 从激活电子邮件中复制该 Key(看起来像一个 UUID,例如 `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)。
如果没有 Key,NVD 每 30 秒只允许 5 次请求;如果有 Key,则跃升至每 30 秒 50 次请求,这在您扫描超过少数几台主机时显得尤为重要。
#### 2. 为本项目配置 Key
本仓库提供了一个模板文件 `.env.example`:
```
NVD_API_KEY="your-nvd-api-key-here"
```
将其复制为 `.env` 并粘贴您真实的 Key:
```
cp .env.example .env
# 然后编辑 .env 并将 "your-nvd-api-key-here" 替换为 NIST 发给您的密钥
```
`.env` 已经在 `.gitignore` 中列出,因此您的 Key 永远不会被提交 —— **切勿**提交真实的 Key 或将其直接放在 `.env.example` 中。
启动时,该工具会自动从当前工作目录加载 `.env`(参见 `bannerGrap.go` 中的 `loadDotEnv`),因此不需要额外的标志 —— 只需在包含您的 `.env` 文件的目录中运行 `bannergrapv2` 即可。
或者,直接在您的 shell 中导出它,而不是使用 `.env` 文件(导出的/环境变量值始终优先于 `.env`):
```
# Linux/macOS
export NVD_API_KEY="your-nvd-api-key-here"
bannergrapv2 example.com
# Windows (PowerShell)
$env:NVD_API_KEY="your-nvd-api-key-here"
.\bannergrapv2.exe example.com
```
#### 3. 验证其是否生效
在 `NVD_DEBUG=1` 下运行任何扫描,以在 stderr 上查看 NVD 查找诊断信息:
```
NVD_DEBUG=1 bannergrapv2 example.com
```
如果 Key 被正确获取,您将看到 NVD 候选/查询调试行,而不是 `NVD_API_KEY not set` 消息。
### 基础用法
```
Flags:
-f string
File containing newline-separated targets (host or host:port)
-proto string
Protocol to use: http (default), https, ftp, smtp, ssh, telnet, custom
-port string
Override port for every target (overrides both target ports and defaults)
-payload string
Custom payload to send (default is protocol-specific)
-timeout int
Connection + read timeout in seconds (default 5)
-threads int
Number of simultaneous connections (default 10)
-o string
Output file path (.json or .csv, txt inferred by extension; console if empty)
-h help
# 版本与帮助:
go run bannerGrap.go --version
go run bannerGrap.go -h
# 扫描单个主机
go run bannerGrap.go example.com
go run bannerGrap.go example.com:80
# 或者,
bannergrapv2 192.168.1.1
# 扫描多个主机
bannergrapv2 -f targets.txt
# 或者,
go run bannerGrap.go -f targets.txt
go run bannerGrap.go -f targets.txt -proto http
go run bannerGrap.go -f targets.txt -proto https
go run bannerGrap.go -f targets.txt -proto ftp
go run bannerGrap.go -f targets.txt -proto smtp
go run bannerGrap.go -f targets.txt -proto ssh
go run bannerGrap.go -f targets.txt -proto telnet
go run bannerGrap.go -f targets.txt -proto custom
go run bannerGrap.go -f targets.txt -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"
go run bannerGrap.go -f targets.txt -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" -timeout 10
go run bannerGrap.go -f targets.txt -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" -timeout 10 -threads 5
# 自定义 Payloads:发送您自己的 payload(SMTP VRFY 或 EXPN、FTP USER 等)
go run bannerGrap.go -proto smtp -payload "VRFY postmaster\r\n" mail.example.com
go run bannerGrap.go -proto smtp -payload "EXPN postmaster\r\n" mail.example.com
go run bannerGrap.go -proto ftp -payload "USER anonymous\r\n" ftp.example.com
go run bannerGrap.go -proto ssh -payload "SSH-2.0-OpenSSH_7.4\r\n" ssh.example.com
go run bannerGrap.go -proto telnet -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" telnet.example.com
go run bannerGrap.go -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" custom.example.com
go run bannerGrap.go -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" custom.example.com:8080
go run bannerGrap.go -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" custom.example.com:8080 -timeout 10
# 使用自定义端口扫描
bannergrapv2 192.168.1.1 -ports 80,443,8080,3306
### 使用 output ### 保存
# JSON 输出:
go run bannerGrap.go -f hosts.txt -o results.json
# CSV 输出:
go run bannerGrap.go -f hosts.txt -o results.csv
# Text 输出:
go run bannerGrap.go -f hosts.txt -o results.txt
# 控制台输出:
go run bannerGrap.go -f hosts.txt
# 使用自定义 payload 的 JSON 输出:
go run bannerGrap.go -f hosts.txt -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" -o results.json
# 使用自定义 payload 的 CSV 输出:
go run bannerGrap.go -f hosts.txt -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" -o results.csv
#Text output with custom payload:
go run bannerGrap.go -f hosts.txt -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" -o results.txt
#Console output with custom payload:
go run bannerGrap.go -f hosts.txt -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"
#JSON output with custom payload and timeout:
go run bannerGrap.go -f hosts.txt -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" -timeout 10 -o results.json
# 使用自定义 payload 和 timeout 的 CSV 输出:
go run bannerGrap.go -f hosts.txt -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" -timeout 10 -o results.csv
# 使用自定义 payload 和 timeout 以及 threads、port 和 protocol 的 Text 输出:
go run bannerGrap.go -f hosts.txt -proto custom -payload "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" -timeout 10 -threads 5 -port 80 -proto http -o results.txt
# 包含所有功能的全量扫描
# “极限”组合扫描:
[+] Scan 1,000 hosts, all on port 443 via HTTPS, with custom headers, 200 concurrent workers, and dump to CSV:
go run bannerGrap.go \
-f thousand_hosts.txt \
-proto https \
-port 443 \
-payload "GET /status HTTP/1.1\r\nHost: %s\r\nUser-Agent: BannerBot/1.0\r\n\r\n" \
-threads 200 \
-timeout 3 \
-o full_scan.csv
//Scan 1,000 hosts, all on port 443 via HTTPS, with custom headers, 200 concurrent workers, and dump to JSON:
go run bannerGrap.go \
-f thousand_hosts.txt \
-proto https \
-port 443 \
-payload "GET /status HTTP/1.1\r\nHost: %s\r\nUser-Agent: BannerBot/1.0\r\n\r\n" \
-threads 200 \
-timeout 3 \
-o full_scan.json
//Scan 1,000 hosts, all on port 443 via HTTPS, with custom headers, 200 concurrent workers, and dump to console:
go run bannerGrap.go \
-f thousand_hosts.txt \
-proto https \
-port 443 \
-payload "GET /status HTTP/1.1\r\nHost: %s\r\nUser-Agent: BannerBot/1.0\r\n\r\n" \
-threads 200 \
-timeout 3 \
-o full_scan.txt
//Scan 1,000 hosts, all on port 443 via HTTPS, with custom headers, 200 concurrent workers, and dump to console:
go run bannerGrap.go \
-f thousand_hosts.txt \
-proto https \
-port 443 \
-payload "GET /status HTTP/1.1\r\nHost: %s\r\nUser-Agent: BannerBot/1.0\r\n\r\n" \
-threads 200 \
-timeout 3 \
-o full_scan.txt
[+] // Massive HTTPS Scan with Custom Header & CSV Output: Scan 10 000 domains over TLS, 500 threads, 2 s timeout, dump to CSV-
go run bannerGrap.go \
-f ten_thousand_domains.txt \
-proto https \
-port 443 \
-payload "GET / HTTP/1.1\r\nHost: %s\r\nUser-Agent: AggroBot/5.0\r\nAccept: */*\r\n\r\n" \
-threads 500 \
-timeout 2 \
-o https_scan_results.csv
// Massive HTTPS Scan with Custom Header & JSON Output: Scan 10 000 domains over TLS, 500 threads, 2 s timeout, dump to JSON-
go run bannerGrap.go \
-f ten_thousand_domains.txt \
-proto https \
-port 443 \
-payload "GET / HTTP/1.1\r\nHost: %s\r\nUser-Agent: AggroBot/5.0\r\nAccept: */*\r\n\r\n" \
-threads 500 \
-timeout 2 \
-o https_scan_results.json
// Massive HTTPS Scan with Custom Header & Console Output: Scan 10 000 domains over TLS, 500 threads, 2 s timeout, dump to console-
go run bannerGrap.go \
-f ten_thousand_domains.txt \
-proto https \
-port 443 \
-payload "GET / HTTP/1.1\r\nHost: %s\r\nUser-Agent: AggroBot/5.0\r\nAccept: */*\r\n\r\n" \
-threads 500 \
-timeout 2 \
-o https_scan_results.txt
3.3] Ultra-Fast HTTP Sweep on IP Range: Hit 192.168.1.1–254 on port 80 with 254 threads and 1 s timeout-
go run bannerGrap.go \
-f thousand_hosts.txt \
-proto http \
-port 80 \
-payload "GET / HTTP/1.1\r\nHost: %s\r\nUser-Agent: AggroBot/5.0\r\nAccept: */*\r\n\r\n" \
-threads 254 \
-timeout 1 \
-o http_sweep.csv
//////
go run banner_grabber.go \
-f <(for i in $(seq 1 254); do echo \"192.168.1.$i\"; done) \
-proto http \
-threads 254 \
-timeout 1
-o http_sweep.csv
-o http_sweep.json
-o http_sweep.txt
[+} SMTP Banner Harvesting in Bulk (JSON): Pull EHLO banners from mail servers list, override port to 25, output JSON-
//Pull EHLO banners from mail servers list, override port to 25, output JSON-
go run bannerGrap.go \
-f mail_hosts.txt \
-proto smtp \
-port 25 \
-threads 100 \
-timeout 5 \
-o smtp_banners.json
//Pull HTTP banners from web servers list, override port to 80, output CSV-
go run bannerGrap.go \
-f web_hosts.txt \
-proto http \
-port 80 \
-threads 50 \
-timeout 3 \
-o http_banners.csv
//Pull FTP banners from FTP servers list, override port to 21, output JSON-
go run bannerGrap.go \
-f ftp_hosts.txt \
-proto ftp \
-port 21 \
-threads 20 \
-timeout 2 \
-o ftp_banners.json
//Pull SSH banners from SSH servers list, output JSON-
go run bannerGrap.go \
-f ssh_hosts.txt \
-proto ssh \
-threads 10 \
-timeout 5 \
-o ssh_banners.json
//Pull Telnet banners from Telnet servers list, output CSV-
go run bannerGrap.go \
-f telnet_hosts.txt \
-proto telnet \
-threads 10 \
-timeout 5 \
-o telnet_banners.csv
//Pull custom banners from custom servers list, output JSON-
go run bannerGrap.go \
-f custom_hosts.txt \
-proto custom \
-payload "GET / HTTP/1.1\r\nHost: %s\r\n\r\n" \
-threads 10 \
-timeout 5 \
-o custom_banners.json
[+] FTP Anonymous Banner Grab: Scan FTP servers (file lists mixed hostnames & IPs), force port 21, no custom payload needed-
go run bannerGrap.go \
-f ftp_targets.txt \
-proto ftp \
-port 21 \
-threads 150 \
-timeout 4 \
-o ftp_banners.csv
[+] SSH Welcome Message Blitz: Read SSH welcomes from 1 000 hosts, port 22, high concurrency, console output-
go run bannerGrap.go \
-f thousand_hosts.txt \
-proto ssh \
-port 22 \
-threads 300 \
-timeout 3
[+] Telnet Service Fingerprinting: Connect to Telnet on mixed IPv4 & IPv6 targets, port 23-
go run bannerGrap.go \
-f mixed_targets.txt \
-proto telnet \
-port 23 \
-threads 100 \
-timeout 5 \
-o telnet_fingerprints.json
[+] Custom TCP Payload for Proprietary Service: Send a proprietary “HELLO\n” payload to a custom daemon on port 9000-
go run bannerGrap.go \
-f custom_daemon_hosts.txt \
-proto custom \
-port 9000 \
-payload "HELLO\n" \
-threads 50 \
-timeout 6 \
-o daemon_responses.csv
[+] Mixed-Protocol One-Liner:Scan HTTP, then HTTPS, then SMTP sequentially (three invocations) on a single host:
go run bannerGrap.go example.com # HTTP:80
go run bannerGrap.go -proto https example.com # HTTPS:443
go run bannerGrap.go -proto smtp example.com:25 # SMTP:25
[+] Internal LAN Audit: Check local hostnames and IPs in internal_targets.txt, console output-
go run banner_grabber.go \
-f internal_targets.txt \
-threads 50 \
-timeout 3
[+]IPv6-Only Enumeration:Scan a list of IPv6 hosts on HTTPS, 100 threads-
go run bannerGrap.go \
-f ipv6_hosts.txt \
-proto https \
-port 443 \
-threads 100 \
-timeout 4 \
```
## 📖 使用文档
### 🎓 教程
- [入门指南](docs/bannerGrap_Guide_of_Usage.md)
- [高级用法](docs/New_advanced_bashScripts.md)
- [扫描技术](docs/scan-techniques.md)
- [输出格式](docs/output-formats.md)
### 📚 参考
- [命令行选项](docs/cli-reference.md)
- [配置文件](docs/configuration.md)
### 💡 用例
- [Bug Bounty 工作流](docs/bug-bounty.md)
- [渗透测试](docs/pentesting.md)
- [安全审计](docs/auditing.md)
- [CI/CD 集成](docs/cicd.md)
## 🎯 命令行选项
## 🔥 示例
### 示例 1:快速 Web 服务器扫描
```
bannergrapv2 example.com -ports 80,443 -ssl-check -http-headers
```
**输出:**
```
__________ ________
\______ \_____ ____ ____ ___________ / _____/___________ ______ ____ ____
| | _/\__ \ / \ / \_/ __ \_ __ \/ \ __\_ __ \__ \ \____ \ / ___\ / _ \
| | \ / __ \| | \ | \ ___/| | \/\ \_\ \ | \// __ \| |_> > / /_/ > <_> )
|______ /(____ /___| /___| /\___ >__| \______ /__| (____ / __/ /\ \___ / \____/
\/ \/ \/ \/ \/ \/ \/|__| \/ /_____/
[+] Target: example.com (93.184.216.34)
[+] Open Ports: 80, 443
PORT SERVICE VERSION VULNERABILITIES
80 HTTP nginx/1.18.0 None detected
443 HTTPS nginx/1.18.0 (TLS) TLS 1.0 Deprecated (Low)
[+] SSL Certificate:
Subject: CN=example.com
Issuer: DigiCert Inc
Valid: 2024-01-01 to 2025-01-01
Grade: A
[✓] Scan completed in 2.34s
```
### 示例 2:网络侦察
```
go run bannerGrap.go 192.168.1.0/24 -threads 200 -output network-scan.json
or,
bannergrapv2 192.168.1.0/24 -threads 200 -output network-scan.json
```
### 示例 3:漏洞评估
```
bannergrapv2 vulnerable-site.com -vuln-scan -format html -output vuln-report.html
```
### 示例 4:CI/CD 集成
```
# .github/workflows/security-scan.yml
bannergrapv2 production-hosts.txt -vuln-scan -format json -output scan-results.json
```
## 🛠️ 高级配置
创建一个 `config.yaml` 文件:
```
# BannerGrapV2 配置
general:
threads: 100
timeout: 10
retries: 3
verbose: true
scan:
common_ports: true
port_range: "1-10000"
service_detection: true
ssl_analysis: true
vulnerability:
enabled: true
cve_database: "local" # or "online"
min_severity: "medium"
output:
format: "json"
directory: "./reports"
timestamp: true
brute_force:
enabled: false
username_list: "usernames.txt"
password_list: "passwords.txt"
```
使用配置运行:
```
bannergrapv2 -config config.yaml -target 192.168.1.1
```
## 🏗️ 项目结构或项目树
```
├── bannerGrap
├── bannerGrap.go
├── bannerGrap_test.go
├── bannergrapv2-darwin-amd64
├── bannergrapv2-darwin-arm64
├── bannergrapv2-linux-amd64
├── bannergrapv2-linux-arm64
├── BannerGrapV2_Security_Scanner_Tool_1d0e04fd-c100-4173-88b9-52a99f69fc2b.jpeg
├── bannergrapv2-windows-amd64.exe
├── CHECKSUMS.txt
├── bannerv2-deploy.yaml
├── bannerv2-job.yaml
├── bannerv2-service.yaml
├── build_and_run.sh
├── CONTRIBUTING.md
├── Dockerfile
├── docs
│ ├── auditing.md
│ ├── bannerGrap_Guide_of_Usage.md
│ ├── bug-bounty.md
│ ├── cicd.md
│ ├── cli-reference.md
│ ├── configuration.md
│ ├── New_advanced_bashScripts.md
│ ├── output-formats.md
│ ├── pentesting.md
│ └── scan-techniques.md
├── go.mod
├── go.sum
├── LICENSE
├── README.md
├── report.html
├── run_bannerv2.sh
├── SECURITY.md
└── start_banner.sh
```
## 🤝 参与贡献
我们欢迎您的贡献! 🎉
### 贡献方式:
- 🐛 报告 Bug
- 💡 提出新功能建议
- 📝 改进文档
- 🔧 提交 pull request
- ⭐ 为项目加星
### 快速贡献指南:
1. **Fork 本仓库**
2. **创建您的功能分支**
```
git checkout -b feature/AmazingFeature
```
3. **提交您的更改**
```
git commit -m 'Add some AmazingFeature'
```
4. **推送到分支**
```
git push origin feature/AmazingFeature
```
5. **发起一个 Pull Request**
阅读我们的[贡献指南](CONTRIBUTING.md)了解详细信息。
### 🐛 发现了 Bug?
[提交一个 issue](https://github.com/MrEchoFi/BannerGrapV2/issues/new?template=bug_report.md)
### 💡 有功能请求?
[请求一个新功能](https://github.com/MrEchoFi/BannerGrapV2/issues/new?template=feature_request.md)
## 🔒 安全
### 负责任的披露
发现了安全漏洞?请**切勿**公开提出 issue。
邮箱:**tanjibisham777@gmail.com**
有关更多信息,请参阅我们的[安全政策](SECURITY.md)。
## 📜 许可证
本项目基于 MIT 许可证授权 - 有关详细信息,请参见 [LICENSE](LICENSE) 文件。
## 🙏 致谢
- 感谢所有[贡献者](https://github.com/MrEchoFi/BannerGrapV2/graphs/contributors)
- 灵感来源于 Nmap、Masscan 和 Shodan 等工具
- 使用 [Go](https://golang.org) ❤️ 构建
## 📊 项目统计




## 💬 社区
加入我们不断壮大的社区!
[](https://discord.gg/ntTW959Y)
[](https://www.linkedin.com/in/md-abu-naser-nayeem-mrechofi-b29496332)
## 🗺️ 路线图
- [x] 核心 banner 抓取功能
- [x] 多线程扫描
- [x] 基础漏洞检测
- [ ] 插件系统
- [ ] 与 Metasploit 和 Nmap 集成
- [ ] Docker 容器支持
- [ ] Kubernetes operator
查看 [开放的 issue](https://github.com/MrEchoFi/BannerGrapV2/issues) 获取提议功能的完整列表。
## 📈 Star 历史
[](https://star-history.com/#MrEchoFi/BannerGrapV2&Date)
# 它如何在网络世界中发挥作用:
渗透测试:
快速识别网络中暴露和易受攻击的服务。
红队行动:
自动化侦察和初始访问向量的发现。
蓝队/防御性安全:
协助进行资产盘点、漏洞管理和减少攻击面。
DevSecOps 运营:
识别漏洞并进行漏洞利用、侦察、查找隐藏的 banner 和目录等。
教育与研究:
教授协议分析、漏洞检测和 Go 安全编程。
## 👨💻 关于开发者
**MrEchoFi** (Md. Abu Naser Nayeem / Tanjib Isham)
- 🔍 网络安全研究员
- 🛡️ DevSecOps 与渗透测试专家
- 🌐 个人主页:[https://echo-fi-portfolio-node-js.vercel.app](https://echo-fi-portfolio-node-js.vercel.app)
### ⭐ 如果您觉得 BannerGrapV2 有用,请给它点个 Star!
## **致以最诚挚的问候 ~ [MrEchoFi](https://github.com/MrEchoFi)**
**祝您 HackNight 愉快**
[⬆ 返回顶部](#-bannergrapv2)
标签:CTI, EVTX分析, Go, Ruby工具, 子域名突变, 密码管理, 插件系统, 攻击面测绘, 日志审计, 聊天机器人, 请求拦截