CODEBY_SEC Telegram 9188
💥 EntropyReducer

Инструмент, позволяющий уменьшить энтропию полезной нагрузки и зашифровать ее с помощью сериализованных связанных списков.

✏️Принцип работы
Алгоритм EntropyReducer определяется значениями BUFF_SIZE и NULL_BYTES

1️⃣Алгоритм обфускации
Инструмент проверяет, имеет ли входная необработанная полезная нагрузка размер, кратный BUFF_SIZE, и, если нет, дополняет её до нужного размера. Затем он берёт каждый фрагмент BUFF_SIZE из полезной нагрузки и создаёт для него узел связанного списка, используя функцию InitializePayloadList, которая инициализирует полезную нагрузку как связанный список. Созданный узел будет иметь пустой буфер размером NULL_BYTES, который будет использоваться для снижения энтропии. Затем он продолжает рандомизировать порядок каждого узла в связанном списке, нарушая исходный порядок полезной нагрузки. Этот шаг выполняется с помощью алгоритма сортировки слиянием, реализованного в функции MergeSort.

Сортированный связанный список находится в случайном порядке, потому что значение, в котором сортируется связанный список, представляет собой значение XOR первых трёх байтов необработанной полезной нагрузки. Это значение определяет его позицию в реорганизованном связанном списке. Поскольку сохранение связанного списка в файл невозможно из-за того, что он связан указателями, он проходит сериализацию с помощью Obfuscate.

2️⃣Алгоритм Деобфускации
Поскольку последним шагом в Obfuscation Algorithm была сериализация связанного списка, первое, что нужно сделать теперь, это десериализовать зашифрованную полезную нагрузку, создав на её основе связанный список. Этот шаг выполняется в функции Deobfuscate. Следующий шаг — сортировка связанного списка по идентификатору узла, которая выполняется с помощью того же алгоритма сортировки слиянием. Теперь связанный список находится в правильном порядке, чтобы восстановить исходные байты полезной нагрузки. Далее из него удаляются исходные байты полезной нагрузки из каждого узла и освобождаются выделенные узлы.

Использование
EntropyReducer считывает исходный файл полезной нагрузки из командной строки и записывает зашифрованную версию в тот же файл с префиксом «.ER». Размер конечной зашифрованной полезной нагрузки варьируется в зависимости от значений BUFF_SIZE и NULL_BYTES.

Инструмент можно включать в свои проекты, для этого необходимо добавить файлы EntropyReducer.c и EntropyReducer.h в проект и вызвать функцию Deobfuscate.

😱 Тесты
⏺️x64 calc shellcode сгенерированный в metasploit имеет энтропию 5.883;
⏺️Тот же файл, зашифрованный с помощью AES, имеет энтропию 7.110;
⏺️Тот же файл, зашифрованный с помощью RC4 - 7.210;
⏺️EntropyReducer - 4.093.

❗️Инструмент необходимо использовать исключительно в образовательных целях или в рамках проведения работ по анализу защищенности❗️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥4😱1🏆1



tgoop.com/codeby_sec/9188
Create:
Last Update:

💥 EntropyReducer

Инструмент, позволяющий уменьшить энтропию полезной нагрузки и зашифровать ее с помощью сериализованных связанных списков.

✏️Принцип работы
Алгоритм EntropyReducer определяется значениями BUFF_SIZE и NULL_BYTES

1️⃣Алгоритм обфускации
Инструмент проверяет, имеет ли входная необработанная полезная нагрузка размер, кратный BUFF_SIZE, и, если нет, дополняет её до нужного размера. Затем он берёт каждый фрагмент BUFF_SIZE из полезной нагрузки и создаёт для него узел связанного списка, используя функцию InitializePayloadList, которая инициализирует полезную нагрузку как связанный список. Созданный узел будет иметь пустой буфер размером NULL_BYTES, который будет использоваться для снижения энтропии. Затем он продолжает рандомизировать порядок каждого узла в связанном списке, нарушая исходный порядок полезной нагрузки. Этот шаг выполняется с помощью алгоритма сортировки слиянием, реализованного в функции MergeSort.

Сортированный связанный список находится в случайном порядке, потому что значение, в котором сортируется связанный список, представляет собой значение XOR первых трёх байтов необработанной полезной нагрузки. Это значение определяет его позицию в реорганизованном связанном списке. Поскольку сохранение связанного списка в файл невозможно из-за того, что он связан указателями, он проходит сериализацию с помощью Obfuscate.

2️⃣Алгоритм Деобфускации
Поскольку последним шагом в Obfuscation Algorithm была сериализация связанного списка, первое, что нужно сделать теперь, это десериализовать зашифрованную полезную нагрузку, создав на её основе связанный список. Этот шаг выполняется в функции Deobfuscate. Следующий шаг — сортировка связанного списка по идентификатору узла, которая выполняется с помощью того же алгоритма сортировки слиянием. Теперь связанный список находится в правильном порядке, чтобы восстановить исходные байты полезной нагрузки. Далее из него удаляются исходные байты полезной нагрузки из каждого узла и освобождаются выделенные узлы.

Использование
EntropyReducer считывает исходный файл полезной нагрузки из командной строки и записывает зашифрованную версию в тот же файл с префиксом «.ER». Размер конечной зашифрованной полезной нагрузки варьируется в зависимости от значений BUFF_SIZE и NULL_BYTES.

Инструмент можно включать в свои проекты, для этого необходимо добавить файлы EntropyReducer.c и EntropyReducer.h в проект и вызвать функцию Deobfuscate.

😱 Тесты
⏺️x64 calc shellcode сгенерированный в metasploit имеет энтропию 5.883;
⏺️Тот же файл, зашифрованный с помощью AES, имеет энтропию 7.110;
⏺️Тот же файл, зашифрованный с помощью RC4 - 7.210;
⏺️EntropyReducer - 4.093.

❗️Инструмент необходимо использовать исключительно в образовательных целях или в рамках проведения работ по анализу защищенности❗️

BY Codeby




Share with your friend now:
tgoop.com/codeby_sec/9188

View MORE
Open in Telegram


Telegram News

Date: |

With the administration mulling over limiting access to doxxing groups, a prominent Telegram doxxing group apparently went on a "revenge spree." How to create a business channel on Telegram? (Tutorial) SUCK Channel Telegram The administrator of a telegram group, "Suck Channel," was sentenced to six years and six months in prison for seven counts of incitement yesterday. A new window will come up. Enter your channel name and bio. (See the character limits above.) Click “Create.”
from us


Telegram Codeby
FROM American