Автор: Бенджамин Бен Давид и Матанпер

Управляющее резюме

В последние годы банковский троян Retefe в основном распространяется через фишинговые электронные письма, его уникальные свойства включают использование поддельных корневых сертификатов, выпущенных Comodo, для перехвата трафика пользователей через их собственный сервер.

Цель статьи — представить ход расследования и исследования нового варианта Retefe, с которым мы столкнулись несколько месяцев назад, а также дать новое представление о его новых свойствах и функциях.

Глубокое погружение

Во время обычного поиска угроз, проводимого в рамках консультационной службы для крупной финансовой компании, мы обнаружили новый вариант известного трояна Retefe, который, по-видимому, нацелен на шведские организации и частных лиц. Кампания разделяет свойства известных методов, связанных со старой известной деятельностью Ретефе.

Первоначальный доступ
Основным методом распространения Retefe являются фишинговые письма с прикрепленным вредоносным файлом (Excel, Exe и т. д.).

В нашем примере у нас был вредоносный файл excel со встроенным объектом — файл JS. В одном из листов excel документа мы можем найти команду «EMBED» в XML4 — отвечающую за привязку объекта к конкретной ячейке (изображение 1).

Из предписания по социальной инженерии текст внутри документа написан на шведском языке и переводится как: «Чтобы просмотреть квитанцию, дважды щелкните изображение».
Мы можем сделать серьезное предположение разведки о текущей кампании, нацеленной на шведские организации. или отдельные лица.

Анализ сценариев
Мы использовали инструмент под названием oleobj.py, который извлекает встроенные объекты из файлов OLE, в результате чего получается сильно запутанный файл JS.

Изучив код, мы можем увидеть функцию декодирования длинного списка с именем o8_MlWnpjcY7Hu2dDFJ. С помощью Cyberchef мы создали простой рецепт для перевода списка ниже (изображение 2).

Несколько переменных скрипта не легко читаются людьми, поэтому в обратном процессе мы заменили многие имена, чтобы сделать их более читабельными.
В скрипте есть много ссылок на элементы в списке выше, чтобы облегчить нашу работу, мы напрямую заменил их соответственно.

Скрипт используется для подготовки к MITM-атаке на хост жертвы.
Для достижения своей цели он записывает в память поддельный сертификат, предположительно подписанный известным издателем — центром сертификации COMODO с эмитентом электронной почты — я@мойхост.мойдомен.

В целом код отключает несколько настроек прокси (в IE && FF) и автоматически запускает загрузку JS-файла с URL-адреса, указанного в определенном ключе реестра (AutoConfigURL), когда пользователь открывает IExplorer или Firefox.

Основной код можно разделить на 4 части:

  • Установка сертификата в WCM (менеджер сертификатов Windows).
  • Отключение оптимального поиска прокси и установка вредоносного значения AutoConfigURL.
  • Установка сертификата в БД Firefox с помощью nss3.dll.
  • Переопределение настроек прокси-сервера Firefox.

Теперь давайте погрузимся в сценарий и посмотрим, как вышеуказанная функциональность отражена в каждой части.

Установка сертификата
В этом блоке кода вредоносный код создаст сценарий Powershell на целевом хосте (изображение 3).
Он получит дескриптор Certutil, а затем перечислит все его дочерние объекты (не в аспекте процесса, а как виджеты в форме окна) (изображение 4). После их перечисления скрипт отправит каждому из них системное сообщение «0x00F5» (BM_CLICK) с помощью функции «sendmessage()» (изображение 5).

Значение соответствует событию щелчка кнопки мыши — «нажатию» кнопки «Да» (изображение 6).
Таким образом устраняется необходимость вмешательства человека при встраивании сертификата.
Пока сценарий Powershell ищет дескриптор Certutil, основной сценарий запустит Certutil и попросит добавить вредоносный сертификат (изображение 7), который будет одобрен смоделированным щелчком мыши.

Управление настройками прокси
Функция — «InstallPac» изменяет значение ключа реестра: «AutoDetect» на 0, тем самым гарантируя, что машина не будет использовать оптимальный доступный для нее прокси, а будет использовать произвольно выбранный вредоносный прокси (MITM-атака) (изображение 8).

