A comprehensive, production-ready network scanning application built with Python Flask, featuring multiple scanning engines, rich reporting, and a modern web interface.
- Nmap: Comprehensive active port scanning with OS detection, service enumeration, and NSE scripts
- Smap: Fast network scanning for quick reconnaissance (optional)
- Shodan: Passive intelligence gathering (requires API key)
- Combined: Use multiple engines simultaneously for comprehensive results
- Host discovery and enumeration
- Port scanning with customizable ranges
- Service detection and version identification
- Operating system detection
- NSE script execution
- Customizable timing templates (T1-T5)
- Support for IP ranges, networks, and hostnames
- HTML Reports: Beautiful, structured reports with statistics
- JSON Export: Machine-readable data format
- CSV Export: Spreadsheet-compatible format
- Real-time Progress: Live scan status and progress tracking
- Persistent storage in SQLite database
- Complete scan history with metadata
- Search and filter capabilities
- Bulk operations (cleanup, export all)
- Responsive design with dark/light theme support
- Real-time updates and notifications
- Interactive scan controls (Start/Stop/View/Delete)
- Mobile-friendly interface
- Python 3.8+
- Nmap installed and accessible in PATH
- (Optional) Smap for fast network scanning
- (Optional) Shodan API key
# 1) Clone or download the project
# 2) Run the setup script
setup.bat# 1) Clone or download the project
# 2) Make setup script executable and run
chmod +x setup.sh
./setup.sh# 1) Create and activate virtualenv
python -m venv venv
.\venv\Scripts\Activate.ps1
# 2) Install dependencies
python -m pip install --upgrade pip
pip install -r requirements.txt
# 3) Install Nmap
# Option A: Download from https://nmap.org/download.html
# Option B: Using chocolatey: choco install nmap
# Option C: Using winget: winget install Nmap.Nmap
# 4) Install Smap (optional, for fast scanning)
# Download from: https://github.com/s0md3v/Smap/releases
# Extract and add to PATH, or set SMAP_PATH in config.env# 1) Create and activate virtualenv
python3 -m venv venv
source venv/bin/activate
# 2) Install dependencies
pip install --upgrade pip
pip install -r requirements.txt
# 3) Install Nmap
sudo apt update
sudo apt install nmap
# 4) Install Smap (optional)
# Download from: https://github.com/s0md3v/Smap/releases
# chmod +x smap && sudo mv smap /usr/local/bin/# 1) Create and activate virtualenv
python3 -m venv venv
source venv/bin/activate
# 2) Install dependencies
pip install --upgrade pip
pip install -r requirements.txt
# 3) Install Nmap
# CentOS/RHEL: sudo yum install nmap
# Fedora: sudo dnf install nmap
# 4) Install Smap (optional)
# Download from: https://github.com/s0md3v/Smap/releases
# chmod +x smap && sudo mv smap /usr/local/bin/# 1) Create and activate virtualenv
python3 -m venv venv
source venv/bin/activate
# 2) Install dependencies
pip install --upgrade pip
pip install -r requirements.txt
# 3) Install Nmap
# Option A: Using Homebrew: brew install nmap
# Option B: Using MacPorts: sudo port install nmap
# 4) Install Smap (optional)
# Download from: https://github.com/s0md3v/Smap/releases
# chmod +x smap && sudo mv smap /usr/local/bin/# Copy the example configuration file
copy config.env.example config.env
# Edit with your values
notepad.exe config.env# Copy the example configuration file
cp config.env.example config.env
# Edit with your values
nano config.env
# or
vim config.envExample config.env content:
SECRET_KEY=change-this-in-production
# Optional settings
# SHODAN_API_KEY=your-shodan-key
# Windows paths
# NMAP_PATH=C:\\Program Files (x86)\\Nmap\\nmap.exe
# SMAP_PATH=C:\\path\\to\\smap.exe
# Linux/macOS paths
# NMAP_PATH=/usr/bin/nmap
# SMAP_PATH=/usr/local/bin/smap
# General settings
# MAX_CONCURRENT_SCANS=5
# SCAN_TIMEOUT=3600# Run the application
python run.py
# or use the batch file
start.bat# Run the application
python3 run.py
# or use the startup script
chmod +x start.sh
./start.sh- Automatically opens in your default browser
- Default URL: http://127.0.0.1:5000
FLASK_ENV: Application environment (development/production)DATABASE_URL: Database connection string (default: SQLite)SHODAN_API_KEY: Shodan API key for passive scanningNMAP_PATH: Path to Nmap executableSMAP_PATH: Path to Smap executable (optional)MAX_CONCURRENT_SCANS: Maximum simultaneous scansSCAN_TIMEOUT: Maximum scan duration in seconds
- Port Ranges: Custom port specifications (e.g., "80,443,8080" or "1-1000")
- Timing Templates: T1 (Paranoid) to T5 (Insane)
- NSE Scripts: Custom script selection for enhanced detection
- Scan Modes: Quick, Detailed, or Full port coverage
agtaramaapp/
βββ app/ # Flask application
β βββ __init__.py # Application factory
β βββ models/ # Database models
β βββ routes/ # API endpoints
β βββ services/ # Business logic
βββ scanner_modules/ # Scanning engines
β βββ nmap_scanner.py # Nmap integration
β βββ smap_scanner.py # Smap integration
β βββ shodan_scanner.py # Shodan integration
βββ static/ # Frontend assets
β βββ css/ # Stylesheets
β βββ js/ # JavaScript
βββ templates/ # HTML templates
βββ config/ # Configuration
βββ logs/ # Application logs
βββ scan_results/ # Scan outputs
βββ exports/ # Report exports
βββ reports/ # Generated reports
- Input validation and sanitization
- Rate limiting for API endpoints
- Secure file handling
- CORS configuration
- Environment-based configuration
- Asynchronous scan execution
- Concurrent scan support
- Efficient database queries
- Optimized memory usage
- Background task processing
-
Nmap not found
- Windows: Ensure Nmap is installed and in PATH, or set
NMAP_PATHin config.env - Linux:
sudo apt install nmap(Ubuntu/Debian) orsudo yum install nmap(CentOS/RHEL) - macOS:
brew install nmap(Homebrew) orsudo port install nmap(MacPorts)
- Windows: Ensure Nmap is installed and in PATH, or set
-
Smap not found
- Download Smap from GitHub releases
- Windows: Extract and add to PATH, or set
SMAP_PATHin config.env - Linux/macOS:
chmod +x smap && sudo mv smap /usr/local/bin/
-
Database errors
- Check database permissions
- Verify
DATABASE_URLconfiguration
-
Permission denied
- Windows: Run PowerShell as Administrator
- Linux/macOS: Check file/directory access rights, use
sudoif needed
-
Scan timeouts
- Adjust
SCAN_TIMEOUTin configuration - Use appropriate timing templates
- Adjust
-
Virtualenv issues
- Ensure Python 3.8+ is installed
- Windows: Run PowerShell as Administrator
- Linux/macOS: Ensure python3-venv is installed (
sudo apt install python3-venv) - Dependencies might need specific versions
-
Python version issues
- Windows: Use
pythoncommand - Linux/macOS: Use
python3command - Ensure correct Python version (3.8+)
- Windows: Use
- Application logs:
logs/app.log - Scan logs:
logs/scanner.log - Check logs for detailed error information
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Nmap development team for the excellent scanning tool
- Flask community for the robust web framework
- Python community for the rich ecosystem of packages
For support and questions:
- Check the documentation
- Open an issue on GitHub
- Check the logs for error details