غول اول؛ چطور نقشه مخفی حافظه را لو بدهیم؟ (بخش چهارم: دور زدن KASLR)
برای اینکه بتوانید یک سیستمعامل را هک کنید، باید بدانید دستورات و توابع اصلی آن در کجای حافظه (رم) قرار دارند. اما سیستمعاملهای مدرن مثل اندروید، سد محکمی به نام KASLR دارند.
💡 اصطلاح کاربردی: KASLR چیست؟
مخفف Kernel Address Space Layout Randomization است. فرض کنید اتاقهای یک هتل هر ثانیه جابهجا شوند! KASLR کاری میکند که هر بار گوشی روشن میشود، تمام توابع و بخشهای حساس هسته سیستمعامل (کرنل) در آدرسهای کاملاً تصادفی و متفاوتی از حافظه قرار بگیرند تا هکر نتواند جایش را پیدا کند.
هکرها چطور این سد را شکستند؟
آنها از همان باگ گرافیکی و نوشتن ۳.۵ بایتی استفاده کردند تا کدهای مربوط به سیستمفایلهای مجازی اندروید (مسیر /proc) را در حافظه دستکاری یا اصطلاحاً پچ (Patch) کنند. در اندروید، فایلهای این مسیر اطلاعاتی درباره وضعیت سیستم به ما میدهند.
مشخصاً آنها سراغ تابعی به نام proc_sched_show_task رفتند که کارش چاپ کردن آمارهای زمانبندی پردازنده است. هکرها این تابع را طوری بازنویسی کردند که فرمت خروجیاش عوض شود. حالا وقتی برنامه معمولی هکر این فایل را باز میکرد، تابع به جای آمارهای معمولی، آدرسهای واقعی و پنهانشده کرنل را در خروجی چاپ میکرد (Information Leak)!
با این ترفند، نقشه هتل لو رفت و هکرها دقیقاً فهمیدند هر تابع کرنل کجای حافظه قرار دارد! گام بعدی؟ ساخت کلید اصلی. 👇
🆔 @androidSec_fa
#KASLR_Bypass #InfoLeak #KernelHacking #AndroidSecurity #Part4
Post #111
84
اندروید | امنیت و هک از یک کرش ساده تا دور زدن KASLR (زنجیره باگ - گام اول) وقتی شما میتونید با پردازنده گرافیکی روی حافظه اصلی بنویسید، اولش همه چیز خراب میشه و سیستم اصطلاحاً ریستارت میشه یا کرش میکنه (Kernel Panic). چون شما دارید کورکورانه دادهها رو بازنویسی میکنید (فقط…
- 👍 3