سبد خرید شما خالی است.
ماژولهای قابل لود کرنل لینوکس
ماژولهای قابل لود کرنل لینوکس (Loadable Kernel Modules یا LKM ها) برای ما توانایی افزودن ویژگیهایی به کرنل (هسته) را بدون نیاز به کامپایل مجدد کرنل فراهم میکنند. چیزهایی مانند درایور دیوایسها میتوانند بدون خاموش کردن سیستم، کامپایل مجدد و یا ریبوت سیستم به کرنل اضافه شوند.
ماژولهای قابل لود کرنل برای هکرها بسیار مهم هستند، زیرا اگر ما بتوانیم دسترسی ادمین لینوکس را برای لود کردن یک ماژول جدید به کرنل بگیریم، نهتنها سیستم آنها را از آن خود کردیم، بلکه چون ما در سطح هسته سیستمعامل هستیم، میتوانیم گزارشات سیستم ازنظر پروسه، پورت، سرویس، فضای هارد و غیره را کنترل کنیم.
پس اگر ما بتوانیم با یک درایور جدید که rootkit مان در آن جاسازیشده، دسترسی کاربر/مدیر لینوکس را بگیریم، میتوانیم سیستم و هسته را کنترل کنیم. این همان روش برخی از روت کیتهای سیستمعامل لینوکس است. بنابراین امیدوارم بهطور واضح LKM ها را درک کرده باشید، زیرا کلیدی مؤثر برای یک مدیر لینوکس و یک هکر باهوش است.
قبل از مطالعه این قسمت، مطمئن شوید که قسمتهای قبلی سری آموزش لینوکس برای هکرهای اخلاقی را خوانده اید.
مرحله ۱: ماژول کرنل چیست؟
کرنل یا هسته، جزء اصلی سیستمعامل لینوکس است. کنترل همهچیز یک سیستمعامل، مدیریت ارتباط بین اجزای سختافزاری و اجرای سرویس موردنیاز از وظایف کرنل هست. کرنل بین برنامههای کاربر و سختافزار مانند CPU، حافظه، هارددیسک و غیره ارتباط برقرار میکند.
کرنل تمام آنچه در سیستمعامل اتفاق میافتد را مدیریت میکند، پس گاهی نیاز به بهروزرسانی دارد. این بهروزرسانیها ممکن است شامل درایور دستگاههای جدید (مانند کارت گرافیک یا دستگاههای USB)، درایور فایلهای سیستم و حتی توسعه سیستم باشد. اینجایی است که LKM ها وارد میشوند. اکنون ما میتوانیم بهراحتی ماژولهای کرنل را load و unload کنیم، بدون نیاز به کامپایل مجدد کرنل.
مرحله ۲: بررسی کرنل
ابتدا بررسی میکنیم که کرنل سیستم ما چیست. حداقل دو راه برای انجام این کار وجود دارد.
uname -a
توجه کنید که کرنل به ما میگوید kernel build یا انتشار کرنل 4.18.0-kali2-amd64، و معماری آن برای (x86_64) ساختهشده است. ما همچنین میتوانیم با خواندن فایل /proc/version اطلاعات بیشتری دریافت کنیم.
cat /proc/version
مرحله ۳: تنظیم کرنل با Sysctl
گاهی اوقات مدیر لینوکس میخواهد کرنل را تنظیم کند. این ممکن است شامل تغییر حافظه اختصاص دادهشده، فعال کردن قابلیت شبکه و حتی امنیت بیشتر کرنل از هکرها باشد.
برای تنظیم کرنلهای مدرن لینوکس، از دستور sysctl استفاده میکنیم. همه تغییراتی که با sysctl انجام میدهید تنها تا زمان راهاندازی مجدد سیستم باقی میماند. برای ایجاد هرگونه تغییر دائمی، باید فایل کانفیگ sysctl در مسیر /etc/sysctl.conf ویرایش شود.
در استفاده از systctl مراقب باشید زیرا بدون داشتن دانش و تجربه مناسب میتوانید سیستم خود را غیرقابل استفاده کنید. بیایید نگاهی به محتویات sysctl بیندازیم.
sysctl -a | cat
برای مشاهده فایل کانفیگ sysctl تایپ میکنیم:
cat /etc/sysctl.conf
یکی از راههایی که ما از sysctl برای هک استفاده میکنیم این است که ipforwarding (net.ipv4.conf.default.forwarding) را برای حملات مردی در میان (man-in-the-middle) فعال کنیم. برای امنیت بیشتر، میتوانیم درخواستهای ICMP echo (net.ipv4.icmp_echo_ignore_all) را غیرفعال کنیم تا کار هکرها در پیدا کردن سیستم ما سختتر شود اما خب غیرممکن نیست.
مرحله ۴: ماژولهای کرنل
برای مدیریت کرنل خود، حداقل دو راه برای انجام این کار در لینوکس وجود دارد. راه قدیمیتر این است که از یک گروه از دستورات ساختهشده با دستور insmod استفاده کنیم. در اینجا ما از یکی از آن دستورات، lsmod استفاده میکنیم تا ماژولهای نصبشده در کرنل را لیست کنیم.
lsmod
ما میتوانیم ماژول را با insmod لود یا وارد کنیم و ماژول را با rmmod حذف کنیم.
مرحله ۵: Modprobe
توزیعهای جدیدتر لینوکس، برای مدیریت LKM دارای دستور modprobe هستند. برای دیدن اینکه کدام ماژول در کرنل ما نصبشده است (سوئیچ -l حذف شدهاست)، میتوانیم تایپ کنیم:
ls -R /lib/modules/$(uname -r)/kernel
or
cd /lib/modules/$(uname -r); find kernel
برای حذف یک ماژول، بهسادگی از modprobe به همراه سوئیچ -r استفاده میکنیم.
modprobe -r
یکی از مزیتهای اصلی Modprobe این است که وابستگیها، گزینهها، و روشهای نصب و حذف ماژولهای کرنل ما را درک میکند.
برای دیدن فایلهای کانفیگ ماژولهای نصبشده، محتوای دایرکتوری /etc/modprobe.d را لیست میکنیم.
ls -l /etc/modprobe.d/
به یاد داشته باشید، ماژولهای LKM برای راحتی کاربر/مدیر لینوکس هستند، اما این یک ضعف بزرگ امنیتی لینوکس است و یک هکر حرفهای باید با آن آشنا باشد. همانطور که قبلاً گفتم، LKM میتواند وسیلهای مناسب برای دریافت روت کیت شما در کرنل باشد!
اگر هنوز قسمتهای قبلی را ندیدید، حتماً آنها را نگاه کنید. منتظر آموزش بعدی باشید و اگر سؤالی داشتید، حتماً در نظرات زیر بنویسید.
امیدوارم این آموزش به شما در بررسی ماژولهای قابل لود کرنل لینوکس کمک کند. مطمئن شوید که قسمتهای قبلی سری آموزش لینوکس برای هکرهای اخلاقی را نگاه کردید و اگر سؤالی دارید، در نظرات زیر بپرسید.
دانلود PDF مقالهAlso in آموزش رایگان لینوکس
ترتیبی که برای خواندن مقالات" آموزش رایگان لینوکس "به شما پیشنهاد میکنیم:
- نصب کالی لینوکس در VMware
- نصب کالی لینوکس در کنار ویندوز 10
- فعال کردن حساب کاربر root در کالی لینوکس 2020
- ساختار دایرکتوری ها در لینوکس
- ساخت فایل و دایرکتوری در لینوکس
- مدیریت دایرکتوری و فایل ها در لینوکس
- پیدا کردن فایل ها در لینوکس
- نصب برنامه در لینوکس
- دستورات شبکه در لینوکس
- سطح دسترسی در لینوکس
- مدیریت پروسه ها در لینوکس
- مدیریت متغیرهای محیطی در لینوکس
- مشاهده فایل در لینوکس
- راه اندازی وب سرور Apache در لینوکس
- ماژولهای قابل لود کرنل لینوکس
دیدگاهها (0)