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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
DCOMrade — 취약한 DCOM 애플리케이션을 열거하기 위한 Powershell 스크립트 | Kitploit
도구/GitHubGitHub/sud0woodo/dcomrade
Vulnerability AnalysisLateral MovementPost-ExploitationPenetration TestingRed Teaming
GitHubsud0woodo/dcomrade

DCOMrade

취약한 DCOM 애플리케이션을 열거하기 위한 Powershell 스크립트

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DCOMrade

DCOMrade는 Powershell 스크립트로, 측면 이동, 코드 실행, 데이터 유출 등에 악용될 수 있는 취약한 DCOM 애플리케이션을 열거할 수 있습니다. 이 스크립트는 Powershell 2.0에서 작동하도록 설계되었지만 그 이상의 모든 버전에서도 작동합니다. 현재 이 스크립트는 다음 Windows 운영 체제(x86 및 x64 모두)를 지원합니다:

  • Microsoft Windows 7
  • Microsoft Windows 10
  • Microsoft Windows Server 2012 / 2012 R2
  • Microsoft Windows Server 2016

배경

현재 HackDefense에서 인턴십을 진행하면서 기존 DCOM 측면 이동 기술을 연구하고 이러한 기술(및 새 기술)의 열거를 자동화하는 방법을 찾고 있습니다. 이 연구를 통해 이 스크립트와 아래 링크된 관련 연구 논문이 작성되었습니다.

작동 방식

이 스크립트는 Matt Nelson(@enigma0x3)의 연구, 특히 라운드 2 블로그 게시물을 기반으로 제작되었습니다. 해당 게시물에서는 침투 테스터와 레드 팀에게 유용할 수 있는 DCOM 애플리케이션을 찾는 방법을 다루고 있습니다.

먼저 대상 시스템과의 원격 연결이 설정되며, 이 연결은 스크립트 전체에서 다양한 작업에 사용됩니다. 대상 시스템에서 Powershell 명령이 실행되어 모든 DCOM 애플리케이션과 해당 AppID를 검색합니다. AppID는 Windows 레지스트리를 순회하고 해당 항목에 LaunchPermission 하위 키가 설정되지 않은 AppID를 확인하는 데 사용됩니다. 이러한 AppID는 저장된 후 관련 CLSID를 검색하는 데 사용됩니다.

스크립트는 각 OS에 대해 특정 블랙리스트를 사용하므로 대상 운영 체제에 따라 다른 옵션이 있습니다. 블랙리스트는 활성화할 수 없는 DCOM 애플리케이션으로 인해 스크립트가 중단될 수 있는 CLSID 항목을 건너뜁니다. 이렇게 하면 대상 시스템의 부하를 줄이고 스크립트 완료 시간을 단축할 수 있습니다.

CLSID를 사용하여 연결된 DCOM 애플리케이션을 활성화할 수 있습니다. 'Shortcut' CLSID는 연결된 MemberTypes의 개수를 세는 데 사용되며, 이는 기본 MemberTypes 개수를 확인하기 위함입니다. 이 숫자는 이 개수와 다른 CLSID를 확인하는 데 사용됩니다. 스크립트는 'Shortcut'의 CLSID()를 사용하여 이를 수행합니다. 이 CLSID는 Microsoft Windows 운영 체제에서 공유되는 CLSID이기 때문입니다. 다른 개수의 를 가진 CLSID는 (악)용될 수 있는 또는 를 포함할 수 있으며, 배열에 추가됩니다.

HKEY_CLASSES_ROOT\CLSID\{00021401-0000-0000-C000-000000000046}
MemberTypes
Method
Property

배열에 있는 CLSID는 MemberTypes에서 (악)용 가능성을 나타낼 수 있는 문자열을 확인합니다. 이 문자열 목록은 VulnerableSubset 파일에서 찾을 수 있습니다. 이 목록은 모든 취약한 DCOM 애플리케이션을 찾기 위한 완전한 목록은 아니지만, 스크립트 사용자가 자신의 목적에 유용할 수 있는 DCOM 애플리케이션의 기능을 나타낼 수 있는 특정 문자열을 검색할 수 있는 동적 프로세스의 일부입니다.

스크립트의 결과는 HTML 보고서로 출력되며, 예방 조치로 시스템을 감사하는 데 사용할 수 있습니다. 공격 측면을 위해 Empire 모듈을 만들었으며, 작성 시점 기준으로 마스터 브랜치에 추가 승인을 기다리고 있습니다. 직접 Empire에 추가하려면 여기에 있는 모듈을 추가하면 됩니다.

아이디어, 스크립트 및 가능한 탐지 방법에 대한 전체 기술 설명은 관련 연구 논문을 참조하십시오.

사전 요구 사항

Empire 모듈로 사용되지 않을 때 이 스크립트는 작동 방식과 대상 시스템과의 연결 방식이 다르기 때문에 몇 가지 제한 사항이 있습니다.

  • 이 스크립트가 작동하려면 Windows Remote Management 서비스가 Windows 방화벽에서 허용되어야 합니다(5985).
  • 대상 시스템의 네트워크 프로필이 Public으로 설정된 경우 대상 시스템에서 Windows Remote Management 서비스를 사용하려면 다음 명령을 실행해야 합니다: Enable-PSRemoting -SkipNetworkProfilecheck -Force
  • 이 스크립트는 대상 시스템에 대한 로컬 관리자의 자격 증명이 있을 때만 작동합니다. 이러한 자격 증명이 없으면 대상 시스템과의 원격 세션을 시작하거나 DCOM 애플리케이션을 활성화할 수 없습니다.

사용 예제

Microsoft Windows 도메인에 있을 때:

root@kitploit:~
.\DCOMrade.ps1 -ComputerName [컴퓨터 이름 / IP] -User [로컬 관리자] -OS [운영 체제] -Domain [도메인 이름]

Microsoft Windows 도메인에 없을 때:

root@kitploit:~
.\DCOMrade.ps1 -ComputerName [컴퓨터 이름 / IP] -User [로컬 관리자] -OS [운영 체제]

제한 사항

  • 현재 스크립트는 인스턴스화/활성화된 DCOM 애플리케이션을 해제하려고 시도하지만 일부 활성화는 Internet Explorer와 같은 새 프로세스를 시작합니다. 이 프로세스를 중지할 수는 있지만, 대상 시스템의 사용자가 해당 애플리케이션을 사용 중인 경우 해당 사용자의 프로세스도 중지됩니다.
  • 또 다른 문제는 (아마도 제 코딩 실력 때문일 수 있지만) 대상 시스템에 리소스가 충분하지 않은 경우 스크립트가 상당한 부하를 유발할 수 있다는 점입니다. 프로덕션 환경이나 서버에서 사용할 때는 주의하십시오.
  • 스크립트가 완전히 실행되는 데 다소 시간이 걸릴 수 있습니다. 이는 DCOM 애플리케이션의 수와 취약한 서브셋 파일의 크기에 따라 다릅니다.

감사의 말

이 스크립트는 Eva Tanaskoska가 진행한 DCOM 측면 이동 워크숍에서 영감을 받았습니다. 이 워크숍이 없었다면 자동화된 방식으로 이러한 열거를 시도하려는 아이디어 자체가 떠오르지 않았을 것입니다.

Matt Nelson(@enigma0x3)의 연구 덕분에 자동화 형태를 구상할 충분한 정보를 찾을 수 있었습니다.

Philip Tsukerman의 기사는 측면 이동에 사용 가능한 대부분의 DCOM 기술을 요약하고 그 작동 방식을 설명합니다.

도구 다운로드