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
Redpoint — Nmap NSE scripts per la scoperta e l'enumerazione di ICS/SCADA—BACnet, EtherNet/IP, CoDeSys, Fox, Modicon, Omron, S7—tramite query di protocollo per valutazioni di sicurezza. | Kitploit
Strumenti/GitHubGitHub/digitalbond/redpoint
RicognizioneSicurezza SCADA/ICSRaccolta InformazioniSicurezza di RetePenetration Testing
GitHubdigitalbond/redpoint

Redpoint

Nmap NSE scripts per la scoperta e l'enumerazione di ICS/SCADA—BACnet, EtherNet/IP, CoDeSys, Fox, Modicon, Omron, S7—tramite query di protocollo per valutazioni di sicurezza.

Vedi Repository
4691506 anni faRevisionato da Kitploit

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

#Redpoint

###Strumenti di enumerazione ICS di Digital Bond

Redpoint è un progetto di ricerca di Digital Bond per enumerare applicazioni e dispositivi ICS.

Utilizziamo i nostri strumenti Redpoint nelle attività di assessment per scoprire dispositivi ICS e raccogliere informazioni utili per test secondari. Una parte di questi strumenti sarà resa disponibile al pubblico in questo repository sotto forma di script Nmap NSE.

Gli strumenti Redpoint utilizzano comandi legittimi di protocolli o applicazioni per scoprire ed enumerare dispositivi e applicazioni. Non c'è alcun tentativo di sfruttare o mandare in crash nulla. Tuttavia molti dispositivi e applicazioni ICS sono fragili e possono bloccarsi o rispondere in modo inatteso a qualsiasi traffico inatteso, quindi usali con cautela.

Ogni script è documentato di seguito ed è disponibile in un file .nse in questo repository.

  • BACnet-discover-enumerate.nse - Identificare ed enumerare dispositivi BACnet

  • codesys-v2-discover.nse - Identificare ed enumerare controllori CoDeSys V2

  • enip-enumerate.nse - Identificare ed enumerare dispositivi EtherNet/IP di Rockwell Automation e altri vendor

  • fox-info.nse - Identificare ed enumerare dispositivi Niagara Fox

  • modicon-info.nse - Identificare ed enumerare PLC Modicon di Schneider Electric

  • omron-info.nse - Identificare ed enumerare PLC Omron

  • pcworx-info.nse - Identificare ed enumerare PLC con protocollo PC Worx abilitato

  • proconos-info.nse - Identificare ed enumerare PLC con ProConOS abilitato

  • s7-enumerate.nse - Identificare ed enumerare PLC Siemens SIMATIC S7

==

###BACnet-discover-enumerate.nse

![Esempio di output di BACnet-discover-enumerate] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/03/BACnet-nse.png)

####Autori

Stephen Hilt e Michael Toecker
Digital Bond, Inc

####Scopo e descrizione

Lo scopo di BACnet-discover-enumerate.nse è innanzitutto identificare se un dispositivo connesso via IP sta eseguendo BACnet. Funziona interrogando il dispositivo con un messaggio BACnet pre-generato. Le versioni più recenti del protocollo BACnet rispondono con un acknowledgement, mentre le versioni più vecchie restituiscono un messaggio di errore BACnet. La presenza dell'acknowledgement o dell'errore è sufficiente per dimostrare che all'indirizzo IP target è presente un dispositivo compatibile con BACnet.

In secondo luogo, se viene ricevuto un acknowledgement, lo script tenta anche di enumerare diverse proprietà BACnet su un dispositivo BACnet che risponde. Anche in questo caso, il dispositivo viene interrogato con un messaggio BACnet pre-generato. L'enumerazione riesce utilizzando richieste appositamente costruite e non avrà successo se il dispositivo BACnet non supporta la proprietà.

Le proprietà BACnet interrogate da questo script sono:

  1. Vendor ID - Un numero che corrisponde a un vendor BACnet registrato. Lo script restituisce anche il nome del vendor associato.

  2. Vendor Number - Una stringa che rappresenta il nome del vendor configurato sul dispositivo. Può differire dal Vendor ID, poiché il Vendor ID è il numero registrato presso ASHARE.

  3. Object Identifier - Un numero che identifica univocamente il dispositivo. Se l'Object Identifier è noto, è possibile inviare comandi con software client BACnet, inclusi quelli che modificano valori, programmi, schedulazioni e altre informazioni operative sui dispositivi BACnet. Questa è una proprietà obbligatoria per tutti i dispositivi BACnet.

  4. Firmware Revision - Il numero di revisione del firmware sul dispositivo BACnet.

  5. Application Software Revision - Il numero di revisione del software utilizzato per la comunicazione BACnet.

  6. Object Name - Una stringa definita dall'utente che assegna un nome al dispositivo BACnet, solitamente inserita dai tecnici in fase di commissioning. Questa è una proprietà obbligatoria per tutti i dispositivi BACnet.

  7. Model Name - Il modello del dispositivo BACnet

  8. Description - Una stringa definita dall'utente per descrivere il dispositivo, solitamente inserita dai tecnici in fase di commissioning

  9. Location - Una stringa definita dall'utente per registrare la posizione fisica del dispositivo, solitamente inserita dai tecnici in fase di commissioning

  10. Broadcast Distribution Table (BDT) - Un elenco dei BACnet Broadcast Management Device (BBMD) presenti nella rete BACnet. Ciò identifica tutte le sottoreti che fanno parte della rete BACnet.

  11. Foreign Device Table (FDT) - Un elenco dei dispositivi esterni (foreign device) registrati presso il dispositivo BACnet. Un foreign device è qualsiasi dispositivo che non si trova su una sottorete facente parte della rete BACnet e che non è incluso nella BDT. I foreign device si trovano spesso su reti esterne e potrebbero corrispondere all'indirizzo IP di un attaccante.

La BDT e la FDT possono essere elenchi molto lunghi e potrebbero non essere desiderati in una scansione Nmap di grandi dimensioni. Lo script di base non scarica BDT e FDT. Esegui il comando con --script-args full=yes per ottenere BDT e FDT; consulta la sezione Utilizzo.

![Esempio di output di BACnet-discover-enumerate con BDT e FDT] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/08/screenshot_bacnet-1.png)

Questo script utilizza una funzionalità aggiunta alla specifica BACnet nel 2004 per recuperare l'Object Identifier di un dispositivo con una singola richiesta, senza doversi unire alla rete BACnet come foreign device. (Vedi il documento ANSI/ASHRAE Addendum a to ANSI/ASHRAE Standard 135-2001 per i dettagli)

####Storia e background

Dall'articolo di Wikipedia su BACnet http://en.wikipedia.org/wiki/BACnet:

BACnet è un protocollo di comunicazione per reti di automazione e controllo degli edifici. È un protocollo standard ASHRAE, ANSI e ISO[1]. La porta predefinita per il traffico BACnet è UDP/47808.

BACnet è utilizzato nei sistemi di automazione e controllo degli edifici per applicazioni quali controllo di riscaldamento, ventilazione e aria condizionata, controllo dell'illuminazione, controllo accessi e sistemi di rilevazione incendi e relative apparecchiature. Il protocollo BACnet fornisce meccanismi per consentire ai dispositivi computerizzati di automazione degli edifici di scambiare informazioni, indipendentemente dal particolare servizio dell'edificio che svolgono.

####Installazione

Questo script richiede nmap per essere eseguito. Se non hai Nmap, scaricalo e installalo seguendo le istruzioni di Nmap. http://nmap.org/download.html

#####Windows

Dopo aver scaricato bacnet-discover.nse, dovrai spostarlo nella directory NSE Scripts; questa operazione deve essere eseguita come amministratore. Vai su Start -> Programmi -> Accessori, fai clic con il tasto destro su 'Prompt dei comandi'. Seleziona 'Esegui come amministratore'.

root@kitploit:~
move BACnet-discover-enumerate.nse C:\Program Files (x86)\Nmap\scripts

#####Linux

Dopo aver scaricato BACnet-discover-enumerate.nse, dovrai spostarlo nella directory NSE Scripts; questa operazione deve essere eseguita come sudo/root.

root@kitploit:~
sudo mv BACnet-discover-enumerate.nse /usr/share/nmap/scripts
	

####Utilizzo

In una finestra di terminale/Prompt dei comandi usa uno dei seguenti comandi, dove host è il target che desideri scansionare per BACNet. Usa --script-args full=yes se vuoi che l'output includa BDT e FDT.

root@kitploit:~
Windows: nmap -sU -p 47808 --script BACnet-discover-enumerate <host>
Windows: nmap -sU -p 47808 --script BACnet-discover-enumerate --script-args full=yes <host>

Linux: sudo nmap -sU -p 47808 --script BACnet-discover-enumerate <host> 
Linux: sudo nmap -sU -p 47808 --script BACnet-discover-enumerate --script-args full=yes <host>

Per velocizzare i risultati evitando le query DNS durante la scansione, usa l'opzione -n; disattiva anche i ping per determinare se il dispositivo è attivo usando l'opzione -Pn per risultati completi.

root@kitploit:~
nmap -sU -Pn -p 47808 -n --script BACnet-discover-enumerate <host>

	

####Note

La versione ufficiale di questo script è mantenuta su: https://github.com/digitalbond/Redpoint/blob/master/BACnet-discover-enumerate.nse

Questo script utilizza la porta standard di origine e destinazione BACnet UDP 47808.

I dispositivi BACnet più recenti (successivi al 25 febbraio 2004) sono tenuti dalla specifica a rispondere a richieste specifiche che utilizzano un object-identifier 'catchall' con il proprio numero di istanza valido (vedi ANSI/ASHRAE Addendum a to ANSI/ASHRAE Standard 135-2001). Le versioni meno recenti dei dispositivi BACnet potrebbero non rispondere a questo catchall e risponderanno invece con un pacchetto di errore BACnet.

Questo script non tenta di unirsi a una rete BACnet come foreign device: invia semplicemente richieste BACnet direttamente a un dispositivo con indirizzo IP.

== ###codesys-v2-discover.nse ![Esempio di output di codesys-v2-discover] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2016/03/codesys-v2-discover-win.png)

####Autori

Stephen Hilt, Reid Wightman

####Scopo e descrizione

