Приветствую обитателей Codeby! В этой статье, я хочу обратить Ваше внимание на один из полезных инструментов под названием MorphAES.
MorphAES - полиморфный движок для шеллкода с метаморфическими свойствами и возможностью обхода песочниц, что делает его невидимым для IDPS, он также кросс-платформенный и независим от установленных библиотек.
· IDPS - Система обнаружения вторжений (IDS) - это устройство или программное приложение, которое контролирует сеть или системы для вредоносных действий или нарушений правил. Любая обнаруженная активность или нарушение обычно сообщаются либо администратору, либо собираются централизованно с использованием системы безопасности и управления событиями (SIEM). Система SIEM объединяет выходные данные из нескольких источников и использует методы фильтрации сигналов тревоги, чтобы отличать вредоносную активность от ложных тревог.
Свойства:
· Полиморфизм (шифрование AES)
· Метаморфизм (изменение логики и константы)
· Независимость от платформы (Linux / BSD / Windows)
· IDPS-скрытность (общее количество возможных сигнатур больше числа атомов во Вселенной для одного заданного кода)
· Уклонение от песочницы (специальные инструкции по сборке)
· Неверные символы, избегающие (\ x00, \ x04, \ x05, \ x09, \ x0a, \ x20)
· Может создавать исполняемые файлы и использоваться удаленно
· Код ввода может иметь произвольную длину
· Обход NOP
NOP или NOOP инструкция процессора на языке ассемблера, или команда протокола, которая предписывает ничего не делать.
Зависимости для Morpher:
· Python 2.7 - основной двигатель
Зависимости для выполнения кода:
· 64-разрядная версия Intel AES-NI - для дешифрования
Ограничения:
· Максимальная длина файла Shellcode составляет 240 байт.
· Выполнение может привести к неожиданным результатам, если вы используете 8-битные регистры.
· Метаморфизм не очень устойчив и может быть обнаружен с помощью регулярных выражений.
· Юникод байт по-прежнему может работать.
· Возможность работы на 64-разрядных процессорах Intel с поддержкой AES-NI, но поскольку у всех ПК пользователя (таких как Pentium, Celeron, i3, i5, i7) и серверов отрасли (например, Xeon) это больше спецификация , а не ограничение
· В процессе Windows/BSD PoC выполнение.
Как это работает:
· Прошивка кода оболочки с помощью NOP (поскольку AES является блочным шифрованием)
· Шифрование кода с помощью случайного ключа с использованием AES-128-ECB (не самый лучший, но самый простой) – полиморфизм
· Константы рандомизации и логические изменения – метаморфизм
Установка:
> git clone https://github.com/cryptolok/MorphAES
> apt-get install python python-crypto
Запуск:
> cd MorphAES
> ls –a
> ./MorphAES.py
Больше информации по тестам, на странице разработчика:
> https://github.com/cryptolok/MorphAES
Спасибо за внимание.
MorphAES - полиморфный движок для шеллкода с метаморфическими свойствами и возможностью обхода песочниц, что делает его невидимым для IDPS, он также кросс-платформенный и независим от установленных библиотек.
· IDPS - Система обнаружения вторжений (IDS) - это устройство или программное приложение, которое контролирует сеть или системы для вредоносных действий или нарушений правил. Любая обнаруженная активность или нарушение обычно сообщаются либо администратору, либо собираются централизованно с использованием системы безопасности и управления событиями (SIEM). Система SIEM объединяет выходные данные из нескольких источников и использует методы фильтрации сигналов тревоги, чтобы отличать вредоносную активность от ложных тревог.
Свойства:
· Полиморфизм (шифрование AES)
· Метаморфизм (изменение логики и константы)
· Независимость от платформы (Linux / BSD / Windows)
· IDPS-скрытность (общее количество возможных сигнатур больше числа атомов во Вселенной для одного заданного кода)
· Уклонение от песочницы (специальные инструкции по сборке)
· Неверные символы, избегающие (\ x00, \ x04, \ x05, \ x09, \ x0a, \ x20)
· Может создавать исполняемые файлы и использоваться удаленно
· Код ввода может иметь произвольную длину
· Обход NOP
NOP или NOOP инструкция процессора на языке ассемблера, или команда протокола, которая предписывает ничего не делать.
Зависимости для Morpher:
· Python 2.7 - основной двигатель
Зависимости для выполнения кода:
· 64-разрядная версия Intel AES-NI - для дешифрования
Ограничения:
· Максимальная длина файла Shellcode составляет 240 байт.
· Выполнение может привести к неожиданным результатам, если вы используете 8-битные регистры.
· Метаморфизм не очень устойчив и может быть обнаружен с помощью регулярных выражений.
· Юникод байт по-прежнему может работать.
· Возможность работы на 64-разрядных процессорах Intel с поддержкой AES-NI, но поскольку у всех ПК пользователя (таких как Pentium, Celeron, i3, i5, i7) и серверов отрасли (например, Xeon) это больше спецификация , а не ограничение
· В процессе Windows/BSD PoC выполнение.
Как это работает:
· Прошивка кода оболочки с помощью NOP (поскольку AES является блочным шифрованием)
· Шифрование кода с помощью случайного ключа с использованием AES-128-ECB (не самый лучший, но самый простой) – полиморфизм
· Константы рандомизации и логические изменения – метаморфизм
Установка:
> git clone https://github.com/cryptolok/MorphAES
> apt-get install python python-crypto
Запуск:
> cd MorphAES
> ls –a
> ./MorphAES.py
Больше информации по тестам, на странице разработчика:
> https://github.com/cryptolok/MorphAES
Спасибо за внимание.