Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/geeknik/scada-scanner
ReconnaissanceScanners de VulnérabilitésCartographie RéseauScan de PortsAnalyse des VulnérabilitésSécurité SCADA/ICSCollecte d'InformationsSécurité RéseauTests d'Intrusion
GitHubgeeknik/scada-scanner

scada-scanner

Un scanner SCADA/ICS asynchrone et haute performance

163il y a 8 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôtSite web
Partager

SCADA Scanner and Fingerprinter

Aperçu

Un scanner SCADA/ICS asynchrone et haute performance pour identifier et prendre l'empreinte des systèmes de contrôle industriels sur les réseaux. Il détecte les vulnérabilités, identifie les fournisseurs/produits et génère des rapports de risque complets.

AVERTISSEMENT : Réservé aux évaluations de sécurité autorisées. L'analyse non autorisée peut enfreindre les lois et réglementations.

Fonctionnalités

Fonctionnalités principales

  • Analyse rapide et asynchrone de plages CIDR ou de cibles individuelles
  • Détection de protocoles pour les principaux protocoles industriels (Modbus, S7, DNP3, BACnet, EtherNet/IP, etc.)
  • Empreinte des appareils avec identification du fournisseur, du produit et de la version
  • Corrélation des vulnérabilités avec des CVE et exploits réels
  • Score de risque et évaluation

Points techniques clés

  • Architecture multithread avec concurrence configurable
  • Limitation de débit à seau de jetons (token bucket) pour respecter les plafonds globaux de requêtes
  • Limitation de débit et contrôles de connexion par hôte
  • Empreinte comportementale via des sondes spécifiques aux protocoles
  • Heuristiques de protocole tenant compte des ports avec pistes de preuves pour les détections
  • Journalisation détaillée et rapports JSON/CSV complets

Protocoles pris en charge

  • Modbus TCP
  • Siemens S7
  • DNP3
  • BACnet
  • EtherNet/IP
  • IEC 60870-5-104
  • OPC UA
  • CODESYS
  • Et bien d'autres

Installation

Prérequis

  • Python 3.7+
  • Linux/macOS/Windows

Configuration

root@kitploit:~
# Clone the repository
git clone https://github.com/geeknik/scada-scanner.git
cd scada-scanner

# Install dependencies
pip install -r requirements.txt

Utilisation

Utilisation de base

root@kitploit:~
# Single target scan
python scada_scanner.py -t 192.168.1.100 -o results.json

# CIDR range scan
python scada_scanner.py -c 192.168.1.0/24 -o results.json

# Multiple CIDR ranges from file
python scada_scanner.py -f networks.txt -o results.json

# Export CSV instead of JSON
python scada_scanner.py -t 192.168.1.100 --format csv -o results.csv

# Respect an exclude list
python scada_scanner.py -c 10.0.0.0/24 --exclude exclude.txt

# Highlight unexpected protocol/port combos (logged and in findings)
python scada_scanner.py -t 203.0.113.10 -o results.json

# Enable live vuln enrichment via ProjectDiscovery vulnx (requires vulnx + PDCP API key)
vulnx auth
python scada_scanner.py -t 192.168.1.100 --vulnx --vulnx-limit 3

Options de la ligne de commande

root@kitploit:~
Required arguments (one of):
  -t, --target            Single target IP address
  -c, --cidr              CIDR range to scan (e.g., 192.168.1.0/24)
  -f, --cidr-file         File containing CIDR ranges (one per line)

Optional arguments:
  -o, --output            Output file (default: scan_results.json)
  -r, --rate              Max requests per second (default: 10.0)
  --timeout               Connection timeout in seconds (default: 5)
  --max-concurrent        Maximum concurrent connections (default: 50)
  --safe-mode             Enable safe mode (non-intrusive scans only)
  --exclude               File containing IPs to exclude from scan
  -v, --verbosity         Verbosity level: 0=quiet, 1=normal, 2=debug
  --format                Output format: json or csv (default: json)

Mode sûr vs. mode standard

Mode sûr

  • Utilise uniquement des sondes non intrusives
  • Minimise l'impact sur les systèmes cibles
  • Recommandé pour les environnements de production
  • Activez-le avec l'option --safe-mode

Mode standard

  • Utilise des techniques de sondage plus agressives
  • Peut déclencher des alertes IDS/IPS
  • Peut potentiellement affecter des systèmes sensibles
  • À utiliser avec prudence dans les environnements de production

Exemple de rapport

root@kitploit:~
{
  "scan_summary": {
    "timestamp": "2025-02-27T14:02:33.456789",
    "total_hosts_scanned": 256,
    "hosts_with_scada": 12,
    "total_vulnerabilities": 37,
    "high_risk_hosts": 5
  },
  "hosts": [
    {
      "ip": "192.168.1.100",
      "ports": [
        {
          "port": 502,
          "protocol": "MODBUS",
          "fingerprint": {
            "vendor": "Schneider",
            "product": "M340",
            "version": "2.6.0",
            "risk_score": 0.75,
            "evidence": [
              "response:00010000000101",
              "port_hint:502"
            ],
            "findings": [
              "Detected MODBUS protocol (confidence: 0.55)",
              "Identified vendor: SCHNEIDER, product: M340",
              "Overall risk assessment: High (score: 0.75)"
            ],
            "unexpected_port": false
          }
        }
      ],
      "vulnerabilities": [
        {
          "cve_id": "CVE-2025-55221",
          "description": "Socomec DIRIS Digiware M-70 DoS via crafted Modbus TCP/RTU over TCP packets",
          "severity": "high",
          "source": "local_db"
        }
      ]
    }
  ]
}

Considérations éthiques

Conformité légale

Cet outil est destiné uniquement aux évaluations de sécurité autorisées. L'analyse non autorisée peut enfreindre :

  • Computer Fraud and Abuse Act (États-Unis)
  • Computer Misuse Act (Royaume-Uni)
  • Des lois similaires dans d'autres juridictions

Bonnes pratiques

  • Obtenez toujours une autorisation écrite avant d'analyser
  • Utilisez le mode sûr lorsque c'est possible
  • Effectuez les analyses pendant les fenêtres de maintenance lorsque c'est possible
  • Respectez les limites de débit pour éviter des conditions de déni de service (DoS)
  • Tenez compte de la fragilité des systèmes industriels

Renseignement sur les vulnérabilités

Le scanner est livré avec une petite base de données de vulnérabilités intégrée pour les protocoles de base (voir VULNERABILITY_DATABASE). Pour obtenir des informations plus récentes, vous pouvez activer l'intégration optionnelle ProjectDiscovery vulnx :

  1. Installez vulnx et configurez votre clé API PDCP (vulnx auth).
  2. Exécutez avec --vulnx (réglez éventuellement --vulnx-limit et --vulnx-timeout).
  3. Les vulnérabilités de vulnx sont fusionnées avec les résultats locaux et marquées avec source: "vulnx".

Si vulnx est absent ou inaccessible, le scanner revient silencieusement à la base de données locale. Les entrées de la base de données locale sont périodiquement actualisées à partir des recherches vulnx pour les protocoles de base (capturées dans cet instantané du dépôt) et sont étiquetées avec source: "local_db".

Tests

Exécutez la suite de tests unitaires :

root@kitploit:~
pytest

Documentation pour les développeurs

Ajout de nouveaux protocoles

Le scanner est conçu de manière modulaire, ce qui facilite l'ajout de la prise en charge de nouveaux protocoles :

  1. Ajoutez les détails du protocole à la liste SCADA_PORTS
  2. Ajoutez des modèles de signature au dictionnaire PROTOCOL_SIGNATURES
  3. Créez des fonctions de sonde et d'analyse spécifiques au protocole
  4. Ajoutez des informations sur les vulnérabilités à VULNERABILITY_DATABASE

Contribuer

Les contributions sont les bienvenues ! Veuillez suivre ces étapes :

  1. Forkez le dépôt
  2. Créez une branche de fonctionnalité (git checkout -b feature/amazing-feature)
  3. Validez vos modifications (git commit -m 'Add amazing feature')
  4. Poussez la branche (git push origin feature/amazing-feature)
  5. Ouvrez une pull request

Licence

Ce projet est sous licence MIT - consultez le fichier LICENSE pour plus de détails.

Avis de non-responsabilité

LE LOGICIEL EST FOURNI « EN L'ÉTAT », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE. LES AUTEURS DÉCLINENT TOUTE RESPONSABILITÉ EN CAS DE DOMMAGE OU DE PERTE RÉSULTANT DE L'UTILISATION DE CE LOGICIEL.

Télécharger l’outil