This is a powerful, open-source workflow for network discovery, vulnerability scanning, and dynamic topology visualization. It combines Nmap + NSE scripts with NetworkMaps for real-time, interactive network mapping—delivering functionality similar to Morpheus Map, but fully under your control.
- Automated discovery, scanning, and mapping
- Customizable scan profiles and scripts
- Beautiful, interactive reports and topology maps
- Open-source, extensible, and easy to use
Full setup and usage instructions: See
SETUP_AND_USAGE.md
A comprehensive open-source solution for network discovery, vulnerability scanning, and dynamic topology visualization - similar to Morpheus Map but fully under your control.
This workflow combines:
- Nmap + NSE Scripts: Advanced network discovery and vulnerability scanning
- NetworkMaps: Dynamic topology visualization with real-time updates
- Automated Workflows: Streamlined scanning and mapping processes
- Custom Scripts: Enhanced discovery and security assessment capabilities
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Discovery │ │ Vulnerability │ │ Visualization │
│ Phase │───▶│ Assessment │───▶│ & Mapping │
│ │ │ │ │ │
│ • Host Discovery│ │ • NSE Scripts │ │ • NetworkMaps │
│ • Port Scanning │ │ • CVE Detection │ │ • Topology View │
│ • Service Enum │ │ • Risk Scoring │ │ • Real-time │
└─────────────────┘ └─────────────────┘ └─────────────────┘
# Install required tools
sudo apt-get update
sudo apt-get install -y nmap python3 python3-pip git
# Install Python dependencies
pip3 install -r requirements.txt
# Install NetworkMaps (if not already installed)
git clone https://github.com/networkmaps/networkmaps.git
cd networkmaps && npm install
# Run complete workflow
python3 main.py --target 192.168.1.0/24 --output results/
# Run discovery only
python3 discovery_scanner.py --target 192.168.1.0/24
# Run vulnerability assessment
python3 vulnerability_scanner.py --hosts discovered_hosts.txt
# Generate topology map
python3 topology_mapper.py --input scan_results.json
Full_workflow_NMap_NSE_Scripts/
├── main.py # Main workflow orchestrator
├── discovery_scanner.py # Host and service discovery
├── vulnerability_scanner.py # NSE-based vulnerability scanning
├── topology_mapper.py # Network topology visualization
├── custom_scripts/ # Custom NSE scripts
│ ├── enhanced-discovery.nse
│ ├── service-enum.nse
│ └── vulnerability-detect.nse
├── config/ # Configuration files
│ ├── scan_profiles.json
│ ├── nse_scripts.json
│ └── networkmaps_config.json
├── templates/ # Report and visualization templates
│ ├── html_report.html
│ ├── json_schema.json
│ └── networkmap_template.js
├── utils/ # Utility functions
│ ├── parser.py
│ ├── reporter.py
│ └── visualizer.py
├── requirements.txt # Python dependencies
└── README.md # This file
- Host Discovery: Multiple discovery methods (ping, ARP, TCP SYN)
- Port Scanning: Comprehensive port enumeration
- Service Detection: Accurate service and version identification
- OS Detection: Operating system fingerprinting
- NSE Scripts: Extensive vulnerability detection
- CVE Mapping: Automatic CVE correlation
- Risk Scoring: Prioritized vulnerability assessment
- Custom Scripts: Enhanced detection capabilities
- Real-time Updates: Live topology changes
- Interactive Maps: Clickable network elements
- Multiple Views: Physical, logical, and security views
- Export Options: PNG, SVG, PDF formats
- Workflow Automation: End-to-end scanning process
- API Integration: RESTful API for external tools
- Scheduling: Automated periodic scans
- Alerting: Real-time notifications
python3 main.py --profile quick --target 192.168.1.0/24
- Host discovery only
- Common ports (top 100)
- Basic service detection
python3 main.py --profile standard --target 192.168.1.0/24
- Full port scan
- Service enumeration
- Basic vulnerability assessment
python3 main.py --profile comprehensive --target 192.168.1.0/24
- All ports
- Advanced NSE scripts
- Full vulnerability assessment
- OS detection
python3 main.py --profile stealth --target 192.168.1.0/24
- Slow, quiet scanning
- Evasion techniques
- Minimal network impact
-- custom_scripts/enhanced-discovery.nse
description = "Enhanced network discovery with service correlation"
author = "Your Name"
license = "Same as Nmap"
local nmap = require "nmap"
local stdnse = require "stdnse"
-- Implementation for advanced discovery
-- custom_scripts/service-enum.nse
description = "Comprehensive service enumeration"
author = "Your Name"
license = "Same as Nmap"
-- Implementation for detailed service enumeration
{
"scan_info": {
"target": "192.168.1.0/24",
"start_time": "2024-01-15T10:30:00Z",
"end_time": "2024-01-15T11:45:00Z"
},
"hosts": [
{
"ip": "192.168.1.1",
"hostname": "router.local",
"ports": [
{
"port": 80,
"service": "http",
"version": "nginx/1.18.0",
"vulnerabilities": []
}
]
}
]
}
- Interactive web-based reports
- Filterable results
- Exportable data
- Visual charts and graphs
- Real-time topology updates
- Interactive network visualization
- Custom node and edge styling
- Export to various formats
- Always obtain proper authorization
- Respect network policies
- Follow responsible disclosure
- Document all scanning activities
- Use appropriate scan profiles
- Implement rate limiting
- Monitor network impact
- Secure result storage
{
"quick": {
"ports": "top-100",
"scripts": ["default"],
"timing": 3,
"max_retries": 2
},
"comprehensive": {
"ports": "all",
"scripts": ["default", "vuln", "auth", "discovery"],
"timing": 1,
"max_retries": 3
}
}
{
"discovery": [
"broadcast-dhcp-discover",
"broadcast-dns-service-discovery",
"broadcast-netbios-master-browser"
],
"vulnerability": [
"vuln",
"auth",
"default"
]
}
# Scan enterprise network with comprehensive profile
python3 main.py \
--target 10.0.0.0/8 \
--profile comprehensive \
--output enterprise_scan_$(date +%Y%m%d) \
--exclude 10.0.0.1,10.0.0.254 \
--rate-limit 1000
# Set up automated scanning
crontab -e
# Add this line for daily scans
0 2 * * * /usr/bin/python3 /path/to/main.py --target 192.168.1.0/24 --profile standard --output /var/log/scans/
# Start API server
python3 api_server.py --port 8080
# Use API for scanning
curl -X POST http://localhost:8080/scan \
-H "Content-Type: application/json" \
-d '{"target": "192.168.1.0/24", "profile": "standard"}'
- Fork the repository
- Create a feature branch
- Add your custom NSE scripts
- Update documentation
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Nmap Security Scanner
- NetworkMaps Project
- NSE Script Community
- Open Source Security Tools
For issues and questions:
- Create an issue on GitHub
- Check the documentation
- Review example configurations
- Join the community discussions