برای مطالعه قسمت قبل آموزش رایگان دوره CEH اینجا کلیک کنید.
روتکیتها
پس از آنکه یک مهاجم کنترل یک سیستم لینوکسی را به دست گرفت و مجوزهای سطح ریشه را به دست آورد، در مرحله بعد نیازمند حفظ دسترسی به سیستم و پنهانسازی ردپای فعالیتهایش است. یکی از قدرتمندترین راهکارهایی که اجازه میدهد هکرها همچنان دسترسی به سیستم را حفظ کنند، روتکیتها (rootkit) هستند. روتکیت شامل مجموعهای از ابزارها و کدهای مخربی است که جایگزین بیشتر مولفههای مهم سیستمعامل میشود. پس از نصب، میتوان از روتکیت برای پنهانسازی ردپاها استفاده کرد. البته روتکیتها به مهاجمان اجازه میدهند دربهای پشتی روی سیستم قربانیان باز کنند. روتکیتها برای انجام فعالیتهی خود به مجوزهای سطح ریشه نیاز دارند تا هکر بتواند کنترل کاملی روی سیستم قربانی داشته باشد. زمانی که هکری موفق شود یک روتکیت را بهطور کامل روی سامانه قربانی نصب کند به راحتی میتواند ردپای خود را از دید مدیر سامانه پنهان کند. هکرها میتوانند از روتکیتها برای پاک کردن فایلهای گزارش به سیستم استفاده کرده و تمامی نشانههای ورود به یک سیستم که درون فایلهای گزارش ثبت میشوند را پاک کنند. بهطور سنتی، روتکیتها سعی میکنند نمونههای آلوده را جایگزین فرامینی همچون ls ، ifconfig، inetd ، killall ، login ، netstat ، passwd ، pidof و ps کنند تا ضمن پنهانسازی برخی از فرآیندها یا اطلاعات سعی میکنند همه چیز را عادی نشان دهند. البته روتکیتهای از این نوع قابل شناسایی هستند، زیرا اندازه فایل باینری آلوده شده قابل تشخیص است. ابزارهایی مانند MD5Sum و Tripwire میتوانند در شناسایی این هکها به کارشناسان امنیتی کمک زیادی کنند. روتکیتها در گروههای مختلفی به شرح زیر تقسیم میشوند:
■ Hypervisor: ترتیب بوت یک ماشین مجازی را ویرایش میکند.
■ Hardware/firmware: در سختافزار یا سیستمعامل مخفی میشود
■ Bootloader: جایگزین bootloader اصلی میشود.
■ Library level: جایگزین فراخوانیهای اصلی سیستم میشود.
■ Application level: باینریهای برنامهها را با نمونههای جعلی جایگزین میکند
■ Loadable kernel level: بدافزار را به هسته امنیتی اضافه میکند.
برخی از روتکیتهای ریشه قادر هستند LKM سرنام loadable kernel module را هدف قرار میدهند. یک روتکیت هسته به عنوان درایور یا افزونه کرنل دانلود میشود. از آنجایی که روتکیتهای هسته، با هدف خراب کردن هسته طراحی میشوند، قادر به انجام هر کاری هستند که از جمله این فعالیتهای مخرب میتوان به پیادهسازی راهکارهایی برای عدم شناسایی روتکیت توسط ضدویروسها اشاره کرد. بهترین راه مقابله با این روتکیتها کامپایل مجدد کرنل بدون پشتیبانی از LKM است. برخی از روتکیتها میتوانند با اعمال تغییراتی واسطهای برنامهنویسی خود را از دیده نرمافزار ضدبدافزاری پنهان کنند. در روش فوق روتکیت سعی میکند به روشهای خاصی به سایر پردازههای در حال اجرا روی سیستم قربانی بچسبد تا به راحتی شناسایی نشود. اگر سیستم به عنوان یک درایو ایستا یا توسط نرمافزارهای ثالث مورد تجزیه و تحلیل قرار گیرد، احتمال شناسایی روتکیت زیاد است. اگرچه استفاده از روتکیتها گسترده است، اما بسیاری از سرپرستان شبکه اطلاع زیادی در مورد آنها ندارند. فهرست زیر چند مورد از روتکیتهای معروف را نشان میدهد:
■ Avatar: این روتکیت جایگزین فایلهای باینری سیستمی نمیشود، زیرا از تکنیک آلودهسازی درایور استفاده میکند. آواتار از یک dropper استفاده میکند تا مانع شناسایی توسط سامانههای تشخیص نفوذ شود. روتکیت فوق سیستمهای x86 را هدف قرار میدهد.
■ Necurs: این بدافزار برای اولین بار در سال 2011 مشاهده شد، اما بعداً در باتنت Gameover Zeus وارد شد. بدافزار فوق یک روتکیت سطح کرنل را نصب میکند.
■ Azazel: روتکیت سطح کاربر است که اقدام به نصب روتکیت دیگری بهنام Jynx میکند. اصطلاح userland اشاره به کدهایی دارد که خارج از هسته سیستمعامل اجرا میشوند. آزازل به شدت در برابر ابزارهای ضد کشف و ضد اشکالزدایی ایمن است.
■ Zeroaccess: یک روتکیت سطح کرنل است که از تکنیکهای پیشرفتهای برای پنهانسازی خود استفاده میکند و برای آلودهسازی کامپیوترهای ویندوزی طراحی شده است. روتکیت فوق میتواند به عنوان یک dropper برای بارگذاری سایر بدافزارها استفاده شود. روتکیت فوق از بهترین مکانیزمهای دفاعی در برابر نرمافزارهای ضدبدافزار استفاده میکند.
نکته: در آزمون CEH باید بتوانید تعریف دقیقی از روتکیت کرنل ارائه کرده و تفاوت میان روتکیت کرنل و روتکیت نرمافزارهای کاربردی را تشریح کنید.
اگر به عنوان یک کارشناس امنیتی یا هکر اخلاقمدار متوجه شدید روی یک سیستم روتکیتی نصب شده باید چه اقدامی انجام دهید؟ در اولین مرحله باید میزبان آلوده را از شبکه جدا کنید. مهاجمی که متوجه شود بدافزار او شناسایی شده، سعی میکند کل سیستم را تخریب کرده، عملکرد شبکه را بهطور کامل مختل کرده و درپاهای خود را پاک کند. پس از جداسازی میزبان از شبکه، در مرحله بعد باید یکسری فرآیندهای ممیزی و تحقیقات روی سیستم انجام داده و شواهد موجود را جمعآوری کنید. یکسری ابزارهای مفید وجود دارند که در شناسایی روتکیتها به شما کمک میکنند. برخی از کارها توسط یک ابزار قابل انجام است، در حالی که در برخی موارد باید از ترکیب چند ابزار برای جمعآوری شواهد و نشانهها استفاده کنید. از ابزارهای مهمی که در فرآیند ممیزی یک سیستم راهگشا هستند به موارد زیر میتوان اشاره کرد:
■ Chkrootkit: ابزاری عالی که شما را قادر میسازد نشانههای وجود روتکیتها را پیدا کنید.
■ RootKitRevealer: یک ابزار منفرد که برای شناسایی و حذف روتکیتهای پیچیده استفاده میشود.
■ McAfee Rootkit Detective: برای جستوجو و پیدا کردن روتکیتهای شناخته شده طراحی شده است. ابزار فوق قادر است فایلهای باینری یک سیستم را بررسی کرده و تغییرات را شناسایی کند.
■Trend Micro RootkitBuster: ابزاری دیگر که برای پویش فایلهای باینری سیستم در دسترس بوده و میتواند به جستوجوی روتکیتهای ناشناخته بپردازد.
پنهانسازی فایل
تکنیکهای مختلفی توسط مهاجمین برای مخفی کردن بدافزارهای درون یک سیستم استفاده میشود. ممکن است برخی از مهاجمان تنها از دستور پهنانسازی فایلها استفاده میکنند، در حالی که برخی دیگر فایلهای مخرب را در مکانهایی که کاربر زیاد به آنها مراجعه نمیکند پنهان میکنند. روش پیشرفتهتر بهکارگیری NTFS ADSs است. NTFS ADSs با هدف حفظ سازگاری ساختار ویندوز با ساختارهای سلسله مراتبی همچون (HFS) سرنام Hierarchical File System ایجاد شد. این ساختارها برای حفظ اطلاعات مرتبط با یک فایل همچون آیکونها و مواردی از این دست به کار گرفته میشود. با این حال، یک مهاجم میتواند از این رویکرد برای مخفی کردن فایلها دروین یک سیستم استفاده کند. ADSها ابزاری برای مخفی کردن بدافزارها یا ابزارهای هک روی یک سیستم هستند تا هکر بتواند در فرصت مناسب و به دو از چشم سرپرست شبکه یا مکانیزمهای امنیتی ابزارهای مخرب را اجرا کند. از آنجایی که رویکرد فوق تقریبا ناپیدا است، هکرها میتوانند یک مکان کاملا مخفی روی سیستم قربانی ایجاد کرده و ابزارهای مخرب خود را روی سیستم او پنهان کنند تا در زمان مناسب از آنها استفاده شود. یک ADS در اصل فایلهای قابل اجرا است. برای حذف یک چنین جریان آلودهای از یک سیستم، ابتدا باید اشارهگر به فایل حذف شود (یا اشارهگر فایل را به سیستم فایلی FAT ارجاع دهید.). رویکرد فوق باعث حذف استریم مخرب میشود، زیرا FAT نمیتواند از ADS پشتیبانی کند. برای ساخت یک ADS فرامین زیر را دنبال کنید:
Type certguide.zip > readme.txt:certguide.zip
این فرمان فایل certguide.zip را پشت readme.txt پنهان میکند. این تمام آن کاری است که برای استریم به فایل نیاز دارید. اکنون فایل پنهان اصلی میتواند به شرح زیر پاک شود.
Erase certguide.zip
در ادامه تنها کاری که هکر برای بازیابی فایل پنهان باید انجام دهد، اجرای فرمان زیر است:
Start c:\readme.txt:certguide.zip
فرمانفوق ADS را اجرا کرده و فایل پنهان را باز میکند. ابزارهایی که میتوانند این مدل فایلهای استریم شده را شناسایی کنند به شرح زیر هستند:
Streams: یک ابزار مایکروسافتی است.
Sfind: یک ابزار کشف شواهد و نشانهها است که قادر است فایلهای استریم شده را شناسایی کند.
LNS: ابزار دیگری است که برای شناسایی فایلهای استریم شده استفاده شده و توسط ntsecurity.nu ساخته شده است.
لینوکس از ADS پشتیبانی نمیکند، اگرچه ابزاری جالب بهنام Bmap در دسترس است که میتوانید آنرا از آدرس زیر دانلود کنید. http://www.securityfocus.com/tools/1359
این ابزار لینوکسی میتواند دادهها را درون فضای موجود و در دسترس قرار دهد. در نتیجه امکان پنهانسازی هر نوع محتوایی وجود دارد.
قدم نهایی برای مهاجم، دسترسی به خط فرمان روی سیستم قربانی است. دسترسی به خط فرمان به هکر اجازه میدهد تا کنترل کامل سیستم قربانی را بهدست آورد. ابزارهایی که به مهاجم اجازه دسترسی به خط فرمان را میدهد Psexec ، Remoxec و Netcat هستند. پس از اینکه مهاجم دسترسی به خط فرمان روی سیستم قربانی را بهدست آورد، به دنبال اهداف داخلی دیگری میگردد. در این مرحله متدولوژی حمله کامل شده و هکر همانند کاربر قانونی به سیستم او دسترسی دارد. در شکل زی چرخه کامل یک حمله موفقیتآمیز به یک سیستم را مشاهده میکنید:
جمعبندی کلی
همانگونه که مشاهده کردی سرشماری و هک هر دو سیستمعامل ویندوز و لینوکس را به یک اندازه در معرض خطر قرار میدهند. سرشماری سیستمهای ویندوزی میتواند با استفاده از روشهایی همچون SMB ،IPC$ share ، SMTP ، SNMP و DNS انجام شود. هر یک از روشهای فوق فرصتی در اختیار هکر قرار میدهند تا در مورد شبکه و سامانههایی که قرار است به آنها حمله کند اطلاعات بیشتری بهدست آورد. هدف از سرشماری، جمعآوری اطلاعات کافی برای ترسیم نقشه حمله به یک شبکه بر مبنای مجموعهای از نقاط ورودی بالقوه است. این نقطه ورودی ممکن است یک مشکل سرریز بافر، یک برنامه غیر ایمن مانند SNMPv1 یا 2 یا حتا یک رمز عبور ضعیف باشد که حدس زدن آن زمان زیادی را طلب نمیکند.
هک کردن سیستم نقطه عطف کار یک هکر است. در این نقطه هکر دیگر تحقیقی انجام نمیدهد و تمام تمرکزش روی حمله به یک سیستم و ورود به سیستم متمرکز است. هک کردن سیستم ممکن است با یک حساب کاربری سطح پایین شروع شود. یكی از مؤلفههای مهم هک سیستم، ترفیع امتیاز است که اشاره به بهرهبرداری از یک باگ، شناسایی رخنهها یا سوء استفاده از پیکربندیهای اشتباهی دارد که منجر به افزایش سطح دسترسی به سامانه میشود. هدف کلی هر هکری کنترل کامل یک سیستم است. پس از گذر زمان مناسب برای حفظ دسترسی، مهاجم برای مدت زمان طولانی روی یک کامپیوتر یا شبکه حضور خواهد داشت. بعد از اینکه یک مهاجم موفق شد به یک کامپیوتر نفوذ کرده و آنرا کنترل کند، بندرت کار خود را متوقف میکند. او بهطور معمول سعی میکند ردپاهای خود را پنهان کرده و هرگونه نشانه ورود به سیستم را پنهان کند. در این مرحله او سعی میکند اطلاعات حساس، اطلاعات شخصی و سایر اسناد مهم را به سرقت برده و با ساخت دربهای پشتی مطمئن شود که در آینده بازهم به سیستم دسترسی خواهد داشت. نکتهای که سرپرستان شبکه باید به آن دقت ویژهای داشته باشند این است که هر زمان یک سامانه تحت شبکه آلوده شود، کل دامنه به خطر افتاده است. به همین دلیل بهترین دفاع حمله است و همچنین دقت کنید در زمان بروز یک حمله نباید به هیچ عنون به مهاجمان باج یا رشوهای دهید و انتظار داشته باشید همه چیز به حالت اولیه خود باز گردد.
به عنوان یک کارشناس امنیتی باید با نحوه استفاده از فرمان net به خوبی آشنا باشید، زیرا در آزمون CEH تمرکز ویژهای روی فرامین پر کاربرد وجود دارد. بهطور مثال، ترکیب نحوی دستوراتی شبیه به موارد زیر را به دقت بررسی کنید.
net use \\ip address\ipc$ “” /u:””
net use * \\ip address\share * /u:username
net view \\ipaddress
استریم کردن NTFS
برای آنکه با نحوه استریم فایل NTFS و پنهانسازی فایلها در محیط NTFS بهتر آشنا شوید پروژه زیر را کامل کنید.
مرحله 1: ابتدا LNS را دانلود کنید. LNS یک نرمافزار خوب استریم فایل NTFS است که از نشانی زیر قابل دریافت است.
www.ntsecurity.nu/toolbox/lns/
مرحله 2: یک پوشه موقت روی ریشه درایو NTFS ایجاد کنید. نام پوشه را test یا نامی که دوست دارید قرار دهید.
مرحله 3: فایل Notepad.exe را درون پوشه test کپی کردن و نام آنرا hack.exe قرار دهید. شما از این فایل برای شبیهسازی یک ابزار هک استفاده میکنید.
مرحله 4: یک فایل متنی بهنام readme.txt ایجاد کنید. متنی درون فایل readme شبیه به hello world قرار دهید تا فایل به درستی کار کند.
مرحله 5: ابزار خط فرمان را باز کنید و به مکان پوشه test بروید. در پوشه فوق باید دو فایل hack.exe و readme.txt داشته باشید. فضای خالی موجود را یادداشت کنید.
مرحله 6: از خط فرمان دستور زیر را اجرا کنید.
Type hack.exe > readme.txt:hack.exe
مرحله 7: اکنون میزان فضای خالی را یکبار دیگر بررسی کنید.
مرحله 8: آیا چیزی تغییر پیدا کرده است؟ اکنون باید مشاهده کنید که فضای خالی کم شده، زیرا شما hack.exe را در پشت فایل readme.txt پنهان کردهاید.
مرحله 9: اکنون فرمان زیر را اجرا کنید:
Start c:\ test\ readme.txt:hack.exe
مرحله 10: آیا اتفاقی رخ داده است؟ فایل hack شما notepad.exe باید روی صفحه باز شده باشد. این فایل بهطور کامل پنهان است و پشت فایل readme.txt پنهان شده است.
مرحله 11: سرانجام LNS را از طریق خط فرمان اجرا کنید. برنامه باید بتواند فایل استریم شده hack.exe را شناسایی کند. استریم کردن فایل یکی از قدرتمندترین رشوهای برای پنهانسازی اطلاعات است که فرآیند تشخیص را مشکل میکند.
در شماره آینده مبحث فوق را ادامه میدهیم.
برای مطالعه رایگان تمام بخشهای دوره CEH روی لینک زیر کلیک کنید:
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