آموزش تصویری:

تمام سیستم عامل ها از دو قسمت اصلی تقسیم شده اند که مهم قسمت کرنل می باشد وظیفه کرنل کنترل سیستم عامل می باشد این کنترل شامل مدیریت حافظه پردازشگر و حتی کنترل صفحه نمایش می باشد و بخش بعدی مود یوزر می باشد در لینوکس اگر از بخش یوزر بخواهیم دسترسی به کرنل داشته باشیم فقط باید دسترسی روت را داشته باشیم. اکثر سیستم عامل ها دسترسی به سرویس ها را فقط در مود یوزر قرار داده اند تا یوزر معمولی و سرویس ها دسترسی به کرنل نداشته باشند.

در لینوکس می توانید تغییراتی را در کرنل انجام دهید مثلا یک ماژول جدید اضافه کنید مثلا موقع نصب وایرگارد روی لینوکس باید ماژول کرنلی وایرگارد برای لینوکس نصب کنید “باید دقت داشته باشید اگر ماژول کرنلی که نمی شناسید به لینوکس ادد کنید هکر می تواند به عنوان بکدور از آن استفاده کند” خیلی از ابزارهای نفوذ از همین ترفند برای دسترسی به سیستم عامل های مصرف کننده ها استفاده می کنند.

یکی از متداول ترین کارهایی که ما انجام می دهیم با سیستم عامل مثل کالی فعال کردن فوروارد ipv4 تا بتوانیم MITM کنیم و خودمان روتر بشویم.

و همچنین در VPN server نیاز به فعال شدن دارد

net.ipv4.ip_forward = 1

همچنین اگر تنظیمات ipv6 سرور می خواهید غیر فعال کنید تا ipleak نداشته باشید باید از پارامترهای زیر استفاده کنید.

رفع مشکل ارور 403 گوگل روی VPN Server Linux

net.ipv6.conf.all.disable_ipv6=1

net.ipv6.conf.default.disable_ipv6=1

net.ipv6.conf.lo.disable_ipv6=1

 

کرنل ماژول چیست؟

هسته گاهی اوقات نیاز به به روز رسانی دارد که ممکن است مستلزم نصب درایورهای جدید دستگاه (مانند کارت های گرافیک، دستگاه های بلوتوث یا دستگاه های USB)، درایورهای سیستم فایل و حتی پسوندهای سیستم باشد. این درایورها باید در هسته تعبیه شده باشند تا کاملاً کاربردی باشند. در برخی از سیستم‌ها، برای افزودن درایور، باید کل هسته را بازسازی، کامپایل و راه‌اندازی مجدد کنید، اما لینوکس این قابلیت را دارد که بدون گذراندن کل این فرآیند، ماژول‌هایی را به هسته اضافه کند. این ماژول ها به عنوان ماژول های هسته قابل بارگیری یا LKM شناخته می شوند. LKM ها بر حسب ضرورت به پایین ترین سطوح هسته دسترسی دارند و آنها را به یک هدف فوق العاده آسیب پذیر برای هکرها تبدیل می کند. نوع خاصی از بدافزار معروف به rootkit خود را در هسته سیستم عامل ها جاسازی می کند، اغلب از طریق این LKM ها. اگر بدافزار خود را در هسته جاسازی کند، هکر می تواند کنترل کامل سیستم عامل را در دست بگیرد. اگر یک هکر بتواند مدیر لینوکس را وادار کند که ماژول جدیدی را در هسته بارگذاری کند، هکر نه تنها می تواند کنترل سیستم مورد نظر را به دست آورد، بلکه به دلیل اینکه در سطح هسته سیستم عامل کار می کند، می تواند آنچه را که سیستم هدف از نظر فرآیندها، پورت ها، خدمات، فضای هارد دیسک و تقریباً هر چیز دیگری که فکرش را بکنید، گزارش می دهد، کنترل کند. بنابراین، اگر یک هکر بتواند با موفقیت یک مدیر لینوکس را وسوسه کند که یک ویدیو یا درایور دستگاه دیگری را که یک روت کیت در آن تعبیه شده است نصب کند، هکر می تواند کنترل کامل سیستم و هسته را در دست بگیرد. این راهی است که برخی از موذی ترین روت کیت ها از لینوکس و سایر سیستم عامل ها استفاده می کنند. درک LKM ها برای اینکه یک ادمین لینوکس موثر و یک هکر بسیار موثر و مخفی باشید، کاملاً کلیدی است. بیایید نگاهی بیندازیم که چگونه می توان هسته را برای خوب و بد مدیریت کرد.

 

چک کردن ورژن کرنل

uname -a

cat /proc/version

تنظیم هسته با sysctl

 

sysctl -a | less

sysctl -a | less | grep ipv4

sysctl -w net.ipv4.ip_forward=1

مدیریت ماژول های هسته

لینوکس حداقل دو راه برای مدیریت ماژول های هسته دارد. روش قدیمی تر استفاده از گروهی از دستورات ساخته شده در اطراف مجموعه insmod است – insmod مخفف insert module است و برای مقابله با ماژول ها در نظر گرفته شده است. راه دوم، با استفاده از دستور modprobe، کمی بعد در این فصل استفاده خواهیم کرد. در اینجا، ما از دستور lsmod از مجموعه insmod برای لیست کردن ماژول های نصب شده در هسته استفاده می کنیم:

 

lsmod

 

یافتن اطلاعات بیشتر با modinfo

 

modinfo Bluetooth

همانطور که می بینید، دستور modinfo اطلاعات قابل توجهی را در مورد این ماژول هسته که برای استفاده از بلوتوث در سیستم شما ضروری است، نشان می دهد. توجه داشته باشید که در میان بسیاری موارد دیگر، وابستگی های ماژول را فهرست می کند: rfkill و crc16. Dependencies ماژول هایی هستند که برای عملکرد صحیح ماژول بلوتوث باید نصب شوند.

 

افزودن و حذف ماژول ها با modprobe

 

modprobe -a <module name>

modprobe -r <module to be removed>

 

درج و حذف یک ماژول هسته

modprobe -a module

dmesg | grep video

modprobe -r module

https://github.com/lucasgpulcinelli/backdoor-module

https://github.com/matheuspd/Linux-Kernel-Module-Backdoor-Demonstration

https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1014/T1014.yaml

https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1547.006/T1547.006.yaml