آزمون یا تست نفوذ (Penetration Test) راه حلی برای تشخیص میزان امنیت در یک کامپیوتر، وبسایت و یا یک شبکه کامپیوتری است که از طریق شبیهسازی کردن حملات هکرها انجام میگیرد. در این تست، تمام سیستمها، زیرساختها و حتی نرمافزارها نصب شده روی شبکه مورد آزمایش واقعی قرار میگیرند، تا مشکلات امنیتیشان مشخص شوند تا بتوان برای رفع آنها هرچه سریعتر اقدام کرد. تست نفوذ با کالی لینوکس یکی از مرسومترین روشهای پیادهسازی چنین آزمایشی است که در این مطلب به آن پرداختهایم.
فرآیند تست نفوذ را میتوان به 5 مرحله تقسیم کرد: مرحله اول، مشخص کردن دامنه، هدف یا همان تارگت است. مرحله دوم، جمعآوری اطلاعات مورد نیاز برای انجام تست میباشد. مرحله سوم، بررسی و ارزیابی میزان آسیبپذیری احتمالی شبکه، رایانه و وبسایت است. مرحله چهارم، اعمال تست نفوذ و مرحله آخر، گزارشگیری نهایی و ارائه راهکار است. در تمامی 5 مرحله تست نفوذ، کالی لینوکس نشان داده است که میتواند یک تنه با در اختیار داشتن ابزارهای موجود در خود به کاربر و تستر امنیتی کمک قابل توجهی کند.
- آموزش سیستم عامل لینوکس Linux در فرادرس — کلیک کنید
از کالی لینوکس چه می دانید
کالی لینوکس (Kali Linux) یکی از سیستم عاملهای توزیع دبیان است که در دل خود ابزارهای نصب شده و قابل نصب بسیار زیادی دارد و همین امر باعث شده این سیستم عامل برای انجام تست نفوذ گزینه بسیار مطلوبی باشد. به طور کلی، این سیستم عامل به منظور کمک به ارزیابیهای امنیتی و هکهای اخلاقی – هکهایی که از قبل برنامهریزی شدهاند و هیچگونه دستبردی به شبکه، رایانه و یا وبسایت نمیزنند – توسعه پیدا کرده است.
تمامی سیستم عاملهای لینوکس دارای توزیعهای مختلفی هستند که آنها را با نامهای مختلفی در بازار میشناسیم و اساسا یک شرکت خاص به طور ویژه توزیعها را پشتیبانی و توسعه میدهند. لذا، یکی از انواع توزی لینوکس، کالی لینوکس است که به عنوان یک ابزار مناسب برای تست نفوذ، مهندسی معکوس و تحقیقات امنیتی از آن یاد میشود.
تست نفوذ با کالی لینوکس
برای انجام تست نفوذ با کالی لینوکس یا تست PWK (مخفف عبارت Penetration Testing with Kali)، این سیستم عامل دارای آپشنها و ابزارهای بسیار مناسبی است که هر کدامشان میتوانند به طور جداگانه نصب و مورد استفاده قرار بگیرند. توسعه دهندگان کالی لینوکس (شرکت Offensive Security) برای انتخاب صحیح هر یک از این ابزارها، دست به طبقهبندی آنها نسبت به دامنه فعالیتشان زده است:
- ابزارهای تحلیل آسیبپذیری
- ابزارهای گردآوری اطلاعات
- ابزارهای حملههای بیسیم
- ابزارهای اکسپلویت
- ابزارهای وباپلیکیشنها
- ابزارهای تست استرس
- ابزارهای جعل و شنود
- ابزارهای حمله به رمز عبور
- ابزارهای مهندسی معکوس
- ابزارهای هک سختافزاری
- ابزارهای گزارشگیری نهایی
اقدامات لازم قبل از تست نفوذ با کالی لینوکس
با اینکه کالی لینوکس به عنوان یک سیستم عامل برای انواع تست نفوذ توسعه پیدا کرده، اما کانفیگ اولیه آن اصلا برای استفاده به عنوان یک سیستم عامل مناسب نیست و نیاز به اعمال چند تغییر کوچک در آن است. با اعمال چنین تغییراتی ایمنی کالی لینوکس برای انجام تست نفوذ به مراتب افزایش مییابد و محیط آن برای استفاده آماده خواهد شد.
- مجموعه آموزش لینوکس Linux — کلیک کنید
آسانترین راه برای استفاده از کالی لینوکس، اجرای آن در یک ماشین مجازی است؛ ویرچوال باکس بهترین گزینه برای اجرای کالی لینوکس به روی یک سیستم عامل میزبان مثل ویندوز، Mac OS، لینوکس و غیره است. اما پیکربندی دشوارتر، استفاده بیشتر از حافظه، عملکرد کندتر و بروز مشکلاتی در ارتباط با سختافزارهای شبکه، همگی از محدودیتهای ماشین مجازی هستند. با اجرای کالی لینوکس به صورت یک سیستم عامل بوت Live، میتوان از بروز چنین مشکلاتی پیشگیری کرد.
اگر قصد نصب کردن کالی لینوکس را دارید تا از آن به عنوان سیستم عامل مناسب برای تست نفوذ استفاده کنید، دقت به نکاتی که خواهیم آورد بسیار ضروری است. این نکات در اجرای پروژههای طولانیتر و گزارشگیریهای دقیقتر بسیار کمک میکند.
مرحله اول تست نفوذ با کالی لینوکس – نصب کالی
در اولین مرحله، باید فایل نصبی کالی را که میتواند به صورت لوحه فشرده یا فلش باشد روی کامپیوتر ریخته تا سیستم را با استفاده از آن بوت کنید. در زمان ظاهر شدن منوی بوت (Boot) حتما به روی گزینه Graphical Install اینتر بزنید.
با بهرهگیری از نصب کننده گرافیکی، روند نصب کالی بسیار راحتتر خواهد شد و درک دستورات آن بسیار آسان میشود. وارد کردن نام کاربری و رمز عبور، نخستین مرحله در نصب کالی است. در این صفحه میتوانید از رمز عبور اصلی یا همان روت برای سیستم استفاده کنید تا پس از تکمیل شدن فرآیند نصب، مدیر سیستم بتواند از آن استفاده کند. همچنین از رمز عبور، برای اجرای دستوراتی که به مجوزهای سوپر یوزر نیاز دارند، استفاده خواهد شد. سهلانگاری در انتخاب یک رمز عبور قوی، میتواند عواقب بسیار خطرناکی برای شما داشته باشد، پس سعی کنید از رمزهای عبور کلیشهای استفاده نکنید.
مادامی که فرآیند نصب کالی تمام شد، مستقیما میتوانید وارد حساب کاربر روت (Root) شده و محیط پیش فرض کالی را بارگذاری کنید. حالا که به محیط دسکتاپ کالی لینوکس دست پیدا کردید، نوبت به مرحله مناسبسازی و ایمن کردن آن میرسد.
مرحله دوم تست نفوذ با کالی لینوکس – پیکربندی حساب های کاربری در کالی
پیکربندی اولیه کالی، به صورت تک کاربره تعریف شده است و همان حساب root است که در اغلب سیستمها طراحی شدهاند. این کار باعث میشود تنها مدیر سیستم دارای مجوزهایی شود و دسترسی او از بقیه کاربرها مجزا بماند. اگر دسترو whoami را روی کالی لینوکس اجرا کنید، متوجه خواهید شد که آیا سیستم را به عنوان کاربر روت مورد استفاده قرار میدهید یا خیر.
استفاده از سیستم به عنوان کاربر روت، رویه امنیتی مناسبی برای توزیع لینوکس نیست، اما این کار باعث راحتتر شدن فرآیند ایجاد حساب کاربری جدید میشود. برای ایجاد یک حساب کاربری جدید دستور ِ adduser -m username را اجرا کرده و به جای username، نام کاربری دلخواه خودتان را وارد کنید.
- آموزش امنیت شبکههای کامپیوتری – کلیک کنید
برای حساب کاربردی جدید که از طریق دستور بالا ایجاد کردید، تعیین یک رمز عبور الزامی است. بهتر است این رمز عبور با رمز عبور root متفاوت باشد و برای تنظیم آن در دستور passwd username کافی است به جای username نام کاربری ایجاد شده را وارد کنید. پس از اجرای دستور بالا، باید رمز عبور دلخواه خود را دو بار وارد کنید.
هنگامی که کار ایجاد حساب کاربری و تعیین رمز عبور آن تمام شد، باید مجوزهای آن را تنظیم کرد. اساسیترین تغییری که در این حساب باید انجام دهیم این است که آن را به گروه کاربران Sudoers اضافه میکنیم. این دستور، اجرای دستورات به نمایندگی از همه کاربران را امکانپذیر میکند.
مرحله سوم – اعمال تغییرات در رویه های سرویس شبکه
کالی لینوکس به طور پیشفرض به هیج یک از درخواستهای بیرونی اجازه پذیرش نمیدهد که هدف از این کار، کم کردن مخاطرات سیستم در وضعیت پیشفرض است. از اینرو، برخی از سرویسهای خاص شبکه که در زمان نصب انتخاب میشوند، در زمان آغاز کار اولیه ممکن است فعال باشند، اما به محض شروع به کار مجدد سیستم، از کار میافتند.
برای ویرایش فایل آغاز دستی سرویسها، باید مولفه systemctl در systemd را با استفاده از ویرایشگر نانو اجرا کنید. اگر سرویس خاصی مد نظرتان است و قصد دارید به فهرست سفید اضافه کنید، حتما باید مطمئن شوید که در بخش سیاه فایل قرار ندارد. اگر در بخش سیاه بود ابتدا از آنجا حذف کنید و مدخل جدیدی ایجاد کنید. عبارت enabled را در یک خط جدید در بخش فهرست سفید وارد کنید و پس از پایان ویرایشها، Ctrl + O و Ctrl + X تغییرات ذخیره و از آن خارج شوید.
مرحله آخر – سفارش سازی رابط دسکتاپ
قبل از تست نفوذ با کالی لینوکس و درست پس از نصب کالی باید منابع ریپوزیتوری را چک کنید تا مطمئن شوید آدرس صحیحی برای آن تعیین شده است. با وارد کردن دستور sudo nano /etc/apt/sources.list میتوانید فایل مربوط به آن را ویرایش کنید. پس از اینکه مطمئن شدید خط deb http://http.kali.org/kali kali-rolling main non-free contrib وجود دارد، آن را به فایل اضافه کنید و با گرفتن دکمههای Ctrl + X تغییرات را ذخیره و از آن خارج شوید.
مرحله پایانی، سفارشیسازی سیستم از نظر محیط دسکتاپی است. در ریپوزیتوری رولینگ کالی لینوکس، چند بسته پیشنهاد وجود دارند که رابطهای استاندارد دسکتاپ و نرم افزار مدیریت پنجرهها را ارائه میدهد.
- آموزش تست نفوذ در وب و راه های مقابله با آن — مشاهده کنید
آموزش تست نفوذ با کالی لینوکس
حال که مراحل قبل از اجرا کردن تست نفوذ با کالی لینوکس تمام شد، نوبت به اصل داستان یعنی کار کردن با ابزارهای مختلف کالی لینوکس برای تست نفوذ رسیده است. در بخش نخست آموزش تست نفوذ با کالی لینوکس قصد داریم روش استفاده از ابزارهای کرک وایفای را بررسی کنیم.
۱. ابزار Fern Wifi Cracker
برای کرک کردن اتصالهای بیسیم و تست نفوذ با کالی لینوکس، ابزار Fern Wifi Cracker مورد استفاده قرار میگیرد. قبل از شروع کار با این ابزار، لازم است کارت وایرلس را در حالت مانیتورینگ بگذارید، برای اینکار دستور airmon-ng start wlan0 را در ترمینال وارد کنید. حالا ابزار فرن وایفای کرکر را باز کرده و به مسیر اپلیکیشنها بروید و از تب وایرلس اتکس، گزینهای به همین نام را تیک بزنید.
در ابزار Fern، کارت وایرلس ایجاد شده را انتخاب کنید، روی Scan for Access Points کلیک کنید تا همه کارتهای شبکه وایرلس پیدا شده، نمایش داده شوند. روی WPA networks کلیک کنید و سپس روی Browse رفته تا فهرست کلمات مورد نیاز حمله را مشاهده کنید. در مرحله پایانی روی دکمه Wifi Attacks کلیک کنید تا رمز عبور پیدا شود.
۲. ابزار Kismet
کیسمت یکی دیگر از ابزارهای شناسایی شبکه است که در عملیاتهایی مانند شنودگر بسته و سیستم تشخیص نفوذ با کالی لینوکس برای شبکههای محلی بیسیم کاربرد دارد. Kismet قادر است با هر کارت شبکه وایرلسی کار کند و ترافیکهای 802.11a، 802.11b، 802.11g و 801.11n را شنود کند.
با اینکه ابزار کیسمت برای تست نفوذ با کالی لینوکس است، اما با X Mac و BSD نیز سازگار میباشد و حتی در شرایط خاص هم تحت سیستم عامل مایکروسافت، ویندوز، اجرا میشود. دانلود این نرمافزار رایگان است، اما استفاده از آن نیازمند دانش و یادگیری فوت و فنهایی است که در مجموعه آموزشهای فرادرس به طور مفصل به آن پرداخته شده است.
ابزار Kismet دارای سه مولفه Drone، سرویسدهنده و مشتری است، که Drone برای جمعآوری بستههای شبکه و ارسال آنها به یک سرویسدهنده استفاده میشود و سرویسدهنده میتواند به طور مستقل و یا با ارتباط با Drone، به تفسیر دادهها و استنتاج اطلاعات وایرلس مورد استفاده بگیرد. مشتری نیز با سرویسدهنده ارتباط برقرار میکند و اطلاعات جمعآوری شده به وسیله سرویسدهنده را به نمایش میگذارد. از اینرو، به وسیله این ابزار میتوان تخطی از سیاستهای امنیتی در ماشینهای میزبان و همچنین پیکربندی غلط در نقاط دسترسی را شناسایی کرد.
۳. ابزار GISKismet
ابزار GISKismet یک ابزار بصریسازی وایرلس برای به رویت درآوردن دادههای جمعآوری شده توسط Kismet است. در این ابزار، اطلاعات در یک پایگاه داده ذخیره میشود و کوئری زدن به دادهها گرافهایی را با استفاده از SQL تولید کنیم. هماکنون گیسکیسمت از SQLite به عنوان پایگاه داده و Google Earth KLM برای تولید استفاده میکند و برای باز کردن این ابزار باید به مسیر اپلیکیشنها رفته و از تب Wireless Attacks گزینه GISKismet را انتخاب کنید.
جهت ایمپورت کردن فایلهای netXML تولید شده برای بررسی دادهها در ابزار Kismet، باید دستور root@kali:~# giskismet -x Kismetfilename.netxml را ورد کنید. مادامی که فایلها ایمپورت شدند، از آنها برای شناسایی هاتاسپاتها از طریق گوگل ارث میتوان استفاده کرد.
۴. ابزار Ghost Phisher
ابزار Ghost Phisher یکی دیگر از ابزارهایی است که در تست نفوذ با کالی لینوکس کاربرد فراوان دارد. این اپلیکیشن به زبان پایتون نوشته شده و جزو ابزارهای امنیتی در سطح وایرلس و Ethernet است و از طرفی از کتابخانه Python Qt GUI بهره میبرد. شبیهسازی Access Pointها یکی از قابلیتهای گاست فیشر به حساب میآید.
- آموزش WSL – اجرای لینوکس روی ویندوز — مشاهده کنید
مانند تمامی اپلیکیشنها، برای اجرای گاست فیشر نیز باید از مسیر Applications گزینه Wireless Attacks را پیدا و روی Ghost Phisher کلیک کنید. پس از باز شدن ابزار گاست فیشینگ، یک AP جعلی میسازید و جزئیات زیر را وارد میکنید:
- ورودی Wireless Interface: wlan0
- SSID: نام AP وایرلس
- نشانی آیپی: همان نشانی IP که AP دارد
- WAP: رمز عبوری که این SSID برای اتصال دارد
حالا روی دکمه استارت کلیک کنید.
ابزارهای تست نفوذ وب سایت با کالی لینوکس
در این بخش قصد داریم تا ابزارهای تست نفوذ با کالی لینوکس را برای وبسایتها معرفی کنیم. ابزار ZapProxy و Vega دو تا از ابزارهایی هستند که در تست نفوذ با کالی لینوکس بسیار موفق عمل کردهاند.
۱. ابزار Vega
اسکنرها ابزارهایی هستند که در تست نفوذ وبسایت استفاده میشوند و برای برقراری امنیت به ادمین سایت کمک میکنند. ابزار وگا، یکی از کاربردیترین اسکنرهایی است که به طور پیشفرض در سیستم عامل کالی لینوکس قرار دارد. در واقع، Vega یک اسکنر رایگان و متنباز است به عنوان پلتفرم تست میتواند به شناسایی و اعتبارسنجی تزریق SQL، اسکریپتنویسی بین سایتی (XSS)، و اطلاعات فوق حساس به بیرون درج کرده، کمک کند.
ابزار Vega در زبان جاوا نوشته شده و مبتنی بر GUI است و قابل استفاده در کالی لینوکس، OS X و ویندوز میباشد. وگا را میتوان به عنوان یک اسکنر خودکار برای تستهای سریع دانست که یک پراکسی intercepting برای بررسیهای فنی ارائه میدهد و با استفاده از API قدرتمند به زبان جاوا بسط داد.
۲. ابزار ZapProxy
ابزار ZAP-OWASP Zed Attack Proxy دومین گزینه برای تست نفوذ با کالی لینوکس در وبسایت است و کاربری آسان آن در یافتن آسیبپذیریها در وباپلیکیشنها سبب شده تا به یکی از برنامههای کلیدی کالی تبدیل شود.
۳. ابزار SQLmap برای بررسی دیتابیس (پایگاه داده)
ابزار SQLmap یکی دیگر از نرمافزارهای تست نفوذ است که به صورت متنباز در فرآیند تشخیص و اکسپلویت از نقصهای تزریق SQL به طور خودکار اجرا میشود و کنترل سرورهای دیتابیس را به دست میگیرد. این ابزار موتور تشخیص بسیار قدرتمندی دارد و برای تست نفود، طیف وسیع سوئیچهای گرفتن فینگرپرینت از دیتابیس، واکشی دادهها از دیتابیس برای دسترسی به فایل سیستم زیرین و اجرای فرامین روی سیستم عامل از طریق اتصالهای Out-of-band کاربرد فراوان دارد.
۴. ابزار SQLninja
ابزار SQLninja یکی دیگر از نرمافزارهای تزریق SQL به روی سرور Microsoft SQL با دسترسی مبتنی بر GUI به صورت کامل است. نینجا در واقع ابزاری است که برای بهرهبرداری از آسیبهای احتمالی SQL Injection روی وباپلیکیشنهایی هدفگیری کرده است که از مایکروسافت SQL Server به عنوان بکاند استفاده میکنند.
۵. تست نفوذ در وردپرس با WPScan
برای اسکن وردپرس، ابزار WPScan بسیار کارآمد است و مدیران سایت توجه به خصوصی به این نرم افزار دارند. در حال حاضر بیش از 70 میلیون وب سایت از طریق سایتساز وردپرس در حال فعالیت هستند، پس WPScan میتواند مشکلات امنیتی کسبوکارهای مختلفی در جهان را حل کند. با این ابزار میتوان سایت را اسکن و اطلاعاتی مانند آسیب پذیری پلاگینها، قالبهای نصب شده و غیره را که دارای باگهای امنیتی هستند، پیدا کرد.
- آموزش رایگان تست نفوذ با کالی لینوکس — مطالعه کنید
۶. تست نفوذ در جوملا با Joomscan
یکی دیگر از CMSهای مورد علاقه کاربران اینترنت، جوملا است که پس از وردپرس میتوان آن را پرطرفدارترین سایتساز و CMS دانست، با کمک ابزار Joomscan، توسعهدهندگان وب و وبمسترها میتوانند نقاط ضعف احتمالی امنیتی روی سایتهای جوملا را شناسایی کنند.
ارتقا امنیت شبکه، وب سایت و رایانه نیاز به یادگیری دانش فراوان دارد
همانطور که مشاهده کردید، تست نفوذ با کالی لینوکس دارای پیچیدگیهای فراوانی است و ابعاد بسیار زیادی را شامل میشود؛ از تست نفوذ وبسایت گرفته تا تست نفوذ در شبکه و غیره. برای به کارگیری چنین سیستمهایی لازم است شما با مفاهیم بیسیک مانند شبکه و انواع آن، تست نفوذ و کار با کالی لینوکس آشنا باشید. فیلمهای آموزشی مدون بسیار متنوعی در این خصوص در فرادرس وجود دارند که مشاهده آنها برای شمایی که دوست دارید (یا نیاز دارید) امنیت شبکههایتان را بالا ببرید، حائز اهمیت است.