Статья 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

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

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


17.PNG


 

SooLFaa

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

a113

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

mardoksp

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

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

<~DarkNode~>

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

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

mardoksp

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

Hackaton192

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

Elektrolife

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

Mitistofel

Green Team
03.06.2018
264
151
BIT
0
Не ну реально, что за "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
BIT
0
А всё, нашёл, просто по другому называется...

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

QZ131

One Level
11.03.2018
4
4
BIT
0
Тут ошибка если что:
Не - 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
BIT
0
Да эт я для себя писал ,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
8
BIT
0
При создании 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
86
BIT
0
Посмотреть вложение 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
Для красоты можно конвертнуть обфусцырованный файл в бинарный файл.Я делал это с помощью
Посмотреть вложение 9772 Посмотреть вложение 9773 Посмотреть вложение 9774
Проверяем работоспособность)
Все работает)


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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!