Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
EXCELntDonut — Excel 4.0 (XLM) Генератор макросов для внедрения DLL и EXE в память. | Kitploit
Инструменты/GitHubGitHub/redsiege/excelntdonut
Инструменты фишингаГенерация полезной нагрузкиЭксплуатацияШелл-кодФишингRed TeamingГенерация Шеллкода
GitHubredsiege/excelntdonut

EXCELntDonut

Excel 4.0 (XLM) Генератор макросов для внедрения DLL и EXE в память.

Репозиторий
51789706 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

| \ / / | | | _ __ | || _ \ ___ _ __ _ | | | | \ / | | | | | | ' | | | | |/ _ | ' | | | | | | | / \ || || |__| | | | || || | () | | | | || | | |_____//__|||| ||_|____/ _/|| ||_,|__| by @JoeLeonJr (@FortyNorthSec)

EXCELntDonut — это генератор макросов XLM (Excel 4.0). Начните с исходного кода на C# (EXE) и получите макрос XLM (Excel 4.0), который выполнит ваш код в памяти. Макросы XLM (Excel 4.0) могут быть сохранены в файлах .XLS.

Установка

chmod +x install.sh
./install.sh

Что устанавливается?

  • pip3
  • mono-complete (как mcs, так и все возможные библиотеки, на которые вы ссылаетесь в своих исходных файлах)
  • EXCELntDonut в качестве CLI

Если вы хотите запускать EXCELntDonut просто как скрипт Python, вам нужно будет настроить виртуальное окружение с двумя пакетами: "pandas" и "donut-shellcode". Кроме того, вам нужно будет установить mono-complete с помощью apt-get и вызывать скрипт drive.py с помощью python3. Мы рекомендуем просто использовать скрипт ./install.sh, но решать вам.

Использование

Usage:
	$ EXCELntDonut -f exe_source.cs -r System.Windows.Forms.dll --sandbox --obfuscate

Flags:
	(required)
	-f путь к файлу, содержащему ваш исходный код на C# (только exe)

	-r Ссылки, необходимые для компиляции вашего кода на C# (те же, что используются при компиляции с mcs на Linux)
	(пример: -r 'System.Management')

	(optional)
	-o имя выходного файла
	--sandbox 
		Выполнить базовые проверки песочницы. Этот список будет обновляться по мере обнаружения новых подходов.
	--obfuscate 
		Выполнить базовую обфускацию макроса. 

Как это работает

Вы предоставляете файл C#, содержащий вашу полезную нагрузку (например, EXE с методом main, который выполняет полезную нагрузку Cobalt Strike). Этот файл C# компилируется с помощью MCS в две сборки .NET: x86 и x64. После компиляции замечательные инструменты Donut (для x86) и CLRvoyance (для x64) преобразуют каждую сборку в позиционно-независимый шеллкод. Затем все нулевые байты удаляются, так как макросы XLM (Excel 4.0) плохо работают с нулевыми байтами, и полезная нагрузка разбивается на строки длиной не более 255 символов (для x86) или 10 символов (для x64).

После подготовки шеллкода он объединяется с базовыми функциями внедрения в процесс (VirtualAlloc, WriteProcessMemory и CreateThread), а также функцией проверки архитектуры для определения того, какую полезную нагрузку (x86 или x64) следует запустить на целевой системе. Если вы выберете выполнение проверок песочницы или базовой обфускации, эти функции обновят ваш макрос. Наконец, результат помещается в CSV-файл (сохраняется как .txt).

Как создать макрос XLM (Excel 4.0)

После того как вы получили выходной файл от EXCELntDonut, откройте его в текстовом редакторе и скопируйте всё содержимое (Ctrl-A, Ctrl-C). Откройте Excel на виртуальной машине Windows, щелкните правой кнопкой мыши на "Лист 1" и выберите "Вставить". Выберите "Макрос MS Excel 4.0". Перейдите в ячейку A1 и вставьте вывод EXCELntDonut. Все данные, вероятно, будут вставлены в один столбец. Данные разделены точкой с запятой ";". Перейдите на вкладку "Данные" и нажмите "Текст по столбцам". Выберите "С разделителями" и на следующем экране выберите "Точка с запятой", затем нажмите "Готово". Макрос распределится по соответствующим столбцам и строкам.

