
Empire — это агент для пост-эксплуатации, написанный на PowerShell и Python.

Invoke-Obfuscation — это совместимый с PowerShell v2.0+ обфускатор команд и скриптов PowerShell.
Осенью 2015 года я решил заняться исследованием гибкости языка PowerShell и начал каталогизировать различные способы выполнения ряда распространённых техник, которые большинство атакующих используют на регулярной основе.
Изначально сосредоточившись на синтаксисе закодированных команд и удалённой загрузки (download cradle), я обнаружил, что различные escape-символы, не мешающие выполнению команды, сохраняются в аргументах командной строки — как в запущенном процессе, так и в том, что регистрируется в журналах событий Security EID 4688 и Sysmon EID 1. Это подтолкнуло меня к систематическому исследованию способов обфускации каждого вида «токена», встречающегося в любой команде или скрипте PowerShell.
Затем я изучил более скрытые методы обфускации на уровне строк, различные техники кодирования/шифрования (например, ASCII/hex/octal/binary и даже SecureString) и, наконец, техники запуска PowerShell, позволяющие абстрагировать аргументы командной строки от powershell.exe и перенести их в родительский и даже прародительский процесс.
Атакующие и массовое вредоносное ПО начали использовать чрезвычайно примитивные методы обфускации, чтобы скрыть основную часть команды от аргументов командной строки powershell.exe. Я разработал этот инструмент, чтобы помочь «синей команде» моделировать обфусцированные команды на основе того, что, как мне известно, синтаксически возможно в PowerShell 2.0–5.0, чтобы они могли тестировать свои возможности обнаружения этих техник.
Единственная цель инструмента — разрушить любые предположения, которые у нас, защитников, могут быть относительно того, как команды PowerShell могут выглядеть в командной строке. Я надеюсь, что это побудит «синюю команду» переключиться на поиск индикаторов обфускации в командной строке, а также обновить ведение журнала PowerShell, включив в него Module, ScriptBlock и Transcription logging, поскольку эти источники упрощают большинство аспектов техник обфускации, создаваемых этим инструментом.
Хотя все слои обфускации реализованы в виде отдельных скриптов, большинству пользователей проще всего будет изучить и визуализировать техники обфускации, поддерживаемые этой платформой, с помощью функции Invoke-Obfuscation.
Исходный код Invoke-Obfuscation размещён на Github; вы можете загрузить, форкнуть и просмотреть его из этого репозитория (https://github.com/danielbohannon/Invoke-Obfuscation). Пожалуйста, сообщайте о проблемах или запросах функций через баг-трекер Github, связанный с этим проектом.
Для установки:
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation
Invoke-Obfuscation распространяется под лицензией Apache 2.0.
v1.0 — 2016-09-25 DerbyCon 6.0 (Луисвилл, Кентукки, США): Публичный выпуск Invoke-Obfuscation.
v1.1 — 2016-10-09 SANS DFIR Summit (Прага, Чехия): Добавлена функция переупорядочивания оператора форматирования -f для всех соответствующих функций обфускации TOKEN. Также добавлены дополнительные синтаксические варианты для установки значений переменных.
v1.2 — 2016-10-20 CODE BLUE (Токио, Япония): Добавлена обфускация токена TYPE (прямое приведение типов с опциями обфускации строки для имени типа).
v1.3 — 2016-10-22 Hacktivity (Будапешт, Венгрия): Добавлены два новых LAUNCHER: CLIP+ и CLIP++. Также добавлен дополнительный (и более простой) синтаксис преобразования массива символов для всех функций ENCODING, не требующий For-EachObject/%.
v1.4 — 2016-10-28 BruCON (Гент, Бельгия): Добавлена новая функция ENCODING BXOR. Также улучшена рандомизация регистра для всех компонентов всех функций ENCODING, а также для флагов выполнения PowerShell для всех LAUNCHER. Наконец, добавлен сокращённый параметр -EP для -ExecutionPolicy во все LAUNCHER, а также целочисленное представление флага выполнения PowerShell -WindowStyle: Normal (0), Hidden (1), Minimized (2), Maximized (3).
v1.5 — 2016-11-04 Blue Hat (Редмонд, Вашингтон, США): Добавлен LAUNCHER WMIC с некоторой рандомизацией аргументов командной строки WMIC.
v1.6 — 2017-01-24 Blue Hat IL (Тель-Авив, Израиль):
v1.7 — 2017-03-03 nullcon (Гоа, Индия):
v1.8 — 2017-07-27 Black Hat (Лас-Вегас, Невада, США):