Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ios-gamed-0day — iOS gamed 익스플로잇 (15.0.2에서 수정됨) | Kitploit
도구/GitHubGitHub/illusionofchaos/ios-gamed-0day
Privilege EscalationiOS SecurityVulnerability AnalysisExploitationInformation GatheringMobile Security
GitHubillusionofchaos/ios-gamed-0day

ios-gamed-0day

iOS gamed 익스플로잇 (15.0.2에서 수정됨)

저장소 보기
4368144년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

iOS gamed 익스플로잇 (15.0.2에서 수정됨)

업데이트: Apple은 iOS 15.0.2에서 아무런 공개적인 인정이나 크레딧 없이 조용히 이를 수정했습니다.

App Store에서 설치된 모든 앱은 사용자에게 어떤 프롬프트도 없이 다음 데이터에 접근할 수 있습니다:

  • 이와 연결된 Apple ID 이메일 및 전체 이름
  • 사용자를 대신하여 *.apple.com의 엔드포인트 중 하나 이상에 접근할 수 있게 해주는 Apple ID 인증 토큰
  • Core Duet 데이터베이스에 대한 전체 파일 시스템 읽기 접근 (Mail, SMS, iMessage, 타사 메시징 앱의 연락처 목록과 이러한 연락처와의 모든 사용자 상호작용에 대한 메타데이터(타임스탬프 및 통계 포함), 일부 첨부 파일(URL 및 텍스트 등)도 포함)
  • Speed Dial 데이터베이스 및 주소록 데이터베이스에 대한 전체 파일 시스템 읽기 접근 (연락처 사진 및 생성/수정 날짜와 같은 기타 메타데이터 포함)(방금 iOS 15에서 확인했는데 이것은 접근할 수 없으므로 조용히 수정된 것임에 틀림없습니다)

다음은 간단한 개념 증명입니다.

root@kitploit:~
let connection = NSXPCConnection(machServiceName: "com.apple.gamed", options: NSXPCConnection.Options.privileged)!
let proxy = connection.remoteObjectProxyWithErrorHandler({ _ in }) as! GKDaemonProtocol
let pid = ProcessInfo.processInfo.processIdentifier
proxy.getServicesForPID(pid, localPlayer: nil, reply: { (accountService, _, _, _, _, _, _, _, utilityService, _, _, _, _) in
	accountService.authenticatePlayerWithExistingCredentials(handler: { response, error in
		let appleID = response.credential.accountName
		let token = response.credential.authenticationToken
	}

	utilityService.requestImageData(for: URL(fileURLWithPath: "/var/mobile/Library/AddressBook/AddressBook.sqlitedb"), subdirectory: nil, fileName: nil, handler: { data in
		let addressBookData = data
	}
}

발생 원리:

  • XPC 서비스 com.apple.gamed는 com.apple.developer.game-center entitlement를 제대로 확인하지 않습니다
  • 기기에서 Game Center가 비활성화되어 있어도 getServicesForPID:localPlayer:reply:를 호출하면 여러 XPC 프록시 객체(GKAccountService, GKFriendService, GKUtilityService 등)가 반환됩니다.
  • 기기에서 game center가 활성화되어 있으면(앱이 App Store Connect에서 활성화되어 있지 않고 앱에 com.apple.developer.game-center entitlement가 없더라도) GKAccountService에서 authenticatePlayerWithExistingCredentialsWithHandler:를 호출하면 사용자의 Apple ID, DSID 및 Game Center 인증 토큰(사용자를 대신하여 https://gc.apple.com에 요청을 보낼 수 있게 해줌)을 포함하는 객체가 반환됩니다. GKProfileService에서 getProfilesForPlayerIDs:handler:를 호출하면 사용자 Apple ID의 이름과 성을 포함하는 객체가 반환됩니다. GKFriendService에서 를 호출하면 Game Center에서 사용자 친구에 대한 정보가 포함된 객체가 반환됩니다.

Apple 보안 현상금 프로그램 페이지에서 이 취약점은 $100,000로 평가됩니다 (일반적으로 TCC 프롬프트 또는 플랫폼 샌드박스로 보호되는 민감한 데이터에 대한 광범위한 앱 접근. "민감한 데이터" 접근에는 연락처에서 광범위한 접근(즉, 전체 데이터베이스)을 획득하는 것이 포함됩니다).

도구 다운로드
getFriendsForPlayer:handler:
  • game center가 비활성화되어 있고 앱이 App Store Connect에서 활성화되어 있지 않으며 앱에 com.apple.developer.game-center entitlement가 없더라도 GKUtilityService에서 requestImageDataForURL:subdirectory:fileName:handler:를 호출하면 해당 메서드에 파일 URL을 전달하여 앱 샌드박스 외부의 임의 파일을 읽을 수 있습니다. 이러한 방식으로 접근할 수 있는 파일에는 다음(이에 국한되지 않음)이 포함됩니다: /var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Library/Caches/com.apple.MobileGestalt.plist - mobile gestalt 캐시 포함 /var/mobile/Library/CoreDuet/People/interactionC.db - Mail, SMS, iMessage, 타사 메시징 앱의 연락처 목록과 이러한 연락처와의 사용자 상호작용에 대한 메타데이터(타임스탬프 및 통계 포함) 포함 /var/mobile/Library/Preferences/com.apple.mobilephone.speeddial.plist - 즐겨찾는 연락처 및 전화번호 포함 /var/mobile/Library/AddressBook/AddressBook.sqlitedb - 전체 주소록 데이터베이스 포함 /var/mobile/Library/AddressBook/AddressBookImages.sqlitedb - 주소록 연락처의 사진 포함
  • GKUtilityService에서 cacheImageData:inSubdirectory:withFileName:handler:를 호출하면 앱 샌드박스 외부의 위치에 임의 데이터를 쓸 수 있을 수 있습니다.