182 lines
4.5 KiB
Bash
Executable File
182 lines
4.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Quick Start Script for Network Scanner
|
|
# This script helps you get started quickly
|
|
|
|
set -e
|
|
|
|
echo "================================"
|
|
echo "Network Scanner - Quick Start"
|
|
echo "================================"
|
|
echo ""
|
|
|
|
# Check for Python
|
|
if ! command -v python3 &> /dev/null; then
|
|
echo "❌ Error: Python 3 is not installed"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ Python 3 found"
|
|
|
|
# Create config if it doesn't exist
|
|
if [ ! -f config.json ]; then
|
|
echo ""
|
|
echo "📝 Creating configuration file..."
|
|
|
|
# Try to detect default SSH key
|
|
SSH_KEY=""
|
|
if [ -f ~/.ssh/id_rsa ]; then
|
|
SSH_KEY="$HOME/.ssh/id_rsa"
|
|
elif [ -f ~/.ssh/id_ed25519 ]; then
|
|
SSH_KEY="$HOME/.ssh/id_ed25519"
|
|
fi
|
|
|
|
# Get current user
|
|
CURRENT_USER=$(whoami)
|
|
|
|
# Try to detect local network
|
|
LOCAL_NET=$(ip route | grep -oP 'src \K[\d.]+' | head -1)
|
|
if [ -n "$LOCAL_NET" ]; then
|
|
# Convert to /24 network
|
|
NET_PREFIX=$(echo $LOCAL_NET | cut -d. -f1-3)
|
|
LOCAL_NET="${NET_PREFIX}.0/24"
|
|
else
|
|
LOCAL_NET="192.168.1.0/24"
|
|
fi
|
|
|
|
cat > config.json << EOF
|
|
{
|
|
"ssh_user": "$CURRENT_USER",
|
|
"ssh_key_path": "$SSH_KEY",
|
|
"timeout": 2,
|
|
"additional_networks": [
|
|
"$LOCAL_NET"
|
|
],
|
|
"special_devices": {
|
|
},
|
|
"scan_options": {
|
|
"max_workers": 10,
|
|
"ping_timeout": 2,
|
|
"port_scan_timeout": 1
|
|
}
|
|
}
|
|
EOF
|
|
|
|
echo "✓ Created config.json"
|
|
echo " Local network detected: $LOCAL_NET"
|
|
[ -n "$SSH_KEY" ] && echo " SSH key detected: $SSH_KEY"
|
|
echo ""
|
|
echo " Please edit config.json to customize for your network!"
|
|
echo ""
|
|
else
|
|
echo "✓ config.json already exists"
|
|
fi
|
|
|
|
# Ask what to do
|
|
echo ""
|
|
echo "What would you like to do?"
|
|
echo ""
|
|
echo "1) Run a quick scan (current network only)"
|
|
echo "2) Run a full scan with pfSense integration"
|
|
echo "3) Scan and generate SVG diagram"
|
|
echo "4) Scan specific pfSense device"
|
|
echo "5) Show help"
|
|
echo "6) Exit"
|
|
echo ""
|
|
read -p "Choose an option (1-6): " choice
|
|
|
|
case $choice in
|
|
1)
|
|
echo ""
|
|
echo "🔍 Running quick network scan..."
|
|
./network_scanner.py -o quick_scan.json -v
|
|
echo ""
|
|
echo "✓ Done! Results saved to: quick_scan.json"
|
|
echo " Generate diagram with: ./svg_generator.py quick_scan.json"
|
|
;;
|
|
2)
|
|
echo ""
|
|
echo "🔍 Running full integrated scan..."
|
|
./integrated_scanner.py -o full_scan.json -v
|
|
echo ""
|
|
echo "✓ Done! Results saved to: full_scan.json"
|
|
;;
|
|
3)
|
|
echo ""
|
|
echo "🔍 Running scan and generating diagram..."
|
|
./integrated_scanner.py -o scan_with_diagram.json -v --generate-svg
|
|
echo ""
|
|
echo "✓ Done! Open scan_with_diagram.svg to view the network diagram"
|
|
;;
|
|
4)
|
|
echo ""
|
|
read -p "Enter pfSense IP address: " pfsense_ip
|
|
echo "🔍 Scanning pfSense at $pfsense_ip..."
|
|
./pfsense_scanner.py "$pfsense_ip" -o "pfsense_${pfsense_ip}.json"
|
|
echo ""
|
|
echo "✓ Done! Results saved to: pfsense_${pfsense_ip}.json"
|
|
;;
|
|
5)
|
|
echo ""
|
|
cat << 'HELP'
|
|
Network Scanner - Help
|
|
======================
|
|
|
|
Available Scripts:
|
|
-----------------
|
|
|
|
1. network_scanner.py
|
|
Basic network scanner that discovers devices and gathers info
|
|
Usage: ./network_scanner.py [-c config.json] [-o output.json] [-v]
|
|
|
|
2. pfsense_scanner.py
|
|
Specialized scanner for pfSense firewalls
|
|
Usage: ./pfsense_scanner.py <ip> [-u user] [-k keyfile] [-o output.json]
|
|
|
|
3. integrated_scanner.py
|
|
Complete scanner with pfSense integration
|
|
Usage: ./integrated_scanner.py [-c config.json] [-o output.json] [-v] [--generate-svg]
|
|
|
|
4. svg_generator.py
|
|
Generate SVG diagram from scan results
|
|
Usage: ./svg_generator.py <input.json> [-o output.svg]
|
|
|
|
Configuration:
|
|
-------------
|
|
Edit config.json to customize:
|
|
- SSH credentials
|
|
- Network ranges to scan
|
|
- Special device definitions
|
|
- Scan timeouts
|
|
|
|
Examples:
|
|
--------
|
|
# Quick scan of current network
|
|
./network_scanner.py -v
|
|
|
|
# Full scan with diagram
|
|
./integrated_scanner.py --generate-svg
|
|
|
|
# Scan pfSense
|
|
./pfsense_scanner.py 192.168.1.1 -u root -k ~/.ssh/id_rsa
|
|
|
|
# Generate diagram from existing scan
|
|
./svg_generator.py network_scan.json -o my_network.svg
|
|
|
|
For more information, see README.md
|
|
HELP
|
|
;;
|
|
6)
|
|
echo "Goodbye!"
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "Invalid option"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo ""
|
|
echo "================================"
|
|
echo "Thanks for using Network Scanner!"
|
|
echo "================================"
|