Как атакуют системы 1С: клиентские версии
Приветствуем всех любителей информационной безопасности! Мы ЛианМедиа и информационная безопасность наша главная специализация! В данной статье мы бы хотели поделиться с вами практикой пентеста приложения 1С. Почему именно 1С? Подобных статей о различных приложениях на платформе 1С не много, а там есть что обсудить.
Содержание
Для тех, кто в танке:
Пентест или же тестирование на проникновение — это процесс имитации атаки на компьютерную систему, сеть или приложение с целью выявления уязвимостей и оценки уровня безопасности.
1С — это платформа на базе которой можно создавать различные приложения, от простого учёта домашних финансов до крупномасштабного бизнеса и производства.
Ограничения? Фантазия разработчика или узкоспециализированный профиль предприятия, которому не подходят решения 1С.
Так же у 1С существуют уже готовые конфигурации, разработанные одноимённой российской компанией, например, 1С: Предприятие, 1С: Бухгалтерия, 1С: Зарплата и управление персоналом, 1С: Управление торговлей и т.д.
В данной статье мы бы хотели поделиться опытом с какими типовыми атаками пришлось столкнуться нашим специалистам в процессе поиска уязвимостей приложений 1С.
АТАКА НА WEB-КЛИЕНТ
Для начала мы обратили внимание на раскрывающееся меню 1С. Объективно, оно не является ярким нарушением безопасности, однако оно может послужить началом дальнейшего вектора атаки. Такая уязвимость может быть использована для атаки методом энумерации пользователей.
Поле «Пользователь» представляет из себя выпадающий список, в котором указаны все существующие учётные записи. Этот факт даёт информацию потенциальному злоумышленнику о количестве пользователей и их специализации (если указаны должности).
Атака энумерацией в контексте приложений 1С заключается в попытке злоумышленника получить информацию о существующих учётных записях пользователей системы и для дальнейших попыток несанкционированного доступа, например, таких как брутфорс, о котором мы расскажем далее.
1. БРУТФОРС
Вероятно вы могли слышать про такой термин как «Брутфорс» — это способ угадывания пароля (логина или даже ключа, использующегося для шифрования), предполагающий систематический перебор всех возможных комбинаций символов, пока не будет найдена правильная комбинация. В свободном доступе существует большое количество баз часто встречающихся паролей.
Путём перебора различных комбинаций паролей злоумышленники могут получить доступ к учётным записям пользователей. Для защиты от подобных атак необходимо устанавливать усиленную парольную политику и блокировать учётные записи после определенного количества неудачных попыток авторизации (например, 3–5 попыток).
Мы реализовали пример атаки методом брутфорса:
Проводим энумерацию пользователей — этим мы можно перехватить запрос, который отправляется в момент нажатия на окно авторизации 1С и выполним извлечение имён пользователей, которые показываются в окне выбора пользователя командой:
curl http://
/buh/en_US/e1cib/users Выполняем запуск перебора паролей от учётных записей. Для этого мы используем специальный брутфорсер для веб-версии 1С:
1c-web-bruter
, написанный на языке Python, ссылка на гит прилагается.Указываем целевой адрес и два текстовых файла, которые представлены ниже:
Универсальный список имён и словарь паролей
один файл с универсальным списком имён «users.txt» — админы, демо, тесты и т.п.
другой файл с паролями — ТОП-10К наиболее популярных паролей
Ссылки на словари: пароли и имена.
Выполним запуск перебора паролей следующей командой: ./1c-web-bruter.py http://
.
Таким образом мы провели атаку методом «грубой силы», в результате которой можно получить учётные данные пользователей, в том числе с правами администратора.
Реализация веб-брутера 1С
Стоит сказать, что реализовать защиту от брутфорс-атак можно с помощью интеграции СЗИ, которые будут в реальном времени анализировать аномалии безопасности (например, большое количество попыток входа).
К СЗИ относятся IPS, SIEM и другие подобные системы, которые собирают и анализируют данные о безопасности из различных источников, позволяя выявлять и реагировать на потенциальные угрозы в реальном времени. Примеры конкретных СЗИ: Snort, Suricata, Splunk, ArcSight и др.
Многофакторная аутентификация также позволяет бороться с брутфорс-атаками, но всё равно необходимо устанавливать действительно сложные пароли, как уже было сказано ранее.
Не поверите, насколько часто мы встречали, что пароль попросту отсутствовал или при входе в систему предлагалось его создать. Банальное отсутствие пароля на учётной записи — это серьёзное нарушение информационной безопасности. Это случалось по разным причинам, где-то истек срок действия пароля, где-то он даже не был установлен вследствие неправильной конфигурации сервера или халатности со стороны системного администратора.
2. ЗАГРУЗКА ВНЕШНЕЙ ОБРАБОТКИ ».EPF»
Внешние обработки представляют собой специализированный скрипт, который не входит в состав прикладного решения и хранится в отдельном файле с расширением .epf
.
При наличии доступа к учётной записи пользователя, можно перейти к следующему этапу вектора атаки, которым станет загрузка внешнего обработчика .epf
, позволяющего выполнять команды.
Несанкционированный доступ к 1С после подбора пароля
Загрузка внешней обработки осуществляется через меню File → Open, там необходимо выбрать файл с расширением .epf
.
Загрузка внешнего обработчика
Функционал обработчика может быть абсолютно разным в зависимости от требуемых задач, например:
Пример функционала внешней обработки
Можно загрузить внешний обработчик с оболочкой 1С и производить выполнение команд, как показано ниже.
Оболочка 1С для выполнения команд
Очевидно, что последствия от такой атаки могут быть серьёзными, включая:
выполнение вредоносного кода на сервере 1С
получение несанкционированного доступа к чувствительным данным
возможность изменения конфигурации системы
Решить данную проблему поможет надлежащее распределение прав доступа у пользователей. Например, ошибка, представленная ниже, означает, что у пользователя нет прав на запуск внешних обработок и отчетов.
Ошибка доступа, пользоваться внешними обработками запрещено
АТАКА НА DESKTOP-КЛИЕНТ
1. БРУТФОРС
Как и на веб-клиенте, брутфорс учётных записей десктопного клиента 1С представляет собой метод атаки «грубой силы», при котором злоумышленник пытается подобрать пароль к учётной записи, перебирая все возможные комбинации.
Уязвимость возникает из-за недостаточной защиты паролей и отсутствия механизмов блокировки учётных записей после нескольких неудачных попыток входа.
В системах 1С, особенно в старых версиях, могут отсутствовать эффективные меры по защите от таких атак, что делает их уязвимыми для злоумышленников. Использование слабых паролей, отсутствие двухфакторной аутентификации и недостаточные настройки безопасности могут способствовать успешному проведению брутфорс-атак.
2. РАСШИФРОВКА ПАРОЛЕЙ ДЛЯ ПОДКЛЮЧЕНИЯ К БАЗЕ ДАННЫХ ПОСРЕДСТВОМ КОНФИГОВ
По умолчанию на компьютере у пользователя 1С (версия 8.2) хранятся файлы списка баз. Файлы представлены в таблице ниже:
Конфиг баз для Windows XP | |
Путь | Описание |
С:\Documents and Settings\All Users\Application Data\1C\1CEstart\ | Профиль для всех пользователей |
С:\Documents and Settings\%username%\Application Data\1C\1CEstart\ | Профиль пользователя |
Конфиг баз для Windows 7 | |
Путь | Описание |
C:\ProgramData\1C\1CEStart\ | Профиль для всех пользователей |
C:\Users\%username%\AppData\Roaming\1C\1CEStart\ | Профиль пользователя |
1С при запуске берёт список баз к представлению в файле пользователя, например, по следующему пути:
C:\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8i.
Предварительно происходит чтение настроек сначала из профиля всех пользователей:
C:\ProgramData\1C\1CEStart\1CEStart.cfg
Потом из профиля пользователя:
C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg
и если в профилях есть ссылки на конфигурационные базы в сети, то добавляет их в этот файл.
Путь до конфигурационного файла в различных ОС может быть разным. Например, в CentOS он может быть представлен, как на рисунке ниже:
Путь в CentOS к конфигурационному файлу
В Windows перейдя по расположению C:\Program Files (x86)\1cv8\srvinfo\reg_1541\1CV8Clst.lst
, вывести содержимое файла 1CV8Clst.lst
и обратить внимание на полученную информацию:
название базы данный;
имя пользователя базы данный;
зашифрованный пароль, который нам необходимо вытащить
Содержимое конфигурационного файла 1CV8Clst.lst
В целом, кроме выше перечисленного, конфиг: 1cv8clst.lst
, содержит реестр кластера и хранит следующую информацию:
Список информационных баз, зарегистрированных в данном кластере;
Список рабочих серверов, входящих в кластер;
Список рабочих процессов, входящих в кластер;
Список менеджеров кластера;
Список сервисов кластера;
Список администраторов кластера.
Зашифрованный пароль пользователя можно расшифровать ввиду использования статического ключа, инициализирующего вектора и алгоритма шифрования AES. Расшифровку произведём при помощи инструмента CyberChef
:
Расшифровка пароля при помощи CyberChef
В рамках данной статьи мы не можем раскрывать ключ и инициализирующий вектор шифрования.
Получив пароль, мы можем попытаться выполнить авторизацию на СУБД при помощи инструмента crackmapexec
. Сообщение Pwn3d!
свидетельствует об успешной авторизации.
Получение доступа до базы MSSQL
Таким образом, мы смогли получить доступ до базы MSSQL.
3. ЗАГРУЗКА ВНЕШНЕЙ ОБРАБОТКИ ».EPF»
В десктоп-клиент, как и веб-клиент, существует уязвимость, связанная с внешними обработчиками, которые могут быть использованы для выполнения вредоносных команд. Если должным образом не настроены привилегии пользователей, то существует вероятность, что потенциальный нарушитель может загрузить свой собственный внешний обработчик .epf
и выполнять команды на сервере 1С.
Реализация данной уязвимости была детально описана в разделе выше — АТАКА НА WEB-КЛИЕНТ. ЗАГРУЗКА ВНЕШНЕЙ ОБРАБОТКИ ».EPF».
Заключение
Существует ряд уязвимостей, которые могут быть использованы злоумышленниками для проникновения в систему и компрометации данных. Выявленные слабости подчёркивают важность реализации надёжных мер информационной защиты от киберугроз. Мы показали, как злоумышленники могут использовать недостатки в системе 1С для получения несанкционированного доступа к данным. Помните, что регулярное обновление программного обеспечения до последних версий поможет минимизировать риск возможных атак и обеспечить защиту ваших данных. Помните, что информационная безопасность — это непрерывный процесс, требующий постоянного внимания и обновления.
Так же советуем ознакомится со статьёй: Как атакуют системы 1С: серверные элементы