Статья PowerShell для хакера (часть VIII ) [Обфускация полезной нагрузки PowerShell Obfuscator]

5.PNG

Доброго времени суток колеги. Как вы все прекрасно знаете время не стоит на месте и много не опытных пользователей рано или поздно сливают наработки добрых опытных пользователей.По этому появляеться необходимость прятать сигнатуры своих на работотак от антивирусных компаний.Так сказать обфусцировать . Сперва я конечно хотел писать что то свое, но так уж получилось что уже написано одним хорошим колегой такой инструментарий и придумывать велосипед не пришлось. Возможно в дальнейшем его можно будет просто модифицировать. Речь сегодня пойдет про PowerShell Obfuscator
Ну что же, давайте вместе на него посмотрим)
Первым делом ,как всегда качаем на виндоус машину архивчик)
https://github.com/danielbohannon/Invoke-Obfuscation
1.PNG


Затем готовим полезную нагрузку для PowerShell
7.PNG


Идем на виндоус машину и запускаем наш обфускатор:

powershell -exec bypass
Import-Module .\Invoke-Obfuscation.psd1
Invoke-Obfuscation

8.1.PNG

Затем знакомимся со списком опциями
HELP - окно справки
SHOW OPTIONS,SHOW,OPTIONS - показать необходимые опции для обфускации
CLEAR,CLS,CLEAR-HOST -- очистить єкран
EXEC,EXECUTE,TEST,RUN -- запустить обфусцированную команду локально
COPY,CLIP,CLIPBOARD -- скопировать обфусцированный текст в буфер обмена
OUT -- записать обфусцырованный код в файл
BACK,CD .. -- вернуться к предвидущему меню обфускатора
RESET -- сбросить все заданные параметры
QUIT,EXIT -- выйти из программы
HOME,MAIN -- вернуться в главное меню

Видим что в обфускатора есть 4 функции
TOKEN -- Обфускация токенов
STRING -- Обфусцировать команду для PowerShell используя свойства строки (REVERSE и т.д)
ENCODING -- Обфусцировать с помощью кодировок (HEX,BXOR,AES)
LAUNCHER -- Обфусцировать аргументы и запустить

(PS. Токен и Launcher пока не расматривал) Познакомимся пока с базой.
Смотрим командой show options опциональные параметры обфускатора:
Желтым подсвечует что один из этих параметров обезателен ( ScriptBlock или ScriptPath)
Я буду использовать параметр ScriptPath и обфусцировать целый готовый скрипт.


8.PNG
9.PNG


Дальше заходим в режим ENCODING,и смотрим какими кодировками мы можем обфусцировать. Я бы рекомендовал бы использовать AES или BXOR:
10.PNG
11.PNG



Дальше командой OUT мы сохраняем результат
12.PNG

Для красоты можно конвертнуть обфусцырованный файл в бинарный файл.Я делал это с помощью PS2EXE утилиты
14.PNG
15.PNG
16.PNG

Проверяем работоспособность)
Все работает)


17.PNG


 

SooLFaa

Platinum
15.07.2016
899
1 567
С возвращением в семью, а теперь не забудь написать Большому М.
 
A

a113

Спасибо, ~~DarkNode~~! Как всегда, отличная статья!
Имеется вопрос: кто-нибудь знает хорошие книги по PowerShell (можно даже на английском, немецком :D ). Хотелось бы изучить.
 

mardoksp

One Level
15.04.2017
3
3
А что за сборка kali у тебя в видео? Красиво все так оформлено) хочу себе на основную систему на ноуте накатить))

А музыка какая?)
 

<~DarkNode~>

~^M1st3r_Bert0ni^~
Platinum
19.10.2016
724
3 102
А что за сборка kali у тебя в видео? Красиво все так оформлено) хочу себе на основную систему на ноуте накатить))

А музыка какая?)
Кали Линукс самая обычная. Просто немного под себя визуализацию изменил) Окконый менеджер i3wm + conky + compton в качестве композитного менеджера.Музыка дефолтная из ютуба,бесптлатная.
[doublepost=1492428885,1492428778][/doublepost]
Спасибо, ~~DarkNode~~! Как всегда, отличная статья!
Имеется вопрос: кто-нибудь знает хорошие книги по PowerShell (можно даже на английском, немецком :D ). Хотелось бы изучить.
Сульфа шарил тут на форуме курс от пентест академии по павершелл.
 

mardoksp

One Level
15.04.2017
3
3
Кали Линукс самая обычная. Просто немного под себя визуализацию изменил) Окконый менеджер i3wm + conky + compton в качестве композитного менеджера.Музыка дефолтная из ютуба,бесптлатная.
[doublepost=1492428885,1492428778][/doublepost]
Сульфа шарил тут на форуме курс от пентест академии по павершелл.
супер темка, приятная, буду ставить, спс.
А музыка в плане найти, как называется, хочу себе в плейлист добавить и найти подобную)
[doublepost=1492494783][/doublepost]Хотя немного тупанул, искал музыку с этого видео)
 
  • Нравится
