Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Redpoint — Scripts NSE do Nmap para descoberta e enumeração de ICS/SCADA—BACnet, EtherNet/IP, CoDeSys, Fox, Modicon, Omron, S7—usando consultas de protocolo para avaliações de segurança. | Kitploit
Ferramentas/GitHubGitHub/digitalbond/redpoint
ReconhecimentoSegurança SCADA/ICSColeta de InformaçõesSegurança de RedeTestes de Penetração
GitHubdigitalbond/redpoint

Redpoint

Scripts NSE do Nmap para descoberta e enumeração de ICS/SCADA—BACnet, EtherNet/IP, CoDeSys, Fox, Modicon, Omron, S7—usando consultas de protocolo para avaliações de segurança.

Ver Repositório
469150há 6 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

#Redpoint

###Ferramentas de Enumeração ICS da Digital Bond

O Redpoint é um projeto de pesquisa da Digital Bond para enumerar aplicações e dispositivos ICS.

Usamos nossas ferramentas Redpoint em avaliações para descobrir dispositivos ICS e obter informações que seriam úteis em testes secundários. Uma parte dessas ferramentas será disponibilizada ao público como scripts NSE do Nmap neste repositório.

As ferramentas Redpoint usam comandos legítimos de protocolo ou de aplicação para descobrir e enumerar dispositivos e aplicações. Não há qualquer esforço para explorar ou derrubar nada. No entanto, muitos dispositivos e aplicações ICS são frágeis e podem travar ou responder de forma inesperada a qualquer tráfego não esperado, portanto use com cuidado.

Cada script está documentado abaixo e disponível em um arquivo .nse neste repositório.

  • BACnet-discover-enumerate.nse - Identifica e enumera dispositivos BACnet

  • codesys-v2-discover.nse - Identifica e enumera controladores CoDeSys V2

  • enip-enumerate.nse - Identifica e enumera dispositivos EtherNet/IP da Rockwell Automation e de outros fabricantes

  • fox-info.nse - Identifica e enumera dispositivos Niagara Fox

  • modicon-info.nse - Identifica e enumera CLPs Modicon da Schneider Electric

  • omron-info.nse - Identifica e enumera CLPs Omron

  • pcworx-info.nse - Identifica e enumera CLPs com protocolo PC Worx habilitado

  • proconos-info.nse - Identifica e enumera CLPs com ProConOS habilitado

  • s7-enumerate.nse - Identifica e enumera CLPs Siemens SIMATIC S7

==

###BACnet-discover-enumerate.nse

![Exemplo de saída do BACnet-discover-enumerate] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/03/BACnet-nse.png)

####Autores

Stephen Hilt and Michael Toecker
Digital Bond, Inc

####Objetivo e Descrição

O objetivo do BACnet-discover-enumerate.nse é, primeiro, identificar se um dispositivo conectado via IP está executando BACnet. Isso funciona consultando o dispositivo com uma mensagem BACnet pré-gerada. Versões mais recentes do protocolo BACnet responderão com um reconhecimento; versões mais antigas retornarão uma mensagem de erro BACnet. A presença do reconhecimento ou do erro é suficiente para comprovar que há um dispositivo compatível com BACnet no endereço IP alvo.

Em segundo lugar, se um reconhecimento for recebido, este script também tentará enumerar várias propriedades BACnet em um dispositivo BACnet responsivo. Novamente, o dispositivo é consultado com uma mensagem BACnet pré-gerada. A enumeração bem-sucedida usa solicitações especialmente elaboradas e não será bem-sucedida se o dispositivo BACnet não suportar a propriedade.