Lo script codesys-v2-discover.nse identifica i PLC che eseguono il runtime ladder logic versione 2 prodotto da 3S-Software GmbH. Questi controllori parlano un protocollo binario proprietario per installare nuova logica ladder, oltre che per eseguire il debug della logica ladder in esecuzione. Il protocollo può richiedere l'autenticazione. In pratica, pochi dispositivi supportano questo comportamento. Questo script non verifica l'autenticazione.

Questo script invia al dispositivo una semplice richiesta di identificazione. Il messaggio di risposta può includere il sistema operativo e la specifica point release di CoDeSys in esecuzione sul PLC.

####Storia e background

Digital Bond ha rilasciato i dettagli del sistema runtime CoDeSys, insicuro by design, nell'aprile 2012. Il protocollo utilizza di solito TCP/1200 o TCP/2455 come porta di controllo. Il protocollo di controllo contiene funzioni per caricare e scaricare file dai controllori. Il protocollo può inoltre fornire una shell di comando, che offre funzionalità aggiuntive. Le funzionalità della shell includono tipicamente la possibilità di avviare e arrestare la logica ladder in esecuzione, oltre a recuperare informazioni di debug dal controllore.

L'advisory iniziale si applicava solo alla versione 2 del runtime. Digital Bond ha anche pubblicato uno script Nmap proof-of-concept, originariamente scritto da HD Moore come parte del suo progetto di scansione di Internet.

È stato prodotto anche uno script Nessus per questa versione del protocollo; tuttavia lo script Nessus contiene un errore e non verifica correttamente i controllori con CPU big-endian.

####Installazione

Questo script richiede Nmap per essere eseguito. Se non hai Nmap, scaricalo e installalo seguendo le istruzioni di Nmap. http://nmap.org/download.html

#####Windows

Dopo aver scaricato enip-enumerate.nse, dovrai spostarlo nella directory NSE Scripts; questa operazione deve essere eseguita come amministratore. Vai su Start -> Programmi -> Accessori, fai clic con il tasto destro su 'Prompt dei comandi'. Seleziona 'Esegui come amministratore'.

root@kitploit:~
    move codesys-v2-discover.nse C:\Program Files (x86)\Nmap\scripts

#####Linux

Dopo aver scaricato enip-enumerate.nse, dovrai spostarlo nella directory NSE Scripts; questa operazione deve essere eseguita come sudo/root.

root@kitploit:~
    sudo mv codesys-v2-discover.nse /usr/share/nmap/scripts

####Utilizzo

In una finestra di terminale/Prompt dei comandi usa uno dei seguenti comandi, dove è il target che desideri scansionare per EtherNet/IP.

root@kitploit:~
    Windows: nmap -p 1200,2455 --script codesys-v2-discover <host>

    Linux: sudo nmap -p 1200,2455 --script codesys-v2-discover <host>

####Note

La versione ufficiale di questo script è mantenuta su:https://github.com/digitalbond/Redpoint/codesys-v2-discover.nse

Questo script tenterà di inviare le richieste CoDeSys su qualsiasi porta aperta. Mentre la maggior parte dei controllori usa le porte standard 1200 o 2455, alcuni controllori usano porte alternative come 1201, 1217 e altre ancora.

== ###enip-enumerate.nse ![Esempio di output di enip-enumerate] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/04/enip.png)

####Autore

Stephen Hilt
Digital Bond, Inc

####Scopo e descrizione

Lo scopo di enip-enumerate.nse è identificare ed enumerare dispositivi EtherNet/IP. Rockwell Automation / Allen Bradley ha sviluppato il protocollo ed è il principale produttore di questi dispositivi, ad esempio ControlLogix e MicroLogix, ma si tratta di uno standard aperto e diversi vendor offrono una scheda di interfaccia o una soluzione EtherNet/IP.

Un dispositivo EtherNet/IP viene identificato con certezza interrogando TCP/44818 con un messaggio List Identities (0x63). I messaggi di risposta permettono di determinare se si tratta di un dispositivo EtherNet/IP e di analizzare le informazioni per enumerare il dispositivo.

La richiesta EtherNet/IP List Identities recupera le informazioni di base sul dispositivo, note come "chiave elettronica" del dispositivo. Le informazioni includono Vendor, Product Name, Serial Number, Device Type, Product Code e Revision Number. Lo script analizza inoltre l'indirizzo IP configurato del dispositivo dal campo Socket Address all'interno del frame EtherNet/IP del pacchetto.

Le proprietà EtherNet/IP analizzate da questo script sono:

  1. Vendor - Un intero a due byte utilizzato per ricavare il nome del vendor

  2. Product Name - Una stringa che rappresenta una breve descrizione del prodotto/della famiglia di prodotti; la lunghezza massima è di 32 caratteri

  3. Serial Number - Un numero esadecimale a sei byte memorizzato in little endian

  4. Device Type - Un intero a due byte utilizzato per ricavare il tipo di dispositivo. Questo campo spesso non viene utilizzato ed è impostato a 0.

  5. Product Code - Il Product Code assegnato dal vendor identifica un particolare prodotto all'interno di un tipo di dispositivo. Lo script non ha accesso alle tabelle dei product code dei vendor, quindi il numero viene solo visualizzato.

  6. Revision - Due interi a un byte che indicano il numero di revisione major e minor del dispositivo

  7. Device IP - Quattro interi a un byte che rappresentano l'indirizzo IP configurato del dispositivo. Questo indirizzo spesso differisce dall'indirizzo IP scansionato dallo script.

