
launchd + task_t 포인터에서 커널 자격 증명을 탈취하려는 시도 (기반: CVE-2017-7047)
launchd + task_t 포인터에서 커널 자격 증명을 탈취하려는 시도 (기반: CVE-2017-7047)
Triple Fetch는 iOS 10.3.3 이전의 iOS 기기를 대상으로 하는 익스플로잇입니다. 이는 libxpc의 논리 오류를 악용하여 공격자가 공유 메모리로 백업되는 xpc_data 객체를 사용해 악성 메시지를 보낼 수 있게 합니다.
원본 익스플로잇은 NSXPC를 사용하는 iOS의 저수준 데몬인 CoreAuthenticationd를 대상으로 합니다. 이 익스플로잇은 AMFID를 패치하여 임의 코드 실행을 허용하고, launchd에 대한 send_right도 획득하여 task_for_pid 1을 수행할 수 있게 합니다. 이를 통해 시스템에서 가장 낮은 수준의 데몬인 launchd에 대한 전체 권한을 얻습니다.
이 익스플로잇에는 launchd 태스크를 사용하여 launchd의 메모리를 메모리 영역(읽기/쓰기/실행)으로 덤프하는 hello_world라는 예제가 이미 포함되어 있습니다. 다음 작업을 수행하는 것은 어렵지 않을 것입니다:
이 익스플로잇은 커널을 패치하지 않고 사용자 공간에서 직접 실행되어 root 권한을 얻기 때문에 탈옥 목적으로 완벽하게 사용될 수 있습니다. 그러나 이 버그는 정확하게 발생하는 경우가 드문 경쟁 조건이므로, 사용자는 다시 탈옥되기 전에 여러 번 재부팅하고 재시도해야 할 것입니다.
저장소에 코드를 기여하려면 언제든지 풀 리퀘스트를 생성할 수 있습니다. 향후 커널 패치에 필요한 많은 오프셋이 포함된 파일을 추가할 예정입니다. launchd의 커널 자격 증명을 탈취하는 데 도움이 되는 코드를 작업할 예정입니다.
Apple의 VoIP API를 사용하여 재부팅 후 익스플로잇이 백그라운드에서 자동으로 실행되도록 시도할 것입니다. 설정 앱에서 bootNonce를 설정하여 향후 다운그레이드 목적으로 사용할 수 있도록 멋진 설정 번들이 앱에 추가될 것입니다. OTA 업데이트를 비활성화하고 활성화하는 토글이 추가될 것입니다. cron 작업을 사용하여 SHSH2-blobs를 자동으로 저장하는 코드가 추가될 것입니다. 모든 사람에게는 프라이버시가 필요하므로, 설정에서 토글할 수 있는 tor를 탈옥에 통합하기 위해 최선을 다할 것입니다. Safari에서 성가신 광고를 제거하기 위해 재미로 콘텐츠 차단기가 추가되었습니다.