As propriedades BACnet consultadas por este script são:

  1. Vendor ID - Um número que corresponde a um fabricante BACnet registrado. O script também retorna o nome do fabricante associado.

  2. Vendor Number - Uma string que representa o nome do fabricante configurado no dispositivo. Isso pode diferir do Vendor ID, pois o Vendor ID é o número registrado na ASHARE.

  3. Object Identifier - Um número que identifica exclusivamente o dispositivo. Se o Object-Identifier for conhecido, é possível enviar comandos com software cliente BACnet, inclusive aqueles que alteram valores, programas, agendas e outras informações operacionais em dispositivos BACnet. Esta é uma propriedade obrigatória para todos os dispositivos BACnet.

  4. Firmware Revision - O número de revisão do firmware no dispositivo BACnet.

  5. Application Software Revision - O número de revisão do software usado para comunicação BACnet.

  6. Object Name - Uma string definida pelo usuário que atribui um nome ao dispositivo BACnet, normalmente inserida por técnicos no comissionamento. Esta é uma propriedade obrigatória para todos os dispositivos BACnet.

  7. Model Name - O modelo do dispositivo BACnet

  8. Description - Uma string definida pelo usuário para descrever o dispositivo, normalmente inserida por técnicos no comissionamento

  9. Location - Uma string definida pelo usuário para registrar a localização física do dispositivo, normalmente inserida por técnicos no comissionamento

  10. Broadcast Distribution Table (BDT) - Uma lista dos dispositivos BACnet de gerenciamento de broadcast (BBMD) na rede BACnet. Isso identificará todas as sub-redes que fazem parte da rede BACnet.

  11. Foreign Device Table (FDT) - Uma lista de dispositivos estrangeiros registrados no dispositivo BACnet. Um dispositivo estrangeiro é qualquer dispositivo que não esteja em uma sub-rede que faça parte da rede BACnet nem esteja no BDT. Os dispositivos estrangeiros geralmente estão localizados em redes externas e podem ser o endereço IP de um atacante.

O BDT e o FDT podem ser listas grandes e talvez não sejam desejados em uma varredura Nmap ampla. O script básico não fará o download do BDT e do FDT. Execute o comando com --script-args full=yes para obter o BDT e o FDT; veja a seção Uso.

![Exemplo de saída do BACnet-discover-enumerate com BDT e FDT] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/08/screenshot_bacnet-1.png)

Este script usa um recurso adicionado em 2004 à especificação BACnet para recuperar o Object Identifier de um dispositivo com uma única solicitação, sem ingressar na rede BACnet como dispositivo estrangeiro. (Consulte o Addendum a da ANSI/ASHRAE à norma ANSI/ASHRAE 135-2001 para obter detalhes)

####Histórico e Contexto

Do artigo da Wikipédia sobre BACnet http://en.wikipedia.org/wiki/BACnet:

BACnet é um protocolo de comunicação para redes de automação e controle predial. É um protocolo padronizado pela ASHRAE, ANSI e ISO[1]. A porta padrão para tráfego BACnet é UDP/47808.

BACnet é usado em sistemas de automação e controle predial em aplicações como controle de aquecimento, ventilação e ar-condicionado, controle de iluminação, controle de acesso e sistemas de detecção de incêndio e seus equipamentos associados. O protocolo BACnet fornece mecanismos para que dispositivos computadorizados de automação predial troquem informações, independentemente do serviço predial específico que executam.

####Instalação

Este script requer o nmap para ser executado. Se você não tiver o Nmap, baixe e instale o Nmap seguindo as instruções do Nmap. http://nmap.org/download.html

#####Windows

Após baixar o bacnet-discover.nse, você precisará movê-lo para o diretório de scripts NSE; isso deverá ser feito como administrador. Vá em Iniciar -> Programas -> Acessórios e clique com o botão direito em 'Prompt de Comando'. Selecione 'Executar como administrador'.

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

#####Linux

Após baixar o BACnet-discover-enumerate.nse, você precisará movê-lo para o diretório de scripts NSE; isso deverá ser feito como sudo/root.

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

####Uso

Em uma janela de terminal/Prompt de Comando, use um dos seguintes comandos, onde host é o alvo que você deseja verificar para BACNet. Use --script-args full=yes se quiser que a saída inclua o BDT e o 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>

Para acelerar os resultados não realizando consultas DNS durante a varredura, use a opção -n; também desative os pings para determinar se o dispositivo está ativo usando a opção -Pn para obter resultados completos.

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

	

####Notas

A versão oficial deste script é mantida em: https://github.com/digitalbond/Redpoint/blob/master/BACnet-discover-enumerate.nse

Este script usa a porta padrão de origem e destino BACnet de UDP 47808.

Dispositivos BACnet mais recentes (após 25 de fevereiro de 2004) são obrigados pela especificação a responder a solicitações específicas que usam um object-identifier 'curinga' com seu próprio número de instância válido (consulte o Addendum a da ANSI/ASHRAE à norma ANSI/ASHRAE 135-2001). Versões mais antigas de dispositivos BACnet podem não responder a esse curinga e responderão com um pacote de erro BACnet.

Este script não tenta ingressar em uma rede BACnet como dispositivo estrangeiro; ele simplesmente envia solicitações BACnet diretamente a um dispositivo endereçável por IP.

== ###codesys-v2-discover.nse ![Exemplo de saída do codesys-v2-discover] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2016/03/codesys-v2-discover-win.png)