####Storia e background

Dall'articolo di Wikipedia su EtherNet/IP http://en.wikipedia.org/wiki/EtherNet/IP

EtherNet/IP è stato sviluppato alla fine degli anni '90 da Rockwell Automation come parte delle soluzioni di networking Ethernet industriale di Rockwell. Rockwell ha dato a EtherNet/IP il suo nome e lo ha consegnato a ODVA, che ora gestisce il protocollo e garantisce l'interoperabilità tra sistemi multivendor richiedendo l'adesione a standard consolidati ogni volta che oggi vengono sviluppati nuovi prodotti che utilizzano il protocollo.

EtherNet/IP è utilizzato più comunemente nei sistemi di controllo dell'automazione industriale, come impianti di trattamento delle acque, impianti di produzione e servizi di pubblica utilità. Diversi vendor di sistemi di controllo hanno sviluppato controllori di automazione programmabili e I/O in grado di comunicare tramite EtherNet/IP.

####Installazione

Questo script richiede Nmap per essere eseguito. Se non hai Nmap, scaricalo e installalo seguendo le istruzioni di Nmap. http://nmap.org/download.html

#####Windows

Dopo aver scaricato enip-enumerate.nse, dovrai spostarlo nella directory NSE Scripts; questa operazione deve essere eseguita come amministratore. Vai su Start -> Programmi -> Accessori, fai clic con il tasto destro su 'Prompt dei comandi'. Seleziona 'Esegui come amministratore'.

root@kitploit:~
move enip-enumerate.nse C:\Program Files (x86)\Nmap\scripts

#####Linux

Dopo aver scaricato enip-enumerate.nse, dovrai spostarlo nella directory NSE Scripts; questa operazione deve essere eseguita come sudo/root.

root@kitploit:~
sudo mv enip-enumerate.nse /usr/share/nmap/scripts
	

####Utilizzo

In una finestra di terminale/Prompt dei comandi usa uno dei seguenti comandi, dove è il target che desideri scansionare per EtherNet/IP.

root@kitploit:~
Windows: nmap -p 44818 --script enip-enumerate <host>

Linux: sudo nmap -p 44818 --script enip-enumerate <host> 

	

####Note

La versione ufficiale di questo script è mantenuta su:https://github.com/digitalbond/Redpoint/enip-enumerate.nse

Questo script utilizza la porta di destinazione standard Ethernet/IP TCP 44818.

==

###fox-info.nse ![Esempio di output di fox-info] (http://www.digitalbond.com/wp-content/uploads/2014/10/fox-example.png)

####Autore

Stephen Hilt
Digital Bond, Inc

####Scopo e descrizione

Lo scopo di fox-info.nse è innanzitutto identificare i dispositivi che eseguono il protocollo Niagara Fox. Questo script si basa sul lavoro e sugli esempi forniti da Billy Rios e Terry McCorkle.

Dopo una connessione riuscita a un dispositivo Niagara Fox, lo script analizza la risposta inviata dal dispositivo e visualizza le informazioni enumerate.

Le proprietà Niagara Fox interrogate da questo script sono:

  1. Fox Version - La versione del protocollo Fox attualmente in esecuzione sul dispositivo.

  2. Host Name - L'host name del dispositivo. Di solito è il nome workstation del dispositivo remoto.

  3. Host Address - L'indirizzo IP configurato sul dispositivo. Può essere l'indirizzo IP scansionato o un indirizzo privato se il dispositivo si trova dietro un sistema che esegue network address translation(NAT).

  4. Application Name - Il nome dell'applicazione in esecuzione sul dispositivo remoto. Tipicamente si tratta di "Workbench" o "Station".

  5. Application Version - Il numero di versione del nome applicazione enumerato in precedenza.

  6. VM Name - Il nome della Java Virtual Machine che esegue l'applicazione.

  7. VM Version - Il numero di versione della VM in esecuzione sul dispositivo remoto. Con ogni probabilità si tratta del numero di versione Java HotSpot.

  8. OS Name - Nome del sistema operativo che esegue il protocollo Fox sul dispositivo, ad esempio QNX o Windows XP.

  9. Time Zone - Il fuso orario locale configurato sul dispositivo.

  10. Host ID - un ID univoco utilizzato per identificare il dispositivo.

  11. VM UUID - L'Universally Unique Identifier della Java VM.

  12. Brand ID - Ogni station e tool con licenza ha un Brand Identifier. Questo campo contiene un descrittore testuale che l'OEM sceglie come identificatore per la propria linea di prodotti. Ogni station o tool può avere una sola voce BrandID.

####Storia e background

Fox è un protocollo TCP/IP proprietario utilizzato per la comunicazione station-to-station e workbench-to-station nel Niagara Framework delle soluzioni di automazione degli edifici di Tridium. Tridium è una consociata interamente controllata da Honeywell.

####Installazione

