惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Heimdal Security Blog
A
Arctic Wolf
K
Kaspersky official blog
V
Vulnerabilities – Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Simon Willison's Weblog
Simon Willison's Weblog
L
LINUX DO - 热门话题
MongoDB | Blog
MongoDB | Blog
T
Threat Research - Cisco Blogs
D
Docker
爱范儿
爱范儿
T
Tenable Blog
C
Check Point Blog
B
Blog
C
Cisco Blogs
Vercel News
Vercel News
The Cloudflare Blog
T
Threatpost
NISL@THU
NISL@THU
T
Tor Project blog
V2EX - 技术
V2EX - 技术
P
Palo Alto Networks Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tailwind CSS Blog
G
GRAHAM CLULEY
P
Privacy & Cybersecurity Law Blog
SecWiki News
SecWiki News
博客园 - 司徒正美
S
Security @ Cisco Blogs
GbyAI
GbyAI
S
Secure Thoughts
Microsoft Security Blog
Microsoft Security Blog
The Register - Security
The Register - Security
Recorded Future
Recorded Future
Cloudbric
Cloudbric
Webroot Blog
Webroot Blog
N
News and Events Feed by Topic
Y
Y Combinator Blog
博客园_首页
T
Troy Hunt's Blog
The Hacker News
The Hacker News
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
U
Unit 42
AWS News Blog
AWS News Blog
PCI Perspectives
PCI Perspectives
V
Visual Studio Blog
博客园 - 聂微东
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
BannerGrapV2 — The Open-Source Network Recon Tool Built in Go That Security Professionals Actually Need
MrEchoFi · 2026-06-27 · via DEV Community

BannerGrapV2 — The Open-Source Network Recon Tool Built in Go That Security Professionals Actually Need

TL;DR — BannerGrapV2 is a production-grade, multi-protocol network reconnaissance and vulnerability discovery tool written in Go. It replaces a fragmented toolchain of Nmap, custom scripts, and manual banner grabbers with a single binary capable of scanning 10,000 hosts concurrently across HTTP, HTTPS, SSH, FTP, SMTP, Telnet, and custom TCP protocols — all with structured JSON, CSV, or HTML output.

🔗 GitHub: github.com/MrEchoFi/BannerGrapV2
If this saves you time, a star on GitHub keeps the project alive.


The Problem With Your Current Recon Workflow

If you work in penetration testing, red team ops, bug bounty hunting, or security engineering, you already know what a typical recon session looks like. You fire up Nmap for port discovery, run a separate Python script for banner grabbing, manually check SSL certificate details, then spend twenty minutes stitching three different output formats together before you can actually do anything useful.

This is the workflow that BannerGrapV2 was built to collapse into a single, reliable, fast tool.

Built in Go — specifically for its native goroutine concurrency model — BannerGrapV2 handles the full recon-through-reporting pipeline without the performance ceiling you hit with Python-based tools or the dependency hell of multi-tool chains.


Who Should Keep Reading

This tool is relevant to you if you are:

  • A penetration tester or red teamer who needs fast, structured reconnaissance output before moving to exploitation
  • A bug bounty hunter working large scope targets with hundreds or thousands of in-scope hosts
  • A SOC analyst or blue teamer running asset inventory or exposure monitoring on internal infrastructure
  • A DevSecOps engineer looking to integrate automated service fingerprinting into a CI/CD pipeline
  • A network or sysadmin who needs periodic LAN audits with exportable reports

If none of that applies, this post probably isn't for you.


What BannerGrapV2 Does — Feature Breakdown

Core Reconnaissance Engine

  • Multi-threaded banner grabbing — up to 10,000 concurrent hosts via Go goroutines
  • Multi-protocol support — HTTP, HTTPS, FTP, SMTP, SSH, Telnet, raw TCP, and fully custom payloads
  • Service fingerprinting across 1,000+ protocol signatures
  • SSL/TLS certificate analysis — issuer, expiry, version, cipher grade
  • HTTP header enumeration — server version, security headers, redirects
  • DNS resolution and information gathering
  • Nmap integration for deeper port-level data

Security Analysis

  • Vulnerability detection engine with CVE cross-referencing
  • Weak credential detection (brute force via SecLists-compatible wordlists)
  • Misconfiguration identification
  • Exploit suggestion framework based on fingerprinted service versions

Performance Design

  • Concurrent scanning up to 10,000 hosts
  • Adaptive rate limiting to respect scope and avoid unintentional DoS
  • Smart timeout handling per-protocol
  • Memory-efficient design — no swap abuse on large host lists
  • Ability to resume failed or interrupted scans

