Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Empire — Empire — это агент для пост-эксплуатации, написанный на PowerShell и Python. | Kitploit
Инструменты/GitHubGitHub/empireproject/empire
Повышение привилегийГенерация полезной нагрузкиМеханизмы персистентностиЭксплуатацияЛатеральное перемещениеПост-эксплуатацияТестирование на ПроникновениеКомандование и УправлениеRed TeamingArchived
GitHubempireproject/empire

Empire

7.9k2.9k6 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

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

РепозиторийСайт

Invoke-Obfuscation v1.8

Invoke-Obfuscation Screenshot

Введение

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, связанный с этим проектом.

Для установки:

root@kitploit:~
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 (Тель-Авив, Израиль):

  • Добавлена функциональность CLI: Например: Invoke-Obfuscation -ScriptBlock {Write-Host 'CLI FTW!'} -Command 'Token\All\1, Encoding\1, Launcher\Stdin++\234, Clip' -Quiet -NoExit
  • Добавлена функция UNDO для удаления одного слоя обфускации за раз.
  • Удалена обфускация пробелов из Token\All\1 для ускорения обфускации больших скриптов.
  • Добавлен вывод дерева аргументов процесса для всех лаунчеров в помощь защитникам.
  • Добавлена функция автоматического определения базового меню, чтобы избежать необходимости использовать BACK или HOME: Например, если вы выполнили TOKEN, затем ALL, затем 1, просто введите LAUNCHER, и вы попадёте в меню LAUNCHER, не вводя HOME или BACK для возврата в главное меню.
  • Добавлен синтаксис множественных команд, используемый CLI и интерактивным режимом: Например: Token\All\1, String\3, Encoding\5, Launcher\Ps\234, Clip
  • Добавлена поддержка регулярных выражений для всех команд меню и обфускации: Например: Token**, String[13], Encoding(1|6), Launcher.*[+]{2}\234, Clip
  • Добавлена функциональность одной команды OUT FILEPATH.
  • Добавлено декодирование при вводе синтаксиса powershell -enc в качестве значения SCRIPTBLOCK.
  • Добавлен псевдоним ForEach к синтаксису рандомизированных опций ForEach-Object/% во всех функциях ENCODING.
  • Добавлены сокращённые синтаксисы параметров -Key -Ke -K KEY в Out-SecureStringCommand.ps1.
  • Добавлена более тщательная рандомизация регистра для всех функций обфускации \Home\String.
  • Добавлены флаги -ST/-STA (Single-Threaded Apartment) в функции лаунчеров CLIP+ и CLIP++, так как они обязательны при работе в PowerShell 2.0.
  • Добавлен синтаксис Get-Item/GI/Item везде, где используется Get-ChildItem для получения значений переменных.
  • Добавлен синтаксис Set-Item для создания переменных в функции обфускации TYPE.
  • Добавлен дополнительный синтаксис Invoke-Expression/IEX с использованием конкатенаций автоматических переменных PowerShell и значений переменных окружения в функции Out-EncapsulatedInvokeExpression скрипта Out-ObfuscatedStringCommand.ps1, и скопирован во все лаунчеры, функции STRING и ENCODING для добавления многочисленных синтаксисов командной строки для IEX.
  • Добавлены два новых синтаксиса JOIN для String\Reverse и всех опций обфускации ENCODING:
  1. Добавлен синтаксис JOIN [String]::Join('',$string)
  2. Добавлен синтаксис JOIN с автоматической переменной OFS (Output Field Separator)
  • Добавлены ещё два синтаксиса SecureString для Encoding\5:
  1. PtrToStringAnsi / SecureStringToGlobalAllocAnsi
  2. PtrToStringBSTR / SecureStringToBSTR
  • Добавлены шесть альтернативных синтаксисов GetMember для нескольких членов SecureString:
  1. PtrToStringAuto, ([Runtime.InteropServices.Marshal].GetMembers()[3].Name).Invoke
  2. PtrToStringAuto, ([Runtime.InteropServices.Marshal].GetMembers()[5].Name).Invoke
  3. PtrToStringUni , ([Runtime.InteropServices.Marshal].GetMembers()[2].Name).Invoke
  4. PtrToStringUni , ([Runtime.InteropServices.Marshal].GetMembers()[4].Name).Invoke
  5. PtrToStringAnsi, ([Runtime.InteropServices.Marshal].GetMembers()[0].Name).Invoke
  6. PtrToStringAnsi, ([Runtime.InteropServices.Marshal].GetMembers()[1].Name).Invoke
  • Обновлён Out-ObfuscatedTokenCommand.ps1: обфускация VARIABLE больше не будет заключать переменные в ${}, если они уже заключены (таким образом, ${${var}} больше не возникнет, так как это вызывает ошибки).
  • Заменён Invoke-Obfuscation.psm1 на Invoke-Obfuscation.psd1 (спасибо @Carlos_Perez).
  • Исправлено несколько ошибок обфускации на уровне TOKEN, о которых сообщили @cobbr_io и @IISResetMe.

v1.7 — 2017-03-03 nullcon (Гоа, Индия):

  • Добавлены 3 новых LAUNCHER: RUNDLL, RUNDLL++ и MSHTA++
  • Добавлены дополнительные строки с подстановочными знаками ExecutionContext

v1.8 — 2017-07-27 Black Hat (Лас-Вегас, Невада, США):

  • Добавлены 2 новых варианта ENCODING: Special Characters и Whitespace
Скачать инструмент