[하루한줄] CVE-2021-23874: McAfee COM-objects 권한 상승 취약점
URL
Discovering and exploiting McAfee COM-objects (CVE-2021-23874)
Target
- McAfee Total Protection 16.0.30 이전 버전
Explain
McAfee의 플래그십 안티 바이러스 제품 McAfee Total Protection의 COM 객체에서 local privilege escalation이 가능한 취약점이 발견되었습니다.
McAWFwk 서비스에서 CoInitializeSecurity
함수가 호출될 때 pSecDesc
파라미터는 널 포인터이며 dwCapabilities
의 값은 0입니다. dwCapabilities
파라미터에 EOAC_AAPID
나 EOAC_ACCESS_CONTROL
플래그가 설정되어 있지 않으면, CoInitializeSecurity
는 pSecDesc
를 액세스 검사에 사용하는 포인터로 인식합니다. 따라서 pSecDesc
가 널 포인터이므로 ACL 검사를 수행하지 않습니다.
이를 통해 시작 시 IMcClassFactory
를 통해 CoManageOem Class
객체를 구현하고 IMcClassFactory::InternalCreateObject
를 통해 객체를 반환 받아 ImanageOem::RunProgram
을 통해 NT Authority\System
권한으로 임의 프로세스 실행이 가능합니다. 하지만 COM 객체를 구현할 때 ProxyStub DLL에 self-defense 기능이 존재합니다. 이는 PEB 구조를 수정하여 ValidateModule
함수의 유효성 검사 시 프록시가 호출되는 모듈의 경로를 스푸핑하여 우회가 가능합니다. 첫 번째 검사가 수행되기 전에 McAfee의 서명이 된 아무 바이너리의 경로를 MasqueradeImagePath
함수를 호출하여 우회가 가능합니다.
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.