Reporting

  • JSON, CSV, XML, HTML output — ready for SIEM ingestion, Excel analysis, or client reports
  • Color-coded, readable terminal output
  • Executive summary mode for client-facing reports
  • Integration-ready API output format

Installation — Pick Your Method

Option 1: Pre-built Binary (Fastest)

No Go installation required.

# Linux / macOS
curl -L https://github.com/MrEchoFi/BannerGrapV2/releases/latest/download/bannergrapv2-linux-amd64 -o bannergrapv2
chmod +x bannergrapv2
sudo mv bannergrapv2 /usr/local/bin/

# Verify
bannergrapv2 -h
bannergrapv2 --version

# Windows (PowerShell — run as Administrator)
Invoke-WebRequest `
  -Uri "https://github.com/MrEchoFi/BannerGrapV2/releases/latest/download/bannergrapv2-windows-amd64.exe" `
  -OutFile "bannergrapv2.exe"

Option 2: Build from Source (Go 1.21+)

git clone https://github.com/MrEchoFi/BannerGrapV2.git
cd BannerGrapV2
go build -o bannergrapv2 .
sudo mv bannergrapv2 /usr/local/bin/

Option 3: Docker (Isolated Lab Environment)

git clone https://github.com/MrEchoFi/BannerGrapV2.git
cd BannerGrapV2
docker build -t bannerv2 .

# Run
docker run --rm bannerv2

# Or with volume mount for output files
docker run --rm -v $(pwd)/output:/output bannerv2

Option 4: Kubernetes (Scale-Out Deployment)

# Spin up a local cluster with Minikube
minikube start --driver=docker
minikube addons enable default-storageclass

# Deploy using the included manifests
chmod +x start_banner.sh
./start_banner.sh

# Or deploy manually
kubectl apply -f bannerv2-deploy.yaml
kubectl apply -f bannerv2-service.yaml
kubectl apply -f bannerv2-job.yaml


Command Reference — Real-World Scenarios

This is the part most documentation misses. Here are commands mapped to actual situations you encounter in the field.


🔹 Scenario 1: Pentest Engagement — Initial Recon on a /24 Network

You just received scope. Your first job is to understand what's listening on the network before you start probing.

Step 1 — Generate your target list:

# Generate all IPs in a /24 subnet
for i in $(seq 1 254); do echo "192.168.1.$i"; done > targets.txt

Step 2 — Sweep the subnet across all major protocols with 50 threads:

for proto in http https ftp ssh smtp; do
  go run bannerGrap.go -f targets.txt -proto $proto -threads 50 -timeout 2 -o scan_${proto}.json
done

# Merge all protocol results into one file (requires jq)
jq -s 'add' scan_*.json > full_recon_combined.json

Step 3 — Generate an HTML report for the team:

go run bannerGrap.go -f targets.txt -proto http --report-html recon_report.html -threads 50


🔹 Scenario 2: Bug Bounty — Mass HTTPS Scan on 10,000 In-Scope Domains

You're working a large program with thousands of in-scope subdomains. You need service fingerprints and banner data fast.

10,000-host HTTPS scan, 500 threads, 2s timeout, CSV output:

go run bannerGrap.go \
  -f ten_thousand_domains.txt \
  -proto https \
  -port 443 \
  -payload "GET / HTTP/1.1\r\nHost: %s\r\nUser-Agent: BannerGrapV2/2.0\r\nAccept: */*\r\n\r\n" \
  -threads 500 \
  -timeout 2 \
  -o bug_bounty_https_results.csv

Same scan, JSON output (for programmatic processing):

go run bannerGrap.go \
  -f ten_thousand_domains.txt \
  -proto https \
  -port 443 \
  -payload "GET / HTTP/1.1\r\nHost: %s\r\nUser-Agent: BannerGrapV2/2.0\r\nAccept: */*\r\n\r\n" \
  -threads 500 \
  -timeout 2 \
  -o bug_bounty_https_results.json

Then grep for CVEs directly from the JSON output:

grep -i "CVE-" bug_bounty_https_results.json | tee critical_findings.txt


🔹 Scenario 3: Red Team — Nmap + Masscan + BannerGrapV2 Combined Pipeline

Use Masscan for raw port discovery at speed, then hand off to BannerGrapV2 for deep fingerprinting.

# Step 1 — Fast port discovery with Masscan
masscan 192.168.1.0/24 -p1-65535 --rate=10000 -oG masscan.gnmap

