A professional web-based dashboard for collecting, analyzing, and visualizing OSINT (Open-Source Intelligence) data with AI-powered threat analysis.
Features β’ Installation β’ Usage β’ API Keys β’ Screenshots
- Shodan - IP intelligence and service enumeration
- theHarvester - Domain reconnaissance and email harvesting
- Google Dorks - Advanced Google search queries
- WHOIS - Domain registration information
- Sherlock - Username/name search across social platforms
- VirusTotal - IP/domain reputation analysis
- Censys - Host information (supports both IPs and domains)
- Gemini AI Integration - Automated threat analysis
- Risk Scoring - AI-calculated threat levels
- IOC Extraction - Automatic extraction of IPs, domains, and hashes
- Interactive Chat - Query your collected data using natural language
- AI Report Generation - Comprehensive narrative reports
- Interactive GeoMap - Heatmap visualization of IP locations with markers
- Real-time Filtering - Search by keyword, port, or date range
- PDF Export - Professional reports with findings and visualizations
- DataTables Integration - Sortable, paginated results
- Glassmorphism Design - Beautiful dark mode interface
- Responsive Layout - Works on desktop, tablet, and mobile
- Smooth Animations - Polished user experience
- Real-time Updates - Live progress indicators
- Python 3.8 or higher
- pip (Python package manager)
- Virtual environment (recommended)
git clone https://github.com/yourusername/osint-dashboard.git
cd osint-dashboardpython -m venv venv
# Activate virtual environment
# On macOS/Linux:
source venv/bin/activate
# On Windows:
venv\Scripts\activatepip install -r requirements.txtCreate a .env file in the project root:
cp .env.example .envEdit .env and add your API keys (see API Configuration):
# Flask Configuration
SECRET_KEY=your-secret-key-here
DEBUG=True
# API Keys
SHODAN_API_KEY=your_shodan_api_key
GOOGLE_API_KEY=your_google_api_key
GOOGLE_CSE_ID=your_google_cse_id
VIRUSTOTAL_API_KEY=your_virustotal_api_key
CENSYS_API_ID=your_censys_api_key
GEMINI_API_KEY=your_gemini_api_key
WHOISXML_API_KEY=your_whoisxml_api_key
# Database
DATABASE_URL=sqlite:///osint.db
# Logging
LOG_LEVEL=INFOpython app.pyThe dashboard will be available at: http://127.0.0.1:5001
| Service | Purpose | Get API Key |
|---|---|---|
| Gemini AI | AI analysis and chat | Google AI Studio |
| Shodan | IP intelligence | Shodan Account |
| Censys | Host information | Censys Account |
| Service | Purpose | Get API Key |
|---|---|---|
| Google Custom Search | Google Dorks | Google Cloud Console |
| VirusTotal | Reputation checks | VirusTotal |
| WhoisXML | WHOIS lookups | WhoisXML API |
Some features require additional tools to be installed:
# Install Sherlock (username search)
pip install sherlock-project
# Install theHarvester (domain recon)
pip install git+https://github.com/laramies/theHarvester.git- Enter your target (IP, domain, username, or name)
- Select the intelligence source
- Click "Start Scan"
- View results in the Findings tab
- Click the "GeoMap" tab
- See heatmap of IP locations
- Click markers for detailed information
- Use filters to refine the view
- Navigate to the "AI Analyst" tab
- Click "Analyze Now" for automated threat analysis
- View risk scores, threat levels, and recommendations
- Use the chat to query your data
- Generate comprehensive AI reports
- Go to the "Reports" tab
- Click "Download PDF Report"
- Get a professional PDF with all findings and visualizations
- Search: Use the search box to filter by keyword
- Port: Filter by specific port numbers
- Date Range: Select start and end dates
- Delete: Select findings and delete them
| Tool | Accepts | Examples |
|---|---|---|
| Shodan | IP addresses | 8.8.8.8, 1.1.1.1 |
| theHarvester | Domains | example.com, google.com |
| Google Dorks | Search queries | site:example.com, filetype:pdf |
| WHOIS | Domains | example.com, github.com |
| Sherlock | Usernames/Names | johndoe, John Doe, john.doe |
| VirusTotal | IPs or Domains | 8.8.8.8, example.com |
| Censys | IPs or Domains | 8.8.8.8, google.com |
osint-dashboard/
βββ app.py # Main Flask application
βββ ai_analyst.py # AI analysis module
βββ auth.py # Authentication module
βββ config.py # Configuration management
βββ validators.py # Input validation
βββ requirements.txt # Python dependencies
βββ .env # Environment variables (create this)
βββ static/
β βββ style.css # Custom styles
β βββ script.js # Frontend JavaScript
βββ templates/
β βββ index.html # Main dashboard
β βββ settings.html # Settings page
βββ logs/ # Application logs
- Input Validation - Prevents SQL injection and XSS attacks
- Sanitization - All user inputs are sanitized
- Environment Variables - Sensitive data stored securely
- Session Management - Secure cookie handling
- Rate Limiting - Protection against abuse
Solution: Restart the Flask server to apply the fix
# Stop server (Ctrl+C), then restart:
python app.pySolution: The --local flag is now automatically used to prevent update checks
Solution: Censys now accepts both IP addresses and domain names
pip install -r requirements.txt --upgradeContributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This tool is for educational and authorized security research purposes only. Users are responsible for ensuring they have proper authorization before conducting any reconnaissance or intelligence gathering activities. Always follow ethical hacking guidelines and respect privacy laws.
- Flask - Web framework
- Folium - Map visualization
- Google Gemini - AI analysis
- Shodan - IP intelligence
- theHarvester - Domain reconnaissance
- Sherlock - Username search
- Censys - Host information
For questions, issues, or suggestions, please open an issue on GitHub.
Made with β€οΈ for the OSINT community
β Star this repo if you find it useful!