На сегодняшний день данная техника обфускации активно используется при распространении некоторых семейств зловредного ПО. Ниже расследование Mandiant по методологии противника, известной как "Обфускация ссылок через формат Schema". Данный метод поможет увеличить процент успеха у фишинговых кампаний и усложнить для различных АВ-инструментов определение реальной конечной ссылки.
Техника также может помочь обойти инструменты сетевой защиты, которые полагаются на определение реального домена конечной ссылки (например, проверка домена по внутренним фидам угроз) и которые могут пропустить ее без последствий через свои механизмы защиты.
Мы рекомендуем администраторам проверить - обходит ли данная схема механизмы их сетевой защиты при ведении логов и отработки различных сценариев защиты от атак.
Первая наводка
@ankit_anubhav первым заметил данный метод в своем твите об активной кампании SMOKELOADER при обфускации доменов конечных ссылок. Исследование Mandiant обнаружило различные форматы данной техники, которые были ранее использованы для распорстранения некоторых других семейств зловредного ПО.
В оригинальном твите был зафиксирован следующий пример использования: ссылка вида "hxxp://google.com@1157586937”, которая приводит в результате к открытию Rick Roll видео. Данный твит иллюстрирует две различные техники обфускации ссылок, используемые одновременно:
Начнем с того, что цель этого знака дать понять вашему браузеру как обработать структуру ссылки в момент перехода на нее посетителем.
RFC1738 определяет стандарт структуры ссылок. В секции 3.1 (Common Internet Scheme Syntax, общая схема интернет синтаксиса) раскрываются базовые стандарты для ссылок:
В секции 3.3 (HTTP) раскрывается формат для HTTP-ссылки в виде следующей структуры:
В RFC специально указывается, что "имя пользователя или пароль не разрешены" в ссылке. Имя пользователя определяется как текст перед знаком "@”. Когда браузер обрабатывает ссылку с заполненным именем пользователя (все, что предшествует знаку «@»), он отбрасывает значение имени пользователя и отправляет запрос на сервер, заданный после знака «@».
Возвращаясь к примеру из твите, "google.com” трактуется браузером в ссылке как имя пользователя. В зависимости от целей фишинговой страницы значение может быть абсолютно любым (например, для эффективности это может быть емэйл-домен нашей цели).
Альтернативный формат имени хоста
В примере выше цифры "1157586937” воспринимаются браузером как имя хоста. Однако, IP-адрес сервера редко отображается как целое число. Это и есть второй уровень обфускации нашей ссылки.
Стандартный вариант отображения IPv4 IP-адреса - формат в виде четырех десятичных чисел, разделенных точками, каждое десятичное число представляет собой 8 бит IP-адреса. Например, IP-адрес 1.2.3.4 может быть представлен как двоичное число 00000001.00000010.00000011.00000100.
Двоичный формат IP-адреса можно также представить как одно большое двоичное число, которое затем преобразовать в десятичное. В нашем примере двоичное число 00000001.00000010.00000011.00000100 становится десятичным числом 16909060.
Рис. 1. Демонстрация преобразования IP 1.2.3.4 в десятичное число
Браузеры выполняют подобные преобразования налету. При этом возможно использовать и другие варианты целых чисел:
Шестнадцатеричный (hexadecimal) формат может быть тоже представлен с точками:
hxxp://google.com@0xC0.0xA8.0x0.0x1
Восьмеричный (Octal) формат тоже возможен:
hxxp://google.com@0300.0250.0000.0001
Или мы можем смешать два формата, чтобы еще больше запутать следы:
hxxp://google.com@0xc0.168.0x0.1
Домены тоже могут быть использованы для иллюзии реальной конечной ссылки:
hxxp://legit.banking.site.com@loginportal.onlinebanking.orly/loginPortal.php
Существует множество открытых инструментов для обфускации ссылок. Например - IPFuscator от Vincent Yiu, который поможет вам сгенерировать в том числе и смешанные варианты ссылок.
В реальных условиях
VirusTotal показывает различные варианты использования данных схем как минимум с февраля 2022 года. Продолжающееся использование подобных схем обфускации ссылок через Schema иллюстрирует эффективность данного метода для злоумышленников. Данный метод помогает избежать обнаружений инструментами безопасности и увеличивает процент успеха при открытии ссылки жертвой.
Часто такие ссылки используется для загрузки и запуска дополнительного вредоносного ПО. Было замечено, что для запуска зловредного кода на компьютере жертвы вместе используется как минимум несколько уязвимостей. Чаще всего это CVE-2017-0199 в документах вместе с CVE-2017-11882. Широкий спектр семейств вредоносных программ использует эту технику для запуска файлов, включая LOKIBOT, MATIEX, FORMBOOK и AGENTTESLA.
Пример недавнего инцидента
В феврале 2023 был обнаружен следующий документ Microsoft Word при помощи правил YARA и VirusTotal Retrohunt: аттака состояла из нескольких этапов - внедрение шаблона и эксплойт с загрузкой AGENTTESLA, которые отправлял затем данные с жертвы через шифрованный Телеграм-канал.
PO.docx был впервые замечен на VirusTotal 6 февраля 2023. Он содержит в себе метод инжекта шаблона в момент открытия документа, запрашивая на следующей стадии подгрузку зловредного ПО.
Если документ распакован, то следующий этап в цепочки заражения можно увидеть внутри файла webSettings.xml.rels:
Рисунок 2: файл webSettings.xml.rels
На данном этапе загружается и исполняется файл со следующей ссылки:
hxxp://dgdf000000ghfjfgh000000fghfghg0000000fhfghfg000000sdgfggdf00000gdfge00000rtdfgdf00000gdfg@647601465/56.doc
Ссылка после деобфускации выглядит как hxxp://38.153.157.57/56.doc. Внедрение шаблона приводит к следующему запросу, сделанному из Microsoft Word. Обратите внимание, что обфускация отсутствует в сетевом трафике; поле имени пользователя нет в логе, а целочисленное представление IP-адреса было изменено на формат с четырьмя точками:
Загруженный документ 56.doc впервые появился на VirusTotal 6 февраля 2023, в тот же день, что и PO.docx. 56.doc — это файл RTF, использующий CVE-2017-11882 для загрузки и выполнения.hxxp://38.153.157.57/156/vbc.exe. В отличие от PO.docx, здесь не используется метод обфускации URL.
Внутреннее имя исполняемого файла «NNbHhH.exe», который является AGENTTESLA, отправляющим украденные данные через Telegram с идентификатором бота и токеном «6010275350: AAH4W3CDRhQk0wgfyhQ_jITTy3QYmrxdDbw».
Обнаружение
Вместо того, чтобы начинать с нуля писать регулярное выражение (Regex), часто можно найти уже имеющееся выражение в интернете, которое мы можем повторно использовать для своих целей. Интересно, что наиболее популярное регулярное выражение для определения ссылок из сообщения на StackOverflow не сможет определить ссылку с использованием данных техник, рассмотренных в нашей статье.
RegEx с ответа на StackOverflow:
Если мы проверим данное выражение в Regex101, мы увидим, что оно пропускает обфусцированные нами ссылки:
К сожалению, вы не сможете выявить ссылки, обфусцированные с помощью рассмотренных в статье техники, если ваш инструмент безопасности использует данное регулярное выражение. Когда браузер получает запрос на переход по адресу ссылки с использованием данного синтаксиса, он автоматически переводит его в валидный формат до реальной отправки запроса. Поэтому, анализируя сетевой трафик, вы не увидите обфусцированный URL-адрес.
Однако использование файлового анализа, такого как YARA или AV/EDR поможеть выявить схемы обфусцирования конечных ссылок и корректно зафиксировать их в логах. Также если используется модуль Powershell’а как Invoke-WebRequest, обфусцированный адрес будет отображаться в логах.
В заключении статьи включены правила YARA для определения обфусцированных ссылок в документах Office, файлах RTF и PDF.
Заключение
В настоящий момент обфускация ссылок через Schema активно используется для доставки различного вредоносного ПО - от фишинговых страниц до внедрения шаблонов в документы. Администраторы должны убедиться в корректной настройке своих инструментов безопасности и адекватного журналирования поступающих угроз для определения, идентификации и получения корректных признаков этих угроз, чтобы быть уверенными, что их защита не обходятся с помощью обфусцированных ссылок в формате не соответствующем RFC. Использование правил Yara само по себе может помочь определить и предотвратить угрозы для ваших систем.
Благодарности
Особая благодарность Connor McLaughlin и Jared Wilson за их помощь на каждом этапе нашего исследования.
Приложение 1. Правила Yara
Приложение 2. Семейства вредоносного ПО и используемые ими ссылки.
Источник: https://www.mandiant.com/resources/blog/url-obfuscation-schema-abuse
Техника также может помочь обойти инструменты сетевой защиты, которые полагаются на определение реального домена конечной ссылки (например, проверка домена по внутренним фидам угроз) и которые могут пропустить ее без последствий через свои механизмы защиты.
Мы рекомендуем администраторам проверить - обходит ли данная схема механизмы их сетевой защиты при ведении логов и отработки различных сценариев защиты от атак.
Первая наводка
@ankit_anubhav первым заметил данный метод в своем твите об активной кампании SMOKELOADER при обфускации доменов конечных ссылок. Исследование Mandiant обнаружило различные форматы данной техники, которые были ранее использованы для распорстранения некоторых других семейств зловредного ПО.
В оригинальном твите был зафиксирован следующий пример использования: ссылка вида "hxxp://google.com@1157586937”, которая приводит в результате к открытию Rick Roll видео. Данный твит иллюстрирует две различные техники обфускации ссылок, используемые одновременно:
- Использовании знака "@” для обфускации конечного назначения ссылки
- Использование альтернативного формата имени хоста для обфускации конечного назначения IP-адреса
Начнем с того, что цель этого знака дать понять вашему браузеру как обработать структуру ссылки в момент перехода на нее посетителем.
RFC1738 определяет стандарт структуры ссылок. В секции 3.1 (Common Internet Scheme Syntax, общая схема интернет синтаксиса) раскрываются базовые стандарты для ссылок:
Код:
<scheme>//<user>:<password>@<host>:<port>/<url-path>
В секции 3.3 (HTTP) раскрывается формат для HTTP-ссылки в виде следующей структуры:
Код:
http://<host>:<port>/<path>?<searchpart>
В RFC специально указывается, что "имя пользователя или пароль не разрешены" в ссылке. Имя пользователя определяется как текст перед знаком "@”. Когда браузер обрабатывает ссылку с заполненным именем пользователя (все, что предшествует знаку «@»), он отбрасывает значение имени пользователя и отправляет запрос на сервер, заданный после знака «@».
Возвращаясь к примеру из твите, "google.com” трактуется браузером в ссылке как имя пользователя. В зависимости от целей фишинговой страницы значение может быть абсолютно любым (например, для эффективности это может быть емэйл-домен нашей цели).
Альтернативный формат имени хоста
В примере выше цифры "1157586937” воспринимаются браузером как имя хоста. Однако, IP-адрес сервера редко отображается как целое число. Это и есть второй уровень обфускации нашей ссылки.
Стандартный вариант отображения IPv4 IP-адреса - формат в виде четырех десятичных чисел, разделенных точками, каждое десятичное число представляет собой 8 бит IP-адреса. Например, IP-адрес 1.2.3.4 может быть представлен как двоичное число 00000001.00000010.00000011.00000100.
Двоичный формат IP-адреса можно также представить как одно большое двоичное число, которое затем преобразовать в десятичное. В нашем примере двоичное число 00000001.00000010.00000011.00000100 становится десятичным числом 16909060.
Рис. 1. Демонстрация преобразования IP 1.2.3.4 в десятичное число
Браузеры выполняют подобные преобразования налету. При этом возможно использовать и другие варианты целых чисел:
Шестнадцатеричный (hexadecimal) формат может быть тоже представлен с точками:
hxxp://google.com@0xC0.0xA8.0x0.0x1
Восьмеричный (Octal) формат тоже возможен:
hxxp://google.com@0300.0250.0000.0001
Или мы можем смешать два формата, чтобы еще больше запутать следы:
hxxp://google.com@0xc0.168.0x0.1
Домены тоже могут быть использованы для иллюзии реальной конечной ссылки:
hxxp://legit.banking.site.com@loginportal.onlinebanking.orly/loginPortal.php
Существует множество открытых инструментов для обфускации ссылок. Например - IPFuscator от Vincent Yiu, который поможет вам сгенерировать в том числе и смешанные варианты ссылок.
В реальных условиях
VirusTotal показывает различные варианты использования данных схем как минимум с февраля 2022 года. Продолжающееся использование подобных схем обфускации ссылок через Schema иллюстрирует эффективность данного метода для злоумышленников. Данный метод помогает избежать обнаружений инструментами безопасности и увеличивает процент успеха при открытии ссылки жертвой.
Часто такие ссылки используется для загрузки и запуска дополнительного вредоносного ПО. Было замечено, что для запуска зловредного кода на компьютере жертвы вместе используется как минимум несколько уязвимостей. Чаще всего это CVE-2017-0199 в документах вместе с CVE-2017-11882. Широкий спектр семейств вредоносных программ использует эту технику для запуска файлов, включая LOKIBOT, MATIEX, FORMBOOK и AGENTTESLA.
Пример недавнего инцидента
В феврале 2023 был обнаружен следующий документ Microsoft Word при помощи правил YARA и VirusTotal Retrohunt: аттака состояла из нескольких этапов - внедрение шаблона и эксплойт с загрузкой AGENTTESLA, которые отправлял затем данные с жертвы через шифрованный Телеграм-канал.
| Имя файла | PO.docx |
| MD5 | 291f6887bdaf248c7f0cdc9e2c9515cb |
| SHA-256 | 7dcbd34116b44f88962e2de72a92849304804fa5141513a35a023f5ab510b3bf |
PO.docx был впервые замечен на VirusTotal 6 февраля 2023. Он содержит в себе метод инжекта шаблона в момент открытия документа, запрашивая на следующей стадии подгрузку зловредного ПО.
Если документ распакован, то следующий этап в цепочки заражения можно увидеть внутри файла webSettings.xml.rels:
Рисунок 2: файл webSettings.xml.rels
На данном этапе загружается и исполняется файл со следующей ссылки:
hxxp://dgdf000000ghfjfgh000000fghfghg0000000fhfghfg000000sdgfggdf00000gdfge00000rtdfgdf00000gdfg@647601465/56.doc
Ссылка после деобфускации выглядит как hxxp://38.153.157.57/56.doc. Внедрение шаблона приводит к следующему запросу, сделанному из Microsoft Word. Обратите внимание, что обфускация отсутствует в сетевом трафике; поле имени пользователя нет в логе, а целочисленное представление IP-адреса было изменено на формат с четырьмя точками:
| Имя файла | 56.doc |
| MD5 | fd3ef9f75b0be31f0a482f60a387cb76 |
| SHA-256 | 1b93a3abb08c33bea46795890d311a201daa56080c4c14eda338eea19a4b4625 |
Загруженный документ 56.doc впервые появился на VirusTotal 6 февраля 2023, в тот же день, что и PO.docx. 56.doc — это файл RTF, использующий CVE-2017-11882 для загрузки и выполнения.hxxp://38.153.157.57/156/vbc.exe. В отличие от PO.docx, здесь не используется метод обфускации URL.
| Имя файла | vbc.exe |
| MD5 | cea776885d515fe1e88bccb71c016af3 |
| SHA256 | d8be588eb6eedc59b033c43150cf324fb8e56050e359b47da8017f4c47d264da |
Внутреннее имя исполняемого файла «NNbHhH.exe», который является AGENTTESLA, отправляющим украденные данные через Telegram с идентификатором бота и токеном «6010275350: AAH4W3CDRhQk0wgfyhQ_jITTy3QYmrxdDbw».
Обнаружение
Вместо того, чтобы начинать с нуля писать регулярное выражение (Regex), часто можно найти уже имеющееся выражение в интернете, которое мы можем повторно использовать для своих целей. Интересно, что наиболее популярное регулярное выражение для определения ссылок из сообщения на StackOverflow не сможет определить ссылку с использованием данных техник, рассмотренных в нашей статье.
RegEx с ответа на StackOverflow:
Код:
https?:\/\/(www\.)?{1,256}\.[a-zA-Z0-9()]{1,6}\b(*)
Если мы проверим данное выражение в Regex101, мы увидим, что оно пропускает обфусцированные нами ссылки:
К сожалению, вы не сможете выявить ссылки, обфусцированные с помощью рассмотренных в статье техники, если ваш инструмент безопасности использует данное регулярное выражение. Когда браузер получает запрос на переход по адресу ссылки с использованием данного синтаксиса, он автоматически переводит его в валидный формат до реальной отправки запроса. Поэтому, анализируя сетевой трафик, вы не увидите обфусцированный URL-адрес.
Однако использование файлового анализа, такого как YARA или AV/EDR поможеть выявить схемы обфусцирования конечных ссылок и корректно зафиксировать их в логах. Также если используется модуль Powershell’а как Invoke-WebRequest, обфусцированный адрес будет отображаться в логах.
В заключении статьи включены правила YARA для определения обфусцированных ссылок в документах Office, файлах RTF и PDF.
Заключение
В настоящий момент обфускация ссылок через Schema активно используется для доставки различного вредоносного ПО - от фишинговых страниц до внедрения шаблонов в документы. Администраторы должны убедиться в корректной настройке своих инструментов безопасности и адекватного журналирования поступающих угроз для определения, идентификации и получения корректных признаков этих угроз, чтобы быть уверенными, что их защита не обходятся с помощью обфусцированных ссылок в формате не соответствующем RFC. Использование правил Yara само по себе может помочь определить и предотвратить угрозы для ваших систем.
Благодарности
Особая благодарность Connor McLaughlin и Jared Wilson за их помощь на каждом этапе нашего исследования.
Приложение 1. Правила Yara
Код:
rule M_Hunting_ObfuscatedURL_DottedQuad
{
meta:
author = "Mandiant"
description = "Finds URL Schema Obfuscation of the format http://loremipsum@1.2.3.4"
strings:
$doc = {d0 cf 11 e0}
$pdf = {25 50 44 46 2D}
$docx = {50 4b 03 04}
$rtf = {7b 5c 72 74}
$url = /https?:\/\/[\w\d\-\_]{1,255}\@\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(\:\d{1,5})?/ nocase
condition:
($doc at 0 or $docx at 0 or $pdf at 0 or $rtf at 0) and filesize < 3MB and all of them
}
Код:
rule M_Hunting_ObfuscatedURL_Integer
{
meta:
author = "Mandiant"
description = "Finds URL Schema Obfuscation of the format http://loremipsum@16909060"
strings:
$doc = {d0 cf 11 e0}
$pdf = {25 50 44 46 2D}
$docx = {50 4b 03 04}
$rtf = {7b 5c 72 74}
$url = /https?:\/\/[\w\d\-\_]{1,255}\@\d{8,10}(\:\d{1,5})?/ nocase
condition:
($doc at 0 or $docx at 0 or $pdf at 0 or $rtf at 0) and filesize < 3MB and all of them
}
Код:
rule M_Hunting_ObfuscatedURL_DottedQuadHex
{
meta:
author = "Mandiant"
description = "Finds URL Schema Obfuscation of the format http://loremipsum@0x01.0x02.0x03.0x04"
strings:
$doc = {d0 cf 11 e0}
$pdf = {25 50 44 46 2D}
$docx = {50 4b 03 04}
$rtf = {7b 5c 72 74}
$url = /https?:\/\/[\w\d\-\_]{1,255}\@0x[a-fA-F0-9]{1,2}\.0x[a-fA-F0-9]{1,2}\.0x[a-fA-F0-9]{1,2}\.0x[a-fA-F0-9]{1,2}(\:\d{1,5})?/ nocase
condition:
($doc at 0 or $docx at 0 or $pdf at 0 or $rtf at 0) and filesize < 3MB and all of them
}
Код:
rule M_Hunting_ObfuscatedURL_DottedQuadMix
{
meta:
author = "Mandiant"
description = "Finds URL Schema Obfuscation of the format http://loremipsum@1.2.0x03.0x04"
strings:
$doc = {d0 cf 11 e0}
$pdf = {25 50 44 46 2D}
$docx = {50 4b 03 04}
$rtf = {7b 5c 72 74}
$url = /https?:\/\/[\w\d\-\_]{1,255}\@(0x[a-fA-F0-9]{1,2}|\d{1,3})\.(0x[a-fA-F0-9]{1,2}|\d{1,3})\.(0x[a-fA-F0-9]{1,2}|\d{1,3})\.(0x[a-fA-F0-9]{1,2}|\d{1,3})(\:\d{1,5})?/ nocase
condition:
($doc at 0 or $docx at 0 or $pdf at 0 or $rtf at 0) and filesize < 3MB and all of them
}
Код:
rule M_Hunting_ObfuscatedURL_Domain
{
meta:
author = "Mandiant"
description = "Finds URL Schema Obfuscation of the format http://loremipsum@mandiant.com"
strings:
$doc = {d0 cf 11 e0}
$pdf = {25 50 44 46 2D}
$docx = {50 4b 03 04}
$rtf = {7b 5c 72 74}
$url = /https?:\/\/[\w\d\-\_]{1,255}\@([\w\d\-]{1,100}\.){1,10}[\w\d\-]{1,20}(\:\d{1,5})?/ nocase
$exclusions = /https?:\/\/[\w\d\-\_]{1,255}\@(gmail\.com|hotmail\.com|yahoo\.com|outlook\.com|hotmail\.co\.uk|sentry\.io|[\w\d\.]{1,50}\.sentry\.io)/ nocase
condition:
($doc at 0 or $docx at 0 or $pdf at 0 or $rtf at 0) and filesize < 3MB and $url and not $exclusions
}
Приложение 2. Семейства вредоносного ПО и используемые ими ссылки.
| AGENTTESLA | hxxp://OASOSIDFOSWEROEROOWRWERWEREW WW0W83W338W83WOWRWWRWRWRW9W9R9W9R 9WR9W9RW9R9W9R9W9R0WR7RR7W7RW7RRW7R 66WSD6DSD6S6D6DSD66D6S@39209 5676/58..........................58.......................doc |
| LOKIBOT | hxxp://xzcbbsjjfhjsdjzazazasvxcvnbbzaszxccvx@3 92133367/xzswqqazzza_sxcvbnzazazzzzzzza_zxas dazzzasdzczxc/xzzzcv_qazzxcs.doc |
| FORMBOOK | hxxp://ZZZJOOIOIOSDP99090SDXDdad9SDED990 00DF00DF0SDF00DF0XCCXC0V00S0FDS0F0DF00S SZZZZZZZZ0X0C0XCZZXC0X@392117348/22u.22u. 22u.doc |
| MATIEX | hxxp://WEEEERRRRRRRRRRRPPPOOOOSSSSSSSO OOOOPPWEEEEEEEOOOOOOOCCVVVVVVVVOVV VVVVVVVVVVVVVVOOOOOO@104.168.32.152/O __O.DOC |
Источник: https://www.mandiant.com/resources/blog/url-obfuscation-schema-abuse
Последнее редактирование: