
SharpDPAPI कुछ Mimikatz DPAPI कार्यक्षमता का C# पोर्ट है।
SharpDPAPI @gentilkiwi के Mimikatz प्रोजेक्ट से कुछ DPAPI कार्यक्षमता का C# पोर्ट है।
मैंने यह तर्क नहीं बनाया है, यह केवल Mimikatz से एक पोर्ट है ताकि प्रक्रिया को बेहतर ढंग से समझा जा सके और इसे हमारे वर्कफ़्लो के अनुरूप संचालित किया जा सके।
SharpChrome उपप्रोजेक्ट @gentilkiwi और @djhohnstein के काम का एक अनुकूलन है, विशेष रूप से उनके SharpChrome प्रोजेक्ट का। हालाँकि, SharpChrome का यह संस्करण C# SQL लाइब्रेरी के एक अलग संस्करण का उपयोग करता है जो लॉकलेस ओपनिंग का समर्थन करता है। SharpChrome को SharpDPAPI में एक अलग प्रोजेक्ट के रूप में बनाया गया है क्योंकि उपयोग की गई SQLite लाइब्रेरी का आकार बड़ा है।
Chrome और नए Chromium-आधारित Edge ब्राउज़र दोनों को SharpChrome से ट्राइज किया जा सकता है।
SharpChrome @AArnott के BCrypt P/Invoke कोड का एक न्यूनतम संस्करण भी उपयोग करता है जो MIT लाइसेंस के तहत जारी किया गया है।
यदि आप DPAPI से अपरिचित हैं, तो अधिक पृष्ठभूमि जानकारी के लिए यह पोस्ट देखें। क्रेडेंशियल्स और वॉल्ट्स के संबंध में DPAPI के बारे में अधिक जानकारी के लिए, Benjamin के इस विषय पर विकी एंट्री देखें।
@harmj0y इस पोर्ट के मुख्य लेखक हैं।
SharpDPAPI BSD 3-Clause लाइसेंस के तहत लाइसेंस प्राप्त है।
__ _ _ _ ___
(_ |_ _. ._ ._ | \ |_) /\ |_) |
__) | | (_| | |_) |_/ | /--\ | _|_
|
v1.20.0
किसी डोमेन कंट्रोलर की DPAPI बैकअप कुंजी प्राप्त करें, वैकल्पिक रूप से DC और आउटपुट फ़ाइल निर्दिष्ट करें:
SharpDPAPI backupkey [/nowrap] [/server:SERVER.domain] [/file:key.pvk]
*search* कमांड रजिस्ट्री, फ़ाइलों, फ़ोल्डरों और base64 ब्लॉब्स में संभावित DPAPI ब्लॉब्स की खोज करेगा:
search /type:registry [/path:HKLM\path\to\key] [/showErrors]
search /type:folder /path:C:\path\to\folder [/maxBytes:<numOfBytes>] [/showErrors]
search /type:file /path:C:\path\to\file [/maxBytes:<numOfBytes>]
search /type:base64 [/base:<base64 string>]
मशीन/सिस्टम ट्राइज:
machinemasterkeys - सभी सुलभ मशीन मास्टरकी फ़ाइलों को ट्राइज करें (DPAPI_SYSTEM LSA रहस्य प्राप्त करने के लिए SYSTEM तक उन्नत करें)
machinecredentials - 'machinemasterkeys' का उपयोग करें और फिर मशीन क्रेडेंशियल फ़ाइलों को ट्राइज करें
machinevaults - 'machinemasterkeys' का उपयोग करें और फिर मशीन वॉल्ट्स को ट्राइज करें
machinetriage - 'machinecredentials' और 'machinevaults' कमांड चलाएँ
उपयोगकर्ता ट्राइज:
'masterkeys' कमांड के तर्क:
/target:FILE/folder - एक विशिष्ट मास्टरकी, या मास्टरकीज़ से भरे फ़ोल्डर को ट्राइज करें (अन्यथा स्थानीय मास्टरकीज़ को ट्राइज करें)
/pvk:BASE64... - पहले सुलभ उपयोगकर्ता मास्टरकीज़ को डिक्रिप्ट करने के लिए base64-एन्कोडेड DPAPI डोमेन निजी कुंजी फ़ाइल का उपयोग करें
/pvk:key.pvk - पहले सुलभ उपयोगकर्ता मास्टरकीज़ को डिक्रिप्ट करने के लिए DPAPI डोमेन निजी कुंजी फ़ाइल का उपयोग करें
/password:X - लक्ष्य उपयोगकर्ता की मास्टरकीज़ को सादे पाठ पासवर्ड का उपयोग करके डिक्रिप्ट करें (दूरस्थ रूप से काम करता है)
/ntlm:X - लक्ष्य उपयोगकर्ता की मास्टरकीज़ को NTLM हैश का उपयोग करके डिक्रिप्ट करें (दूरस्थ रूप से काम करता है)
/credkey:X - लक्ष्य उपयोगकर्ता की मास्टरकीज़ को DPAPI क्रेडकी (डोमेन या स्थानीय SHA1, दूरस्थ रूप से काम करता है) का उपयोग करके डिक्रिप्ट करें
/rpc - लक्ष्य उपयोगकर्ता की मास्टरकीज़ को डोमेन कंट्रोलर से डिक्रिप्ट करने के लिए कहकर डिक्रिप्ट करें
/server:SERVER - एक दूरस्थ सर्वर को ट्राइज करें, प्रशासनिक पहुँच मानते हुए
/hashes - JTR/Hashcat प्रारूप में usermasterkey फ़ाइल 'हैश' आउटपुट करें (कोई डिक्रिप्शन नहीं)
credentials|vaults|rdg|keepass|triage|blob|ps कमांड के तर्क:
डिक्रिप्शन:
/unprotect - 'ps', 'rdg', या 'blob' कमांड के लिए CryptUnprotectData() का उपयोग करने के लिए बलपूर्वक प्रयोग करें
/pvk:BASE64... - पहले सुलभ उपयोगकर्ता मास्टरकीज़ को डिक्रिप्ट करने के लिए base64-एन्कोडेड DPAPI डोमेन निजी कुंजी फ़ाइल का उपयोग करें
/pvk:key.pvk - पहले सुलभ उपयोगकर्ता मास्टरकीज़ को डिक्रिप्ट करने के लिए DPAPI डोमेन निजी कुंजी फ़ाइल का उपयोग करें
/password:X - लक्ष्य उपयोगकर्ता की मास्टरकीज़ को सादे पाठ पासवर्ड का उपयोग करके डिक्रिप्ट करें (दूरस्थ रूप से काम करता है)
/ntlm:X - लक्ष्य उपयोगकर्ता की मास्टरकीज़ को NTLM हैश का उपयोग करके डिक्रिप्ट करें (दूरस्थ रूप से काम करता है)
/credkey:X - लक्ष्य उपयोगकर्ता की मास्टरकीज़ को DPAPI क्रेडकी (डोमेन या स्थानीय SHA1, दूरस्थ रूप से काम करता है) का उपयोग करके डिक्रिप्ट करें
/rpc - लक्ष्य उपयोगकर्ता की मास्टरकीज़ को डोमेन कंट्रोलर से डिक्रिप्ट करने के लिए कहकर डिक्रिप्ट करें
GUID1:SHA1 ... - डिक्रिप्शन के लिए एक या अधिक GUID:SHA1 मास्टरकीज़ का उपयोग करें
/mkfile:FILE - डिक्रिप्शन के लिए एक या अधिक GUID:SHA1 मास्टरकीज़ वाली फ़ाइल का उपयोग करें
लक्ष्यीकरण:
/target:FILE/folder - एक विशिष्ट 'Credentials', '.rdg|RDCMan.settings', 'blob', या 'ps' फ़ाइल स्थान, या 'Vault' फ़ोल्डर को ट्राइज करें
/server:SERVER - एक दूरस्थ सर्वर को ट्राइज करें, प्रशासनिक पहुँच मानते हुए
नोट: /pvk:KEY या /password:X के साथ उपयोग करना होगा
नोट: 'blob' या 'ps' कमांड पर लागू नहीं होता
प्रमाणपत्र ट्राइज: