Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Redpoint — NSE-скрипты Nmap для обнаружения и перечисления ICS/SCADA — BACnet, EtherNet/IP, CoDeSys, Fox, Modicon, Omron, S7 — использующие запросы протоколов для оценки безопасности. | Kitploit
Инструменты/GitHubGitHub/digitalbond/redpoint
РазведкаБезопасность SCADA/ICSСбор информацииСетевая безопасностьТестирование на Проникновение
GitHubdigitalbond/redpoint

Redpoint

NSE-скрипты Nmap для обнаружения и перечисления ICS/SCADA — BACnet, EtherNet/IP, CoDeSys, Fox, Modicon, Omron, S7 — использующие запросы протоколов для оценки безопасности.

Репозиторий
4691506 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

#Redpoint

###Инструменты Digital Bond для перечисления ICS

Redpoint — это исследовательский проект Digital Bond, предназначенный для перечисления ICS-приложений и устройств.

Мы используем инструменты Redpoint в своих оценках для обнаружения ICS-устройств и получения информации, полезной для дальнейшего тестирования. Часть этих инструментов будет опубликована в этом репозитории в виде Nmap NSE-скриптов.

Инструменты Redpoint используют легитимные команды протоколов или приложений для обнаружения и перечисления устройств и приложений. Они не предназначены для эксплуатации уязвимостей или нарушения работы чего-либо. Однако многие ICS-устройства и приложения хрупки и могут выйти из строя или неожиданно отреагировать на любой неожиданный трафик, поэтому используйте их с осторожностью.

Каждый скрипт описан ниже и доступен в виде .nse-файла в этом репозитории.

  • BACnet-discover-enumerate.nse — обнаружение и перечисление устройств BACnet

  • codesys-v2-discover.nse — обнаружение и перечисление контроллеров CoDeSys V2

  • enip-enumerate.nse — обнаружение и перечисление устройств EtherNet/IP от Rockwell Automation и других производителей

  • fox-info.nse — обнаружение и перечисление устройств Niagara Fox

  • modicon-info.nse — обнаружение и перечисление ПЛК Schneider Electric Modicon

  • omron-info.nse — обнаружение и перечисление ПЛК Omron

  • pcworx-info.nse — обнаружение и перечисление ПЛК с поддержкой протокола PC Worx

  • proconos-info.nse — обнаружение и перечисление ПЛК с поддержкой ProConOS

  • s7-enumerate.nse — обнаружение и перечисление ПЛК Siemens SIMATIC S7

==

###BACnet-discover-enumerate.nse

![Пример вывода BACnet-discover-enumerate] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/03/BACnet-nse.png)

####Авторы

Stephen Hilt и Michael Toecker
Digital Bond, Inc

####Назначение и описание

Назначение BACnet-discover-enumerate.nse — сначала определить, работает ли на устройстве с IP-адресом протокол BACnet. Это делается путём отправки на устройство предварительно сгенерированного BACnet-сообщения. Новые версии протокола BACnet ответят подтверждением, более старые версии вернут сообщение об ошибке BACnet. Наличие либо подтверждения, либо ошибки достаточно, чтобы доказать, что на целевом IP-адресе находится устройство, поддерживающее BACnet.

Во-вторых, если получено подтверждение, этот скрипт также попытается перечислить несколько свойств BACnet на отвечающем устройстве BACnet. Устройство снова опрашивается предварительно сгенерированным BACnet-сообщением. Успешное перечисление использует специально созданные запросы и не будет успешным, если устройство BACnet не поддерживает данное свойство.

Свойства BACnet, запрашиваемые этим скриптом:

  1. Vendor ID — число, соответствующее зарегистрированному вендору BACnet. Скрипт также возвращает связанное с ним имя вендора.

  2. Vendor Number — строка, представляющая имя вендора, настроенное на устройстве. Она может отличаться от Vendor ID, поскольку Vendor ID — это номер, зарегистрированный в ASHRAE.

  3. Object Identifier — число, однозначно идентифицирующее устройство. Если Object-Identifier известен, можно отправлять команды с помощью клиентского ПО BACnet, в том числе изменяющие значения, программы, расписания и другие эксплуатационные данные на устройствах BACnet. Это обязательное свойство для всех устройств BACnet.

  4. Firmware Revision — номер ревизии прошивки на устройстве BACnet.

  5. Application Software Revision — номер ревизии программного обеспечения, используемого для связи BACnet.

  6. Object Name — определяемая пользователем строка, присваивающая имя устройству BACnet; обычно вводится техниками при пусконаладке. Это обязательное свойство для всех устройств BACnet.

  7. Model Name — модель устройства BACnet

  8. Description — определяемая пользователем строка для описания устройства; обычно вводится техниками при пусконаладке

  9. Location — определяемая пользователем строка для записи физического местоположения устройства; обычно вводится техниками при пусконаладке

  10. Broadcast Distribution Table (BDT) — список устройств управления широковещательной рассылкой BACnet (BBMD) в сети BACnet. Это позволяет определить все подсети, входящие в сеть BACnet.

  11. Foreign Device Table (FDT) — список внешних устройств, зарегистрированных на устройстве BACnet. Внешнее устройство — это любое устройство, которое не находится в подсети, входящей в сеть BACnet, и не указано в BDT. Внешние устройства часто расположены во внешних сетях и могут представлять собой IP-адрес злоумышленника.

BDT и FDT могут быть большими списками и могут быть нежелательны при большом сканировании Nmap. Базовый скрипт не загружает BDT и FDT. Запустите команду с параметром --script-args full=yes, чтобы получить BDT и FDT, см. раздел «Использование».

![Пример вывода BACnet-discover-enumerate с BDT и FDT] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/08/screenshot_bacnet-1.png)

Этот скрипт использует функцию, добавленную в спецификацию BACnet в 2004 году, для получения Object Identifier устройства одним запросом, без подключения к сети BACnet в качестве внешнего устройства. (Подробности см. в ANSI/ASHRAE Addendum a к ANSI/ASHRAE Standard 135-2001)

####История и предыстория

Из статьи в Википедии о BACnet http://en.wikipedia.org/wiki/BACnet:

BACnet — это коммуникационный протокол для сетей автоматизации зданий и управления. Это стандарт ASHRAE, ANSI и ISO[1]. Порт по умолчанию для трафика BACnet — UDP/47808.

BACnet используется в системах автоматизации зданий и управления для таких приложений, как управление отоплением, вентиляцией и кондиционированием воздуха, управление освещением, контроль доступа и системы обнаружения пожара, а также связанное с ними оборудование. Протокол BACnet предоставляет механизмы для обмена информацией между компьютеризированными устройствами автоматизации зданий, независимо от конкретной выполняемой ими функции здания.

####Установка

Для работы этого скрипта требуется nmap. Если у вас нет Nmap, загрузите и установите Nmap в соответствии с инструкциями Nmap. http://nmap.org/download.html

#####Windows

После загрузки bacnet-discover.nse необходимо переместить его в каталог NSE Scripts; это нужно сделать от имени администратора. Перейдите в Пуск -> Программы -> Стандартные и щёлкните правой кнопкой мыши по «Командная строка». Выберите «Запуск от имени администратора».

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

#####Linux

После загрузки BACnet-discover-enumerate.nse необходимо переместить его в каталог NSE Scripts; это нужно сделать от имени sudo/root.

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

####Использование

В окне терминала / командной строки используйте одну из следующих команд, где host — цель, которую вы хотите просканировать на BACnet. Используйте --script-args full=yes, если хотите, чтобы вывод включал BDT и 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>

Чтобы ускорить получение результатов, не выполняя DNS-запросы во время сканирования, используйте опцию -n; также отключите проверку доступности устройства с помощью опции -Pn для получения полных результатов.

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

	

####Примечания

Официальная версия этого скрипта поддерживается по адресу: https://github.com/digitalbond/Redpoint/blob/master/BACnet-discover-enumerate.nse

Этот скрипт использует стандартные исходный и конечный порты BACnet — UDP 47808.

Новые (после 25 февраля 2004 года) устройства BACnet по спецификации обязаны отвечать на определённые запросы, использующие «универсальный» object-identifier с собственным допустимым номером экземпляра (см. ANSI/ASHRAE Addendum a к ANSI/ASHRAE Standard 135-2001). Более старые версии устройств BACnet могут не отвечать на этот универсальный идентификатор и вместо этого ответят пакетом ошибки BACnet.

Этот скрипт не пытается подключиться к сети BACnet в качестве внешнего устройства; он просто отправляет BACnet-запросы напрямую на устройство с IP-адресом.