Questo script richiede Nmap per essere eseguito. Se non hai Nmap, scaricalo e installalo, vedi: http://nmap.org/download.html

#####Windows

Dopo aver scaricato fox-info.nse, spostalo nella directory NSE Scripts. Questa operazione deve essere eseguita come amministratore. Vai su Start -> Programmi -> Accessori, fai clic con il tasto destro su 'Prompt dei comandi'. Seleziona 'Esegui come amministratore'.

root@kitploit:~
move fox-info.nse C:\Program Files (x86)\Nmap\scripts

#####Linux

Dopo aver scaricato fox-info.nse, spostalo nella directory NSE Scripts. Questa operazione deve essere eseguita come sudo/root.

root@kitploit:~
sudo mv fox-info.nse /usr/share/nmap/scripts
	

####Utilizzo

In una finestra di terminale/Prompt dei comandi usa uno dei seguenti comandi, dove host è il target che desideri scansionare per dispositivi che supportano il protocollo Niagara Fox.

root@kitploit:~
Windows: nmap -p 1911 --script fox-info <host>
	
Linux: sudo nmap -p 1911 --script fox-info <host> 

####Note

La versione ufficiale di questo script è mantenuta su: https://github.com/digitalbond/Redpoint/blob/master/fox-info.nse

Questo script utilizza la porta standard di origine e destinazione Niagara Fox TCP 1911.

==

###modicon-info.nse ![Esempio di output di modicon-info] (http://www.digitalbond.com/wp-content/uploads/2014/09/Modicon.png)

####Autore

Stephen Hilt
Digital Bond, Inc

####Scopo e descrizione

Lo scopo di modicon-info.nse è innanzitutto identificare ed enumerare i PLC Modicon prodotti da Schneider Electric.

Lo script identifica innanzitutto se un dispositivo connesso via IP sta inviando una richiesta Modbus con function code 43. La risposta è sufficiente per identificare i dispositivi Modbus anche se non supportano il function code 43. Se il nome del vendor nella risposta contiene la stringa Schneider, lo script enumererà il dispositivo utilizzando il function code 90 Modbus proprietario di Schneider Electric.

Le proprietà del function code 43 e del function code 90 Modbus incluse nell'output dello script sono:

  1. Vendor Name - Questo script ignorerà tutti i dispositivi che non contengono "Schneider".2) Modulo di rete - Il modulo di comunicazione Ethernet nel PLC Modicon.

  2. Modulo CPU - Il modulo CPU nel PLC Modicon.

  3. Firmware - La versione del firmware sul modulo CPU nel PLC Modicon.

  4. Scheda di memoria - Il numero di modello della scheda di memoria nel modulo CPU.

  5. Informazioni di progetto - Informazioni varie sul progetto, come il nome del progetto, la versione di Unity Pro utilizzata per configurarlo, e il nome della workstation che ha programmato il PLC. Alcuni dispositivi forniscono la posizione del file .stu sulla workstation che ha configurato il dispositivo.

  6. Revisione del progetto - La revisione del progetto in esecuzione sul PLC; il numero di revisione del progetto aumenta di 1 ogni volta che il progetto viene compilato e trasferito al PLC.

  7. Data ultima modifica del progetto - Un timestamp che memorizza l'ultima volta in cui il PLC è stato modificato da un tecnico.

####Storia e contesto

Dall'articolo di Wikipedia sui controllori logici programmabili http://en.wikipedia.org/wiki/Programmable_logic_controller#History:

Nel 1968 la GM Hydra-Matic (la divisione trasmissioni automatiche della General Motors) emise una richiesta di proposte per una sostituzione elettronica dei sistemi a relè cablati, basata su un white paper scritto dall'ingegnere Edward R. Clark. La proposta vincente arrivò da Bedford Associates di Bedford, Massachusetts. Il primo PLC, designato 084 perché era l'ottantaquattresimo progetto di Bedford Associates, fu il risultato.[2] Bedford Associates fondò una nuova azienda dedicata allo sviluppo, produzione, vendita e assistenza di questo nuovo prodotto: Modicon, che stava per MOdular DIgital CONtroller. Una delle persone che lavorarono a quel progetto fu Dick Morley, considerato il "padre" del PLC.[3] Il marchio Modicon fu venduto nel 1977 a Gould Electronics, e successivamente acquisito dalla società tedesca AEG e poi dalla francese Schneider Electric, l'attuale proprietario.

####Installazione

Questo script richiede Nmap per funzionare. Se non hai Nmap, scaricalo e installalo.

root@kitploit:~
http://nmap.org/download.html

#####Windows

Dopo aver scaricato modicon-info.nse, spostalo nella directory degli script NSE. Questa operazione richiede privilegi di amministratore. Vai su Start -> Programmi -> Accessori, fai clic con il tasto destro su 'Prompt dei comandi'. Seleziona 'Esegui come amministratore'.

root@kitploit:~
move modicon-info.nse C:\Program Files (x86)\Nmap\scripts

#####Linux

Dopo aver scaricato modicon-info.nse, spostalo nella directory degli script NSE. Questa operazione deve essere eseguita come sudo/root.

root@kitploit:~
sudo mv modicon-info.nse /usr/share/nmap/scripts
	

####Utilizzo

