Soft Обфускаторы Pyobfx,Pyarmor и Graffiti

Vertigo

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 193
3 559
Приветствую Уважаемых жителей Codeby.
Обзор будет посвящён некоторым новинкам из софта,задачей которого является обфускация кода
Прежде чем тестировать,сгенерируем payload для теста.
vertpy.png
Код его выглядит так.
vertpy1.png
Больше всего времени было отнято инструментом PyObfx.
Создан он одноимённой командой.
Предназначен он для обфускации небольших скриптов на python.
Честно,с ним потерпел полное фиаско.
pyobfx.png
Инструмент не справляется с файлами с объёмным кодом.
Не смог он ничего сделать и с тестовым payload по причине того,что в последнем уже применена кодировка base64.
pyobfx1.png
Пришлось воспользоваться тестовым простеньким скриптом из его же директории test
Видим код и его выполнение.
pyobfx2.png
А это уже с обфускацией, но функция сжатия не сработала (заявлено,что работает c gz,bz2 и lzma)
Но ,тем не менее,выполняется.
pyobfx3.png
Выводы пока делать рано,проект молодой и скорее всего,его развитие продолжится.
Если будете пробовать использовать данный инструмент,подбирайте для этого небольшие payload без кодировки.
Установка:
Код:
# git clone https://github.com/PyObfx/PyObfx.git
# cd PyObfx
# pip install -r requirements.txt
# chmod +x PyObfx.py
# python3 PyObfx.py -h
В директории logs будут скапливаться логи,которые надо периодически чистить,или использовать опцию --no-log
Но я бы воздержался пока от использования этого инструмента.

Следующий обфускатор действительно порадовал.Это Pyarmor.
Настоящий комбайн для таких задач.
pyarmor.png
Написан этот мощный софт китайским специалистом Jondy Zhao при поддержке проекта Dashingsoft.
Не смотря на иллюзорную простоту,инструмент сложный и имеет свою документацию

Он совмещён при работе с такими инструментами,как pyinstaller,py2exe,cx_Freeze
Предусмотрено получение лицензии,обновление и много прочих полезностей.
Есть возможность использовать webui
Демонстрационная версия находится

Установка:
Код:
# git clone https://github.com/dashingsoft/pyarmor.git
А ещё лучше так:
# pip install pyarmor
# pyarmor obfuscate payload_file - самая простая команда для обфускации.
Поддерживаемые платформы:
Python 2.5, 2.6, 2.7 and Python3
Prebuilt Platform: win32, win_amd64, linux_i386, linux_x86_64, macosx_x86_64
Embedded Platform: Raspberry Pi, Banana Pi, Orange Pi, TS-4600 / TS-7600

После обфускации,Pyarmor генерирует директорию dist,в которой будет обработанный файл.
Сам файл принял такой вид
vertpy2.png
И конечно без проблем была получена сессия.
На скрине одна сессия получена от необработанного ещё payload vert.py и 2 сессии после обработки.
session.png
В завершении желаю вам также представить инструмент,созданный Ekultek.
Graffiti предназначен для работы с объектами json
Пришлось ещё подыскать более менее подходящий фон для скрина основного меню.
Т.к. шапка немного неудачна и не видна на тёмном фоне.
graffiti.png
Но дело не в красоте всё-таки.
Инструмент работает с файлами Python,Perl,Batch,Powershell,PHP,Bash
И применяет кодировки ROT13,Raw,Hex,Base64,Xor.

Командой list можно видеть payload,c которыми инструмент устанавливается изначально.
Он позволяет добавлять свои javascript.
graffiti1.png
Установка:
Код:
# git clone https://github.com/Ekultek/Graffiti.git
# chmod +x graffiti.py
# python graffiti.py - команда запуска
Инструмент запускается без установки внешних пакетов
Команду ./install.sh выполнить только в случае неудачного основного запуска.
К слову,у меня она вообще не выполнилась.
Примеры запуска:
Код:
graffiti# python graffiti.py -c base64 -p /linux/php/socket_reverse.json -lH 127.0.0.1 -lP 9065
graffiti# use /linux/python/socket_reverse.json hex
grafiti2.png
Также уместно использовать IP-обфускаторы для сокрытия IP-адресов атакующей машины в url
Такие обфускаторы более менее известны и рассматривать их не стану.
Например,как
А на этом у меня пока всё,благодарю за внимание и до новых встреч.
 
Мы в соцсетях: