...

Hta что это за программа

Анализ HTA файла, содержащего обфусцированный JavaScript код

Попался мне на глаза ресурс, рекомендующий разные обфускаторы и деобфускаторы JavaScript. Решил проверить свои силы и самому поработать деобфускатором. А для проверки нашёл простенький вредоносный файлик.

Обфускаторы и деобфускаторы. Первые это приложения (также, утилиты, сервисы), которые изменяют код скрипта до неузнаваемости и усложняющие понимание кода, но при этом сохраняют его возможность всё также исполняться, а вторые — ровно наоборот, восстанавливают читаемость кода человеком.

Поиски сэмпла

Для начала отметим, что JavaScript может встречаться в разных типах файлов. Начиная с .js, и как вставка в html, заканчивая .pdf и ещё чем-нибудь интересным. Я же остановился на .hta файлике. Это по сути исполняемый файл с кодом html внутри себя, который может быть запущен вне браузера, в приложении mshta.exe, входящем в состав Windows (c:\windows\system32\mshta.exe).

Обычному смертному доступно не так много официальных ресурсов для поиска и получения вредоносного файла. Я воспользовался bazaar, где даже можно отфильтровать интересуемые файлики по разным параметрам. Вот прямая ссылка на страничку о сэмпле https://bazaar.abuse.ch/sample, где можно увидеть его хэши, кто и когда добавил его в базу, как детектируется и т.п..

Внимание! Если вы скачаете оттуда какой-нибудь файл, то будете действовать на свой страх и риск. Надо помнить о правилах работы с вредоносными и подозрительными файлами.

Вытаскиваем внутренности вредоноса наружу

Файл скачался с оригинальным расширением, поэтому я сразу его переименовываю, добавляю к концу имени файла какой-нибудь символ, чтобы Windows не определила, как его открывать (на случай неаккуратного действия, приводящего к запуску). Обычно это знак подчёркивания. Получилось что-то такое: c370f21f46389e056c8cb0e184422c50.hta_

Файл такого типа можно открыть в обычном текстовом редакторе, так как содержимое по сути является текстом. Видим:

Изначальное содержимое сэмпла

Несмотря на то, что я урезал вид файлика, можно увидеть его состав. Внутри html тэгов видны в самом начале base64 строки, за ними запутанный код, чтобы никто сразу не догадался, а антивирусы не смогли задетектировать потоковыми сигнатурами.

Ну, поехали. Для того, чтобы увидеть исполняемый код в «первозданном» виде, нам нужно:

  • преобразовать его в чистый код JavaScript, отбросив html конструкции;
  • найти инструкции запуска обфусцированного кода и заменить их на вывод текста кода.

Отбрасываем лишнее

убрали лишние тэги

  1. Убираем открывающие и закрывающие тэги «html» и «body».
  2. Конструкции вида (благо, их не много):
    some_value

    . var var1 = method(‘data’).innerHTML заменяем на: var data = some_value var var1 = data

  3. Убираем открывающие и закрывающие html тэги «script», заменив каждый открывающий тэг на перенос строки (для удобства отладки, если понадобится). У меня получилось вот так:
  1. Копируем полученный код в Pretifier и поправляем синтаксические ошибки. Можно и без него, но так нагляднее. В последней строке вызываются функции, им надо передавать значения в скобках, а не через пробел. А двоеточия, разделяющие вызовы функций, следует заменить на символ точки с запятой.

преобразовали к читаемому виду

Заменяем запуск кода

Теперь код структурирован, хоть по-прежнему и не понятен. Но мы уже видим, что сначала у нас объявляются и определяются переменные, затем функции. И последней строкой у нас идёт их запуск. Давайте посмотрим, что запускается:

выясняем цепочку запусков

Здесь видим, что создаётся ActiveX объект для запуска jscript кода. Просто заменим запуски в последней строке полученного кода на запуск функции console.log:

Заменили исполнение на вывод в консоль

Смотрим результат

Переходим, например, на jsconsole и копируем туда полученный на предыдущих шагах код. Нажимаем Enter и наблюдаем результат:

Результат деобфускации