Реакции: kot-gor и <~DarkNode~>
H

Hackaton192

Есть варианты произвести обфускацию кода powershell для макроса?
 

Elektrolife

Green Team
21.10.2016
208
33
Вы используете самописный скрипт для генерации нагрузки ? Есть в открытом доступе ?
 

Mitistofel

Green Team
03.06.2018
264
151
Не ну реально, что за "D-CAT"? )
Пробежался я по статьям от DarkNode по тематике "PowerShell", и что то про "D-CAT" не нашёл.
Если я не внимательно посмотрел, то дайте ссылку где эта инфа...
Или подскажите аналог "D-CAT"


Тут ошибка если что:
Не - Import-Module .\Invoke-Obfuscation.psd1
А - Import-Module .\Invoke-Obfuscation.ps1
У меня только так заработало...
 
Последнее редактирование:

Mitistofel

Green Team
03.06.2018
264
151
А всё, нашёл, просто по другому называется...

Кто знает в чём причина такого поведения? А именно - когда в "msfconcole" врубаю "multi/handler" "windows/meterpreter/reverse_tcp", то та машина на которой всё это запустил перестаёт пинговать другие машины, и другие машины тоже не могут её пинговать. Хотя перед запуском всё нормально пинговалось... Порт ставил 4444...
 

QZ131

One Level
11.03.2018
4
4
Тут ошибка если что:
Не - Import-Module .\Invoke-Obfuscation.psd1
А - Import-Module .\Invoke-Obfuscation.ps1
У меня только так заработало...

Это не ошибка. PSD1 – файл данных Windows PowerShell, является файлом манифеста. С помощью этого файла происходит подключение и инициализация всех необходимых модулей. Так же вариант с Import-Module .\Invoke-Obfuscation.psd1 указан в официальном репозитории danielbohannon/Invoke-Obfuscation
 
U

Underwood

Не - Import-Module .\Invoke-Obfuscation.psd1
А - Import-Module .\Invoke-Obfuscation.ps1
Можно сделать проще, создать профиль для пользователя PowerShell в $Home\Documents\profile.ps1 для настройки окружения и один раз импортировать туда необходимые модули, можно также кастомизировать внешний вид консоли, задать алиасы и многое другое. А эта ошибка скорее всего вызвана ограничением политики выполнения скриптов:
Код:
Get-Execution Policy
Set-ExecutionPolicy Remotesigned
 

Mitistofel

Green Team
03.06.2018
264
151
Да эт я для себя писал ,DarkNode-Client-Attacking-Toolkit ))))
Я его писал по материалам своиих статей) Но нигде не шарил пока)
Я подозревал )

Это не ошибка. PSD1 – файл данных Windows PowerShell, является файлом манифеста. С помощью этого файла происходит подключение и инициализация всех необходимых модулей. Так же вариант с Import-Module .\Invoke-Obfuscation.psd1 указан в официальном репозитории danielbohannon/Invoke-Obfuscation
У меня при вводе "Import-Module .\Invoke-Obfuscation.psd1" стабильно ошибку выдаёт, а при вводе "Import-Module .\Invoke-Obfuscation.ps1" всё запускается и работает.
Вообще мне если честно по большому счёту всё равно что писать ".psd1 или .ps1", главное что бы программа стартовала. А это про ошибку я написал больше для того, что бы другие у кого ошибка при вводе ".psd1" будет, не тратили время как я, а просто попробовали бы ".ps1"

Можно сделать проще, создать профиль для пользователя PowerShell в $Home\Documents\profile.ps1 для настройки окружения и один раз импортировать туда необходимые модули, можно также кастомизировать внешний вид консоли, задать алиасы и многое другое. А эта ошибка скорее всего вызвана ограничением политики выполнения скриптов:
Теперь хоть по не многу начало проясняться, от чего ошибка вылазила, спасибо )

Актуально кстате - "Кто знает в чём причина такого поведения? А именно - когда в "msfconcole" врубаю "multi/handler" "windows/meterpreter/reverse_tcp", то та машина на которой всё это запустил перестаёт пинговать другие машины, и другие машины тоже не могут её пинговать. Хотя перед запуском всё нормально пинговалось... Порт ставил 4444..."
 
O

OneDollar

Я подозревал )


У меня при вводе "Import-Module .\Invoke-Obfuscation.psd1" стабильно ошибку выдаёт, а при вводе "Import-Module .\Invoke-Obfuscation.ps1" всё запускается и работает.
Вообще мне если честно по большому счёту всё равно что писать ".psd1 или .ps1", главное что бы программа стартовала. А это про ошибку я написал больше для того, что бы другие у кого ошибка при вводе ".psd1" будет, не тратили время как я, а просто попробовали бы ".ps1"


