Abusing Tokens

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

टोकन

अगर आपको विंडोज एक्सेस टोकन्स क्या हैं नहीं पता तो इस पेज को पढ़ें जारी रखें:

pageAccess Tokens

शायद आप उन टोकनों का दुरुपयोग करके विशेषाधिकारों को बढ़ा सकते हैं जो आपके पास पहले से हैं

SeImpersonatePrivilege

यह एक विशेषाधिकार है जो किसी प्रक्रिया द्वारा किसी भी टोकन का अनुकरण (लेकिन निर्माण नहीं) करने की अनुमति देता है, प्राप्त करने के लिए एक हैंडल प्राप्त किया जा सकता है। एक विशेषाधिकृत टोकन को विंडोज सेवा (DCOM) से प्राप्त किया जा सकता है जिसे NTLM प्रमाणीकरण के खिलाफ एक एक्सप्लॉइट के खिलाफ उत्तेजित करके, बाद में SYSTEM विशेषाधिकारों के साथ प्रक्रिया का क्रियान्वयन करने की स्वीकृति देता है। इस सुरक्षा गड़बड़ी का उपयोग कई उपकरणों का उपयोग करके किया जा सकता है, जैसे कि juicy-potato, RogueWinRM (जिसके लिए winrm को अक्षम करना आवश्यक है), SweetPotato, और PrintSpoofer

pageRoguePotato, PrintSpoofer, SharpEfsPotato, GodPotatopageJuicyPotato

SeAssignPrimaryPrivilege

यह SeImpersonatePrivilege के बहुत ही समान है, यह एक ही विधि का उपयोग करेगा एक विशेषाधिकृत टोकन प्राप्त करने के लिए। फिर, यह विशेषाधिकार नए/सस्पेंड किए गए प्रक्रिया को प्राथमिक टोकन सौंपने की अनुमति देता है। विशेषाधिकृत अनुकरण टोकन के साथ आप एक प्राथमिक टोकन को उत्पन्न कर सकते हैं (DuplicateTokenEx)। इस टोकन के साथ, आप 'CreateProcessAsUser' के साथ नई प्रक्रिया बना सकते हैं या एक प्रक्रिया सस्पेंड कर सकते हैं और टोकन सेट कर सकते हैं (सामान्यत: एक चल रही प्रक्रिया के प्राथमिक टोकन को आप संशोधित नहीं कर सकते)।

SeTcbPrivilege

यदि आपने इस टोकन को सक्षम किया है तो आप KERB_S4U_LOGON का उपयोग करके किसी अन्य उपयोगकर्ता के लिए एक अनुकरण टोकन प्राप्त कर सकते हैं बिना पासवर्ड जाने, किसी भी विचित्र समूह (व्यवस्थापक) को जोड़ सकते हैं, टोकन की अखंडता स्तर को "मध्यम" में सेट कर सकते हैं, और इस टोकन को वर्तमान धागे (SetThreadToken) को सौंप सकते हैं।

SeBackupPrivilege

इस विशेषाधिकार द्वारा सिस्टम को किसी भी फ़ाइल के लिए सभी पढ़ने की पहुंच नियंत्रण प्रदान की जाती है (केवल पढ़ने के कार्यों के लिए सीमित)। इसका उपयोग किया जाता है स्थानीय प्रशासक खातों के पासवर्ड हैश पढ़ने के लिए रजिस्ट्री से, इसके बाद, "psexec" या "wmicexec" जैसे उपकरणों का उपयोग हाश के साथ किया जा सकता है (पास-द-हैश तकनीक)। हालांकि, यह तकनीक दो स्थितियों में विफल हो जाती है: जब स्थानीय प्रशासक खाता अक्षम होता है, या जब एक नीति लागू होती है जो स्थानीय प्रशासकों को दूरस्थ रूप से कनेक्ट करने से प्रशासनिक अधिकार हटा देती है। आप इस विशेषाधिकार का दुरुपयोग कर सकते हैं:

pagePrivileged Groups

SeRestorePrivilege

इस विशेषाधिकार द्वारा किसी भी सिस्टम फ़ाइल के लिए लेखन पहुंच की अनुमति दी जाती है, चाहे फ़ाइल की पहुंच नियंत्रण सूची (ACL) हो या न हो। यह उचित रूप से उन्नती के लिए संभावनाएं खोलता है, जिसमें सेवाओं को संशोधित करना, DLL हाइजैकिंग करना, और इमेज फ़ाइल निष्पादन विकल्प के माध्यम से डीबगर्स सेट करना शामिल है।

SeCreateTokenPrivilege

