
IMsiServer 인터페이스를 악용하는 DCOM 횡적 이동 POC - 원격으로 페이로드를 업로드하고 실행합니다
IMsiServer 인터페이스를 악용하는 DCOM 측면 이동 POC
https://www.deepinstinct.com/blog/forget-psexec-dcom-upload-execute-backdoor
이 솔루션에는 2개의 프로젝트가 포함되어 있습니다.
솔루션을 컴파일합니다.
Usage: DCOMUploadExec.exe [domain]\[user]:[password]@[address]
Local Usage: DCOMUploadExec.exe LOCALHOST (Run this as administrator)
DCOMUploadExec.exe는 다음을 수행합니다:
페이로드는 강력한 이름의 .NET 어셈블리여야 합니다.
PayloadConfig.h는 DCOMUploadExec가 사용할 페이로드를 구성하는 데 사용됩니다.
기본적으로 AssemblyPayload의 출력으로 설정되어 있습니다.
사용자 지정 페이로드를 사용하려면:
InitializeEmbeddedUI라는 함수를 내보내는 강력한 이름의 .NET 어셈블리를 만듭니다. 이 함수는 DCOMUploadExec가 원격 대상에서 최종적으로 실행할 함수입니다.
PayloadConfig.h에 사용자 지정 페이로드의 세부 정보를 입력합니다:
PAYLOAD_ASSEMBLY_PATH = // 생성한 페이로드의 로컬 경로
ASSEMBLY_NAME = // 어셈블리 이름
ASSEMBLY_BITNESS = // "64"는 x64 페이로드, "32"는 x86 페이로드용입니다;
ASSEMBLY_VERSION = // 다음에서 얻은 값 sigcheck.exe -n PAYLOAD_ASSEMBLY_PATH
ASSEMBLY_PUBLIC_KEY = // 다음에서
얻은 값
sn.exe -T PAYLOAD_ASSEMBLY_PATH
DCOMUploadExec를 컴파일하고 사용합니다.
공격자와 피해자 머신은 동일한 도메인 또는 포리스트에 있어야 합니다.
공격자와 피해자 머신은 DCOM 하드닝 패치와 일치해야 합니다. 즉, 두 시스템 모두에 패치가 적용되어 있거나 둘 다 없어야 합니다.
어셈블리 페이로드는 강력한 이름을 가져야 합니다.
어셈블리 페이로드는 x86 또는 x64 중 하나여야 합니다(AnyCPU는 불가능).