== ###codesys-v2-discover.nse ![Пример вывода codesys-v2-discover] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2016/03/codesys-v2-discover-win.png)

####Авторы

Stephen Hilt, Reid Wightman

####Назначение и описание

Скрипт codesys-v2-discover.nse обнаруживает ПЛК, на которых работает среда выполнения релейно-контактных схем версии 2 от 3S-Software GmbH. Эти контроллеры используют проприетарный двоичный протокол для установки новой релейно-контактной логики, а также для отладки работающей логики. Протокол может требовать аутентификации. На практике лишь немногие устройства поддерживают эту возможность. Данный скрипт не проверяет аутентификацию.

Этот скрипт отправляет на устройство простой запрос идентификации. Ответное сообщение может содержать операционную систему и конкретную версию CoDeSys, работающую на ПЛК.

####История и предыстория

Digital Bond опубликовала подробности о том, что система runtime CoDeSys небезопасна по своей конструкции, в апреле 2012 года. Протокол обычно использует TCP/1200 или TCP/2455 в качестве управляющего порта. Управляющий протокол содержит функции для загрузки и выгрузки файлов с контроллеров. Протокол также может предоставлять командную оболочку с дополнительными функциями. Типичные возможности оболочки включают запуск и остановку текущей релейно-контактной логики, а также получение отладочной информации с контроллера.

Первоначальное уведомление касалось только версии 2 среды выполнения. Digital Bond также выпустила доказательство концепции в виде Nmap-скрипта, первоначально написанного HD Moore в рамках его проекта интернет-сканирования.

Для этой версии протокола также был создан скрипт Nessus, однако скрипт Nessus содержит ошибку и некорректно проверяет контроллеры с процессорами с порядком байтов big-endian.

####Установка

Для работы этого скрипта требуется Nmap. Если у вас нет Nmap, загрузите и установите Nmap в соответствии с инструкциями Nmap. http://nmap.org/download.html

#####Windows

После загрузки enip-enumerate.nse необходимо переместить его в каталог NSE Scripts; это нужно сделать от имени администратора. Перейдите в Пуск -> Программы -> Стандартные и щёлкните правой кнопкой мыши по «Командная строка». Выберите «Запуск от имени администратора».

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

#####Linux

После загрузки enip-enumerate.nse необходимо переместить его в каталог NSE Scripts; это нужно сделать от имени sudo/root.

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

####Использование

В окне терминала / командной строки используйте одну из следующих команд, где — цель, которую вы хотите просканировать на 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>

####Примечания

Официальная версия этого скрипта поддерживается по адресу: https://github.com/digitalbond/Redpoint/codesys-v2-discover.nse

Этот скрипт попытается отправить CoDeSys-запросы на любой открытый порт. Хотя стандартные порты 1200 или 2455 используются большинством контроллеров, некоторые контроллеры используют альтернативные порты, такие как 1201, 1217 и другие.

== ###enip-enumerate.nse ![Пример вывода enip-enumerate] (http://digibond.wpengine.netdna-cdn.com/wp-content/uploads/2014/04/enip.png)

####Автор

Stephen Hilt
Digital Bond, Inc

####Назначение и описание

Назначение enip-enumerate.nse — обнаружение и перечисление устройств EtherNet/IP. Rockwell Automation / Allen Bradley разработала этот протокол и является основным производителем таких устройств, например ControlLogix и MicroLogix, но это открытый стандарт, и ряд производителей предлагают интерфейсные карты или решения EtherNet/IP.

Устройство EtherNet/IP однозначно идентифицируется путём отправки на TCP/44818 сообщения List Identities (0x63). Ответные сообщения позволяют определить, является ли устройство устройством EtherNet/IP, и проанализировать информацию для его перечисления.

Запрос EtherNet/IP Request List Identities получает базовую информацию об устройстве, известную как «электронный ключ» устройства. Информация включает вендора, имя продукта, серийный номер, тип устройства, код продукта и номер ревизии. Также скрипт извлекает настроенный IP-адрес устройства из поля Socket Address внутри кадра EtherNet/IP пакета.