SeCreateTokenPrivilege एक शक्तिशाली अनुमति है, विशेष रूप से उपयोगी जब एक उपयोगकर्ता के पास टोकन का अनुकरण करने की क्षमता होती है, लेकिन SeImpersonatePrivilege की अनुपस्थिति में भी। यह क्षमता विशिष्ट स्थितियों के तहत टोकनों का अनुकरण करने के लिए SeCreateTokenPrivilege का उपयोग करना संभव है।

मुख्य बिंदु:

  • SeImpersonatePrivilege के बिना अनुकरण: विशेष रूप से शर्तों के तहत टोकनों का अनुकरण करने के लिए SeCreateTokenPrivilege का उपयोग संभव है।

  • टोकन अनुकरण के लिए शर्तें: सफल अनुकरण के लिए लक्षित टोकन का उपयोगकर्ता के समान होना चाहिए और उसका अखंडता स्तर उस प्रक्रिया के अखंडता स्तर से कम या उसके समान होना चाहिए

# Example Python code to set the registry values
import winreg as reg

# Define the path and values
path = r'Software\YourPath\System\CurrentControlSet\Services\DriverName' # Adjust 'YourPath' as needed
key = reg.OpenKey(reg.HKEY_CURRENT_USER, path, 0, reg.KEY_WRITE)
reg.SetValueEx(key, "ImagePath", 0, reg.REG_SZ, "path_to_binary")
reg.SetValueEx(key, "Type", 0, reg.REG_DWORD, 0x00000001)
reg.CloseKey(key)

इस विशेषाधिकार का दुरुपयोग करने के और तरीके https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege

SeTakeOwnershipPrivilege

यह SeRestorePrivilege के समान है। इसका मुख्य कार्य प्रक्रिया को एक ऑब्जेक्ट के स्वामित्व को अस्सुम करने की अनुमति देना है, जिससे WRITE_OWNER पहुंच के अधिकार के माध्यम से विवेकाधीन पहुंच की आवश्यकता को दूर कर देता है। प्रक्रिया में पहले इच्छित रजिस्ट्री कुंजी के स्वामित्व को लिखने के उद्देश्य से सुरक्षित करना होता है, फिर DACL को लिखने के लिए लिखने के लिए बदलना होता है।

takeown /f 'C:\some\file.txt' #Now the file is owned by you
icacls 'C:\some\file.txt' /grant <your_username>:F #Now you have full access
# Use this with files that might contain credentials such as
%WINDIR%\repair\sam
%WINDIR%\repair\system
%WINDIR%\repair\software
%WINDIR%\repair\security
%WINDIR%\system32\config\security.sav
%WINDIR%\system32\config\software.sav
%WINDIR%\system32\config\system.sav
%WINDIR%\system32\config\SecEvent.Evt
%WINDIR%\system32\config\default.sav
c:\inetpub\wwwwroot\web.config

SeDebugPrivilege

यह विशेषाधिकार अन्य प्रक्रियाओं को डीबग करने की अनुमति देता है, जिसमें मेमोरी में पढ़ने और लिखने की क्षमता शामिल है। इस विशेषाधिकार के साथ अधिकांश एंटीवायरस और होस्ट इन्ट्रूजन प्रिवेंशन समाधानों को टालने की क्षमता वाले विभिन्न मेमोरी इंजेक्शन के लिए उपाय अपनाए जा सकते हैं।

मेमोरी डंप

आप ProcDump का उपयोग कर सकते हैं SysInternals Suite से किसी प्रक्रिया की मेमोरी को कैप्चर करने के लिए। विशेष रूप से, यह स्थानीय सुरक्षा प्राधिकरण उपस्थिति सेवा (LSASS) प्रक्रिया पर लागू हो सकता है, जो एक उपयोगकर्ता ने सफलतापूर्वक सिस्टम में लॉगिन किया होने पर उपयोगकर्ता क्रेडेंशियल्स को संग्रहीत करने के लिए जिम्मेदार है।

फिर आप इस डंप को मिमीकेट्ज में लोड कर सकते हैं ताकि पासवर्ड प्राप्त कर सकें:

mimikatz.exe
mimikatz # log
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords

RCE

यदि आप NT SYSTEM शैल प्राप्त करना चाहते हैं तो आप निम्नलिखित का उपयोग कर सकते हैं:

# Get the PID of a process running as NT SYSTEM
import-module psgetsys.ps1; [MyProcess]::CreateProcessFromParent(<system_pid>,<command_to_execute>)

विशेषाधिकारों की जांच

whoami /priv

टोकन जो अक्षम दिखाई देते हैं को सक्रिय किया जा सकता है, आप सक्रिय और अक्षम टोकन का दुरुपयोग कर सकते हैं।

