- Overview
- β¨ Key Features
- ποΈ Architecture
- π Quick Start
- π¦ Dependencies
- βοΈ Configuration
- π Commands Reference
- πΊοΈ Roadmap
- π License
Gungnir is a high-performance OSINT (Open-Source Intelligence) framework designed for modern security professionals, researchers, and penetration testers. Built with modern C++20, it combines cutting-edge reconnaissance, network scanning, service discovery, threat intelligence analysis, and automated reporting into a single, interactive command-line interface.
| π | Lightning Fast | Multi-threaded TCP scanning with minimal overhead |
|---|---|---|
| π§© | Modular Design | Extensible plugin architecture for custom reconnaissance modules |
| π | Local-First | All operations run locally with no cloud dependencies or data leaks |
| π» | Modern C++ | Leverages C++20 features for safety, performance, and clarity |
| π― | Automation Ready | Batch processing and integrated reporting for large-scale assessments |
| π³ | Containerized | Full Docker support for consistent deployment across environments |
- Multi-threaded TCP Scanning - Fast port enumeration with configurable concurrency
- DNS Reconnaissance - Subdomain enumeration, record lookups, and zone transfers
- WHOIS Lookups - Domain and IP ownership intelligence
- Service Detection - Nmap integration for OS and service fingerprinting
- Threat Intelligence - Integration with VirusTotal, Shodan, and custom feeds
- Vulnerability Matching - Searchsploit integration for CVE correlation
- Historical Analysis - SQLite-backed data persistence for comparative studies
- Graph Exports - Relationship visualization for complex networks
- Multi-Format Reports - HTML5 dashboards and JSON structured data
- Batch Processing - Scan multiple targets with unified reporting
- Export Options - Flexible data extraction for downstream tools
- Interactive Shell - GNU Readline support for seamless workflows
- Docker Support - Production-ready containerization
- Cross-Platform - Linux, macOS, and WSL support
- CI/CD Integration - GitHub Actions workflow included
- Persistent Storage - SQLite database for scan history and analysis
βββββββββββββββββββ
β Target Spec β
β (Domain/IP) β
ββββββββββ¬βββββββββ
β
ββββββΌβββββ
β Input β
β Parser β
ββββββ¬βββββ
β
ββββββΌβββββββββββββββββββββββ
β Reconnaissance Engine β
βββββββββββββββββββββββββββββ€
β β’ DNS Recon β
β β’ WHOIS Lookup β
β β’ Subdomain Enumeration β
ββββββ¬βββββββββββββββββββββββ
β
ββββββΌβββββββββββββββ
β Scanning Module β
ββββββββββββββββββββ€
β β’ TCP Scans β
β β’ Service Probe β
ββββββ¬ββββββββββββββ
β
ββββββΌβββββββββββββββββββββββ
β Intelligence Gathering β
βββββββββββββββββββββββββββββ€
β β’ Threat Intel (VT/Shodan)β
β β’ CVE Correlation (S-ploit)β
β β’ Historical Analysis β
ββββββ¬βββββββββββββββββββββββ
β
ββββββΌβββββββββββββββ
β Report Generator β
ββββββββββββββββββββ€
β β’ HTML/JSON β
β β’ Graphs/Maps β
β β’ Export Tools β
ββββββ¬ββββββββββββββ
β
ββββββΌβββββββββ
β Output β
β (Reports) β
βββββββββββββββ
- GCC 11+ or Clang 13+ with C++20 support
- CMake 3.20+
- libcurl (with OpenSSL)
- SQLite3
# Clone the repository
git clone https://github.com/PIXELQUADRO07/Gungnir.git
cd Gungnir
# Run the setup script (installs dependencies)
sudo ./setup.sh
# Build the project
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel $(nproc)
# Run
./build/Gungnir# Build the Docker image
docker build -t gungnir:latest .
# Run in interactive mode
docker run -it --rm gungnir:latest
# Run with volume mount for persistent storage
docker run -it --rm -v $(pwd)/data:/app/data gungnir:latest$ ./Gungnir
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π‘οΈ GUNGNIR - OSINT Framework v2.0 β
β Fast β’ Modular β’ Local-first Intelligence β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Gungnir > scan example.com -p 1-65535 -t 4
[*] Starting TCP scan on example.com:1-65535
[+] Found 8 open ports
[+] Scan completed in 2.341s
Gungnir > dns example.com
[*] DNS reconnaissance on example.com
[+] Found 12 A records
[+] Found 3 MX records
[+] Found 2 TXT records
Gungnir > nmap example.com -sV
[*] Running Nmap service detection
[+] Identified 4 services: HTTP/1.1, SSH, SMTP, DNS
Gungnir > threat example.com
[*] Fetching threat intelligence
[+] Last seen: 2 months ago
[+] Reputation: Medium
[+] 0 known malware associations
Gungnir > report example.com --format html --output reports/
[+] Report generated: reports/example.com_2026-06-16.html
[+] Total time: 15.234s- C++20 Compiler - GCC 11.0+, Clang 13.0+, or MSVC 19.29+
- CMake - 3.20 or later
- libcurl - HTTP client library (dev package)
- SQLite3 - Embedded database (dev package)
- Nmap - Network mapping (
nmapbinary required in PATH) - Searchsploit - Exploit database queries
- GNU Readline - Enhanced shell interface
- OpenSSL - For HTTPS/TLS support
Ubuntu/Debian:
sudo apt-get install -y \
build-essential cmake git \
libcurl4-openssl-dev \
libsqlite3-dev \
libreadline-dev \
nmapmacOS (Homebrew):
brew install cmake curl sqlite3 readline nmapCentOS/RHEL:
sudo yum groupinstall -y "Development Tools"
sudo yum install -y cmake libcurl-devel sqlite-devel readline-devel nmapCreate a .gungnirrc file in your home directory or specify via --config:
# API Keys
VT_API_KEY=your_virustotal_key_here
SHODAN_API_KEY=your_shodan_key_here
# Scanning Defaults
DEFAULT_THREADS=4
DEFAULT_TIMEOUT=5000
TCP_SCAN_TIMEOUT=10
# Output
DEFAULT_FORMAT=json
REPORT_STYLE=dark
STORE_HISTORY=true
# Paths
NMAP_PATH=/usr/bin/nmap
SEARCHSPLOIT_PATH=/usr/bin/searchsploit
# Persistence
DB_PATH=~/.gungnir/gungnir.db
LOG_LEVEL=infoEnvironment Variables:
export GUNGNIR_VT_KEY="your_key"
export GUNGNIR_SHODAN_KEY="your_key"
export GUNGNIR_THREADS=8
export GUNGNIR_TIMEOUT=5000| Command | Syntax | Description |
|---|---|---|
| scan | scan <target> [-p ports] [-t threads] |
Perform rapid TCP port scanning |
| dns | dns <domain> [--deep] |
DNS reconnaissance and subdomain discovery |
| whois | whois <domain|ip> |
WHOIS ownership and registration info |
| nmap | nmap <target> [-sV] [-O] |
Service/OS detection via Nmap |
| threat | threat <ip|domain> |
Query threat intelligence feeds |
| searchsploit | searchsploit <keyword> |
Find relevant CVEs and exploits |
| report | report <target> [--format {html,json}] |
Generate comprehensive reports |
| history | history [--filter target] [--limit 10] |
View scan history |
| export | export <scan_id> --format {json,csv} |
Export scan data |
| graph | graph <scan_id> [--format svg] |
Generate relationship graphs |
| help | help [command] |
Display command help |
| exit | exit |
Exit the program |
Advanced Usage:
# Batch scan with multiple targets
Gungnir > scan targets.txt -p 1-1000 -t 8 --batch
# Deep DNS reconnaissance with automation
Gungnir > dns -d *.example.com --deep --output dns_results.json
# Multi-stage assessment
Gungnir > scan example.com -p 1-1000 && nmap example.com -sV && threat example.com
# Generate detailed reports
Gungnir > report example.com --format html --include all --output /tmp/reports/- Interactive CLI shell with history
- Multi-threaded TCP scanning
- DNS reconnaissance module
- Nmap integration
- Threat intelligence integration
- HTML & JSON reporting
- Docker support
- SQLite persistence
- Plugin System - Extensible module architecture
- Distributed Scanning - Remote agent coordination
- API Server - REST API for headless operation
- Web Dashboard - Real-time monitoring interface
- TLS/SSL Analysis - Certificate chain validation
- Credential Extraction - Pattern-based data harvesting
- Machine learning-based anomaly detection
- Automated exploitation suggestions
- Multi-cloud reconnaissance (AWS, Azure, GCP)
- Real-time correlation engine
- Mobile client app
We welcome contributions! Here's how:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Submit a Pull Request
Please ensure:
- β Code follows C++ style guidelines
- β
All tests pass (
cmake --build build --target test) - β Documentation is updated
- β Commit messages are descriptive
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
- π§ Email: []
- π Issues: Report a bug
- π¬ Discussions: Join community discussions
- π Docs: Full documentation