(Примечание — если вы выбрали флаг "--obfuscate", вам придется довольно много прокручивать по горизонтали, чтобы найти свой фактический код, так как часть логики обфускации перемещает макрос в случайный раздел рабочего листа).

На этом этапе мы рекомендуем две вещи:

  1. Найдите начальную ячейку (верхняя левая ячейка вашего макрокода, скорее всего A1). Щелкните правой кнопкой мыши и выберите "Выполнить". Проверьте, работает ли ваш макрос.
  2. После того как вы убедитесь, что макрос работает, снова выберите эту же верхнюю левую ячейку. В левой части экрана должен быть раскрывающийся список с названием ячейки (скорее всего "A1"). Щелкните в раскрывающемся списке и измените текстовое значение на "Auto_open". Это обеспечит ту же автоматическую функциональность выполнения, к которой вы привыкли в макросах VBA.

Сохраните файл (.xls) и попробуйте его открыть. Он должен автоматически выполнить вашу полезную нагрузку.

Проверки песочницы

Эти проверки основаны на том, что реальные злоумышленники используют в своих вредоносных программах.

  1. Активна ли мышь?
  2. Превышает ли размер экрана 770 пикселей по ширине и 381 по высоте?
  3. Может ли хост воспроизводить звуки?
  4. Это машина под управлением Windows?

Обфускация

  1. Для инструкций внедрения в процесс (VirtualAlloc, WriteProcessMemory, CreateThread) и проверок песочницы все функции макроса будут преобразованы в следующую структуру:
=FORMULA(D3&D23&D54&D23&D44,E45)

Функция FORMULA позволяет нам поместить формулу, которая может быть выполнена позже, в другую ячейку. Таким образом, в данном случае мы помещаем инструкции внедрения в процесс, а затем используем функцию FORMULA, чтобы поместить фактическую функцию в другую ячейку для выполнения. Это мешает защитникам, проводящим статический анализ, видеть такие вещи, как "VirtualAlloc".

  1. Весь макрос сдвинет некоторое значение вправо, так что при первоначальном открытии листа с макросами он будет казаться пустым.

Что нужно знать

  • Менее сложные полезные нагрузки просто используют команду =EXEC() для выполнения команд. Некоторые также используют URLMON для загрузки файлов. Другие файлы даже содержат слово "SHELL". Нам всё это показалось плохой идеей. Этот инструмент не включает ничего из этого. Вместо этого он внедряет ваш исходный код на C# в процесс Excel (32-битный или 64-битный) и затем выполняет его. А дальше уже ваша полезная нагрузка решает, что делать дальше.

Советы

  • Ваш исходный код на C# может делать всё, что вы захотите. Мы рекомендуем, чтобы ваш исходный код разрывал связь "Родитель > Дочерний элемент" между Excel и тем, что вы порождаете.
  • Существует много хороших публикаций о "Очень скрытых" листах Excel. Рассмотрите возможность их использования.
  • Не забудьте сделать ваш файл Excel правдоподобным.

Устранение неполадок

"Тип или имя пространства имен ... не существует ..."
root@excelntdonut-test:/opt# EXCELntDonut -f test.cs
 _______  ______ _____ _           _   ____                    _   
| ____\ \/ / ___| ____| |    _ __ | |_|  _ \  ___  _ __  _   _| |_ 
|  _|  \  / |   |  _| | |   | '_ \| __| | | |/ _ \| '_ \| | | | __|
| |___ /  \ |___| |___| |___| | | | |_| |_| | (_) | | | | |_| | |_ 
|_____/_/\_\____|_____|_____|_| |_|\__|____/ \___/|_| |_|\__,_|\__|
                    by @JoeLeonJr (@FortyNorthSec)                
[i] Generating your x86 .NET assembly.
warning CS8001: SDK path could not be resolved
test.cs(2,14): error CS0234: The type or namespace name `Management' does not exist in the namespace `System'. Are you missing an assembly reference?

Эта ошибка, скорее всего, означает, что вам не хватает ссылки на сборку при компиляции с помощью mono. Чтобы исправить это, просто передайте упомянутое пространство имен в флаг -r. В данном случае мы бы добавили -r 'System.Management' в командную строку. Новая команда будет выглядеть так:

root@excelntdonut-test:/opt# EXCELntDonut -f test.cs -r 'System.Management'

"Файл метаданных ... не найден"
Скачать инструмент