Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
scada-scanner — Uno scanner SCADA/ICS asincrono ad alte prestazioni | Kitploit
Strumenti/GitHubGitHub/geeknik/scada-scanner
RicognizioneScanner di VulnerabilitàMappatura della ReteScansione PorteAnalisi delle VulnerabilitàSicurezza SCADA/ICSRaccolta InformazioniSicurezza di RetePenetration Testing
GitHubgeeknik/scada-scanner

scada-scanner

Uno scanner SCADA/ICS asincrono ad alte prestazioni

1638 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi RepositorySito web

SCADA Scanner e Fingerprinter

Panoramica

Uno scanner SCADA/ICS asincrono e ad alte prestazioni per identificare e rilevare le impronte digitali di sistemi di controllo industriale attraverso le reti. Rileva vulnerabilità, identifica fornitori/prodotti e genera report di rischio completi.

ATTENZIONE: Solo per valutazioni di sicurezza autorizzate. La scansione non autorizzata può violare leggi e regolamenti.

Caratteristiche

Funzionalità Principali

  • Scansione asincrona e veloce di intervalli CIDR o singoli obiettivi
  • Rilevamento dei protocolli principali per l'industria (Modbus, S7, DNP3, BACnet, EtherNet/IP, ecc.)
  • Fingerprinting dei dispositivi con identificazione di fornitore, prodotto e versione
  • Correlazione delle vulnerabilità con CVE reali ed exploit
  • Valutazione e punteggio del rischio

Punti di Forza Tecnici

  • Architettura multi-thread con concorrenza configurabile
  • Limitazione della velocità a token bucket per rispettare i limiti globali di richieste
  • Rate limiting e controlli delle connessioni per host
  • Fingerprinting comportamentale tramite sonde specifiche per protocollo
  • Euristiche di protocollo basate sulle porte con tracce di evidenza per i rilevamenti
  • Logging dettagliato e report completi in JSON/CSV

Protocolli Supportati

  • Modbus TCP
  • Siemens S7
  • DNP3
  • BACnet
  • EtherNet/IP
  • IEC 60870-5-104
  • OPC UA
  • CODESYS
  • E molti altri

Installazione

Prerequisiti

  • Python 3.7+
  • Linux/macOS/Windows

Configurazione

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

# Installa le dipendenze
pip install -r requirements.txt

Utilizzo

Utilizzo Base

root@kitploit:~
# Scansione di un singolo obiettivo
python scada_scanner.py -t 192.168.1.100 -o results.json

# Scansione di un intervallo CIDR
python scada_scanner.py -c 192.168.1.0/24 -o results.json

# Più intervalli CIDR da file
python scada_scanner.py -f networks.txt -o results.json

# Esporta in CSV invece che JSON
python scada_scanner.py -t 192.168.1.100 --format csv -o results.csv

# Rispetta una lista di esclusione
python scada_scanner.py -c 10.0.0.0/24 --exclude exclude.txt

# Evidenzia combinazioni protocollo/porta inattese (registrate e nei risultati)
python scada_scanner.py -t 203.0.113.10 -o results.json

# Abilita l'arricchimento live delle vulnerabilità tramite ProjectDiscovery vulnx (richiede vulnx + chiave API PDCP)
vulnx auth
python scada_scanner.py -t 192.168.1.100 --vulnx --vulnx-limit 3

Opzioni della Riga di Comando

root@kitploit:~
Argomenti obbligatori (uno tra):
  -t, --target            Indirizzo IP del singolo obiettivo
  -c, --cidr              Intervallo CIDR da scansionare (es. 192.168.1.0/24)
  -f, --cidr-file         File contenente intervalli CIDR (uno per riga)