Свойства EtherNet/IP, анализируемые этим скриптом:

  1. Vendor — двухбайтовое целое число, используемое для поиска имени вендора

  2. Product Name — строка, представляющая краткое описание продукта/семейства продуктов, максимальная длина — 32 символа

  3. Serial Number — шестибайтовое шестнадцатеричное число, хранящееся в порядке little-endian

  4. Device Type — двухбайтовое целое число, используемое для поиска типа устройства. Это поле часто не используется и равно 0.

  5. Product Code — код продукта, присвоенный вендором, идентифицирует конкретный продукт в рамках типа устройства. Скрипт не имеет доступа к таблицам кодов продуктов вендора, поэтому отображается число.

  6. Revision — два однобайтовых целых числа, указывающих старшую и младшую ревизию устройства

  7. Device IP — четыре однобайтовых целых числа, представляющих настроенный IP-адрес устройства. Этот адрес часто отличается от IP-адреса, просканированного скриптом.

####История и предыстория

Из статьи в Википедии об EtherNet/IP http://en.wikipedia.org/wiki/EtherNet/IP

EtherNet/IP был разработан в конце 1990-х годов компанией Rockwell Automation как часть её решений промышленного Ethernet. Rockwell дала EtherNet/IP это название и передала его в ODVA, которая теперь управляет протоколом и обеспечивает совместимость многоvendor-систем, требуя соблюдения установленных стандартов при разработке любых новых продуктов, использующих этот протокол.

EtherNet/IP чаще всего используется в промышленных системах автоматизации управления, например на водоочистных предприятиях, производственных объектах и предприятиях коммунального хозяйства. Ряд производителей систем управления разработали программируемые контроллеры автоматизации и устройства ввода/вывода, способные взаимодействовать через EtherNet/IP.

####Установка

Для работы этого скрипта требуется Nmap. Если у вас нет Nmap, загрузите и установите Nmap в соответствии с инструкциями Nmap. http://nmap.org/download.html

#####Windows

После загрузки enip-enumerate.nse необходимо переместить его в каталог NSE Scripts; это нужно сделать от имени администратора. Перейдите в Пуск -> Программы -> Стандартные и щёлкните правой кнопкой мыши по «Командная строка». Выберите «Запуск от имени администратора».

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

#####Linux

После загрузки enip-enumerate.nse необходимо переместить его в каталог NSE Scripts; это нужно сделать от имени sudo/root.

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

####Использование

В окне терминала / командной строки используйте одну из следующих команд, где — цель, которую вы хотите просканировать на EtherNet/IP.

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

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

	

####Примечания

Официальная версия этого скрипта поддерживается по адресу: https://github.com/digitalbond/Redpoint/enip-enumerate.nse

Этот скрипт использует стандартный порт назначения EtherNet/IP — TCP 44818.

==

###fox-info.nse ![Пример вывода fox-info] (http://www.digitalbond.com/wp-content/uploads/2014/10/fox-example.png)

####Автор

Stephen Hilt
Digital Bond, Inc

####Назначение и описание

Назначение fox-info.nse — сначала обнаружить устройства, работающие по протоколу Niagara Fox. Этот скрипт основан на работе и примерах, предоставленных Billy Rios и Terry McCorkle.

После успешного подключения к устройству Niagara Fox скрипт анализирует ответ, отправленный устройством, и отображает собранную информацию.

Свойства Niagara Fox, запрашиваемые этим скриптом:

  1. Fox Version — версия протокола Fox, работающего на устройстве.

  2. Host Name — имя хоста устройства. Обычно это имя рабочей станции удалённого устройства.

  3. Host Address — IP-адрес, настроенный на устройстве. Это может быть просканированный IP-адрес или частный адрес, если устройство находится за трансляцией сетевых адресов (NAT).

  4. Application Name — имя приложения, работающего на удалённом устройстве. Обычно это «Workbench» или «Station».

  5. Application Version — номер версии приложения, полученного на предыдущем шаге.

  6. VM Name — имя виртуальной машины Java, на которой работает приложение.

  7. VM Version — номер версии виртуальной машины, работающей на удалённом устройстве. Скорее всего, это номер версии Java HotSpot.

  8. OS Name — имя ОС, на которой работает протокол Fox на устройстве, например QNX или Windows XP.

  9. Time Zone — местный часовой пояс, настроенный на устройстве.

  10. Host ID — уникальный идентификатор, используемый для идентификации устройства.

  11. VM UUID — универсальный уникальный идентификатор Java VM.

  12. Brand ID — каждая лицензированная станция и инструмент имеют идентификатор бренда. Это поле содержит текстовый дескриптор, который OEM-производитель выбирает в качестве идентификатора своей линейки продуктов. Каждая станция или инструмент может иметь только одну запись BrandID.