####Autores

Stephen Hilt, Reid Wightman

####Objetivo e Descrição

O script codesys-v2-discover.nse identifica CLPs que executam o runtime de lógica ladder versão 2, produzido pela 3S-Software GmbH. Esses controladores falam um protocolo binário proprietário para instalar nova lógica ladder, bem como depurar a lógica ladder em execução. O protocolo pode exigir autenticação. Na prática, poucos dispositivos suportam esse comportamento. Este script não testa a autenticação.

Este script envia ao dispositivo uma simples solicitação de identificação. A mensagem de resposta pode incluir o sistema operacional e a versão específica (point release) do CoDeSys em execução no CLP.

####Histórico e Contexto

Em abril de 2012, a Digital Bond divulgou detalhes de que o sistema de runtime do CoDeSys era inseguro por design (insecure-by-design). O protocolo normalmente usa TCP/1200 ou TCP/2455 como porta de controle. O protocolo de controle contém funções para carregar e baixar arquivos dos controladores. O protocolo também pode fornecer um shell de comando, que oferece funcionalidades adicionais. Os recursos do shell normalmente incluem a capacidade de iniciar e interromper a lógica ladder em execução, bem como recuperar informações de depuração do controlador.

O advisory inicial se aplicava apenas à versão 2 do runtime. A Digital Bond também lançou um script Nmap de prova de conceito, escrito originalmente por HD Moore como parte de seu projeto de varredura na internet.

Um script Nessus também foi produzido para esta versão do protocolo; no entanto, o script Nessus contém um erro e não verifica corretamente controladores com CPUs big-endian.

####Instalação

Este script requer o Nmap para ser executado. Se você não tiver o Nmap, baixe e instale o Nmap seguindo as instruções do Nmap. http://nmap.org/download.html

#####Windows

Após baixar o enip-enumerate.nse, você precisará movê-lo para o diretório de scripts NSE; isso deverá ser feito como administrador. Vá em Iniciar -> Programas -> Acessórios e clique com o botão direito em 'Prompt de Comando'. Selecione 'Executar como administrador'.

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

#####Linux

Após baixar o enip-enumerate.nse, você precisará movê-lo para o diretório de scripts NSE; isso deverá ser feito como sudo/root.

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

####Uso

Em uma janela de terminal/Prompt de Comando, use um dos seguintes comandos, onde é o alvo que você deseja verificar para 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>

####Notas

A versão oficial deste script é mantida em:https://github.com/digitalbond/Redpoint/codesys-v2-discover.nse

Este script tentará enviar as solicitações CoDeSys em qualquer porta aberta. Embora as portas padrão 1200 ou 2455 sejam usadas pela maioria dos controladores, alguns usam portas alternativas, como 1201, 1217, e ainda outras portas.

== ###enip-enumerate.nse ![Exemplo de saída do enip-enumerate] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/04/enip.png)

####Autor

Stephen Hilt
Digital Bond, Inc

####Objetivo e Descrição

O objetivo do enip-enumerate.nse é identificar e enumerar dispositivos EtherNet/IP. A Rockwell Automation / Allen Bradley desenvolveu o protocolo e é a principal fabricante desses dispositivos, por exemplo, ControlLogix e MicroLogix, mas é um padrão aberto e vários fabricantes oferecem uma placa de interface ou solução EtherNet/IP.

Um dispositivo EtherNet/IP é identificado positivamente consultando TCP/44818 com uma mensagem List Identities (0x63). As mensagens de resposta determinarão se é um dispositivo EtherNet/IP e analisarão as informações para enumerar o dispositivo.

A solicitação List Identities do EtherNet/IP obtém informações básicas sobre o dispositivo, conhecidas como a "chave eletrônica" do dispositivo. As informações incluem Vendor, Product Name, Serial Number, Device Type, Product Code e Revision Number. O script também analisa o endereço IP configurado do dispositivo a partir do campo Socket Address no quadro EtherNet/IP do pacote.

As propriedades EtherNet/IP analisadas por este script são:

  1. Vendor - Um inteiro de dois bytes usado para consultar o nome do fabricante (Vendor Name)

  2. Product Name - Uma string que representa uma breve descrição do produto/família de produtos, com comprimento máximo de 32 caracteres

  3. Serial Number - Um número hexadecimal de seis bytes armazenado em little endian

  4. Device Type - Inteiro de dois bytes usado para consultar o tipo de dispositivo. Esse campo geralmente não é usado e é definido como 0.

  5. Product Code - O Product Code atribuído pelo fabricante identifica um produto específico dentro de um tipo de dispositivo. O script não tem acesso às tabelas de códigos de produto do fabricante, portanto o número é exibido.

  6. Revision - Dois inteiros de um byte que listam o número de revisão principal (major) e secundária (minor) do dispositivo

  7. Device IP - Quatro inteiros de um byte que representam o endereço IP configurado do dispositivo. Esse endereço frequentemente difere do endereço IP verificado pelo script.

####Histórico e Contexto

Do artigo da Wikipédia sobre EtherNet/IP http://en.wikipedia.org/wiki/EtherNet/IP

O EtherNet/IP foi desenvolvido no final da década de 1990 pela Rockwell Automation como parte das soluções de rede Ethernet industrial da Rockwell. A Rockwell deu ao EtherNet/IP seu nome e o entregou à ODVA, que hoje gerencia o protocolo e garante a interoperabilidade entre sistemas de vários fabricantes ao exigir a adesão a padrões estabelecidos sempre que novos produtos que utilizam o protocolo são desenvolvidos.

O EtherNet/IP é mais comumente usado em sistemas de controle de automação industrial, como estações de tratamento de água, instalações de manufatura e concessionárias de serviços públicos. Vários fabricantes de sistemas de controle desenvolveram controladores de automação programáveis e I/O capazes de se comunicar via EtherNet/IP.

####Instalação

Este script requer o Nmap para ser executado. Se você não tiver o Nmap, baixe e instale o Nmap seguindo as instruções do Nmap. http://nmap.org/download.html

#####Windows

Após baixar o enip-enumerate.nse, você precisará movê-lo para o diretório de scripts NSE; isso deverá ser feito como administrador. Vá em Iniciar -> Programas -> Acessórios e clique com o botão direito em 'Prompt de Comando'. Selecione 'Executar como administrador'.

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

#####Linux

Após baixar o enip-enumerate.nse, você precisará movê-lo para o diretório de scripts NSE; isso deverá ser feito como sudo/root.

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

####Uso

Em uma janela de terminal/Prompt de Comando, use um dos seguintes comandos, onde é o alvo que você deseja verificar para EtherNet/IP.

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

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

	

####Notas

A versão oficial deste script é mantida em:https://github.com/digitalbond/Redpoint/enip-enumerate.nse

Este script usa a porta de destino padrão Ethernet/IP de TCP 44818.

==

###fox-info.nse ![Exemplo de saída do fox-info] (http://www.digitalbond.com/wp-content/uploads/2014/10/fox-example.png)

####Autor

Stephen Hilt
Digital Bond, Inc

####Objetivo e Descrição

O objetivo do fox-info.nse é identificar primeiro os dispositivos que executam o protocolo Niagara Fox. Este script é baseado no trabalho e nos exemplos fornecidos por Billy Rios e Terry McCorkle.

Após uma conexão bem-sucedida com um dispositivo Niagara Fox, o script analisará a resposta enviada pelo dispositivo e exibirá as informações enumeradas.

As propriedades Niagara Fox consultadas por este script são:

  1. Fox Version - A versão do protocolo Fox atualmente em execução no dispositivo.

  2. Host Name - O nome do host do dispositivo. Geralmente, é o nome da estação de trabalho do dispositivo remoto.

  3. Host Address - O endereço IP configurado no dispositivo. Pode ser o endereço IP verificado ou um endereço privado se o dispositivo estiver atrás de algo que execute tradução de endereços de rede (NAT).

  4. Application Name - O nome do aplicativo em execução no dispositivo remoto. Normalmente, é "Workbench" ou "Station".

  5. Application Version - O número da versão do aplicativo enumerado anteriormente.

  6. VM Name - O nome da Java Virtual Machine que está executando o aplicativo.

  7. VM Version - O número da versão da VM em execução no dispositivo remoto. Provavelmente, será o número da versão do Java HotSpot.

  8. OS Name - Nome do SO que executa o protocolo Fox no dispositivo, por exemplo, QNX ou Windows XP.

  9. Time Zone - O fuso horário local configurado no dispositivo.

  10. Host ID - um ID exclusivo usado para identificar o dispositivo.

  11. VM UUID - O Identificador Universal Exclusivo (UUID) da VM Java.

  12. Brand ID - Toda estação e ferramenta licenciadas possuem um Brand Identifier. Este campo contém um descritor de texto que o OEM escolhe como identificador para sua linha de produtos. Cada estação ou ferramenta pode ter apenas uma entrada BrandID.

####Histórico e Contexto

Fox é um protocolo TCP/IP proprietário usado para comunicação estação a estação e de workbench para estação no Niagara Framework das soluções de automação predial da Tridium. A Tridium é uma subsidiária integral da Honeywell.

####Instalação

Este script requer o Nmap para ser executado. Se você não tiver o Nmap, baixe e instale o Nmap; consulte: http://nmap.org/download.html

#####Windows

Após baixar o fox-info.nse, mova-o para o diretório de scripts NSE. Essa movimentação deve ser feita como administrador. Vá em Iniciar -> Programas -> Acessórios e clique com o botão direito em 'Prompt de Comando'. Selecione 'Executar como administrador'.

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

#####Linux

Após baixar o fox-info.nse, mova-o para o diretório de scripts NSE. Isso deve ser feito como sudo/root.

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

####Uso

Em uma janela de terminal/Prompt de Comando, use um dos seguintes comandos, onde host é o alvo que você deseja verificar para dispositivos que suportam o protocolo Niagara Fox.

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

####Notas

A versão oficial deste script é mantida em: https://github.com/digitalbond/Redpoint/blob/master/fox-info.nse

Este script usa a porta padrão de origem e destino Niagara Fox de TCP 1911.

==

###modicon-info.nse ![Exemplo de saída do modicon-info] (http://www.digitalbond.com/wp-content/uploads/2014/09/Modicon.png)

####Autor

Stephen Hilt
Digital Bond, Inc

####Objetivo e Descrição

O objetivo do modicon-info.nse é, primeiro, identificar e enumerar os CLPs Modicon fabricados pela Schneider Electric.

O script primeiro identifica se um dispositivo conectado por IP está enviando uma solicitação com o código de função 43 do Modbus. A resposta é suficiente para identificar dispositivos Modbus, mesmo que eles não suportem o código de função 43. Se o nome do fabricante na resposta contiver a string Schneider, o script enumerará o dispositivo usando o código de função 90 do Modbus proprietário da Schneider Electric.

As propriedades do código de função 43 e do código de função 90 do Modbus incluídas na saída do script são:

  1. Vendor Name - Este script ignorará todos os dispositivos que não contenham "Schneider".2) Módulo de Rede - O módulo de comunicação Ethernet no PLC Modicon.

  2. Módulo CPU - O módulo CPU no PLC Modicon.

  3. Firmware - A versão do firmware no módulo CPU do PLC Modicon.

  4. Cartão de Memória - O número do modelo do cartão de memória no módulo CPU.

  5. Informações do Projeto - Informações diversas sobre o projeto, como o nome do projeto, a versão do Unity Pro que foi usada para configurá-lo, bem como o nome da estação de trabalho que programou o PLC. Alguns dispositivos fornecerão a localização do arquivo .stu na estação de trabalho que configurou o dispositivo.

  6. Revisão do Projeto - A revisão do projeto em execução no PLC; o número da revisão do projeto é incrementado em 1 cada vez que o projeto é compilado e transferido para o PLC.

  7. Data da Última Modificação do Projeto - Um carimbo de data/hora armazenado para quando o PLC foi modificado pela última vez por um técnico.

####História e Antecedentes

Do artigo da Wikipédia sobre Controladores Lógicos Programáveis http://en.wikipedia.org/wiki/Programmable_logic_controller#History:

Em 1968, a GM Hydra-Matic (a divisão de transmissões automáticas da General Motors) emitiu um pedido de propostas para um substituto eletrônico para sistemas de relés hard-wired com base em um white paper escrito pelo engenheiro Edward R. Clark. A proposta vencedora veio da Bedford Associates, de Bedford, Massachusetts. O primeiro PLC, designado 084 por ser o octogésimo quarto projeto da Bedford Associates, foi o resultado.[2] A Bedford Associates fundou uma nova empresa dedicada a desenvolver, fabricar, vender e dar manutenção a esse novo produto: a Modicon, que significava MOdular DIgital CONtroller. Uma das pessoas que trabalharam nesse projeto foi Dick Morley, considerado o "pai" do PLC.[3] A marca Modicon foi vendida em 1977 para a Gould Electronics e, mais tarde, adquirida pela empresa alemã AEG e depois pela francesa Schneider Electric, a atual proprietária.

####Instalação

Este script requer o Nmap para ser executado. Se você não tiver o Nmap, baixe e instale o Nmap.

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

#####Windows

Após baixar o modicon-info.nse, mova-o para o diretório de Scripts NSE. Isso exigirá privilégios de Administrador. Vá em Iniciar -> Programas -> Acessórios e clique com o botão direito em 'Prompt de Comando'. Selecione 'Executar como Administrador'.

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

#####Linux

Após baixar o modicon-info.nse, mova-o para o diretório de Scripts NSE. Isso deverá ser feito como sudo/root.

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

####Uso

Em uma janela de Terminal/Prompt de Comando, use um dos seguintes comandos, onde é o alvo que você deseja verificar em busca de PLCs Modicon.

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

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

	

####Notas

A versão oficial deste script é mantida em:https://github.com/digitalbond/Redpoint/modicon-info.nse

Este script usa a porta de destino Modbus padrão de TCP 502.

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

####Autor

Stephen Hilt
Digital Bond, Inc

####Propósito e Descrição

O objetivo do omrontcp-info e do omronudp-info é identificar e enumerar dispositivos OMRON FINS. A Omron desenvolveu o protocolo e é a principal fabricante dos dispositivos que suportam esse protocolo.

Um dispositivo OMRON FINS é identificado positivamente ao consultar TCP/9600 ou UDP 9600 com um Read Controller Status (0x0501). As mensagens de resposta determinarão se é um dispositivo OMRON FINS e analisarão as informações para enumerar o dispositivo.

O Read Controller Status do OMRON FINS obtém informações básicas sobre o dispositivo, como Modelo do Controlador, Versão do Controlador, tamanho da área do programa, tamanho do IOM, nº de palavras DM, tamanho de Timer/Counter, tamanho da DMZ de expansão, nº de etapas/transições, tipo de cartão de memória e tamanho do cartão de memória.

As propriedades OMRON FINS analisadas por este script são:

  1. Modelo do Controlador - Uma string de no máximo 20 bytes que representa o modelo do controlador.

  2. Versão do Controlador - Uma string para representar um número de versão com no máximo 20 bytes.

  3. Para Uso do Sistema - Reservado para uso do sistema. Coletando informações apenas para ver se há algo interessante nesse campo.

  4. Tamanho da área do programa - O tamanho da configuração do PC e da área do programa.

  5. Tamanho do IOM - O tamanho da área na qual comandos de bit/palavra podem ser usados.

  6. Nº de palavras DM - Total de palavras na área DM.

  7. Tamanho de timer/contador - Nº máximo de timers/contadores disponíveis.

  8. Tamanho da DM de expansão - Bancos na área de DM de expansão

  9. Nº de etapas/transições - Nº máximo de etapas/transições disponíveis

  10. Tipo de cartão de memória - 00: Nenhum cartão de memória 01: SPRAM 02: EPROM 03: EEPROM

  11. Tamanho do cartão de memória - Tamanho do cartão de memória em Kb

####História e Antecedentes

FINS ou Factory Intelligent Network Services é um protocolo que utiliza comandos para se comunicar com PLCs. O protocolo suporta uma versão sobre UDP, bem como uma versão sobre TCP. Existem algumas diferenças entre os dois protocolos; é por isso que dois scripts foram escritos para suportar a varredura de serviços TCP e UDP.

OMRON FINS é usado em sistemas de controle de automação industrial, como estações de tratamento de água, instalações de manufatura e serviços públicos.

####Instalação

Este script requer o Nmap para ser executado. Se você não tiver o Nmap, baixe e instale o Nmap seguindo as instruções do Nmap. http://nmap.org/download.html

#####Windows

Após baixar o enip-enumerate.nse, você precisará movê-lo para o diretório de Scripts NSE. Isso deverá ser feito como administrador. Vá em Iniciar -> Programas -> Acessórios e clique com o botão direito em 'Prompt de Comando'. Selecione 'Executar como Administrador'.

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

#####Linux

Após baixar o enip-enumerate.nse, você precisará movê-lo para o diretório de Scripts NSE. Isso deverá ser feito como sudo/root.

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

####Uso

Em uma janela de Terminal/Prompt de Comando, use um dos seguintes comandos, onde é o alvo que você deseja verificar em busca de 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>

	

####Notas

A versão TCP oficial deste script é mantida em:https://github.com/digitalbond/Redpoint/omrontcp-info.nse

A versão UDP oficial deste script é mantida em:https://github.com/digitalbond/Redpoint/omronudp-info.nse

Estes scripts usam a porta de destino padrão FINS e TCP/FINS de UDP 9600 e TCP 9600.

