
macOS 10.12.1에서 CVE-2016-1825 또는 CVE-2016-7617을 통한 로컬 권한 상승
physmem은 macOS 10.12.1까지의 물리 메모리 검사 도구이자 로컬 권한 상승 취약점을 악용하는 도구입니다. 배포 대상에 따라 CVE-2016-1825 또는 CVE-2016-7617을 악용합니다. 이 두 취약점은 거의 동일하며, 동일한 방식으로 악용할 수 있습니다. 각각 OS X El Capitan 10.11.5 및 macOS Sierra 10.12.2에서 패치되었습니다.
논리적 버그이기 때문에 악용 신뢰성이 매우 높습니다. 이 취약점을 (올바르게) 악용하는 프로그램을 수만 번 실행하는 동안 패닉이 발생한 적은 아직 없습니다.
CVE-2016-1825는 IOHIDevice의 문제로, 임의의 IOKit 레지스트리 속성을 설정할 수 있게 합니다. 특히, 권한이 필요한 속성인 IOUserClientClass를 권한 없는 프로세스가 제어할 수 있습니다. Yosemite 이전 플랫폼은 테스트하지 않았지만, 이 취약점은 Mac OS X Leopard까지 소스 코드에 존재합니다.
CVE-2016-7617은 AppleBroadcomBluetoothHostController에서 거의 동일한 문제입니다. 이 취약점은 OS X El Capitan에서 도입된 것으로 보입니다. Google의 Project Zero 소속 Ian Beer(이슈 974)와 Radu Motspan에 의해 보고되었습니다.
명령줄에 배포 대상을 지정하여 physmem을 빌드합니다:
$ make MACOSX_DEPLOYMENT_TARGET=10.10.5
read 명령을 사용하여 물리 메모리의 한 워드를 읽을 수 있습니다:
$ ./physmem read 0x1000
a69a04f2f59625b3
write 명령을 사용하여 물리 메모리에 쓸 수 있습니다:
$ ./physmem write 0x1000 0x1122334455667788
$ ./physmem read 0x1000
1122334455667788
root 명령을 사용하여 루트 셸을 실행할 수 있습니다:
$ ./physmem root
sh-3.2# whoami
root
physmem 코드는 퍼블릭 도메인으로 공개됩니다. 정중히 요청하건대, 이 코드의 일부를 참조하거나 사용하는 경우 출처를 표시해 주시기 바랍니다.