####История и предыстория

Fox — это проприетарный протокол TCP/IP, используемый для связи «станция-станция» и «рабочая станция-станция» в платформе Niagara Framework решений для автоматизации зданий Tridium. Tridium является полностью принадлежащей Honeywell дочерней компанией.

####Установка

Для работы этого скрипта требуется Nmap. Если у вас нет Nmap, загрузите и установите Nmap, см.: http://nmap.org/download.html

#####Windows

После загрузки fox-info.nse переместите его в каталог NSE Scripts. Это перемещение должно быть выполнено от имени администратора. Перейдите в Пуск -> Программы -> Стандартные и щёлкните правой кнопкой мыши по «Командная строка». Выберите «Запуск от имени администратора».

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

#####Linux

После загрузки fox-info.nse переместите его в каталог NSE Scripts. Это должно быть выполнено от имени sudo/root.

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

####Использование

В окне терминала / командной строки используйте одну из следующих команд, где host — цель, которую вы хотите просканировать на устройства, поддерживающие протокол Niagara Fox.

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

####Примечания

Официальная версия этого скрипта поддерживается по адресу: https://github.com/digitalbond/Redpoint/blob/master/fox-info.nse

Этот скрипт использует стандартные исходный и конечный порты Niagara Fox — TCP 1911.

==

###modicon-info.nse ![Пример вывода modicon-info] (http://www.digitalbond.com/wp-content/uploads/2014/09/Modicon.png)

####Автор

Stephen Hilt
Digital Bond, Inc

####Назначение и описание

Назначение modicon-info.nse — сначала обнаружить и перечислить ПЛК Modicon, произведённые Schneider Electric.

Скрипт сначала определяет, отправляет ли устройство с IP-адресом запрос Modbus function code 43. Ответ достаточен для идентификации устройств Modbus, даже если они не поддерживают function code 43. Если имя вендора в ответе содержит строку Schneider, скрипт перечисляет устройство, используя проприетарный Modbus function code 90 компании Schneider Electric.

Свойства Modbus function code 43 и function code 90, включаемые в вывод скрипта:

  1. Vendor Name — скрипт игнорирует все устройства, не содержащие «Schneider».2) Network Module - Модуль Ethernet-связи в ПЛК Modicon.

  2. CPU Module - Модуль ЦП в ПЛК Modicon.

  3. Firmware - Версия прошивки на модуле ЦП в ПЛК Modicon.

  4. Memory Card - Номер модели карты памяти в модуле ЦП.

  5. Project Information - Прочая информация о проекте, такая как имя проекта, версия Unity Pro, использованная для его настройки, а также имя рабочей станции, на которой программировался ПЛК. Некоторые устройства предоставляют расположение файла .stu на рабочей станции, которая настраивала устройство.

  6. Project Revision - Ревизия проекта, выполняющегося на ПЛК; номер ревизии проекта увеличивается на 1 каждый раз, когда проект собирается и передаётся на ПЛК.

  7. Project Last Modified Date - Метка времени, сохраняемая для последнего момента, когда ПЛК был изменён техником.

####История и предыстория

Из статьи Википедии о программируемых логических контроллерах http://en.wikipedia.org/wiki/Programmable_logic_controller#History:

В 1968 году GM Hydra-Matic (отделение автоматических трансмиссий компании General Motors) разместила запрос предложений на электронную замену жёстко смонтированных релейных систем на основе аналитической записки, подготовленной инженером Эдвардом Р. Кларком. Победившее предложение поступило от Bedford Associates из Бедфорда, штат Массачусетс. Первый ПЛК, обозначенный как 084, потому что это был восемьдесят четвёртый проект Bedford Associates, стал результатом.[2] Bedford Associates основала новую компанию, занимающуюся разработкой, производством, продажей и обслуживанием этого нового продукта: Modicon, что означало MOdular DIgital CONtroller. Одним из людей, работавших над этим проектом, был Дик Морли, который считается «отцом» ПЛК.[3] Бренд Modicon был продан в 1977 году компании Gould Electronics, а затем приобретён немецкой компанией AEG, а после — французской Schneider Electric, нынешним владельцем.