== ###pcworx-info.nse ![pcworx-info Exemplo de Saída] (http://www.digitalbond.com/wp-content/uploads/2015/02/pcworx.png)

####Autor

Stephen Hilt
Digital Bond, Inc

####Propósito e Descrição

O objetivo do pcworx-info.nse é identificar e enumerar PLCs ILC da Phoenix Contact por meio do protocolo PC Worx. Um PLC é identificado positivamente ao consultar TCP/1962 com requisições pré-geradas. As mensagens de resposta determinarão se é um PLC compatível com PC Worx e levarão a uma enumeração adicional.

No total, três pacotes serão enviados ao PLC com este script para estabelecer as comunicações e, em seguida, solicitar as informações do PLC.

As propriedades PC Worx analisadas por este script são:

  1. Tipo de PLC - Uma string que representa o tipo de PLC ILC.

  2. Número do Modelo - Uma string de números ASCII que representa o modelo do PLC, como um 2737193.

  3. Versão do Firmware - Uma string que representa a versão do firmware em execução no PLC.

  4. Data do Firmware - Uma string que representa a data de compilação do firmware em execução no PLC.

  5. Hora do Firmware - Uma string que representa a hora de compilação do firmware em execução no PLC.

####História e Antecedentes

Da página de produto da Phoenix Contact Link

O PC Worx é o software de engenharia consistente para todos os controladores da Phoenix Contact. Ele combina programação - de acordo com a IEC 61131, configuração de fieldbus e diagnósticos do sistema – em uma única solução de software. Isso proporciona uma interação ideal entre hardware e software. O PC Worx pode ser usado para implementar conceitos complexos de automação. Dependendo do número de I/Os a serem suportados, você tem duas versões para escolher: PC WORX BASIC e PC WORX PRO.

####Instalação

Este script requer o Nmap para ser executado. Se você não tiver o Nmap, baixe e instale o Nmap seguindo as instruções do Nmap. http://nmap.org/download.html

#####Windows

Após baixar o pcworx-info.nse, você precisará movê-lo para o diretório de Scripts NSE. Isso deverá ser feito como administrador. Vá em Iniciar -> Programas -> Acessórios e clique com o botão direito em 'Prompt de Comando'. Selecione 'Executar como Administrador'.

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

#####Linux

Após baixar o pcworx-info.nse, você precisará movê-lo para o diretório de Scripts NSE. Isso deverá ser feito como sudo/root.

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

####Uso

Em uma janela de Terminal/Prompt de Comando, use um dos seguintes comandos, onde é o alvo que você deseja verificar em busca de PLCs Phoenix Contact.

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

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

	

####Notas

A versão oficial deste script é mantida em:https://github.com/digitalbond/Redpoint/pcworx-info.nse

Este script usa a porta de destino padrão do PC Worx, TCP 1962.

==

###proconos-info.nse ![proconos-info Exemplo de Saída] (http://www.digitalbond.com/wp-content/uploads/2015/02/pcworx.png)

####Autor

Stephen Hilt
Digital Bond, Inc

####Propósito e Descrição

O objetivo do proconos-info.nse é identificar e enumerar PLCs por meio do protocolo ProConOS/MultiProg. Um PLC é identificado positivamente ao consultar TCP/20547 com requisições pré-geradas. As mensagens de resposta determinarão se é um PLC compatível com ProConOS/MultiProg e levarão a uma enumeração adicional.

Apenas uma requisição é necessária para consultar essas informações do PLC.

As propriedades ProConOS/MultiProg analisadas por este script são:

  1. Runtime de Lógica Ladder - Uma string que exibe o Nome do Runtime, Versão e Data de Compilação.

  2. Tipo de PLC - Uma string que representa o tipo do PLC e a versão do firmware.

  3. Nome do Projeto - Uma string que representa o nome do projeto atualmente em execução no PLC.

  4. Projeto de Inicialização - Uma string que representa o nome do projeto definido para inicializar no PLC.

  5. Código-fonte do Projeto - Uma string que representa se o código-fonte do projeto está disponível ou não.

####Instalação

Este script requer o Nmap para ser executado. Se você não tiver o Nmap, baixe e instale o Nmap seguindo as instruções do Nmap. http://nmap.org/download.html

#####Windows

Após baixar o proconos-info.nse, você precisará movê-lo para o diretório de Scripts NSE. Isso deverá ser feito como administrador. Vá em Iniciar -> Programas -> Acessórios e clique com o botão direito em 'Prompt de Comando'. Selecione 'Executar como Administrador'.

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

#####Linux

Após baixar o proconos-info.nse, você precisará movê-lo para o diretório de Scripts NSE. Isso deverá ser feito como sudo/root.

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

####Uso

Em uma janela de Terminal/Prompt de Comando, use um dos seguintes comandos, onde é o alvo que você deseja verificar em busca de PLCs ProConOS/MultiProg.

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

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

	

####Notas

A versão oficial deste script é mantida em:https://github.com/digitalbond/Redpoint/proconos-info.nse

Este script usa a porta de destino padrão ProConOS/MultiProg, TCP 20547.

==

###s7-enumerate.nse ![s7-enumerate Exemplo de Saída] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/04/S7screenshot.png)

####Autor

Stephen Hilt
Digital Bond, Inc

Nota: Este script tem o objetivo de fornecer a mesma funcionalidade do PLCScan dentro do Nmap. Algumas das informações que são coletadas pelo PLCScan não foram portadas para este NSE; essas informações podem ser extraídas dos pacotes recebidos.

Agradecimentos a Positive Research e Dmitry Efanov por criarem o PLCScan

####Propósito e Descrição

O objetivo do s7-enumerate.nse é identificar e enumerar PLCs Siemens SIMATIC S7. Um S7 é identificado positivamente ao consultar TCP/102 com mensagens COTP e S7COMM pré-geradas. As mensagens de resposta determinarão se é um PLC S7 e levarão a uma enumeração adicional. Observação: TCP/102 é usado por vários aplicativos, um deles sendo o S7COMM.

Duas requisições S7 são enviadas após o estabelecimento bem-sucedido da comunicação S7.

Essas requisições obtêm informações básicas de hardware, firmware e algumas informações descritivas, como identificação da planta e nome do sistema. Essas informações são então retornadas ao Nmap e apresentadas nos formatos de saída padrão suportados pelo Nmap.

As propriedades S7 analisadas por este script são:

  1. Módulo - Uma string que representa a identificação do módulo que está sendo consultado. Isso identifica o modelo do S7, ex.: 315, 412, 1200, ...

  2. Hardware Básico - Uma string que representa a identificação do hardware básico que está sendo consultado.

  3. Versão - Uma string que representa a identificação da versão do hardware básico.

  4. Nome do Sistema - Uma string que representa o nome do sistema atribuído ao dispositivo. Isso pode fornecer algumas informações úteis se o proprietário do ativo tiver implementado uma convenção de nomenclatura estruturada.

  5. Tipo de Módulo - Uma string que é o nome do tipo de módulo do módulo inserido.

  6. Número de Série - Uma string que é o número de série do módulo. Isso interessa principalmente para fins de inventário.

  7. Direitos Autorais - Uma string que contém as informações de direitos autorais. Normalmente traz "Original Siemens Equipment", mas é possível que uma implementação de terceiros da pilha de protocolo S7 forneça informações adicionais.

  8. Identificação da Planta - Uma string que representa a identificação da planta configurada no dispositivo. Essa string raramente foi vista em nossas varreduras, mas pode fornecer informações úteis.

####História e Antecedentes

Do artigo da Wikipédia sobre SIMATIC http://simple.wikipedia.org/wiki/SIMATIC:

SIMATIC é o nome de um sistema de automação desenvolvido pela empresa alemã Siemens. O sistema de automação controla máquinas usadas na produção industrial. Esse sistema possibilita que as máquinas operem automaticamente.

####Instalação

Este script requer o Nmap para ser executado. Se você não tiver o Nmap, baixe e instale o Nmap seguindo as instruções do Nmap. http://nmap.org/download.html

#####Windows

Após baixar o s7-enumerate.nse, você precisará movê-lo para o diretório de Scripts NSE. Isso deverá ser feito como administrador. Vá em Iniciar -> Programas -> Acessórios e clique com o botão direito em 'Prompt de Comando'. Selecione 'Executar como Administrador'.

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

#####Linux

Após baixar o s7-enumerate.nse, você precisará movê-lo para o diretório de Scripts NSE. Isso deverá ser feito como sudo/root.

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

####Uso

Em uma janela de Terminal/Prompt de Comando, use um dos seguintes comandos, onde é o alvo que você deseja verificar em busca de PLCs S7.

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

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

	

####Notas

A versão oficial deste script é mantida em:https://github.com/digitalbond/Redpoint/s7-enumerate.nse

Este script usa a porta de destino padrão S7COMMS, TCP 102.

Baixar ferramenta