Windows Security Controls
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
एक एप्लिकेशन व्हाइटलिस्ट एक सूची है जिसमें अनुमोदित सॉफ़्टवेयर एप्लिकेशन या निष्पादन योग्य फ़ाइलें शामिल होती हैं जिन्हें किसी सिस्टम पर उपस्थित और चलाने की अनुमति होती है। इसका लक्ष्य पर्यावरण को हानिकारक मैलवेयर और अप्रूव्ड सॉफ़्टवेयर से सुरक्षित रखना है जो किसी संगठन की विशिष्ट व्यावसायिक आवश्यकताओं के साथ मेल नहीं खाता।
AppLocker माइक्रोसॉफ्ट का एप्लिकेशन व्हाइटलिस्टिंग समाधान है और सिस्टम प्रशासकों को यह नियंत्रित करने की अनुमति देता है कि उपयोगकर्ता कौन सी एप्लिकेशन और फ़ाइलें चला सकते हैं। यह निष्पादन योग्य फ़ाइलों, स्क्रिप्टों, विंडोज इंस्टॉलर फ़ाइलों, DLLs, पैकेज्ड ऐप्स और पैक्ड ऐप इंस्टॉलर पर सूक्ष्म नियंत्रण प्रदान करता है। यह सामान्य है कि संगठन cmd.exe और PowerShell.exe को ब्लॉक करते हैं और कुछ निर्देशिकाओं में लिखने की अनुमति देते हैं, लेकिन इसे सभी को बायपास किया जा सकता है।
Check which files/extensions are blacklisted/whitelisted:
यह रजिस्ट्री पथ AppLocker द्वारा लागू की गई कॉन्फ़िगरेशन और नीतियों को शामिल करता है, जो सिस्टम पर लागू वर्तमान नियमों के सेट की समीक्षा करने का एक तरीका प्रदान करता है:
HKLM\Software\Policies\Microsoft\Windows\SrpV2
AppLocker नीति को बायपास करने के लिए उपयोगी लेखन योग्य फ़ोल्डर: यदि AppLocker C:\Windows\System32
या C:\Windows
के अंदर कुछ भी निष्पादित करने की अनुमति दे रहा है, तो ऐसे लेखन योग्य फ़ोल्डर हैं जिनका आप बायपास करने के लिए उपयोग कर सकते हैं।
सामान्यतः विश्वसनीय "LOLBAS's" बाइनरीज़ भी AppLocker को बायपास करने के लिए उपयोगी हो सकते हैं।
खराब लिखे गए नियमों को भी बायपास किया जा सकता है
उदाहरण के लिए, <FilePathCondition Path="%OSDRIVE%*\allowed*"/>
, आप कहीं भी एक फोल्डर allowed
बना सकते हैं और इसे अनुमति दी जाएगी।
संगठन अक्सर %System32%\WindowsPowerShell\v1.0\powershell.exe
निष्पादन योग्य को ब्लॉक करने पर ध्यान केंद्रित करते हैं, लेकिन अन्य PowerShell निष्पादन योग्य स्थानों को भूल जाते हैं जैसे कि %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
या PowerShell_ISE.exe
।
DLL प्रवर्तन बहुत कम सक्षम होता है क्योंकि यह सिस्टम पर अतिरिक्त लोड डाल सकता है, और यह सुनिश्चित करने के लिए आवश्यक परीक्षण की मात्रा। इसलिए DLLs को बैकडोर के रूप में उपयोग करना AppLocker को बायपास करने में मदद करेगा।
आप ReflectivePick या SharpPick का उपयोग करके Powershell कोड को किसी भी प्रक्रिया में निष्पादित कर सकते हैं और AppLocker को बायपास कर सकते हैं। अधिक जानकारी के लिए देखें: https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode.
स्थानीय क्रेडेंशियल्स इस फ़ाइल में मौजूद हैं, पासवर्ड हैश किए गए हैं।
क्रेडेंशियल्स (हैश किए गए) इस उपप्रणाली की मेमोरी में सहेजे जाते हैं एकल साइन-ऑन कारणों के लिए। LSA स्थानीय सुरक्षा नीति (पासवर्ड नीति, उपयोगकर्ता अनुमतियाँ...), प्रमाणीकरण, एक्सेस टोकन... का प्रबंधन करता है। LSA वह होगा जो SAM फ़ाइल के अंदर प्रदान किए गए क्रेडेंशियल्स की जांच करेगा (स्थानीय लॉगिन के लिए) और एक डोमेन उपयोगकर्ता को प्रमाणित करने के लिए डोमेन नियंत्रक से बात करेगा।
क्रेडेंशियल्स प्रक्रिया LSASS के अंदर सहेजे जाते हैं: Kerberos टिकट, NT और LM हैश, आसानी से डिक्रिप्ट किए गए पासवर्ड।
LSA कुछ क्रेडेंशियल्स को डिस्क में सहेज सकता है:
सक्रिय निर्देशिका के कंप्यूटर खाते का पासवर्ड (अप्राप्य डोमेन नियंत्रक)।
Windows सेवाओं के खातों के पासवर्ड
अनुसूचित कार्यों के लिए पासवर्ड
अधिक (IIS अनुप्रयोगों का पासवर्ड...)
यह सक्रिय निर्देशिका का डेटाबेस है। यह केवल डोमेन नियंत्रकों में मौजूद है।
Microsoft Defender एक एंटीवायरस है जो Windows 10 और Windows 11 में उपलब्ध है, और Windows Server के संस्करणों में। यह सामान्य pentesting उपकरणों जैसे WinPEAS
को ब्लॉक करता है। हालाँकि, इन सुरक्षा उपायों को बायपास करने के तरीके हैं।
डिफेंडर की स्थिति की जांच करने के लिए आप PS cmdlet Get-MpComputerStatus
निष्पादित कर सकते हैं (यह जानने के लिए RealTimeProtectionEnabled
का मान जांचें कि यह सक्रिय है):
इसे सूचीबद्ध करने के लिए आप यह भी चला सकते हैं:
EFS फ़ाइलों को एन्क्रिप्शन के माध्यम से सुरक्षित करता है, एक समानांतर कुंजी का उपयोग करते हुए जिसे फाइल एन्क्रिप्शन कुंजी (FEK) कहा जाता है। यह कुंजी उपयोगकर्ता की सार्वजनिक कुंजी के साथ एन्क्रिप्ट की जाती है और एन्क्रिप्टेड फ़ाइल के $EFS वैकल्पिक डेटा स्ट्रीम में संग्रहीत की जाती है। जब डिक्रिप्शन की आवश्यकता होती है, तो उपयोगकर्ता के डिजिटल प्रमाणपत्र की संबंधित निजी कुंजी का उपयोग FEK को $EFS स्ट्रीम से डिक्रिप्ट करने के लिए किया जाता है। अधिक जानकारी यहाँ मिल सकती है।
उपयोगकर्ता की पहल के बिना डिक्रिप्शन परिदृश्य में शामिल हैं:
जब फ़ाइलें या फ़ोल्डर को गैर-EFS फ़ाइल सिस्टम, जैसे FAT32 में स्थानांतरित किया जाता है, तो वे स्वचालित रूप से डिक्रिप्ट हो जाते हैं।
SMB/CIFS प्रोटोकॉल के माध्यम से नेटवर्क पर भेजी गई एन्क्रिप्टेड फ़ाइलें प्रसारण से पहले डिक्रिप्ट की जाती हैं।
यह एन्क्रिप्शन विधि मालिक के लिए एन्क्रिप्टेड फ़ाइलों तक पारदर्शी पहुँच की अनुमति देती है। हालाँकि, केवल मालिक का पासवर्ड बदलने और लॉगिन करने से डिक्रिप्शन की अनुमति नहीं मिलेगी।
मुख्य बिंदु:
EFS एक समानांतर FEK का उपयोग करता है, जो उपयोगकर्ता की सार्वजनिक कुंजी के साथ एन्क्रिप्ट किया गया है।
डिक्रिप्शन के लिए उपयोगकर्ता की निजी कुंजी का उपयोग किया जाता है ताकि FEK तक पहुँच प्राप्त की जा सके।
FAT32 में कॉपी करने या नेटवर्क ट्रांसमिशन जैसी विशिष्ट परिस्थितियों के तहत स्वचालित डिक्रिप्शन होता है।
एन्क्रिप्टेड फ़ाइलें मालिक के लिए बिना अतिरिक्त कदमों के सुलभ होती हैं।
जाँच करें कि क्या एक उपयोगकर्ता ने इस सेवा का उपयोग किया है यह जाँचकर कि क्या यह पथ मौजूद है:C:\users\<username>\appdata\roaming\Microsoft\Protect
जाँच करें किसके पास फ़ाइल तक पहुँच है cipher /c \<file>\
आप एक फ़ोल्डर के अंदर cipher /e
और cipher /d
का भी उपयोग कर सकते हैं ताकि सभी फ़ाइलों को एन्क्रिप्ट और डिक्रिप्ट किया जा सके।
यह तरीका पीड़ित उपयोगकर्ता को होस्ट के अंदर एक प्रक्रिया चलाने की आवश्यकता है। यदि ऐसा है, तो meterpreter
सत्रों का उपयोग करते हुए आप उपयोगकर्ता की प्रक्रिया के टोकन का अनुकरण कर सकते हैं (impersonate_token
from incognito
)। या आप बस उपयोगकर्ता की प्रक्रिया में migrate
कर सकते हैं।
Microsoft ने IT बुनियादी ढाँचों में सेवा खातों के प्रबंधन को सरल बनाने के लिए Group Managed Service Accounts (gMSA) विकसित किया। पारंपरिक सेवा खातों के विपरीत जिनमें अक्सर "पासवर्ड कभी समाप्त नहीं होता" सेटिंग सक्षम होती है, gMSA एक अधिक सुरक्षित और प्रबंधनीय समाधान प्रदान करते हैं:
स्वचालित पासवर्ड प्रबंधन: gMSA एक जटिल, 240-चरित्र पासवर्ड का उपयोग करते हैं जो डोमेन या कंप्यूटर नीति के अनुसार स्वचालित रूप से बदलता है। यह प्रक्रिया Microsoft की की वितरण सेवा (KDC) द्वारा संभाली जाती है, जिससे मैन्युअल पासवर्ड अपडेट की आवश्यकता समाप्त हो जाती है।
सुरक्षा में वृद्धि: ये खाते लॉकआउट के प्रति प्रतिरक्षित होते हैं और इंटरैक्टिव लॉगिन के लिए उपयोग नहीं किए जा सकते, जिससे उनकी सुरक्षा बढ़ती है।
कई होस्ट समर्थन: gMSA को कई होस्टों के बीच साझा किया जा सकता है, जिससे ये कई सर्वरों पर चलने वाली सेवाओं के लिए आदर्श बन जाते हैं।
निर्धारित कार्य क्षमता: प्रबंधित सेवा खातों के विपरीत, gMSA निर्धारित कार्यों को चलाने का समर्थन करते हैं।
सरल SPN प्रबंधन: जब कंप्यूटर के sAMaccount विवरण या DNS नाम में परिवर्तन होते हैं, तो सिस्टम स्वचालित रूप से सेवा प्रिंसिपल नाम (SPN) को अपडेट करता है, जिससे SPN प्रबंधन सरल हो जाता है।
gMSA के लिए पासवर्ड LDAP प्रॉपर्टी msDS-ManagedPassword में संग्रहीत होते हैं और डोमेन नियंत्रकों (DCs) द्वारा हर 30 दिन में स्वचालित रूप से रीसेट किए जाते हैं। यह पासवर्ड, जिसे MSDS-MANAGEDPASSWORD_BLOB के रूप में जाना जाता है, केवल अधिकृत प्रशासकों और उन सर्वरों द्वारा पुनः प्राप्त किया जा सकता है जिन पर gMSA स्थापित हैं, जिससे एक सुरक्षित वातावरण सुनिश्चित होता है। इस जानकारी तक पहुँचने के लिए, एक सुरक्षित कनेक्शन जैसे LDAPS की आवश्यकता होती है, या कनेक्शन को 'Sealing & Secure' के साथ प्रमाणित किया जाना चाहिए।
आप इस पासवर्ड को GMSAPasswordReader: पढ़ सकते हैं।
इस पोस्ट में अधिक जानकारी प्राप्त करें
इसके अलावा, gMSA के पासवर्ड को पढ़ने के लिए NTLM रिले हमले को कैसे करना है, इस बारे में इस वेब पृष्ठ की जांच करें।
लोकल एडमिनिस्ट्रेटर पासवर्ड सॉल्यूशन (LAPS), जिसे Microsoft से डाउनलोड किया जा सकता है, स्थानीय एडमिनिस्ट्रेटर पासवर्ड के प्रबंधन की अनुमति देता है। ये पासवर्ड, जो यादृच्छिक, अद्वितीय, और नियमित रूप से बदले जाते हैं, सक्रिय निर्देशिका में केंद्रीय रूप से संग्रहीत होते हैं। इन पासवर्डों तक पहुंच को अधिकृत उपयोगकर्ताओं के लिए ACLs के माध्यम से प्रतिबंधित किया गया है। पर्याप्त अनुमतियों के साथ, स्थानीय एडमिन पासवर्ड पढ़ने की क्षमता प्रदान की जाती है।
PowerShell संविधानित भाषा मोड PowerShell का प्रभावी ढंग से उपयोग करने के लिए आवश्यक कई सुविधाओं को लॉक कर देता है, जैसे COM ऑब्जेक्ट्स को ब्लॉक करना, केवल अनुमोदित .NET प्रकारों, XAML-आधारित वर्कफ़्लो, PowerShell कक्षाओं, और अधिक की अनुमति देना।
वर्तमान Windows में वह Bypass काम नहीं करेगा लेकिन आप PSByPassCLM का उपयोग कर सकते हैं।
इसे संकलित करने के लिए आपको एक संदर्भ जोड़ने की आवश्यकता हो सकती है -> ब्राउज़ -> ब्राउज़ -> C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0\31bf3856ad364e35\System.Management.Automation.dll
जोड़ें और परियोजना को .Net4.5 में बदलें।
आप ReflectivePick या SharpPick का उपयोग करके Powershell कोड को किसी भी प्रक्रिया में निष्पादित कर सकते हैं और सीमित मोड को बायपास कर सकते हैं। अधिक जानकारी के लिए देखें: https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode.
डिफ़ॉल्ट रूप से इसे प्रतिबंधित पर सेट किया गया है। इस नीति को बायपास करने के मुख्य तरीके:
More can be found here
यह API है जिसका उपयोग उपयोगकर्ताओं को प्रमाणित करने के लिए किया जा सकता है।
SSPI उन दो मशीनों के लिए उपयुक्त प्रोटोकॉल खोजने के लिए जिम्मेदार होगा जो संवाद करना चाहती हैं। इसके लिए पसंदीदा विधि Kerberos है। फिर SSPI यह बातचीत करेगा कि कौन सा प्रमाणीकरण प्रोटोकॉल उपयोग किया जाएगा, इन प्रमाणीकरण प्रोटोकॉल को Security Support Provider (SSP) कहा जाता है, जो प्रत्येक Windows मशीन के अंदर DLL के रूप में स्थित होते हैं और दोनों मशीनों को संवाद करने के लिए समान का समर्थन करना चाहिए।
Kerberos: पसंदीदा
%windir%\Windows\System32\kerberos.dll
NTLMv1 और NTLMv2: संगतता कारणों से
%windir%\Windows\System32\msv1_0.dll
Digest: वेब सर्वर और LDAP, MD5 हैश के रूप में पासवर्ड
%windir%\Windows\System32\Wdigest.dll
Schannel: SSL और TLS
%windir%\Windows\System32\Schannel.dll
Negotiate: इसका उपयोग उपयोग करने के लिए प्रोटोकॉल को बातचीत करने के लिए किया जाता है (Kerberos या NTLM, जिसमें Kerberos डिफ़ॉल्ट है)
%windir%\Windows\System32\lsasrv.dll
User Account Control (UAC) एक विशेषता है जो उन्नत गतिविधियों के लिए सहमति संकेत सक्षम करती है।
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)