В первом блоке мы видим, что отправляется GET запрос к определённому ресурсу, а результат записывается в файл c:\users\public.
Во втором блоке мы уже видим, что созданный файл передаётся в качестве параметра к Regsvr32. То есть предполагается, что скаченный файл является COM-dll, что довольно часто встречается в мире вредоносного ПО.

Послесловие

Я не претендую на то, что это единственное решение. Например, можно было бы в коде hta поменять строки запуска расшифрованных строк на добавление их в тело документа. Или декодировать base64 строки и потом слепить их как-нибудь, выяснив из алгоритма или интуитивно. Список решений можно продолжать.

По хорошему, анализ файла этим не заканчивается. У нас есть в результате URL нового скачиваемого файла. Дальше надо работать с ним, обработав всю цепочку запуска. Можно также выяснить кто или какой регион является целью этих вредоносных файлов, как распространяется изначальный .hta, и т.д..

  • Информационная безопасность
  • JavaScript
  • Реверс-инжиниринг

HTA – Исполняемый HTML-документ (HTML Application)

Часто используется

Популярность:

Разработчик: Microsoft

Расширение HTA – это исполняемый файл, который содержит HTML, динамический HTML и так же может содержать скрипты, которые поддерживаются Microsoft Internet Explorer, например, VBScript или JScript. Приложения HTA впервые появились в Internet Explorer, начиная с версии 5. Большая функциональность HTA файлов сейчас может быть заменена скриптами JavaScript, которые более безопасные, чем .HTA. Файлы .HTA можно просто создать переименованием файлов .HTM на .HTA. .HTA приложение не выполняется в браузере, оно ничем не отличается от стандартных Windows-приложений. Для его выполнения, файл .HTA необходимо скачать на локальный компьютер и дважды на него нажать. .HTA выполняются Microsoft HTML Application Host (Mshta.exe).

Для настройки HTA документа добавлен новый тег , который располагается в секции … .

ПРИМЕЧАНИЕ: Будьте осторожны .HTA файлы могут быть инфицированы зловредным кодом, вирусами или троянами.

Mime тип: application/hta

Другие программы, связанные с расширением HTA

    Файл предпросмотра изображений Hemera
    Расширение .HTA – это растровый формат файла от Hemera Techonologies. *.HTA – это файл предпросмотра для изображения Hemera. *.HPI. Формат HTA – это устаревший формат. .HTA файл можно открыть с помощью программы XnView.

Редко используется

Популярность:

Открытие HTA файлов

У вас есть проблема с открытием .HTA-файлов? Мы собираем информацию о файловых форматах и можем рассказать для чего нужны файлы HTA. Дополнительно мы рекомендуем программы, которые больше всего подходят для открытия или конвертирования таких файлов.

Для чего нужен файловый формат .HTA?

Файловое расширение .hta используется для обозначения типа/формата файлов «Приложение HTML» (HTML Application, HTA). HTA является изобретением Майкрософт, нацеленным на обеспечение возможности запуска веб-приложений вне ограничений браузерной среды подобно обычным полноценным приложениям. HTA — это Windows-ориентированная технология, поскольку для запуска HTML-приложений (HTA) требуется среда Майкрософт Windows и браузер Internet Explorer (IE).

Файл .hta представляет собой текстовый файл с исходным кодом HTML-страницы, включающим в разделе дополнительную разметку HTA. Иными словами, это просто переименованный файл веб-страницы (.htm или .html), который может использовать компоненты ActiveX, содержать код JavaScript, а также имеет права доступа на уровне обычного приложения ОС. При запуске файла .hta содержащийся в нем код обрабатывается обработчиком HTA («mshta.exe»), а приложение открывается в отдельном окне, похожем на окно IE.

Майкрософт Windows и IE считают файлы .hta исполняемыми, и все активное содержимое внутри файла HTA (ActiveX, JavaScript и т.д.) запускается и выполняется без каких-либо предупреждений, что может представлять собой риск для безопасности. Любой файл .hta можно создать и отредактировать в текстовом редакторе. Все другие браузеры, кроме IE, при попытке перехода по ссылке на файл .hta предлагают сохранить его либо указать приложение для его открытия.

При подготовке материала использовались источники:
https://habr.com/ru/articles/709304/
http://fileext.ru/hta
https://www.filetypeadvisor.com/ru/extension/hta

Оцените статью