In una finestra di terminale/Prompt dei comandi usa uno dei seguenti comandi, dove è il target che desideri scansionare per i PLC Modicon.

root@kitploit:~
Windows: nmap -p 502 --script modicon-info.nse -sV <host>

Linux: sudo nmap -p 502 --script modicon-info.nse -sV <host> 

	

####Note

La versione ufficiale di questo script è mantenuta su:https://github.com/digitalbond/Redpoint/modicon-info.nse

Questo script utilizza la porta di destinazione Modbus standard TCP 502.

== ###omrontcp-info.nse & omronudp-info.nse ![omrontcp/udp-info Sample Output] (http://www.digitalbond.com/wp-content/uploads/2015/02/Region.png)

####Autore

Stephen Hilt
Digital Bond, Inc

####Scopo e descrizione

Lo scopo di omrontcp-info e omronudp-info è identificare ed enumerare i dispositivi OMRON FINS. Omron ha sviluppato il protocollo ed è il principale produttore dei dispositivi che supportano questo protocollo.

Un dispositivo OMRON FINS viene identificato con certezza interrogando TCP/9600 o UDP 9600 con un comando Read Controller Status (0x0501). I messaggi di risposta determineranno se si tratta di un dispositivo OMRON FINS e analizzeranno le informazioni per enumerare il dispositivo.

Il comando OMRON FINS Read Controller Status recupera informazioni di base sul dispositivo, come il modello del controllore, la versione del controllore, la dimensione dell'area di programma, la dimensione IOM, il numero di parole DM, la dimensione timer/contatori, la dimensione della DM di espansione, il numero di passi/transizioni, il tipo di scheda di memoria e la dimensione della scheda di memoria.

Le proprietà OMRON FINS analizzate da questo script sono:

  1. Modello del controllore - Una stringa non più lunga di 20 byte che rappresenta il modello del controllore.

  2. Versione del controllore - Una stringa per rappresentare un numero di versione non più lungo di 20 byte.

  3. Per uso di sistema - Riservato all'uso di sistema. Informazioni raccolte solo per vedere se c'è qualcosa di interessante in questo campo.

  4. Dimensione dell'area di programma - La dimensione dell'area PC Setup e dell'area di programma.

  5. Dimensione IOM - La dimensione dell'area in cui possono essere usati i comandi bit/word.

  6. Numero di parole DM - Totale di parole nell'area DM.

  7. Dimensione timer/contatori - Numero massimo di timer/contatori disponibili.

  8. Dimensione DM di espansione - Banchi nell'area DM di espansione.

  9. Numero di passi/transizioni - Numero massimo di passi/transizioni disponibili.

  10. Tipo di scheda di memoria - 00: Nessuna scheda di memoria 01: SPRAM 02: EPROM 03: EEPROM

  11. Dimensione della scheda di memoria - Dimensione della scheda di memoria in Kb

####Storia e contesto

FINS, o Factory Intelligent Network Services, è un protocollo che utilizza comandi per comunicare con i PLC. Il protocollo supporta una versione su UDP e una versione su TCP. Ci sono alcune differenze tra i due protocolli, ed è per questo che sono stati scritti due script per supportare la scansione sia dei servizi TCP che UDP.

OMRON FINS è utilizzato nei sistemi di controllo dell'automazione industriale, come impianti di trattamento delle acque, stabilimenti di produzione e servizi pubblici.

####Installazione

Questo script richiede Nmap per funzionare. Se non hai Nmap, scarica e installa Nmap seguendo le istruzioni di Nmap. http://nmap.org/download.html

#####Windows

Dopo aver scaricato enip-enumerate.nse, dovrai spostarlo nella directory degli script NSE; questa operazione dovrà essere eseguita come amministratore. Vai su Start -> Programmi -> Accessori, fai clic con il tasto destro su 'Prompt dei comandi'. Seleziona 'Esegui come amministratore'.

root@kitploit:~
move omron*.nse C:\Program Files (x86)\Nmap\scripts

#####Linux

Dopo aver scaricato enip-enumerate.nse, dovrai spostarlo nella directory degli script NSE; questa operazione dovrà essere eseguita come sudo/root.

root@kitploit:~
sudo mv omron*.nse /usr/share/nmap/scripts
	

####Utilizzo

In una finestra di terminale/Prompt dei comandi usa uno dei seguenti comandi, dove è il target che desideri scansionare per OMRON FINS.

root@kitploit:~
Windows: nmap -p 9600 --script omrontcp-info <host> 
Windows: nmap -sU -p 9600 --script omronudp-info <host>

Linux: nmap -p 9600 --script omrontcp-info <host> 
Linux: sudo nmap -sU -p 9600 --script omronudp-info <host>

	

####Note

La versione TCP ufficiale di questo script è mantenuta su:https://github.com/digitalbond/Redpoint/omrontcp-info.nse

La versione UDP ufficiale di questo script è mantenuta su:https://github.com/digitalbond/Redpoint/omronudp-info.nse

Questi script utilizzano le porte di destinazione standard FINS e TCP/FINS, UDP 9600 e TCP 9600.

== ###pcworx-info.nse ![pcworx-info Sample Output] (http://www.digitalbond.com/wp-content/uploads/2015/02/pcworx.png)

