A modern, automated infrastructure vulnerability scanner with comprehensive security monitoring and real-time alerting capabilities.
- Automated Scanning: Scheduled vulnerability assessments using Nuclei
- Real-time Monitoring: Continuous infrastructure change detection
- Modern UI: Dark theme with futuristic design inspired by ProjectDiscovery
- Slack Integration: Real-time alerts and reports
- Asset Management: Technology stack detection and asset inventory
- Risk Scoring: Comprehensive risk assessment and scoring
- Multi-target Support: Scan multiple IPs and networks concurrently
infrascanner-pro/
βββ app/ Main application
β βββ src/ Python source code
β β βββ app.py Flask web application
β β βββ script.py Main scanning logic
β β βββ scheduler.py Automated scheduling
β β βββ vulnerability_scanner.py Nuclei integration
β β βββ slack_notifier.py Slack notifications
β β βββ mongo_connection.py Database connection
β βββ templates/ HTML templates
β βββ static/ CSS, JS, images
β βββ logs/ Application logs
β βββ requirements.txt Python dependencies
β βββ pm2.config.js Process management
β βββ ip.txt Target-IP configuration
βββ infrastructure/
β βββ docker/ Docker configuration
β β βββ Dockerfile Application container
β β βββ docker-compose.yaml Multi-container setup
β βββ terraform/ Terraform IaC
β βββ kubernetes/ K8s manifests
βββ docs/ Additional documentation
βββ scripts/ Helper scripts (start.sh, start.bat)
βββ tests/ Test files
βββ README.md Main project doc
- Docker and Docker Compose
- Python 3.11+ (for local development)
- Go 1.19+ (for Nuclei)
git clone <repository-url>
cd infrascanner-pro
Create a .env
file in the root directory:
# MongoDB Configuration
MONGO_INITDB_ROOT_USERNAME=admin
MONGO_INITDB_ROOT_PASSWORD=admin123
# Application Configuration
CONSOLE_USERNAME=admin
CONSOLE_PASSWORD=admin123
# Slack Integration (Optional)
SLACK_BOT_TOKEN=xoxb-your-slack-bot-token
SLACK_CHANNEL=#security-alerts
# Google Chat Webhook (Optional)
WEBHOOK_URL=https://chat.googleapis.com/v1/spaces/...
Edit app/ip.txt
and add your target IP addresses:
192.168.1.1
10.0.0.1
172.16.0.1
cd infrastructure/docker
docker-compose up -d
- Web Interface: http://localhost:8180
- Username: admin
- Password: admin123
The application runs automated scans at:
- Daily: 2:00 AM
- Weekly: Sunday 1:00 AM (Comprehensive scan)
- Nuclei Integration: Comprehensive vulnerability assessment
- Severity Levels: Critical, High, Medium, Low
- Template Categories: CVEs, Misconfigurations, Exposures
- Slack Notifications: Real-time vulnerability and change alerts
- Infrastructure Changes: Port changes, service modifications
- Risk Scoring: Automated risk assessment (0-100 scale)
- Real-time Metrics: Total scans, alerts, vulnerabilities, assets
- Risk Assessment: Visual risk scoring with trend analysis
- Vulnerability Breakdown: Severity-based categorization
- Recent Activity: Latest scans and alerts
- Quick Actions: Direct access to all features
- Port Analysis: Open ports and services
- HTTP Details: Web service information
- Technology Stack: Detected frameworks and servers
- Vulnerability Reports: Detailed Nuclei scan results
- HTTP Basic Authentication
- Configurable credentials
- Session management
- Encrypted MongoDB storage
- Secure environment variables
- Audit logging
- Rate limiting on scans
- Timeout protection
- Error handling and recovery
- Technology Detection: Web servers, frameworks, CMS
- Service Discovery: HTTP, HTTPS, custom ports
- Inventory Tracking: Asset history and changes
- Daily Reports: Automated Slack summaries
- Export Capabilities: JSON, CSV formats
- Trend Analysis: Historical data visualization
- Slack: Real-time notifications and reports
- Google Chat: Webhook-based alerts
- API Ready: RESTful endpoints for external tools
cd app
pip install -r requirements.txt
python app.py
- Vulnerability Scanners: Extend
vulnerability_scanner.py
- Notification Channels: Add to
slack_notifier.py
- UI Components: Modify templates in
app/templates/
- Styling: Update CSS in
app/static/css/
cd tests
python -m pytest
- Location:
app/logs/
- Scan Results:
logs/scan_logs/
- Vulnerability Reports:
logs/nuclei_results/
- Scheduler Logs:
logs/scheduler.log
docker-compose logs -f infrascanner-app
docker-compose logs -f infrascanner-mongodb
- Port Conflicts: Change ports in
docker-compose.yaml
- MongoDB Connection: Check environment variables
- Slack Notifications: Verify bot token and permissions
- Scan Failures: Check target IP accessibility
- Concurrent Scans: Adjust
max_workers
inscript.py
- Scan Timeouts: Modify timeout values in
vulnerability_scanner.py
- Rate Limiting: Configure Nuclei rate limits
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: Create a GitHub issue
- Documentation: Check the
docs/
directory - Community: Join our discussions