
Модульная среда атак на Python3 для автоматизации эксплуатации SIEM-платформ (Splunk, Graylog, OSSIM, QRadar, McAfee) с помощью кражи учетных данных, развертывания полезной нагрузки и модулей пост-эксплуатации.
MultiSIEM Modular Python3 Attack Framework
От ElevenPaths https://www.elevenpaths.com/
Использование: python3 ./siemsframework.py
SIEM — это защитные инструменты, всё чаще используемые в области кибербезопасности, особенно крупными компаниями и организациями, предназначенными для мониторинга высококритичных систем и сетей. Однако с точки зрения злоумышленника права, предоставляемые SIEM на системы и учётные записи корпоративных сетей, велики. Более того, административный доступ к SIEM может быть использован для получения выполнения кода на сервере, где установлен данный SIEM, а иногда и на клиентских машинах, учитывая, что SIEM собирает события с таких ресурсов, как серверы Active Directory, серверы AWS, базы данных и сетевые устройства (например, межсетевые экраны и маршрутизаторы).
В ходе нашего исследования мы обнаружили множество векторов атак, которые могут быть использованы против различных SIEM для их компрометации, например:
• Получение учётных записей пользователей и паролей, хранящихся в SIEM от критических систем (серверы LDAP/AD, базы данных, сетевые устройства, серверы AWS).
• Разработка и установка вредоносных приложений, таких как reverse shell для Windows/Linux, bind shell для Windows/Linux или вредоносных скриптов, с целью компрометации сервера, на котором установлен SIEM.
• Разработка и установка вредоносных приложений, таких как reverse shell для Windows/Linux, bind shell для Windows/Linux или вредоносных скриптов, с целью компрометации машин, с которых SIEM собирает события.
• Создание и применение вредоносных действий или уведомлений, позволяющих выполнять команды при наступлении определённого события, например, с целью получения reverse shell на сервере, где установлен SIEM.
• Использование паролей по умолчанию и уязвимостей SIEM в конфигурации образов OVA для получения учётных данных администратора сервера, базы данных или даже самого веб-интерфейса SIEM.
• Выполнение атак по словарю или атак грубой силы против веб- или административного интерфейса, или против клиентского ПО SIEM, для получения учётных данных администратора.
• Чтение произвольных файлов с сервера, на котором установлен SIEM.
• Получение информации о конфигурации SIEM и других релевантных параметров для проведения дальнейших атак.
На основе результатов исследования был разработан инструмент Open Source SIEMs Framework. Это модульный инструмент, разработанный на Python3 командой Innovation and Laboratory компании ElevenPaths. Он позволяет автоматизировать потенциальные атаки на различные SIEM, существующие на рынке (как коммерческие, так и с открытым исходным кодом).
SIEMs Framework поддерживает множество полезных нагрузок (payloads), которые могут быть выбраны в зависимости от атакуемого SIEM и его операционной системы. Доступны полезные нагрузки в форматах PowerShell, Python, Bash, Exe и других. После выполнения выбранной атаки инструмент отображает результаты на экране, и можно вернуться и выполнить любую другую атаку на тот же SIEM или выбрать другой SIEM для компрометации. Он имеет простой, удобный и интуитивно понятный интерфейс. В настоящее время он может использоваться со следующими SIEM: Splunk, Graylog и OSSIM.
SIEMs Framework можно загрузить с нашего Github, скачав .zip-файл или клонировав репозиторий, и он предъявляет следующие требования, которые можно установить через pip3 install -r requirements.txt:
• splunk-sdk
• requests
• python-nmap
• colorama
• pandas
• paramiko
• pymongo
• qradar4py
• requests_mock
• urllib3
После установки требований инструмент можно использовать следующим образом: python3 ./siemsframework.py
При запуске инструмента отображается главное меню, в котором необходимо выбрать, хотите ли вы сканировать конкретный IP-адрес, где может находиться SIEM, или сеть для обнаружения SIEM в ней. Для сканирования и обнаружения SIEM по конкретному IP-адресу используйте опцию 1, для сканирования сети — опцию 2.
При выборе опции 1 «Scan and Detect SIEM» инструмент запрашивает IP-адрес, чтобы просканировать определённые порты поддерживаемых SIEM и подключиться к веб- или управляющему интерфейсу для проверки, действительно ли это SIEM.
После обнаружения SIEM одним из вышеуказанных методов инструмент показывает обнаруженный SIEM красным цветом и предлагает запустить модуль атаки для этого SIEM.
При выборе опции 2 «Find SIEMs on the network» инструмент запрашивает сеть для сканирования в нотации CIDR, например: 192.168.137.0/24. После ввода информации SIEMs Framework сначала выполняет обнаружение активных систем; затем сканируются порты по умолчанию поддерживаемых SIEM, и, наконец, он подключается к веб- или управляющему интерфейсу каждой из этих систем для проверки, действительно ли это SIEM.
После обнаружения SIEM одним из вышеуказанных методов инструмент показывает обнаруженные SIEM красным цветом и запрашивает IP-адрес атакуемого SIEM.
При вводе «y» и выборе запуска модулей атак Splunk инструмент показывает все возможные атаки на этот SIEM. Для первых двух атак учётные данные не требуются, но для пятой необходимы привилегии администратора Splunk.
Этот модуль атаки содержит специальный словарь для Splunk с именем dict.txt, который состоит из 100 наиболее часто используемых паролей за 2018 год и различных перестановок торговой марки SIEM и её административного пользователя, в верхнем и нижнем регистре, с заменой гласных на цифры. Если вы хотите использовать другой список, отличный от указанного, файл /splunk/dict.txt можно заменить на любой другой список слов, при условии сохранения имени файла. Политика паролей Splunk не применяется к пользователям с ролью администратора, поэтому ограничения на количество паролей или блокировку учётной записи из-за неудачных попыток входа не действуют. Перед началом атаки по словарю инструмент проверяет, имеет ли анализируемый Splunk бесплатную версию, которая не использует никакой аутентификации, или всё ещё сохраняет пароль по умолчанию «changeme» для старых версий этого программного обеспечения:
Если на анализируемом сервере Splunk активен веб-интерфейс, этот модуль позволяет получить информацию о сервере и сессии из самого веб-интерфейса без аутентификации. Порт по умолчанию для веб-интерфейса Splunk — 8000; для использования этого модуля необходимо знать и ввести порт, на котором опубликован веб-интерфейс.
Этот модуль может использоваться на сервере Splunk или Universal Forwarder. Для его использования необходимы учётные данные администратора Splunk, которые можно получить, например, с помощью атаки по словарю (1-я атака). Результатом модуля является информация о текущей установке Splunk: версия, операционная система, конфигурации Splunk и другое.
Этот модуль используется только на серверах Splunk. Для его использования необходимы учётные данные администратора Splunk, которые можно получить, например, с помощью атаки по словарю (1-я атака). Результатом модуля являются все учётные данные, сохранённые приложениями, используемыми в Splunk для подключения к устройствам, с которых получаются события.
Этот модуль можно использовать на сервере Splunk под Linux. Для его использования необходимы учётные данные администратора Splunk, которые можно получить, например, с помощью атаки по словарю (1-я атака). Модуль использует индекс для загрузки соответствующего файла, и его результатом является содержимое файла /etc/shadow с сервера, на котором установлен Splunk.
Этот модуль будет доступен в следующей версии SIEMs Framework. Для компрометации Universal Forwarder пока можно выполнить атаку 1 для получения учётных данных, а затем атаку 7 для установки вредоносных приложений в зависимости от платформы.
Этот модуль атаки позволяет разработать и установить на Splunk вредоносное приложение, предназначенное для компрометации соответствующей системы. Сначала необходимо выбрать тип полезной нагрузки в зависимости от операционной системы и типа атакуемого Splunk (сервер Splunk или Universal Forwarder). Можно использовать Linux Python Reverse или Bind Shell для сервера Splunk или UF; Windows Python Reverse или Bind Shell для сервера Splunk (где Python установлен по умолчанию); а также исполняемый Bind Shell или скрипт для добавления административного пользователя на Windows Universal Forwarder (где Python не установлен по умолчанию). Затем необходимо ввести имя пользователя, пароль администратора Splunk и IP-адрес атакующего.
При вводе «y» и выборе запуска модулей атак Graylog инструмент показывает все возможные атаки на этот SIEM. Для первых трёх атак учётные данные не требуются, но для четвёртой необходимы привилегии администратора Graylog.
Этот модуль атаки содержит специальный словарь для Graylog с именем dict.txt, который состоит из 100 наиболее часто используемых паролей за 2018 год и различных перестановок торговой марки SIEM и её административного пользователя, в верхнем и нижнем регистре, с заменой гласных на цифры. Если вы хотите использовать другой список, отличный от указанного, файл /graylog/dict.txt можно заменить на любой другой список слов, при условии сохранения имени файла.
Этот модуль атаки проверяет, имеет ли анализируемый Graylog учётные данные по умолчанию для веб-интерфейса Graylog (admin/admin), а также учётные данные по умолчанию для подключения к системе через консоль или SSH (ubuntu/ubuntu). Эта пара учётных данных настроена по умолчанию на виртуальных машинах Graylog, как в OVA, так и в AMI.
Этот модуль атаки проверяет, настроена ли база данных Mongo DB для анализируемого Graylog без аутентификации. В таком случае он подключается к MongoDB и получает информацию о конфигурации, учётные данные LDAP (в зависимости от текущей версии Graylog они могут быть в открытом виде или зашифрованы) и ключи доступа и секретные ключи, настроенные в плагине AWS. Если они зашифрованы, ключ пользователя LDAP шифруется с помощью AES CBC. Ключом являются первые 16 бит поля password_secret, расположенного в конфигурационном файле server.conf или graylog.conf для стандартных установок; или поля secret_token, расположенного в файле graylog-secrets.json для установок OVA; IV — это соль, отображаемая на экране.
Этот модуль атаки получает информацию о конфигурации и учётные данные для LDAP и AWS в открытом виде из REST API Graylog. Для использования этого модуля необходимы учётные данные администратора Graylog.
При вводе «y» и выборе запуска модулей атак OSSIM инструмент показывает все возможные атаки на этот SIEM. Для первой атаки учётные данные не требуются, но для последующих необходимы учётные данные администратора OSSIM.
Этот модуль атаки содержит специальный словарь для OSSIM с именем dict.txt, который состоит из 100 наиболее часто используемых паролей за 2018 год и различных перестановок торговой марки SIEM и её административного пользователя, в верхнем и нижнем регистре, с заменой гласных на цифры. Если вы хотите использовать другой список, отличный от указанного, файл /ossim/dict.txt можно заменить на любой другой список слов, при условии сохранения имени файла.
Этот модуль атаки позволяет получить информацию о конфигурации сервера OSSIM. Для его использования необходимы учётные данные администратора OSSIM, которые можно получить, например, с помощью атаки по словарю (1-я атака). Результатом модуля является соответствующая информация о конфигурации текущей установки: определённые пользователи, параметры входа, включая конфигурации LDAP и политики паролей.
Этот модуль атаки позволяет получить reverse shell с сервера OSSIM на систему атакующего. Для его использования необходимы учётные данные администратора OSSIM, которые можно получить, например, с помощью атаки по словарю (1-я атака). Модуль разрабатывает вредоносное действие, которое будет подключаться через netcat к системе атакующего. Затем он запускает новую политику, использующую такое действие для предупреждения в случае возникновения любого события безопасности, и это событие инициируется неудачной попыткой входа по SSH на сервер OSSIM. В результате получается reverse shell с сервера OSSIM на систему атакующего на порту 12345 с привилегиями root.
При вводе «y» и выборе запуска модулей атак QRadar инструмент показывает все возможные атаки на этот SIEM. Для первых двух атак учётные данные не требуются, но для последующих необходимы учётные данные администратора QRadar или API Key.
Этот модуль атаки содержит специальный словарь для QRadar с именем dict.txt, который состоит из 100 наиболее часто используемых паролей за 2018 год и различных перестановок торговой марки SIEM и её административного пользователя, в верхнем и нижнем регистре, с заменой гласных на цифры. Если вы хотите использовать другой список, отличный от указанного, файл /qradar/dict.txt можно заменить на любой другой список слов, при условии сохранения имени файла. Эта атака очень медленная, потому что QRadar имеет защиту, разрешающую только 5 попыток каждые 30 минут.
Этот модуль атаки содержит специальный словарь для QRadar с именем apikeys.txt, который состоит из 1000 различных вариантов API-ключей, сохраняющих структуру, необходимую для этого SIEM. Если вы хотите использовать другой список, отличный от указанного, файл /qradar/dict.txt можно заменить на любой другой список слов, при условии сохранения имени файла. Программа предоставляет возможность создать файл с API-ключами случайным образом.
Этот модуль атаки позволяет получить конфигурацию сервера через использование API Key. Для его использования необходим API Key администратора QRadar, который можно получить, например, с помощью атаки по словарю (2-я атака). Результатом модуля является соответствующая информация о конфигурации текущей установки: определённые пользователи, иерархия сети и хосты развёртывания.
Этот модуль атаки позволяет получить список пользователей, сохранённых в базе данных Ariel. Для его использования необходим API Key администратора QRadar, который можно получить, например, с помощью атаки по словарю (2-я атака). Результатом модуля является соответствующая информация о конфигурации пользователей, которые имели контакт с базой данных Ariel.
При вводе «y» и выборе запуска модулей атак McAfee инструмент показывает все возможные атаки на этот SIEM. Для первой атаки учётные данные не требуются, но для последующих необходимы учётные данные администратора McAfee.
Этот модуль атаки содержит специальный словарь для McAfee с именем dict.txt, который состоит из 7000 паролей, созданных случайным образом с различными перестановками торговой марки SIEM и её административного пользователя, в верхнем и нижнем регистре, с заменой гласных на цифры. Если вы хотите использовать другой список, отличный от указанного, файл /mcafee/dict.txt можно заменить на любой другой список слов, при условии сохранения имени файла. Эта атака очень медленная, потому что McAfee имеет защиту, разрешающую только 3 попытки каждые 10 минут.
Этот модуль атаки содержит специальный словарь для McAfee с именем dict.txt, который состоит из 7000 паролей, созданных случайным образом с различными перестановками торговой марки SIEM и её административного пользователя, в верхнем и нижнем регистре, с заменой гласных на цифры. Если вы хотите использовать другой список, отличный от указанного, файл /mcafee/dict.txt можно заменить на любой другой список слов, при условии сохранения имени файла.
Этот модуль атаки позволяет получить конфигурацию сервера через использование учётных данных администратора. Для его использования необходимы учётные данные SSH администратора, которые можно получить, например, с помощью атаки по словарю (2-я атака). Результатом модуля является соответствующая информация о конфигурации текущей установки: nameserver в сети, активные службы, сетевая конфигурация и конфигурация брандмауэра.
Этот модуль атаки позволяет получить конфигурацию сервера через использование учётных данных администратора. Для его использования необходимы учётные данные SSH администратора, которые можно получить, например, с помощью атаки по словарю (2-я атака). Результатом модуля является соответствующая информация о конфигурации текущей установки: номер релиза SIEM, данные жёсткого диска, данные ОЗУ, данные процессора, время работы, статус даты следующей проверки, статус даты проверки правил и дата следующего резервного копирования.
Этот модуль атаки позволяет получить конфигурацию сервера через использование учётных данных администратора. Для его использования необходимы учётные данные SSH администратора, которые можно получить, например, с помощью атаки по словарю (2-я атака). Результатом модуля является соответствующая информация о системных пользователях.
При вводе «y» и выборе запуска модулей атак SIEMonster инструмент показывает все возможные атаки на этот SIEM. Для первой атаки учётные данные не требуются, но для последующих необходимы учётные данные администратора SIEMonster.
Этот модуль атаки содержит специальный словарь для SIEMonster с именем dict.txt, который состоит из 7000 паролей, созданных случайным образом с различными перестановками торговой марки SIEM и её административного пользователя, в верхнем и нижнем регистре, с заменой гласных на цифры. Если вы хотите использовать другой список, отличный от указанного, файл /siemonster/dict.txt можно заменить на любой другой список слов, при условии сохранения имени файла.
Этот модуль атаки позволяет получить конфигурацию сервера через использование учётных данных администратора. Для его использования необходимы учётные данные SSH администратора, которые можно получить, например, с помощью атаки по словарю (1-я атака). Результатом модуля является соответствующая информация о конфигурации текущей установки: nameserver в сети, активные контейнеры docker, список активных служб, сетевая конфигурация и конфигурация брандмауэра.
Этот модуль атаки позволяет получить конфигурацию сервера через использование учётных данных администратора. Для его использования необходимы учётные данные SSH администратора, которые можно получить, например, с помощью атаки по словарю (1-я атака). Результатом модуля является соответствующая информация о системных пользователях.### ElasticSIEM Attack Modules By entering “y” and selecting the launch of ElasticSIEM attack modules, the tool shows all the possible attacks to be performed against this SIEM. For the first attack no credentials are required, but for the subsequent ones ElasticSIEM admin credentials are needed.
This attack module contains a specific dictionary for ElasticSIEM named dict.txt, which is made up of the 7000 most used password over 2018 and various permutations of the SIEM trade name and its admin user, in uppercase and lowercase letters, and replacing vowels with numbers. In case you wish to use any other list different from the one mentioned above, /elasticsiem/dict.txt can be replaced with any other word list, provided that the file name is kept.
This attack module allows us to obtain the server configuration through to use of admin credentials. To use it, SSH admin credentials are needed, and they can be obtained for instance through a dictionary attack (1st attack). The result of the module is the relevant configuration information of the current installation: nameserver on the network, active docker's containers, list of active services, and network configuration.
Please report any error by opening an issue in GitHub. Your collaboration is very appreciated!