सभी टोकन सक्रिय करें

यदि आपके पास अक्षम टोकन हैं, तो आप EnableAllTokenPrivs.ps1 स्क्रिप्ट का उपयोग कर सकते हैं ताकि सभी टोकन सक्रिय हों:

.\EnableAllTokenPrivs.ps1
whoami /priv

या स्क्रिप्ट इस पोस्ट में एम्बेड करें।

तालिका

पूरी टोकन विशेषाधिकार चीटशीट https://github.com/gtworek/Priv2Admin, सारांश नीचे केवल प्रिविलेज का शोषण करने के सीधे तरीके सूचीत करेगा जिससे एडमिन सत्र प्राप्त किया जा सकता है या संवेदनशील फ़ाइलें पढ़ी जा सकती हैं।

विशेषाधिकारप्रभावउपकरणनिष्पादन पथटिप्पणियाँ

SeAssignPrimaryToken

एडमिन

तृतीय पक्ष उपकरण

"यह एक उपयोगकर्ता को टोकन का अनुकरण करने और उपकरणों का उपयोग करके nt सिस्टम में प्राइवेसी करने की अनुमति देगा जैसे कि potato.exe, rottenpotato.exe और juicypotato.exe"

अपडेट के लिए आपका धन्यवाद Aurélien Chalot। मैं जल्द ही इसे कुछ और रेसिपी जैसा बनाने की कोशिश करूंगा।

SeBackup

खतरा

अंतर्निहित कमांड

robocopy /b के साथ संवेदनशील फ़ाइलें पढ़ें

- यदि आप %WINDIR%\MEMORY.DMP पढ़ सकते हैं तो यह और भी दिलचस्प हो सकता है। - SeBackupPrivilege (और robocopy) खुली फ़ाइलों के मामले में मददगार नहीं है। - Robocopy को काम करने के लिए /b पैरामीटर के साथ दोनों SeBackup और SeRestore की आवश्यकता है।

SeCreateToken

एडमिन

तृतीय पक्ष उपकरण

NtCreateToken के साथ स्थानिक एडमिन अधिकारों सहित विविध टोकन बनाएं।

SeDebug

एडमिन

PowerShell

lsass.exe टोकन की नकल करें।

FuzzySecurity पर स्क्रिप्ट देखें।

SeLoadDriver

एडमिन

तृतीय पक्ष उपकरण

1. szkg64.sys जैसे बगी कर्नेल ड्राइवर लोड करें 2. ड्राइवर की कमजोरी का शोषण करें वैकल्पिक रूप से, यह विशेषाधिकार ftlMC इनबिल्ट कमांड के साथ सुरक्षा संबंधित ड्राइवर्स को अनलोड करने के लिए उपयोग किया जा सकता है। जैसे: fltMC sysmondrv

1. szkg64 कमजोरी CVE-2018-15732 के रूप में सूचीबद्ध है 2. szkg64 शोषण कोड को Parvez Anwar ने बनाया था

SeRestore

एडमिन

PowerShell

1. SeRestore विशेषाधिकार के साथ PowerShell/ISE लॉन्च करें। 2. Enable-SeRestorePrivilege के साथ विशेषाधिकार सक्रिय करें। 3. utilman.exe को utilman.old में नाम बदलें 4. cmd.exe को utilman.exe में नाम बदलें 5. कंसोल लॉक करें और Win+U दबाएं

कुछ AV सॉफ़्टवेयर द्वारा हमला पहचाना जा सकता है।

वैकल्पिक विधि "Program Files" में स्टोर की गई सेवा बाइनरी को बदलकर निर्भर है।

SeTakeOwnership

एडमिन

अंतर्निहित कमांड

1. takeown.exe /f "%windir%\system32" 2. icalcs.exe "%windir%\system32" /grant "%username%":F 3. cmd.exe को utilman.exe में नाम बदलें 4. कंसोल लॉक करें और Win+U दबाएं

कुछ AV सॉफ़्टवेयर द्वारा हमला पहचाना जा सकता है।

वैकल्पिक विधि "Program Files" में स्टोर की गई सेवा बाइनरी को बदलकर निर्भर है।

SeTcb

एडमिन

तृतीय पक्ष उपकरण

टोकन को स्थानिक एडमिन अधिकारों के साथ संशोधित करें। SeImpersonate की आवश्यकता हो सकती है।

सत्यापित करने के लिए।

संदर्भ

  • विंडोज टोकन को परिभाषित करने वाली इस तालिका को देखें: https://github.com/gtworek/Priv2Admin

  • इस पेपर को देखें यहाँ टोकन के साथ प्राइवेस्क के बारे में।

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

Last updated