
CVE-2025-62676에 대한 로컬 권한 상승 익스플로잇.
Windows에서 실행되는 FortiClient VPN을 대상으로 하는 CVE-2025-62676 / EUVD-2025-206993용 로컬 권한 상승 PoC 익스플로잇입니다. 임의의 XML 파일 쓰기를 통해 일반 사용자 컨텍스트에서 SYSTEM 컨텍스트로 페이로드를 실행합니다. PoC는 Windows 11 Pro에서 FortiClient 버전 7.4.0을 대상으로 테스트되었습니다. 공급업체에 따르면 다음 버전이 취약합니다:
해당 취약점은 Trend Micro Zero Day Initiative를 통해 보고되었습니다: https://www.zerodayinitiative.com/advisories/ZDI-26-115/
Fortinet의 공식 권고: https://fortiguard.fortinet.com/psirt/FG-IR-25-661
nuget restore를 실행하세요.git clone --recursive로 저장소를 클론합니다.cmd /c whoami > C:\whoami.txt를 실행합니다. 이를 변경하려면 ExecDLL 프로젝트에서 dllmail.cpp를 수정하세요.CloudExperienceHostBroker.exe가 실행되었기 때문일 가능성이 높습니다. 시스템을 재부팅하고 CreateObjectTask 작업을 수동으로 시작하세요 (Start-ScheduledTask -TaskPath \Microsoft\Windows\CloudExperienceHost -TaskName CreateObjectTask). 자세한 내용은 기술 세부 사항을 참조하세요.

FortiClient는 일반 사용자가 통신할 수 있는 명명된 파이프 FC_{F18F86FD-7503-4564-80CF-B6B199519837}를 생성합니다. 통신은 FortiClient 프로그램 폴더(C:\Program Files\Fortinet\FortiClient)에서 실행되는 프로세스로 제한되지만, 프로그램 폴더에서 실행 중인 FortiTray.exe 프로세스에 코드를 주입하여 이 제한을 우회할 수 있습니다. 이 명명된 파이프를 통해 사용자가 제어하는 인수로 SYSTEM 권한으로 실행되는 FCConfig.exe 인스턴스를 시작할 수 있습니다.
인식할 수 없는 작업(-o A)을 지정하면 FCConfig.exe가 대상 파일(-f FILE)을 읽은 다음 동일한 위치에 다시 씁니다(이런 동작이 발생하는 이유는 확실하지 않습니다). 대상을 특정 파일을 가리키는 정션/심볼릭 링크로 설정하고 해당 파일에 oplock을 설정하면, 프로세스가 심볼릭 링크를 따라가 파일을 읽고 oplock을 트리거하도록 만들 수 있습니다. 그런 다음 심볼릭 링크를 다른 위치를 가리키도록 수정할 수 있습니다. oplock이 해제되면 FCConfig.exe는 심볼릭 링크를 따라 새 대상으로 이동하여 파일을 그곳에 쓰므로, 임의 파일 쓰기가 발생합니다. 파일은 유효한 XML이어야 합니다(XML 포맷터를 거치는 것으로 보입니다).
임의 XML 파일 쓰기를 권한 있는 코드 실행으로 전환하기 위해, SYSTEM으로 실행되는 프로세스의 DLL 로드를 리디렉션하는 애플리케이션 매니페스트가 작성됩니다. 이를 위해 C:\Windows\System32\CloudExperienceHostBroker.exe가 선택되었습니다:
\Microsoft\Windows\CloudExperienceHost\CreateObjectTask를 시작하여 실행할 수 있습니다.SYSTEM 권한으로 실행됩니다.TrustedInstaller에 의해 보호될 것입니다).PoC는 다음 단계를 통해 취약점을 악용합니다:
oleaut32.dll용 프록시 DLL("ExecDLL")을 디스크에 드롭합니다.oleaut32.dll을 "ExecDLL"로 리디렉션하는 애플리케이션 매니페스트를 디스크에 작성합니다.FortiTray.exe에 FC_{F18F86FD-7503-4564-80CF-B6B199519837} 명명된 파이프로 -f APPLICATION_MANIFEST_PATH -o A 인수를 보내는 DLL을 주입합니다.FCConfig.exe가 oplock을 트리거할 때까지 기다립니다.C:\Windows\System32\CloudExperienceHostBroker.exe.manifest를 가리키도록 수정합니다.FCConfig.exe는 애플리케이션 매니페스트를 읽고 새 심볼릭 링크 대상에 씁니다.\Microsoft\Windows\CloudExperienceHost\CreateObjectTask 작업을 시작합니다. 이제 CloudExperienceHostBroker.exe가 SYSTEM 권한으로 실행되고, CloudExperienceHostBroker.exe.manifest는 시스템에 대신 "ExecDLL"을 로드하도록 지시하며, "ExecDLL"은 컨텍스트에서 로드되어 실행됩니다.oleaut32.dllSYSTEM