
APOLOGEE is a Python script and Metasploit module that enumerates a hidden directory on Siemens APOGEE PXC BACnet Automation Controllers (all versions prior to V3.5) and TALON TC BACnet Automation Controllers (all versions prior to V3.5). With a 7.5 CVSS, this exploit allows for an attacker to perform an authentication bypass using an alternate path or channel to access hidden directories in the web server. This repository takes advantage of CVE-2017-9947.
APOLOGEE — это скрипт на Python и модуль Metasploit, который перечисляет скрытый каталог на контроллерах автоматизации Siemens APOGEE PXC BACnet (все версии до V3.5) и TALON TC BACnet (все версии до V3.5). С оценкой CVSS 7.5 эта эксплойт позволяет злоумышленнику выполнить обход аутентификации, используя альтернативный путь или канал, чтобы получить доступ к скрытым каталогам на веб-сервере. Данный репозиторий использует уязвимость CVE-2017-9947.
Полевые панели Siemens в первую очередь обеспечивают управление процессами для систем автоматизации зданий (BAS). Система автоматизации зданий (BAS) — это сеть, предназначенная для подключения и автоматизации определённых функций внутри здания. Все системы управления зданием, от освещения и HVAC (отопления, вентиляции и кондиционирования воздуха) до пожарной и охранной систем — все соединены через один набор элементов управления. Что это означает? Используя репозиторий APOLOGEE, вы можете перечислить устройства, управляющие процессами автоматизации зданий, и получить информацию об их местоположении, конфигурациях и многом другом!
Злоумышленник, имеющий сетевой доступ к встроенному веб-серверу (порты 80/TCP и 443/TCP), может обойти аутентификацию и загрузить конфиденциальную информацию с устройства.
Уязвимость обхода каталогов может позволить удалённому злоумышленнику с сетевым доступом к встроенному веб-серверу (порты 80/TCP и 443/TCP) получить информацию о структуре файловой системы затронутых устройств.
Siemens предоставил прошивку версии V3.5 для расширенных модулей BACnet полевых панелей, которая исправляет уязвимости, и рекомендует пользователям обновиться до новой исправленной версии. Пользователям следует обратиться в местную сервисную организацию для получения дополнительной информации о том, как получить и применить V3.5. Веб-форма доступна по следующему адресу на веб-сайте Siemens:
http://w3.usa.siemens.com/buildingtechnologies/us/en/contact-us/Pages/bt-contact-form.aspx
Правило Suricata для обнаружения:
alert http any any -> any any (msg:"Siemens Field Panel Authentication Bypass Using an Alternate Path or Channel, Path Traversal"; http.method; content:"GET"; content:”FieldPanel.xml”; http_uri; reference: cve, CVE-2017-9947; priority:1; sid: 1000001; rev: 1;)
Доступны два скрипта на Python: siemens_field_panel_scanner.py и APOLOGEE.py. Скрипт siemens_field_panel_scanner.py — это модуль Metasploit, который можно загрузить в фреймворк для простого вспомогательного использования во внутренних операционных технологиях и сетях промышленных систем управления (ICS). Скрипт APOLOGEE.py — это отдельная программа для перечисления полевых панелей с использованием стандартных аргументов командной строки.
Скачать репозиторий:
$ mkdir APOLOGEE
$ cd APOLOGEE/
$ sudo git clone https://github.com/RoseSecurity/APOLOGEE.git
Использование APOLOGEE.py:
# python3 APOLOGEE.py <Siemens Field Panel IP>
$ python3 APOLOGEE.py 192.168.1.22
Использование siemens_field_panel_scanner.py:
Чтобы загрузить скрипт в Metasploit:
# Make the script executable
$ chmod +x siemens_field_panel_scanner.py
# Create directory for module
$ mkdir -p ~/.msf4/modules/auxiliary/scanner/scada
# Move script into folder
$ mv siemens_field_panel_scanner.py ~/.msf4/modules/auxiliary/scanner/scada
Запустите Metasploit:
$ msfconsole -q
# Reload modules
msf> reload_all
msf> use /modules/auxiliary/scanner/scada/siemens_field_panel_scanner.py
Если вы столкнулись с ошибками, проверьте следующий журнал:
$ tail ~/.msf4/logs/framework.log
Если вы заинтересованы в написании собственных модулей Python для Metasploit, посмотрите: https://docs.metasploit.com/docs/development/developing-modules/external-modules/writing-external-python-modules.html