####Установка

Для работы этого скрипта требуется Nmap. Если у вас нет Nmap, скачайте и установите его.

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

#####Windows

После загрузки modicon-info.nse переместите его в каталог NSE Scripts. Для этого потребуются права администратора. Перейдите в Пуск -> Программы -> Стандартные, щёлкните правой кнопкой мыши по «Командная строка» и выберите «Запуск от имени администратора».

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

#####Linux

После загрузки modicon-info.nse переместите его в каталог NSE Scripts. Это необходимо сделать от имени sudo/root.

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

####Использование

В окне терминала или командной строке используйте одну из следующих команд, где — цель, которую вы хотите просканировать на наличие ПЛК Modicon.

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

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

	

####Примечания

Официальная версия этого скрипта поддерживается по адресу:https://github.com/digitalbond/Redpoint/modicon-info.nse

Этот скрипт использует стандартный порт назначения Modbus — TCP 502.

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

####Автор

Stephen Hilt
Digital Bond, Inc

####Назначение и описание

Назначение omrontcp-info и omronudp-info — идентификация и перечисление устройств OMRON FINS. Компания Omron разработала этот протокол и является основным производителем устройств, поддерживающих его.

Устройство OMRON FINS достоверно идентифицируется запросом к TCP/9600 или UDP 9600 с помощью Read Controller Status (0x0501). Ответные сообщения позволяют определить, является ли устройство устройством OMRON FINS, и проанализировать информацию для его перечисления.

Запрос Read Controller Status OMRON FINS извлекает базовую информацию об устройстве, такую как модель контроллера, версия контроллера, размер области программы, размер IOM, количество слов DM, размер таймеров/счётчиков, размер расширенной области DM, количество шагов/переходов, тип карты памяти и размер карты памяти.

Свойства OMRON FINS, анализируемые этим скриптом:

  1. Controller Model - Строка размером не более 20 байт, представляющая модель контроллера.

  2. Controller Version - Строка, представляющая номер версии, размером не более 20 байт.

  3. For System Use - Зарезервировано для системного использования. Информация собирается, чтобы проверить, нет ли в этом поле чего-либо интересного.

  4. Program area size - Размер области PC Setup и программы.

  5. IOM size - Размер области, в которой могут использоваться битовые/словесные команды.

  6. No. of DM words - Общее количество слов в области DM.

  7. Timer/counter size - Максимальное количество доступных таймеров/счётчиков.

  8. Expansion DM size - Банки в расширенной области DM

  9. No. of steps/transitions - Максимальное количество доступных шагов/переходов

  10. Kind of memory card - 00: Нет карты памяти 01: SPRAM 02: EPROM 03: EEPROM

  11. Memory card size - Размер карты памяти в Кбайт

####История и предыстория

FINS, или Factory Intelligent Network Services, — это протокол, использующий команды для взаимодействия с ПЛК. Протокол поддерживает версию поверх UDP, а также версию поверх TCP. Между этими двумя протоколами есть различия, поэтому написаны два скрипта для поддержки сканирования как TCP-, так и UDP-сервисов.

OMRON FINS используется в системах промышленной автоматизации, например на водоочистных сооружениях, производственных предприятиях и коммунальных предприятиях.

####Установка

Для работы этого скрипта требуется Nmap. Если у вас нет Nmap, скачайте и установите его в соответствии с инструкциями Nmap. http://nmap.org/download.html

#####Windows

После загрузки enip-enumerate.nse вам нужно переместить его в каталог NSE Scripts; это необходимо сделать от имени администратора. Перейдите в Пуск -> Программы -> Стандартные, щёлкните правой кнопкой мыши по «Командная строка» и выберите «Запуск от имени администратора».

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

#####Linux

После загрузки enip-enumerate.nse вам нужно переместить его в каталог NSE Scripts; это необходимо сделать от имени sudo/root.

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

####Использование

В окне терминала или командной строке используйте одну из следующих команд, где — цель, которую вы хотите просканировать на наличие 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>

	

####Примечания

Официальная TCP-версия этого скрипта поддерживается по адресу:https://github.com/digitalbond/Redpoint/omrontcp-info.nse

Официальная UDP-версия этого скрипта поддерживается по адресу:https://github.com/digitalbond/Redpoint/omronudp-info.nse

