Advanced Network Security Scanner & Monitoring Platform
A comprehensive network reconnaissance and security assessment tool built with modern web technologies. NetDog combines powerful scanning capabilities with an intuitive interface for network discovery, vulnerability assessment, and device monitoring.
|
|
|
|
- Docker & Docker Compose - Container orchestration
- Git - Version control
- Root/Admin Access - Required for advanced scanning features
-
Clone the repository
git clone https://github.com/John0n1/netdog.git cd netdog -
Launch with Docker
chmod +x setup.sh sudo ./setup.sh
-
Access the application
- Web Interface: http://localhost:5173
- API Documentation: http://localhost:8000/docs
- Open NetDog in your browser
- Click "New Scan"
- Select your network (auto-detected) or enter targets
- Choose scan intensity level
- Click "Start Scan" and watch devices appear in real-time!
| Mode | Description | Use Case | Speed |
|---|---|---|---|
| Slow | Stealthy, 50 ports + OS detection | External/Production | ★ |
| Stealthy | Quiet, 200 ports + OS detection | Authorized Pentest | ★★ |
| Medium | Service detection, 1000 ports | Standard Assessment | ★★★ |
| Normal | Full TCP + OS fingerprint | Internal Networks | ★★★★ |
| Aggressive | TCP/UDP + Scripts | Deep Analysis | ★★★★★ |
| Offensive | Vulnerability + Auth testing | Red Team Ops | ★★★★★ |
| Intrusive | Full exploitation attempts | Authorized Only | ★★★★★ |
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ React + Vite │────│ FastAPI + DB │────│ Celery Workers │
│ (Frontend) │ │ (Backend) │ │ (Scanning) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │ │
└────────────────────────┼────────────────────────┘
│
┌─────────────────┐
│ Redis + Postgres│
│ (Data Layer) │
└─────────────────┘
- Frontend: React 18, Vite, Tailwind CSS, React Query
- Backend: FastAPI, SQLAlchemy, PostgreSQL, Redis
- Scanning: Nmap, Python-nmap, Custom algorithms
- Queue: Celery with Redis broker
- Infrastructure: Docker, Docker Compose
Create a .env file in the project root:
# Database
POSTGRES_DB=netdog
POSTGRES_USER=netdog
POSTGRES_PASSWORD=your_secure_password
# Redis
REDIS_URL=redis://redis:6379/0
# API
SECRET_KEY=your_jwt_secret_key
API_HOST=0.0.0.0
API_PORT=8000
# Scanning
SCAN_TIMEOUT=3600
MAX_CONCURRENT_SCANS=5
CVE_CACHE_TTL=86400cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtcd frontend
npm install
npm run dev# Login and get JWT token
curl -X POST http://localhost:8000/api/v1/auth/token \
-d "username=admin&password=admin"# Launch network scan
curl -X POST http://localhost:8000/api/v1/scan \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"targets": ["192.168.1.0/24"],
"mode": "normal",
"consent": {"approved": true, "by": "user"}
}'# Retrieve scan results
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:8000/api/v1/devices?scan_id=$SCAN_IDNetDog is designed for authorized security testing only. Users must:
- Own the target network or have explicit written permission
- Comply with local laws and regulations
- Use responsibly for legitimate security assessment
- Never scan networks without authorization
- JWT Authentication - Secure API access
- Input Validation - SQL injection prevention
- Rate Limiting - DDoS protection
- Audit Logging - Complete activity tracking
- Consent Tracking - Legal compliance documentation
We welcome contributions! Please see our Contributing Guide for details.
# Start development containers
sudo docker compose up -d
# View logs
sudo docker compose logs -f
# Run tests
docker compose exec backend pytest
cd frontend && npm test
# Stop services
sudo docker compose downThis project is licensed under the MIT License - see the LICENSE file for details.
Made for the cybersecurity community