Argomenti opzionali:
  -o, --output            File di output (default: scan_results.json)
  -r, --rate              Richieste massime al secondo (default: 10.0)
  --timeout               Timeout di connessione in secondi (default: 5)
  --max-concurrent        Numero massimo di connessioni concorrenti (default: 50)
  --safe-mode             Abilita la modalità sicura (solo scansioni non intrusive)
  --exclude               File contenente IP da escludere dalla scansione
  -v, --verbosity         Livello di verbosità: 0=silenzioso, 1=normale, 2=debug
  --format                Formato di output: json o csv (default: json)

Modalità Sicura vs. Modalità Standard

Modalità Sicura

  • Utilizza solo sonde non intrusive
  • Riduce al minimo l'impatto sui sistemi target
  • Consigliata per ambienti di produzione
  • Si attiva con il flag --safe-mode

Modalità Standard

  • Utilizza tecniche di probing più aggressive
  • Può attivare gli alert IDS/IPS
  • Potrebbe potenzialmente avere impatto su sistemi sensibili
  • Usare con cautela in ambienti di produzione

Report di Esempio

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"
        }
      ]
    }
  ]
}

Considerazioni Etiche

Conformità Legale

Questo strumento è destinato esclusivamente a valutazioni di sicurezza autorizzate. La scansione non autorizzata può violare:

  • Il Computer Fraud and Abuse Act (USA)
  • Il Computer Misuse Act (Regno Unito)
  • Leggi simili in altre giurisdizioni

Buone Pratiche

  • Ottenere sempre un'autorizzazione scritta prima di scansionare
  • Usare la modalità sicura quando possibile
  • Scansionare durante le finestre di manutenzione quando possibile
  • Rispettare i rate limit per evitare condizioni di DoS
  • Considerare la fragilità dei sistemi industriali

Intelligence sulle Vulnerabilità

Lo scanner include un piccolo database di vulnerabilità integrato per i protocolli principali (vedi VULNERABILITY_DATABASE). Per informazioni più aggiornate puoi abilitare l'integrazione opzionale con ProjectDiscovery vulnx:

  1. Installa vulnx e configura la tua chiave API PDCP (vulnx auth).
  2. Esegui con --vulnx (opzionalmente regola --vulnx-limit e --vulnx-timeout).
  3. Le vulnerabilità di vulnx vengono unite ai risultati locali e contrassegnate con source: "vulnx".

Se vulnx non è disponibile o non è raggiungibile, lo scanner torna silenziosamente al database locale. Le voci del database locale vengono aggiornate periodicamente dalle ricerche di vulnx per i protocolli principali (catturate in questo snapshot del repository) e sono contrassegnate con source: "local_db".

Test

Esegui la suite di test unitari:

root@kitploit:~
pytest

Documentazione per Sviluppatori

Aggiungere Nuovi Protocolli

Lo scanner è progettato per essere modulare, rendendo facile aggiungere il supporto per nuovi protocolli:

  1. Aggiungi i dettagli del protocollo alla lista SCADA_PORTS
  2. Aggiungi i pattern delle firme al dizionario PROTOCOL_SIGNATURES
  3. Crea funzioni di sonda e analisi specifiche per il protocollo
  4. Aggiungi le informazioni sulle vulnerabilità a VULNERABILITY_DATABASE

Contribuire

I contributi sono benvenuti! Segui questi passaggi:

  1. Fai un fork del repository
  2. Crea un branch per la funzionalità (git checkout -b feature/amazing-feature)
  3. Committa le tue modifiche (git commit -m 'Add amazing feature')
  4. Pubblica il branch (git push origin feature/amazing-feature)
  5. Apri una Pull Request

Licenza

Questo progetto è concesso in licenza secondo la MIT License - consulta il file LICENSE per i dettagli.

Disclaimer

IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIE DI ALCUN TIPO, ESPRESSE O IMPLICITE. GLI AUTORI DECLINANO OGNI RESPONSABILITÀ PER QUALSIASI DANNO O PERDITA DERIVANTE DALL'USO DI QUESTO SOFTWARE.

Scarica lo strumento