ساخت پیشخدمت مطیع در قلب سیستم (بخش پنجم: نوشتن دلخواه)
حالا هکرها دو چیز دارند:
۱. یک باگ گرافیکی که آدرسها را جابهجا میکند
۲. نقشه دقیق حافظه کرنل (به خاطر دور زدن KASLR). اما هنوز یک مشکل بزرگ هست؛ باگ گرافیکی اولیه خیلی محدود است و نمیشود با آن کدهای پیچیده نوشت. هکر نیاز به یک ابزار پایداری دارد که بتواند «هر دادهای را در هر کجای حافظه کرنل» بنویسد. به این ابزار در دنیای هک Arbitrary Write Primitive میگویند.
برای ساخت این ابزار، هکرها سراغ یک تابع سیستمی (System Call) در قلب کرنل به نام __arm64_sys_setitimer رفتند. این تابع در حالت عادی کارش مدیریت تایمرهای سیستم است.
هکرها با استفاده از همان باگ گرافیکی، کدهای داخلی این تابع تایمر را در حافظه رم پچ (دستکاری) کردند. آنها منطق تابع را طوری تغییر دادند که از آن به بعد، هر وقت برنامه هکر این تایمر را صدا بزند و یک آدرس و یک مقدار به آن بدهد، این تابع بدون هیچ لایه امنیتی، آن مقدار را دقیقاً در آن آدرس حساس کرنل بنویسد!
به زبان ساده، آنها یکی از کارکنان رسمی و مورد اعتماد کرنل را جیره_خوار خود کردند تا هر دستوری که هکر از بیرون میدهد را در حافظه حساس سیستم اجرا کند. حالا قدرت نوشتن کامل باز شده است. اما برای خواندن اطلاعات چطور؟ 👇
🆔 @androidSec_fa
#ArbitraryWrite #ExploitPrimitive #LinuxKernel #AndroidOffsec #Part5
Post #112
87
اندروید | امنیت و هک غول اول؛ چطور نقشه مخفی حافظه را لو بدهیم؟ (بخش چهارم: دور زدن KASLR) برای اینکه بتوانید یک سیستمعامل را هک کنید، باید بدانید دستورات و توابع اصلی آن در کجای حافظه (رم) قرار دارند. اما سیستمعاملهای مدرن مثل اندروید، سد محکمی به نام KASLR دارند. 💡 اصطلاح…
- 👍 3