####Autore

Stephen Hilt
Digital Bond, Inc

####Scopo e descrizione

Lo scopo di pcworx-info.nse è identificare ed enumerare i PLC Phoenix Contact ILC tramite il protocollo PC Worx. Un PLC viene identificato con certezza interrogando TCP/1962 con richieste pre-generate. I messaggi di risposta determineranno se si tratta di un PLC compatibile con PC Worx e porteranno a un'ulteriore enumerazione.

In totale, con questo script verranno inviati tre pacchetti al PLC per stabilire le comunicazioni e quindi richiedere le informazioni al PLC.

Le proprietà PC Worx analizzate da questo script sono:

  1. Tipo di PLC - Una stringa che rappresenta il tipo di PLC ILC.

  2. Numero di modello - Una stringa di numeri ASCII che rappresenta il modello del PLC, come ad esempio 2737193.

  3. Versione del firmware - Una stringa che rappresenta la versione del firmware in esecuzione sul PLC.

  4. Data del firmware - Una stringa che rappresenta la data di compilazione del firmware in esecuzione sul PLC.

  5. Ora del firmware - Una stringa che rappresenta l'ora di compilazione del firmware in esecuzione sul PLC.

####Storia e contesto

Dalla pagina prodotto Phoenix Contact Link

PC Worx è il software di engineering coerente per tutti i controller di Phoenix Contact. Combina programmazione - secondo IEC 61131, configurazione fieldbus e diagnostica di sistema - in un'unica soluzione software. Ciò garantisce un'interazione ottimale tra hardware e software. PC Worx può essere utilizzato per implementare concetti di automazione complessi. A seconda del numero di I/O da supportare, hai due versioni tra cui scegliere: PC WORX BASIC e PC WORX PRO.

####Installazione

Questo script richiede Nmap per funzionare. Se non hai Nmap, scarica e installa Nmap seguendo le istruzioni di Nmap. http://nmap.org/download.html

#####Windows

Dopo aver scaricato pcworx-info.nse, dovrai spostarlo nella directory degli script NSE; questa operazione dovrà essere eseguita come amministratore. Vai su Start -> Programmi -> Accessori, fai clic con il tasto destro su 'Prompt dei comandi'. Seleziona 'Esegui come amministratore'.

root@kitploit:~
move pcworx-info.nse C:\Program Files (x86)\Nmap\scripts

#####Linux

Dopo aver scaricato pcworx-info.nse, dovrai spostarlo nella directory degli script NSE; questa operazione dovrà essere eseguita come sudo/root.

root@kitploit:~
sudo mv pcworx-info.nse /usr/share/nmap/scripts
	

####Utilizzo

In una finestra di terminale/Prompt dei comandi usa uno dei seguenti comandi, dove è il target che desideri scansionare per i PLC Phoenix Contact.

root@kitploit:~
Windows: nmap -p 1962 --script pcworx-info -sV <host>

Linux: nmap -p 1962 --script pcworx-info -sV <host> 

	

####Note

La versione ufficiale di questo script è mantenuta su:https://github.com/digitalbond/Redpoint/pcworx-info.nse

Questo script utilizza la porta di destinazione PC Worx standard TCP 1962.

==

###proconos-info.nse ![proconos-info Sample Output] (http://www.digitalbond.com/wp-content/uploads/2015/02/pcworx.png)

####Autore

Stephen Hilt
Digital Bond, Inc

####Scopo e descrizione

Lo scopo di proconos-info.nse è identificare ed enumerare i PLC tramite il protocollo ProConOS/MultiProg. Un PLC viene identificato con certezza interrogando TCP/20547 con richieste pre-generate. I messaggi di risposta determineranno se si tratta di un PLC compatibile con ProConOS/MultiProg e porteranno a un'ulteriore enumerazione.

È necessaria una sola richiesta per ottenere queste informazioni dal PLC.

Le proprietà ProConOS/MultiProg analizzate da questo script sono:

  1. Runtime Ladder Logic - Una stringa che mostra il nome del runtime, la versione e la data di compilazione.

  2. Tipo di PLC - Una stringa che rappresenta il tipo di PLC e la versione del firmware.

  3. Nome del progetto - Una stringa che rappresenta il nome del progetto attualmente in esecuzione sul PLC.

  4. Progetto di avvio - Una stringa che rappresenta il nome del progetto impostato per l'avvio sul PLC.

  5. Codice sorgente del progetto - Una stringa che rappresenta se il codice sorgente del progetto è disponibile o meno.

####Installazione

Questo script richiede Nmap per funzionare. Se non hai Nmap, scarica e installa Nmap seguendo le istruzioni di Nmap. http://nmap.org/download.html

#####Windows

Dopo aver scaricato proconos-info.nse, dovrai spostarlo nella directory degli script NSE; questa operazione dovrà essere eseguita come amministratore. Vai su Start -> Programmi -> Accessori, fai clic con il tasto destro su 'Prompt dei comandi'. Seleziona 'Esegui come amministratore'.

root@kitploit:~
move proconos-info.nse C:\Program Files (x86)\Nmap\scripts

#####Linux