# Step 2 — Parse Masscan output to host:port format
awk '/Ports:/{
  split($0,a,"Ports: ");
  split(a[2],b,",");
  for(i in b) {
    split(b[i],c,"/");
    print $2":"c[1]
  }
}' masscan.gnmap > masscan_targets.txt

# Step 3 — Deep banner grab with BannerGrapV2
go run bannerGrap.go \
  -f masscan_targets.txt \
  -threads 100 \
  -timeout 2 \
  -o masscan_bannergrap_results.json

Alternatively, feed Nmap's live-host output directly:

nmap -p- --open -oG - 192.168.1.0/24 \
  | awk '/Up$/{ip=$2} /Ports:/{
      split($0,a,"Ports: ");
      split(a[2],b,",");
      for(i in b) {split(b[i],c,"/"); print ip":"c[1]}
    }' > all_open_targets.txt

go run bannerGrap.go \
  -f all_open_targets.txt \
  -threads 100 \
  -timeout 2 \
  -o full_aggressive_scan.json


🔹 Scenario 4: SSH Brute Force with SecLists Wordlists

Once you have a list of SSH targets, check for weak credentials against a proper wordlist.

# Using SecLists (recommended)
# usernames: SecLists/Usernames/top-usernames-shortlist.txt
# passwords: SecLists/Passwords/Common-Credentials/10k-most-common.txt
# or rockyou.txt for maximum coverage

go run bannerGrap.go \
  -f ssh_targets.txt \
  -proto ssh \
  --brute-userlist /path/to/SecLists/Usernames/top-usernames-shortlist.txt \
  --brute-passlist /path/to/SecLists/Passwords/Common-Credentials/10k-most-common.txt \
  -threads 50 \
  -timeout 3 \
  -o ssh_brute_results.json

Single-target SSH brute force for targeted testing:

go run bannerGrap.go \
  --brute-userlist usernames.txt \
  --brute-passlist passwords.txt \
  -proto ssh \
  192.168.1.100


🔹 Scenario 5: Blue Team — Internal LAN Asset Inventory Audit

You need a regular audit of what's actually exposed on your internal network. Run this weekly or drop it into a cron job.

LAN HTTP sweep with 254 threads (one per host), 1s timeout:

go run bannerGrap.go \
  -f <(for i in $(seq 1 254); do echo "192.168.1.$i"; done) \
  -proto http \
  -port 80 \
  -threads 254 \
  -timeout 1 \
  -o lan_http_audit.csv

Full multi-protocol internal audit:

go run bannerGrap.go -f internal_targets.txt -proto http  -threads 50 -timeout 3 -o internal_http.json
go run bannerGrap.go -f internal_targets.txt -proto https -threads 50 -timeout 3 -o internal_https.json
go run bannerGrap.go -f internal_targets.txt -proto ssh   -threads 50 -timeout 3 -o internal_ssh.json
go run bannerGrap.go -f internal_targets.txt -proto ftp   -threads 50 -timeout 3 -o internal_ftp.json
go run bannerGrap.go -f internal_targets.txt -proto smtp  -threads 50 -timeout 3 -o internal_smtp.json

# Merge everything
jq -s 'add' internal_*.json > full_internal_audit.json

Schedule it as a daily cron job at 2:00 AM:

# Add to crontab: crontab -e
0 2 * * * /usr/bin/go run /opt/bannergrapv2/bannerGrap.go \
  -f /opt/scan/targets.txt \
  -proto https \
  -threads 20 \
  -o /opt/scan/reports/daily_$(date +\%Y-\%m-\%d).json

Pipe CVE alerts directly to email:

go run bannerGrap.go -f targets.txt -proto http -threads 30 -o temp_scan.json
grep -i "CVE-" temp_scan.json | mail -s "[ALERT] Critical Vulnerabilities Detected" security-team@yourorg.com


🔹 Scenario 6: DevSecOps — CI/CD Pipeline Integration (GitHub Actions)

Scan your staging or production environment after every deployment.

# .github/workflows/security-scan.yml
name: BannerGrapV2 Security Scan

on:
  push:
    branches: [main, staging]
  schedule:
    - cron: '0 2 * * *'  # Daily at 2 AM UTC

