MrEchoFi/BannerGrapV2

GitHub: MrEchoFi/BannerGrapV2

一款基于 Go 语言构建的高速网络侦察与漏洞发现框架,集成了服务指纹识别、弱口令检测和实时 CVE 交叉比对能力。

Stars: 10 | Forks: 3

gif

🎯 BannerGrapV2

### 高级网络侦察与漏洞发现工具 [![GitHub Stars](https://img.shields.io/github/stars/MrEchoFi/BannerGrapV2?style=for-the-badge&logo=github)](https://github.com/MrEchoFi/BannerGrapV2/stargazers) [![GitHub Forks](https://img.shields.io/github/forks/MrEchoFi/BannerGrapV2?style=for-the-badge&logo=github)](https://github.com/MrEchoFi/BannerGrapV2/network/members) [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge)](LICENSE) [![Go Version](https://img.shields.io/badge/Go-1.23+-00ADD8?style=for-the-badge&logo=go)](https://golang.org) [![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey?style=for-the-badge)](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) ❤️ 构建 ## 📊 项目统计 ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/MrEchoFi/BannerGrapV2?style=for-the-badge) ![GitHub last commit](https://img.shields.io/github/last-commit/MrEchoFi/BannerGrapV2?style=for-the-badge) ![GitHub issues](https://img.shields.io/github/issues/MrEchoFi/BannerGrapV2?style=for-the-badge) ![GitHub pull requests](https://img.shields.io/github/issues-pr/MrEchoFi/BannerGrapV2?style=for-the-badge) ## 💬 社区 加入我们不断壮大的社区! [![Discord](https://img.shields.io/badge/Discord-Join%20Us-7289DA?style=for-the-badge&logo=discord)](https://discord.gg/ntTW959Y) [![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-0077B5?style=for-the-badge&logo=linkedin)](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 历史 [![Star History Chart](https://api.star-history.com/svg?repos=MrEchoFi/BannerGrapV2&type=Date)](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工具, 子域名突变, 密码管理, 插件系统, 攻击面测绘, 日志审计, 聊天机器人, 请求拦截