Dopo aver scaricato proconos-info.nse, dovrai spostarlo nella directory degli script NSE; questa operazione dovrà essere eseguita come sudo/root.

root@kitploit:~
sudo mv proconos-info.nse /usr/share/nmap/scripts
	

####Utilizzo

In una finestra di terminale/Prompt dei comandi usa uno dei seguenti comandi, dove è il target che desideri scansionare per i PLC ProConOS/MultiProg.

root@kitploit:~
Windows: nmap -p 20547 --script proconos-info -sV <host>

Linux: nmap -p 20547 --script proconos-info -sV <host> 

	

####Note

La versione ufficiale di questo script è mantenuta su:https://github.com/digitalbond/Redpoint/proconos-info.nse

Questo script utilizza la porta di destinazione ProConOS/MultiProg standard TCP 20547.

==

###s7-enumerate.nse ![s7-enumerate Sample Output] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/04/S7screenshot.png)

####Autore

Stephen Hilt
Digital Bond, Inc

Nota: questo script ha lo scopo di fornire le stesse funzionalità di PLCScan all'interno di Nmap. Alcune delle informazioni che vengono raccolte da PLCScan non sono state trasferite in questo NSE; queste informazioni possono essere estratte dai pacchetti ricevuti.

Ringraziamenti a Positive Research e Dmitry Efanov per aver creato PLCScan

####Scopo e descrizione

Lo scopo di s7-enumerate.nse è identificare ed enumerare i PLC Siemens SIMATIC S7. Un S7 viene identificato con certezza interrogando TCP/102 con messaggi COTP e S7COMM pre-generati. I messaggi di risposta determineranno se si tratta di un PLC S7 e porteranno a un'ulteriore enumerazione. Nota: TCP/102 è utilizzato da molteplici applicazioni, una delle quali è S7COMM.

Due richieste S7 vengono inviate dopo che è stata stabilita una comunicazione S7 riuscita.

Queste richieste recuperano informazioni di base su hardware, firmware e alcune informazioni descrittive come identificazione dell'impianto e nome di sistema. Queste informazioni vengono poi restituite a Nmap e presentate nei formati di output standard supportati da Nmap.

Le proprietà S7 analizzate da questo script sono:

  1. Modulo - Una stringa che rappresenta l'identificazione del modulo interrogato. Identifica il modello S7, ad es. 315, 412, 1200, ...

  2. Hardware di base - Una stringa che rappresenta l'identificazione dell'hardware di base interrogato.

  3. Versione - Una stringa che rappresenta l'identificazione della versione dell'hardware di base.

  4. Nome di sistema - Una stringa che rappresenta il nome di sistema assegnato al dispositivo. Può fornire informazioni utili se il proprietario dell'asset ha implementato una convenzione di denominazione strutturata.

  5. Tipo di modulo - Una stringa che è il nome del tipo del modulo inserito.

  6. Numero di serie - Una stringa che è il numero di serie del modulo. Interessa principalmente a fini di inventario.

  7. Copyright - Una stringa che contiene le informazioni sul copyright. Di solito riporta "Original Siemens Equipment", ma è possibile che un'implementazione di terze parti dello stack di protocollo S7 fornisca informazioni aggiuntive.

  8. Identificazione dell'impianto - Una stringa che rappresenta l'identificazione dell'impianto configurata sul dispositivo. Questa stringa è stata raramente osservata nelle nostre scansioni, ma potrebbe fornire informazioni utili.

####Storia e contesto

Dall'articolo di Wikipedia su SIMATIC http://simple.wikipedia.org/wiki/SIMATIC:

SIMATIC è il nome di un sistema di automazione sviluppato dall'azienda tedesca Siemens. Il sistema di automazione controlla macchine utilizzate per la produzione industriale. Questo sistema consente alle macchine di funzionare automaticamente.

####Installazione

Questo script richiede Nmap per funzionare. Se non hai Nmap, scarica e installa Nmap seguendo le istruzioni di Nmap. http://nmap.org/download.html

#####Windows

Dopo aver scaricato s7-enumerate.nse, dovrai spostarlo nella directory degli script NSE; questa operazione dovrà essere eseguita come amministratore. Vai su Start -> Programmi -> Accessori, fai clic con il tasto destro su 'Prompt dei comandi'. Seleziona 'Esegui come amministratore'.

root@kitploit:~
move s7-enumerate.nse C:\Program Files (x86)\Nmap\scripts

#####Linux

Dopo aver scaricato s7-enumerate.nse, dovrai spostarlo nella directory degli script NSE; questa operazione dovrà essere eseguita come sudo/root.

root@kitploit:~
sudo mv s7-enumerate.nse /usr/share/nmap/scripts
	

####Utilizzo

In una finestra di terminale/Prompt dei comandi usa uno dei seguenti comandi, dove è il target che desideri scansionare per i PLC S7.

root@kitploit:~
Windows: nmap -p 102 --script s7-enumerate -sV <host>

Linux: sudo nmap -p 102 --script s7-enumerate -sV <host> 

	

####Note

La versione ufficiale di questo script è mantenuta su:https://github.com/digitalbond/Redpoint/s7-enumerate.nse

Questo script utilizza la porta di destinazione S7COMMS standard TCP 102.

Scarica lo strumento