Статья morphHTA - Morphing Cobalt Strike PowerShell Evil HTA Generator

vertigo.png

Добрый день,Уважаемые Форумчане,Гости и те,кто следит за изменениями в мире ИБ.

Сегодня будем знакомиться с интересным и несколько таинственным инструментом.
morphHTA - инструмент для реализации атаки Powershell.
Информации о нём очень мало,то что видел повергло меня в растерянность и раздумья.
Таинственность понятна,т.к. он возвращает нас к событиям августа 2003 года.

Тогда ,как известно,была открыта уязвимость компанией eEye в Internet Explore
Связана с использованием тега OBJECT, используемый для внедрения ActiveX объектов в HTML код web-страницы.
C появлением morphHTA,появилось второе дыхание для реализации такой атаки.

Можно конечно провести первоначально параллель с уязвимостью CVE2017-0199 ,связанной с пакетом Microsoft Office.Но нет.
Цель этого инструмета-обфускация исполняемого файла с вредоносным атакующим кодом PowerShell и проломление браузерной и антивирусной защиты.

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


Как скачать и установить:

Код:
# git clone https://github.com/vysec/morphHTA.git
# cd morphHTA/
# chmod +x morph-hta.py
# python morph-hta.py        команда запуска
# python morph-hta.py --help команда вызова справки
Для запуска на Arch linux: python2 morph-hta.py

vertigo3.png

Посмотрим,что нам предлагается в опциях:
Код:
usage: morph-hta.py [-h] [--in <input_file>] [--out <output_file>]
                    [--maxstrlen <default: 1000>] [--maxvarlen <default: 40>]
                    [--maxnumsplit <default: 10>]

optional arguments:
  -h, --help            вызов справки
  --in <input_file>     входящий файл Cobalt Strike PowerShell HTA
  --out <output_file>   выходной файл обработанный инструментом
  --maxstrlen <default: Максимальная длина произвольно сгенерированных строк (по дефолту 1000)
                     
  --maxvarlen <default: Максимальная длина произвольно сгенерированных имен переменных (по дефолту 40)
                     
  --maxnumsplit <default:  Изменение входного файла и выходных файлов,обфускация (по дефолту 10)

Буду описывать и делиться своими впечатлениями.

Итак,у нас инструмент,который предназначен для атаки Powershall.
Не смотря на таинственность,много подсказок автор даёт в его названии.

Мне на ум сразу пришёл такой инструмент-поставщик powershall,как единорожка c недобрым горящим взором (Unicorn)
Кому интересно,можно посмотреть здесь
https://github.com/trustedsec/unicorn.git
У него после генерирования нагрузки появляется директория hta_attack c файлами Index.html,Launcher.hta и unicorn.rc

В качестве тестовой машины у меня под рукой оказалась Windows .
С новейшим браузером Firefox и установленными на тестовый период антивирусами Kaspersky и Dr.Web
Все возможные защиты и настройки в состоянии полной активации.


Первой попыткой конечно было скачать подготовленный файл Launcher.hta от unicorn c использованием фишинговой страницы index.html
Dr.Web заблокировал сразу попытки попасть на страницу.
При получении письма с файлом,оба этих флагмана AV задержали и обезвредили файл мгновенно,даже не поперхнувшись.

Скопировал файл Launcher.hta в директорию morphHTA и указал его в качестве выходного файла.Обработал.
python2 morph-hta.py --in morph.hta --maxstrlen 4 --maxvarlen 4 --maxnumsplit 4 --out Launcher.hta


Отлично,инструмент говорит теперь,мол работайте с Launcher.hta
vertigo1.png

Несмотря на указанные небольшие числовые переменные,файл вышел ёмким,в весе также прибавил заметно.
vertigo2.png

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

Далее наступает период творчества и фантазий.Произвёл замену у unicorn файлов Launcher.hta

Не важно,каким образом файл попадёт на тестируемую машину.
index.html,к примеру вызовет скачивание файла ,обработанного с помощью morphHTA.
Обработанный файл Launcher.hta попадая на windows,также при активации юзером,выполняется.

Надо отдать должное браузеру Internet Explorer.
на сей раз,он в отличии от Firefox спросил дважды,как и положено стоит ли скачать и выполнить файл.
И честно предупредил о возможной опасности. Firefox предлагает сразу выполнить.AV молчат.

А где-то тем временем,в просторах сети ,завис в режиме ожидания соединения Metasploit с прослушивающим multi/handler..


В директории morphHTA можно также увидеть файл evil.hta ,он имеет отношение к powershall.exe


А почему всё-таки в названии инструмента фигурирует слово Cobalt Strike?
Да как-то ,все эти имена связаны ассоциативно:Cobalt Strike-Armitage-Metasploit-java

В общем,все возможности инструменты ещё не раскрыты.
Лично я с его появлением,завязываю с чтением интерактивных открыток в интернете))

А вам желаю отличного настроения и благодарю за потраченное время на чтение и внимание.
 
O

omg13357

Спасибо большое за прекрасное написание статьи!
С нетерпением жду ещё новых статей!
[doublepost=1499499677,1499495829][/doublepost]Не знаю почему, но гмайл блочит меседж
 
  • Нравится
Реакции: citizen2517 и Vertigo

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 318
3 999
BIT
3
[doublepost=1499499677,1499495829][/doublepost]Не знаю почему, но гмайл блочит меседж
Не пробовал через gmail. Через яндекс -почту приходило.Но это должен быть обработанный готовый файл.
И конечно ,действия доверчивого пользователя заложены в такой атаке.По правилам безопасности,браузеры должны все ругаться.
Или выдать несколько предупреждений,но действительность к сожалению иная встречается.
 
  • Нравится
Реакции: citizen2517

fakecop

Green Team
23.12.2016
105
26
BIT
2
Помогите с ошибкой
Пробовал разные опции и все равно ошибка



1530450072980.png
 
R

recon

Пробую "заморфить" .hta файл, получаю следующую ошибку:
dbSLnki.png

Может кто сталкивался с подобным?

p.s. HTA готовил с помощью Unicorn, так и Cobalt Strike.
 
Последнее редактирование модератором:

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 318
3 999
BIT
3
В общем, при скачивании,в инструменте отсутствует файл evil.hta , поэтому он не рабочий.
Намеренно это сделано ,или временно -не знаю.
Нашёл решение ,позже отпишусь .Это намеренно всё же сделано.
 
Последнее редактирование:
  • Нравится
Реакции: recon
R

recon

В общем, при скачивании,в инструменте отсутствует файл evil.hta , поэтому он не рабочий.
Намеренно это сделано ,или временно -не знаю.
Нашёл решение ,позже отпишусь .Это намеренно всё же сделано.
Да, у меня тоже ругался на отсутствие этого файла, создавал его через кобальт, не помогло, спасибо, буду ждать решение.
 
  • Нравится
Реакции: Vertigo

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 318
3 999
BIT
3
Итак,автор по своим причинам начал смотреть в сторону Cobalt Strike , чем усложнил инструмент.

evil not.png

Мы видим,что в директории отсутствует файл evil.hta
И при попытке запустить инструмент получаем такую же картину с ошибкой.

evil.png

Если сгенерировать файл с помощью unicorn и проигнорировать первичный стандартный запуск,то получим ошибку как в комментарии №4 Но нам тоже может пригодится это,делаем и копируем.

Launcher.png

А нам теперь надо запустить инструмент Cobalt Strike
Выбираем в меню такой путь Attacks-Packages-HTML Application
В строке Listener у вас должно быть HTTPS к примеру,а в строке Method- только Powershell

cob hta1.png

Генерируем и сохраняем прямо в директорию MorphHTA
Сохранение в формате evil.hta будет предложено автоматом.

cob hta2.png

И теперь,при первичном запуске # python morph-hta.py у нас порядок

morph.png

Если нам всё же требуется обработать файл сгенерированный с unicorn,
то в команде входного файла --in evil.hta нам надо указать именно этот файл -evil.hta
Потому что когда образовывается файл morph.hta-он уже готовый и обработан из evil.hta
А выходным можете заделать Launcher.hta , который генерировал Unicorn

Launcher2.png

Если всё сделать правильно,то на Parrot ошибки не должно быть как в комментарии №6
Также внимательно следим какой IP и порт указываем при генерации файлов evil.hta и Launcher.hta -данные должны совпадать
 
Последнее редактирование:
  • Нравится
Реакции: Air7771 и recon
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!