Затем выбирается 1 из 4 доступных строк лукового домена, а также выбирается слово «to» или «link».
Теперь, всего 5 раз, код получит IP-адрес от API доменов. .ipify.org или icanhazip.com каждый раз будет переопределять значение, помещенное в раздел реестра:
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL.
Этот ключ устанавливает выбранный URL-адрес для отправки запроса при каждом открытии браузера.
В нашем случае файл JS будет прочитан и установлен текущий прокси для использования.
К сожалению, все доменов не работает, поэтому мы не смогли получить образец для анализа (изображение 9).

URL-адрес имеет следующий формат:
‹http/https›://‹onion domain›.‹to/link›/‹случайные 8 символов ascii (33–126 кодов)›.js? ip=‹публичный IP›.

Такой шаблон можно обнаружить с помощью следующего регулярного выражения:
«https?:\/\/[a-zA-Z0–9]+\.onion.(to|link)\/\ S{8}.js\?ip=([0–9]{1,3}\.){3}[0–9]{1,3}}».

Установка сертификата в базу данных Firefox
Как и раньше, она начинается с записи файла Powershell с именем psf.ps1 с использованием аналогичных методов.
Записанный файл добавит вредоносный сертификат в базу данных Firefox, используя nss3.dll, которая является основной DLL Mozilla.
Он вызывает необходимые функции DLL с помощью «делегата», что позволяет избежать общих обнаружений безопасности (изображение 10).
Функции-делегаты — это известный способ вызова функций DLL во время выполнения, что позволяет избежать обнаружения статических ошибок в таблицах импорта.

Переопределение настроек прокси-сервера Firefox
Функция получает путь к первой папке, содержащей строку «.default», в папке AppData Mozilla.
В этой папке сценарий переопределяет файл с именем : «prefs.js».

Каждая строка, содержащая строку «network.proxy». удаляется из него.
Таким образом, настройки прокси-сервера Firefox больше не указываются (удаляются) (изображение 11).
Теперь Firefox будет использовать (вредоносный) прокси-сервер по умолчанию — добавленный ключ реестра из раздела 2, содержащий вредоносный URL-адрес.

Краткое содержание

Семейство вредоносных программ Retefe довольно велико и содержит множество способов получения жертвой легитимного файла.
С помощью нашей аналитической группы мы обнаружили, что более новые версии Retefe больше не нацелены только на Европейские финансовые группы, но и все по всему миру.
Каждый раз, когда группа-жертва меняется, TTP развиваются, поэтому нам есть что ожидать ;-).

В этой статье мы подробно рассмотрели фактический код, который выполняет подготовку к атаке MITM, и методы уклонения от защиты, которые используются для сокрытия его вредоносных действий.

Мы показали наиболее важные фрагменты кода вредоносного JS-кода.
Ниже вы можете найти набор IOC для дальнейшего расследования поиска угроз в вашей среде.

МОК:

Хэши:
cert.der:
7ac67b785ce8633d6dc85e523cea55cd727658367b9a9877d608ce2565ec9c78
ps.ps1:
865f1fff807132c60c7e9b61 1d263b762d148cd986bd754b60c8c197839724c8
psf.ps1
ac26a0bd3820afbc886b841b365a89b879e00edd90c390126a4ebed71afc82df

Трафик:

Командные строки:

  • тасккилл/ф/им firefox.exe
  • тасккилл/ф/им iexplore.exe
  • тасккилл/ф/им chrome.exe
  • powershell -ExecutionPolicy Unrestricted -Файл «\»
  • certutil -addstore -f -user «\ROOT»\ «\»
Reg-keys:
“HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\AutoDetect”
“HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\AutoConfigURL”
Changed value match:
AutoDetect: 0
AutoConfigURL detection regex:
https?:\/\/[a-zA-Z0–9]+\.onion.(to|link)\/\S{8}.js\?ip=([0–9]{1,3}\.){3}[0–9]{1,3}}
CrowdStrike possible detection query:
earliest=-7d
[search aid=* event_simpleName=ProcessRollup2 FileName=”taskkill.exe”
earliest=-7d
| eval var=”TERM(“.aid.”) AND “.ParentProcessId_decimal.””
| appendpipe [|makeresults | eval var=”THIS_STRING_WILL_NOT_BE_IN_ANY_OF_YOUR_EVENTS”]
| return 9999 $var]
| search FileName=”certutil.exe”
| stats values(ComputerName)
| sort _time