Эти скрипты используют стандартный порт назначения FINS и TCP/FINS — UDP 9600 и TCP 9600.

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

####Автор

Stephen Hilt
Digital Bond, Inc

####Назначение и описание

Назначение pcworx-info.nse — идентификация и перечисление ПЛК Phoenix Contact ILC через протокол PC Worx. ПЛК достоверно идентифицируется запросом к TCP/1962 с предварительно сгенерированными запросами. Ответные сообщения позволяют определить, поддерживает ли ПЛК PC Worx, и выполнить дальнейшее перечисление.

Всего этим скриптом на ПЛК будет отправлено три пакета: для установления связи, а затем для запроса информации от ПЛК.

Свойства PC Worx, анализируемые этим скриптом:

  1. PLC Type - Строка, представляющая тип ПЛК ILC.

  2. Model Number - Строка из ASCII-цифр, представляющая модель ПЛК, например 2737193.

  3. Firmware Version - Строка, представляющая версию прошивки, установленной на ПЛК.

  4. Firmware Date - Строка, представляющая дату сборки прошивки, установленной на ПЛК.

  5. Firmware Time - Строка, представляющая время сборки прошивки, установленной на ПЛК.

####История и предыстория

Со страницы продукта Phoenix Contact Ссылка

PC Worx — это единое инженерное ПО для всех контроллеров Phoenix Contact. Оно сочетает программирование в соответствии с IEC 61131, конфигурирование полевой шины и системную диагностику в одном программном решении. Это обеспечивает оптимальное взаимодействие аппаратного и программного обеспечения. PC Worx можно использовать для реализации сложных концепций автоматизации. В зависимости от количества поддерживаемых I/O доступны две версии на выбор: PC WORX BASIC и PC WORX PRO.

####Установка

Для работы этого скрипта требуется Nmap. Если у вас нет Nmap, скачайте и установите его в соответствии с инструкциями Nmap. http://nmap.org/download.html

#####Windows

После загрузки pcworx-info.nse вам нужно переместить его в каталог NSE Scripts; это необходимо сделать от имени администратора. Перейдите в Пуск -> Программы -> Стандартные, щёлкните правой кнопкой мыши по «Командная строка» и выберите «Запуск от имени администратора».

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

#####Linux

После загрузки pcworx-info.nse вам нужно переместить его в каталог NSE Scripts; это необходимо сделать от имени sudo/root.

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

####Использование

В окне терминала или командной строке используйте одну из следующих команд, где — цель, которую вы хотите просканировать на наличие ПЛК Phoenix Contact.

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

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

	

####Примечания

Официальная версия этого скрипта поддерживается по адресу:https://github.com/digitalbond/Redpoint/pcworx-info.nse

Этот скрипт использует стандартный порт назначения PC Worx — TCP 1962.

==

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

####Автор

Stephen Hilt
Digital Bond, Inc

####Назначение и описание

Назначение proconos-info.nse — идентификация и перечисление ПЛК через протокол ProConOS/MultiProg. ПЛК достоверно идентифицируется запросом к TCP/20547 с предварительно сгенерированными запросами. Ответные сообщения позволяют определить, поддерживает ли ПЛК ProConOS/MultiProg, и выполнить дальнейшее перечисление.

Для запроса этой информации у ПЛК требуется только один запрос.

Свойства ProConOS/MultiProg, анализируемые этим скриптом:

  1. Ladder Logic Runtime - Строка, отображающая имя среды выполнения (Runtime), версию и дату сборки.

  2. PLC Type - Строка, представляющая тип ПЛК и версию прошивки.

  3. Project Name - Строка, представляющая имя проекта, который в данный момент выполняется на ПЛК.

  4. Boot Project - Строка, представляющая имя проекта, назначенного для загрузки на ПЛК.

  5. Project Source Code - Строка, показывающая, доступен ли исходный код проекта.

####Установка

Для работы этого скрипта требуется Nmap. Если у вас нет Nmap, скачайте и установите его в соответствии с инструкциями Nmap. http://nmap.org/download.html

#####Windows

После загрузки proconos-info.nse вам нужно переместить его в каталог NSE Scripts; это необходимо сделать от имени администратора. Перейдите в Пуск -> Программы -> Стандартные, щёлкните правой кнопкой мыши по «Командная строка» и выберите «Запуск от имени администратора».

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

#####Linux

После загрузки proconos-info.nse вам нужно переместить его в каталог NSE Scripts; это необходимо сделать от имени sudo/root.

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

####Использование

В окне терминала или командной строке используйте одну из следующих команд, где — цель, которую вы хотите просканировать на наличие ПЛК ProConOS/MultiProg.

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

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

	

####Примечания

Официальная версия этого скрипта поддерживается по адресу:https://github.com/digitalbond/Redpoint/proconos-info.nse

Этот скрипт использует стандартный порт назначения ProConOS/MultiProg — TCP 20547.

==

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

####Автор

Stephen Hilt
Digital Bond, Inc

Примечание: этот скрипт предназначен для предоставления той же функциональности, что и PLCScan, внутри Nmap. Некоторая информация, собираемая PLCScan, не была перенесена в этот NSE; эту информацию можно извлечь из принимаемых пакетов.

Благодарность Positive Research и Дмитрию Ефанову за создание PLCScan

####Назначение и описание

Назначение s7-enumerate.nse — идентификация и перечисление ПЛК Siemens SIMATIC S7. Устройство S7 достоверно идентифицируется запросом к TCP/102 с предварительно сгенерированными сообщениями COTP и S7COMM. Ответные сообщения позволяют определить, является ли устройство ПЛК S7, и выполнить дальнейшее перечисление. Примечание: TCP/102 используется несколькими приложениями, одним из которых является S7COMM.

После успешного установления S7-соединения отправляются два S7-запроса.

Эти запросы извлекают базовую информацию об аппаратном обеспечении, прошивке и некоторые описательные данные, такие как идентификатор установки и имя системы. Затем эта информация возвращается в Nmap и выводится в стандартных форматах вывода, поддерживаемых Nmap.

Свойства S7, анализируемые этим скриптом:

  1. Module - Строка, представляющая идентификатор запрашиваемого модуля. Она определяет модель S7, например 315, 412, 1200, ...

  2. Basic Hardware - Строка, представляющая идентификатор запрашиваемого базового аппаратного обеспечения.

  3. Version - Строка, представляющая идентификатор версии базового аппаратного обеспечения.

  4. System Name - Строка, представляющая имя системы, присвоенное устройству. Это может дать полезную информацию, если владелец актива использовал структурированное соглашение об именах.

  5. Module Type - Строка, содержащая имя типа вставленного модуля.

  6. Serial Number - Строка, содержащая серийный номер модуля. Это представляет интерес в первую очередь для целей инвентаризации.

  7. Copyright - Строка с информацией об авторских правах. Обычно она гласит «Original Siemens Equipment», но возможно, что сторонняя реализация стека протокола S7 может предоставить дополнительную информацию.

  8. Plant Identification - Строка, представляющая идентификатор установки, настроенный на устройстве. Эта строка редко встречалась при нашем сканировании, но может дать полезную информацию.

####История и предыстория

Из статьи Википедии о SIMATIC http://simple.wikipedia.org/wiki/SIMATIC:

SIMATIC — это название системы автоматизации, разработанной немецкой компанией Siemens. Система автоматизации управляет машинами, используемыми в промышленном производстве. Эта система позволяет машинам работать автоматически.

####Установка

Для работы этого скрипта требуется Nmap. Если у вас нет Nmap, скачайте и установите его в соответствии с инструкциями Nmap. http://nmap.org/download.html

#####Windows

После загрузки s7-enumerate.nse вам нужно переместить его в каталог NSE Scripts; это необходимо сделать от имени администратора. Перейдите в Пуск -> Программы -> Стандартные, щёлкните правой кнопкой мыши по «Командная строка» и выберите «Запуск от имени администратора».

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

#####Linux

После загрузки s7-enumerate.nse вам нужно переместить его в каталог NSE Scripts; это необходимо сделать от имени sudo/root.

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

####Использование

В окне терминала или командной строке используйте одну из следующих команд, где — цель, которую вы хотите просканировать на наличие ПЛК S7.

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

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

	

####Примечания

Официальная версия этого скрипта поддерживается по адресу:https://github.com/digitalbond/Redpoint/s7-enumerate.nse

Этот скрипт использует стандартный порт назначения S7COMMS — TCP 102.

Скачать инструмент