Skip to content

Scanner réseau défensif TypeScript + Bun | Découverte d'hôtes style nmap -sn.

Notifications You must be signed in to change notification settings

Pauldbg/network-scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ Network Security Scanner

Scanner réseau de recherche inspiré de nmap -sn en TypeScript avec analyse passive pour découvrir et identifier les hôtes sur le réseau local.

📚 Contexte Pédagogique

Ce projet est un outil de recherche éducative développé pour comprendre les techniques de reconnaissance réseau défensive utilisées en cybersécurité. Il combine plusieurs approches :

  • Découverte d'hôtes : Ping scanning parallèle optimisé
  • Identification passive : MAC address fingerprinting + IEEE OUI API
  • Détection de privacy : Reconnaissance des MAC randomisées (iOS/Android)
  • Device profiling : Inférence de modèles basée sur les patterns constructeurs

🔬 Techniques de Recherche Implémentées

1. Network Discovery

  • Ping scanning cross-platform (Windows/Unix/Mac)
  • Gestion intelligente des timeouts et réponses partielles
  • Traitement par batch pour optimiser les performances réseau

2. Passive Analysis

  • IEEE OUI Database : 32,907+ fabricants référencés via API officielle
  • MAC Randomization Detection : Détection du bit "locally administered" (IEEE 802)
  • Device Model Inference : Patterns spécifiques Apple, Samsung, Intel, etc.
  • Connection Type Analysis : WiFi 6E/6, Ethernet Gigabit detection

3. Privacy & Security Features

  • Détection automatique des smartphones avec MAC privées
  • Anonymisation des adresses IP dans la documentation
  • Approche 100% défensive

🎯 Fonctionnalités

  • Analyse passive avancée : p0f + DHCP fingerprinting + IEEE OUI
  • 🔍 Device profiling précis : MacBook M-series, iPhone, Android, etc.
  • 🛡️ Détection privacy-aware : Reconnaissance des MAC randomisées
  • Performance optimisée : 3x plus rapide que nmap grâce à Bun
  • 📊 Scoring de confiance : Évaluation de la fiabilité des identifications

🚀 Installation et utilisation

# Installation des dépendances
bun install

# Scanner avec analyse passive (recommandé)
bun run scan --passive 30 --concurrent 25

# Scan rapide (analyse basique)
bun run scan --timeout 5000 --passive 2

# Voir les interfaces réseau disponibles
bun run info

📊 Exemple de résultats détaillés

🛡️  Network Security Scanner - Analyse Passive
═══════════════════════════════════════════════

📱 192.168.x.28 - PC/Laptop Intel WiFi
   🏭 Fabricant: Intel Corporate
   💻 OS probable: Windows/Linux
   📡 Connexion: WiFi 6 (802.11ax) / Ethernet Gigabit
   🎯 Confiance: 80%

📱 192.168.x.54 - iPhone/Android (MAC privée)  
   🏭 Fabricant: Smartphone/Tablet (MAC randomisée)
   💻 OS probable: iOS/Android (Privacy Mode)
   📡 Connexion: WiFi 6E (802.11ax)
   🎯 Confiance: 80%

📱 192.168.x.92 - MacBook (M-series)
   🏭 Fabricant: Apple Inc.
   💻 OS probable: macOS (Apple Silicon)
   📡 Connexion: WiFi 6 (802.11ax) / Ethernet Gigabit  
   🎯 Confiance: 80%

📊 Statistiques analyse passive:
   🧠 Confiance moyenne: 72.5%
   🛡️  Techniques: p0f + DHCP + IEEE OUI API

⚡ Performance & Recherche

  • ~37 secondes pour analyse passive complète de 254 IPs
  • ~7 secondes en mode scan rapide
  • Équivalent fonctionnel : nmap -sn + analyse passive p0f
  • Innovation : Détection MAC randomisées + Device profiling moderne

🔧 Options de recherche

# Analyse passive approfondie (recherche académique)
bun run scan --timeout 15000 --passive 30 --concurrent 30

# Scan de performance (tests de vitesse)  
bun run scan --timeout 8000 --passive 2 --concurrent 25

# Mode debugging (développement)
bun run scan --timeout 5000 --passive 5 --concurrent 10

Options détaillées :

  • --timeout <ms> : Délai ping individuel (défaut: 15000ms)
  • --passive <sec> : Durée analyse passive (défaut: 30s)
  • --concurrent <num> : Pings parallèles (défaut: 30)

🛠️ Stack Technique de Recherche

  • Runtime : Bun (3x plus rapide que Node.js pour child_process)
  • Language : TypeScript strict avec interfaces réseau avancées
  • Networking : Promise.allSettled() + batch processing optimisé
  • APIs : IEEE OUI Database officielle (macvendors.com)
  • CLI : Commander.js avec progression temps réel

🧪 Méthodologie de Recherche

Développement Itératif

  1. Phase 1 : Prototype ping scanner basique
  2. Phase 2 : Optimisation parsing réponses (gestion "out of wait time")
  3. Phase 3 : Intégration MAC address resolution (ARP table)
  4. Phase 4 : Implémentation IEEE OUI API + device profiling
  5. Phase 5 : Détection MAC randomisées + privacy analysis
  6. Phase 6 : TypeScript refactoring + standards 2025

Validation & Testing

  • Tests sur réseaux domestiques multiples (WiFi 6/6E)
  • Validation cross-platform (macOS, Linux, Windows WSL)
  • Comparaison performances vs nmap + p0f
  • Vérification détection privacy sur iOS 17+ / Android 14+

Usage Éthique & Recherche

Utilisation : Réseaux personnels pour recherche éducative et audits de sécurité défensifs.

Objectifs pédagogiques :

  • Comprendre les techniques de reconnaissance réseau modernes
  • Analyser l'évolution des mesures de privacy (MAC randomization)
  • Étudier les patterns de device fingerprinting en 2025
  • Explorer les limitations des outils classiques (nmap, p0f)

Projet de Recherche Cybersécurité - Reconnaissance réseau défensive & analyse des techniques de privacy modernes

About

Scanner réseau défensif TypeScript + Bun | Découverte d'hôtes style nmap -sn.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published