jobs:
  recon-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Download BannerGrapV2
        run: |
          curl -L https://github.com/MrEchoFi/BannerGrapV2/releases/latest/download/bannergrapv2-linux-amd64 -o bannergrapv2
          chmod +x bannergrapv2

      - name: Run Security Scan
        run: |
          ./bannergrapv2 \
            -f production_hosts.txt \
            -proto https \
            -threads 100 \
            -timeout 5 \
            -o scan_results.json

      - name: Check for Critical CVEs
        run: |
          if grep -qi "CVE-" scan_results.json; then
            echo "::error::Critical vulnerabilities detected!"
            grep -i "CVE-" scan_results.json
            exit 1
          fi

      - name: Upload Scan Results
        uses: actions/upload-artifact@v3
        with:
          name: security-scan-results
          path: scan_results.json


🔹 Scenario 7: Protocol-Specific Fingerprinting

SMTP banner harvesting (check for old, vulnerable mail server versions):

go run bannerGrap.go \
  -f mail_servers.txt \
  -proto smtp \
  -port 25 \
  -threads 100 \
  -timeout 5 \
  -o smtp_banners.json

# Also probe with VRFY and EXPN commands for user enumeration
go run bannerGrap.go -proto smtp -payload "VRFY postmaster\r\n" mail.target.com
go run bannerGrap.go -proto smtp -payload "EXPN postmaster\r\n" mail.target.com

FTP anonymous access check across a server fleet:

go run bannerGrap.go \
  -f ftp_servers.txt \
  -proto ftp \
  -port 21 \
  -threads 150 \
  -timeout 4 \
  -o ftp_anon_check.csv

# Or test anonymous login directly
go run bannerGrap.go -proto ftp -payload "USER anonymous\r\n" ftp.target.com

SSH version fingerprinting at scale:

go run bannerGrap.go \
  -f ssh_hosts.txt \
  -proto ssh \
  -port 22 \
  -threads 300 \
  -timeout 3 \
  -v

Telnet service fingerprinting on mixed IPv4/IPv6 targets:

go run bannerGrap.go \
  -f mixed_ipv4_ipv6_targets.txt \
  -proto telnet \
  -port 23 \
  -threads 100 \
  -timeout 5 \
  -o telnet_fingerprints.json

Custom TCP payload — probe a proprietary daemon or non-standard service:

go run bannerGrap.go \
  -f custom_daemon_hosts.txt \
  -proto custom \
  -port 9000 \
  -payload "HELLO\n" \
  -threads 50 \
  -timeout 6 \
  -o daemon_responses.csv

Protocol fuzzing — test admin endpoints with custom HTTP headers:

go run bannerGrap.go \
  -f targets.txt \
  -proto http \
  --payload "GET /admin HTTP/1.1\r\nHost: %s\r\nUser-Agent: Mozilla/5.0\r\n\r\n" \
  -threads 20


🔹 Scenario 8: Parallel Execution with GNU Parallel

For maximum throughput when you have a machine with many cores:

# Run 20 parallel instances, one per host
cat targets.txt | parallel -j 20 "go run bannerGrap.go {} -proto http -timeout 2"

# Run 50 parallel instances
cat targets.txt | parallel -j 50 "go run bannerGrap.go {} -proto http -timeout 2"


🔹 Scenario 9: All-Ports Scan on a Single Critical Host

When you need a complete picture of every port on a single high-value target:

# Generate all 65535 ports as targets
for p in {1..65535}; do echo "192.168.1.100:$p"; done > all_ports.txt

# Scan everything, 200 threads, 1s timeout
go run bannerGrap.go \
  -f all_ports.txt \
  -threads 200 \
  -timeout 1 \
  -o all_ports_scan.json


🔹 Scenario 10: The "Nuclear" All-In-One Sweep

Five protocols, 250 threads each, chained with && so they run sequentially and each output goes to its own file:

# HTTP
go run bannerGrap.go -f vip_targets.txt -threads 250 -timeout 3 -o http_sweep.json && \
# HTTPS
go run bannerGrap.go -f vip_targets.txt -proto https -threads 250 -timeout 3 -o https_sweep.json && \
# SMTP
go run bannerGrap.go -f vip_targets.txt -proto smtp  -threads 250 -timeout 3 -o smtp_sweep.json && \
# SSH
go run bannerGrap.go -f vip_targets.txt -proto ssh   -threads 250 -timeout 3 -o ssh_sweep.json && \
# FTP
go run bannerGrap.go -f vip_targets.txt -proto ftp   -threads 250 -timeout 3 -o ftp_sweep.json

# Then merge everything
jq -s 'add' *_sweep.json > FULL_SWEEP_REPORT.json

And generate the final HTML report:

go run bannerGrap.go -f vip_targets.txt -proto http --report-html FULL_SWEEP_REPORT.html -threads 50