Теперь хоть по не многу начало проясняться, от чего ошибка вылазила, спасибо )

Актуально кстате - "Кто знает в чём причина такого поведения? А именно - когда в "msfconcole" врубаю "multi/handler" "windows/meterpreter/reverse_tcp", то та машина на которой всё это запустил перестаёт пинговать другие машины, и другие машины тоже не могут её пинговать. Хотя перед запуском всё нормально пинговалось... Порт ставил 4444..."
переустнови метасп..) порт другой.. попробуй reverse_https
 
  • Нравится
Реакции: Mitistofel

jonni_vu

Green Team
24.06.2017
43
9
При создании exe файла через msfvenom получается файл размером 70кбайта
используя функцию ENCODING во всех видах кодировки программа выдает:

WARNING: This command exceeds the cmd.exe maximum length of 8190.
Its length is 72104 characters.


Я использую параметр ScriptPath

эта ошибка?
 

swagcat228

Заблокирован
19.12.2019
341
84
Посмотреть вложение 9765
Доброго времени суток колеги. Как вы все прекрасно знаете время не стоит на месте и много не опытных пользователей рано или поздно сливают наработки добрых опытных пользователей.По этому появляеться необходимость прятать сигнатуры своих на работотак от антивирусных компаний.Так сказать обфусцировать . Сперва я конечно хотел писать что то свое, но так уж получилось что уже написано одним хорошим колегой такой инструментарий и придумывать велосипед не пришлось. Возможно в дальнейшем его можно будет просто модифицировать. Речь сегодня пойдет про PowerShell Obfuscator
Ну что же, давайте вместе на него посмотрим)
Первым делом ,как всегда качаем на виндоус машину архивчик)
danielbohannon/Invoke-Obfuscation
Посмотреть вложение 9764

Затем готовим полезную нагрузку для PowerShell
Посмотреть вложение 9766

Идем на виндоус машину и запускаем наш обфускатор:

powershell -exec bypass
Import-Module .\Invoke-Obfuscation.psd1
Invoke-Obfuscation

Посмотреть вложение 9776
Затем знакомимся со списком опциями
HELP - окно справки
SHOW OPTIONS,SHOW,OPTIONS - показать необходимые опции для обфускации
CLEAR,CLS,CLEAR-HOST -- очистить єкран
EXEC,EXECUTE,TEST,RUN -- запустить обфусцированную команду локально
COPY,CLIP,CLIPBOARD -- скопировать обфусцированный текст в буфер обмена
OUT -- записать обфусцырованный код в файл
BACK,CD .. -- вернуться к предвидущему меню обфускатора
RESET -- сбросить все заданные параметры
QUIT,EXIT -- выйти из программы
HOME,MAIN -- вернуться в главное меню

Видим что в обфускатора есть 4 функции
TOKEN -- Обфускация токенов
STRING -- Обфусцировать команду для PowerShell используя свойства строки (REVERSE и т.д)
ENCODING -- Обфусцировать с помощью кодировок (HEX,BXOR,AES)
LAUNCHER -- Обфусцировать аргументы и запустить

(PS. Токен и Launcher пока не расматривал) Познакомимся пока с базой.
Смотрим командой show options опциональные параметры обфускатора:
Желтым подсвечует что один из этих параметров обезателен ( ScriptBlock или ScriptPath)
Я буду использовать параметр ScriptPath и обфусцировать целый готовый скрипт.


Посмотреть вложение 9767 Посмотреть вложение 9768

Дальше заходим в режим ENCODING,и смотрим какими кодировками мы можем обфусцировать. Я бы рекомендовал бы использовать AES или BXOR:Посмотреть вложение 9769 Посмотреть вложение 9770


Дальше командой OUT мы сохраняем результатПосмотреть вложение 9771
Для красоты можно конвертнуть обфусцырованный файл в бинарный файл.Я делал это с помощью PS2EXE утилиты
Посмотреть вложение 9772 Посмотреть вложение 9773 Посмотреть вложение 9774
Проверяем работоспособность)
Все работает)


Посмотреть вложение 9775

Крутая статья. Спасибо.

p.s. кто куда льет PE для проверки на детект?
 
Мы в соцсетях:

1 августа стартует курс «Основы программирования на Python» от команды The Codeby

Курс будет начинаться с полного нуля, то есть начальные знания по Python не нужны. Длительность обучения 2 месяца. Учащиеся получат методички, видео лекции и домашние задания. Много практики. Постоянная обратная связь с кураторами, которые помогут с решением возникших проблем.

Запись на курс до 10 августа. Подробнее ...