چشمانداز کامل؛ کور کردن سیستم امنیتی (بخش ششم: خواندن دلخواه)
داشتن قدرت نوشتن در حافظه عالی است، اما اگر نتوانید حافظه را بخوانید، مثل نابینایی هستید که اسلحه دارد اما نمیداند به کجا شلیک کند! هکرها برای کنترل کامل به ابزاری برای «خواندن هر کجای حافظه کرنل» (Arbitrary Read Primitive) نیاز داشتند.
یک لایه امنیتی در اندروید به نام kptr_restrict وجود دارد که تمام آدرسها و پوینترهای حساس را به صورت هششده (رمزنگاری شده) نگه میدارد تا حتی اگر هکر دسترسی پیدا کرد، نتواند آنها را بخواند. اما هکرها یک کلید مخفی پیدا کردند؛ کلیدی به نام ptr_key در بخش .data کرنل وجود دارد که وظیفهاش تولید همین هشهاست.
هکرها با استفاده از ابزار نوشتنی که در مرحله قبل ساختند، مقدار این کلید (ptr_key) را در حافظه پیدا کردند و آن را به صفر تغییر دادند! با صفر شدن این کلید، تمام سیستم هشینگ عملاً از کار افتاد و آدرسها به صورت متن ساده (Plaintext) درآمدند.
سپس سراغ بخش شبکه کرنل و مسیر /proc/self/net/udp رفتند و ساختار یک سوکت شبکه (به نام sk_socket) را بازنویسی کردند. از این به بعد، هکر هر آدرس فیزیکی از رم گوشی را که میخواست بخواند، به این بخش میداد و سیستم مثل یک کتاب باز، اطلاعات آن آدرس را به هکر تحویل میداد.
حالا هکر هم بینایی کامل دارد (خواندن) و هم توانایی کامل (نوشتن). وقت ضربه آخر است. 👇
🆔 @androidSec_fa
#KernelRead #InformationDisclosure #AndroidInternals #Hacking #Part6
Post #113
97
اندروید | امنیت و هک ساخت پیشخدمت مطیع در قلب سیستم (بخش پنجم: نوشتن دلخواه) حالا هکرها دو چیز دارند: ۱. یک باگ گرافیکی که آدرسها را جابهجا میکند ۲. نقشه دقیق حافظه کرنل (به خاطر دور زدن KASLR). اما هنوز یک مشکل بزرگ هست؛ باگ گرافیکی اولیه خیلی محدود است و نمیشود با آن…
- 👍 3