🔹 Scenario 11: Export for SIEM Integration

BannerGrapV2's JSON output is structured and SIEM-ready. Pipe it straight into your log aggregator:

# Output structured JSON for Splunk / Elastic / Sentinel ingestion
go run bannerGrap.go \
  -f targets.txt \
  -proto http \
  -threads 100 \
  -o siem_feed_$(date +%Y%m%d_%H%M%S).json


Configuration File — For Persistent Scan Profiles

Instead of typing flags every time, save your scan profile in config.yaml:

# BannerGrapV2 Configuration — config.yaml

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: "online"
  min_severity: "medium"

output:
  format: "json"
  directory: "./reports"
  timestamp: true

brute_force:
  enabled: false
  username_list: "usernames.txt"
  password_list: "passwords.txt"

Run with config:

bannergrapv2 -config config.yaml -target 192.168.1.1


Post-Processing Tips — Working With the Output

BannerGrapV2 produces clean, structured output. Here are a few useful commands for working with it:

# Filter only hosts with open port 443
cat results.json | jq '.[] | select(.port == 443)'

# Count unique services detected
cat results.json | jq '[.[].service] | group_by(.) | map({service: .[0], count: length}) | sort_by(-.count)'

# Export CSV to Excel-friendly format
cat results.csv | column -t -s ','

# Alert on specific vulnerabilities
grep -iE "CVE-[0-9]+-[0-9]+" results.json | sort -u

# Combine multiple scan output files
jq -s 'add' scan_http.json scan_https.json scan_ssh.json > combined.json


How to Contribute

BannerGrapV2 is MIT-licensed and actively looking for contributors. The codebase is Go (91.5%) with Shell scripts — if you've worked with Go networking libraries, goroutines, or security tooling, there's meaningful work here.

Current contribution areas:

  • Adding new protocol handlers and service fingerprints
  • Expanding the CVE detection engine and signature database
  • Writing tests (unit and integration)
  • Improving documentation and usage examples
  • Building out the plugin system
  • Metasploit and Nmap integration work

How to submit a PR:

# Fork the repo on GitHub, then:
git clone https://github.com/YOUR_USERNAME/BannerGrapV2.git
cd BannerGrapV2
git checkout -b feature/your-feature-name

# Make your changes
git add .
git commit -m "feat: description of your change"
git push origin feature/your-feature-name

# Then open a Pull Request on GitHub

Full guidelines: CONTRIBUTING.md

For bug reports and feature requests, open an issue on GitHub Issues.


Project Roadmap

Status Feature
✅ Done Core multi-protocol banner grabbing
✅ Done Multi-threaded concurrent scanning
✅ Done Vulnerability detection engine
✅ Done JSON / CSV / HTML / XML output
✅ Done Brute force with custom wordlists
✅ Done Docker support
✅ Done Kubernetes deployment manifests
🔄 In Progress Plugin system for custom scanners
📋 Planned Full Metasploit & Nmap integration
📋 Planned Kubernetes operator
📋 Planned Web dashboard for scan results

Responsible Use Disclaimer

BannerGrapV2 is built for authorized security testing only. Only use it on systems you own or have explicit, written permission to test. This includes bug bounty programs with defined scope, internal networks you administer, and environments you have contractual authorization to assess.

Unauthorized network scanning violates computer crime laws in most jurisdictions. The developer and contributors bear no responsibility for misuse.


About the Developer

MrEchoFi (Md. Abu Naser Nayeem / Tanjib Isham) is a Cybersecurity Researcher, Certified Red Team CredOps Infiltrator (CRT-COI). His work spans DevSecOps, hardware penetration testing, IoT security, and open-source security tooling.


Final Words

The security tooling ecosystem benefits from open, well-documented, actively maintained tools. BannerGrapV2 is built to serve real workflows — not just demos.

If it helps you work faster, find what you'd otherwise miss, or simplify a step in your process, the best thing you can do is:

  1. Star the repogithub.com/MrEchoFi/BannerGrapV2
  2. 🔀 Fork it and contribute — even documentation PRs matter
  3. 📣 Share it with your team, your bug bounty group, or your security community

Questions, feedback, or edge cases you want covered? Leave a comment below or open a GitHub Issue.

Happy HackNight. 🌙


Built with Go. Maintained by the community. MIT Licensed.

Tags: #cybersecurity #go #golang #opensource #penetrationtesting #bugbounty #redteam #blueteam #devsecops #networksecurity #bannergrabbing #infosec #ethicalhacking