A modern, secure web-based port scanning tool built with Flask and Docker. Featuring an intuitive interface, multiple output formats, and dark mode support.
Features • Quick Start • Security • Documentation • Screenshots
- 🌐 Web Interface: Clean, modern UI with dark mode support
- 🎯 Flexible Targeting:
- Single IP/hostname scanning
- IP range support (e.g., 192.168.1.1-254)
- Multiple target scanning
- 📊 Multiple Export Formats:
- LOG (detailed scan output)
- JSON (structured data)
- CSV (spreadsheet-friendly)
- 🛡️ Enterprise-Grade Security:
- OWASP Top 10 compliant
- Rate limiting protection
- Input sanitization
- Security headers
- 🐳 Container Ready:
- Docker support
- Docker Compose configuration
- Health checks included
# Clone the repository
git clone https://github.com/sk3pp3r/echo.git
cd echo
# Deploy using script
chmod +x deploy.sh
./deploy.sh
# Or manually with Docker Compose
docker-compose up -d
Access the application at http://localhost:8085
# Clone and setup
git clone https://github.com/sk3pp3r/echo.git
cd echo
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
.\venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Run the application
python app.py
Type | Enhancement | Details |
---|---|---|
Environment Configuration 🔑 | Secret Key Management | Uses environment variables for secrets, reducing hard-coded values |
Input Validation 🛡️ | Target Validation | Robust hostname/IP validation blocking malicious inputs |
Command Security 🔐 | Nmap Command Sanitization | Whitelist approach for parameters, blocking command injection |
Rate Limiting ⏱️ | Request Throttling | Prevents abuse with configurable request limits |
Session Security 🍪 | Secure Session Cookies | Implements secure cookie configuration and lifetime limits |
Data Protection 🔇 | Output Sanitization | Redacts sensitive information from scan results |
Logging 📜 | Enhanced Error Handling | Comprehensive logging with rotation and unique error IDs |
Web Security 🔐 | Security Headers | Implements all recommended security headers |
- Single Host:
example.com
or192.168.1.1
- IP Range:
192.168.1.1-254
- Multiple Targets:
192.168.1.10,10.0.0.138
- Port Formats:
- Single:
80
- Multiple:
80,443,8080
- Range:
1-1000
- Single:
- LOG: Raw scan output with metadata
- JSON: Structured data format
- CSV: Spreadsheet-compatible format
echo-port-scanner/
├── app.py # Main application
├── templates/ # HTML templates
├── static/ # Static assets
├── Dockerfile # Container definition
├── docker-compose.yml # Container orchestration
└── requirements.txt # Python dependencies
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add 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.
Haim Cohen
This tool is for educational and authorized testing purposes only. Unauthorized scanning may be illegal. Use responsibly and only on networks you own or have permission to test.