
Встраивайте и скрывайте любой файл в HTML-файле
============
Автор: Arno0x0x - @Arno0x0x
Что делает этот инструмент: он берет файл (любого типа), шифрует его и встраивает в HTML-файл в качестве ресурса, вместе с автоматической процедурой скачивания, имитирующей щелчок пользователя по встроенному ресурсу.
Затем, когда пользователь открывает HTML-файл в браузере, встроенный файл расшифровывается на лету, сохраняется во временную папку и отображается пользователю так, как будто он скачивается с удаленного сайта. В зависимости от браузера пользователя и типа файла, файл может быть автоматически открыт браузером.
Инструмент представлен в двух вариантах, предоставляющих одинаковую общую функциональность, но с небольшими различиями в способе использования:
Скрипт на Python, который генерирует выходной HTML-файл на основе шаблона, используя алгоритмы RC4-шифрования, и встраивает ключ расшифровки в выходной файл. Полученный HTML можно либо открыть целевым пользователем, либо отправить в виде вложения.
HTML/Javascript, в который можно перетащить файл для шифрования; он генерирует выходной HTML-файл с использованием WebCrypto API, но НЕ встраивает материал для расшифровки (ключ и счетчик). Вместо этого материал для расшифровки отображается в виде набора параметров URL, которые нужно добавить в URL, указывающий на итоговый HTML-файл: http(s)://hosting.server.com/result.html#hexencodedkey!hexencodedcounter. Таким образом, полученный HTML-файл нельзя отправить в виде вложения.
Основное преимущество этого метода в том, что материал для расшифровки не встроен в сам файл, что предотвращает анализ и даже извлечение полезной нагрузки любой системой, не имеющей полного URL (например, прокси-сервером с перехватом).
Дополнительные замечания:
Этот инструмент был вдохновлен и основан на замечательном инструменте 'demiguise': https://github.com/nccgroup/demiguise
Функция b64AndRC4, используемая для бинарных входных данных (из XLL-файла), представляет собой смесь: https://gist.github.com/borismus/1032746 и https://gist.github.com/farhadi/2185197
Посмотрите https://gist.github.com/Arno0x/f71a9db515ddea686ccdd77666bebbaa для простого создания вредоносного XLL – отличный пример вредоносного документа, который можно попытаться доставить с помощью этого метода.
В HTML-шаблон (файл html.tpl) рекомендуется вставить собственную функцию вывода ключа из окружения вместо 'keyFunction'. Ключ следует выводить из окружения, чтобы файл работал только на предполагаемой цели (а не в песочнице).
В папке payloads_examples приведено несколько примеров файлов полезной нагрузки. Например, calc.xll – это надстройка Excel (XLL-файл), содержащая шелл-код Metasploit для процессов x86, запускающий процесс calc.exe.
Использование скрипта на Python
1/ Сгенерируйте вредоносный HTML-файл из XLL-файла вместе с секретным ключом:
python embedInHTML.py -k mysecretkey -f example_calc.xll -o index.html
2/ Разместите HTML-файл на веб-сервере (его можно опционально запустить с помощью флага -w)
Использование HTML/Javascript
1/ Откройте файл embedInHTML.html в браузере
2/ Просто перетащите файл с полезной нагрузкой на страницу (опционально можно изменить имя выходного файла)
3/ Сохраните полученный файл и запишите материал для расшифровки в виде параметров URL, которые нужно добавить к имени файла в формате: http(s)://hosting.server.com/result.html#hexencodedkey!hexencodedcounter
В итоге...
Направьте браузер цели на HTML-файл и позвольте магии произойти:
Этот инструмент предназначен для использования только в законных и легитимных целях:
Цитируя авторов Empire: Невозможно создавать наступательные инструменты, полезные для законной индустрии информационной безопасности, одновременно предотвращая их злонамеренное использование злоумышленниками.