خانه توسعهدهنده تکنولوژی لینوکس آموزش تست نفوذ با کالی لینوکس
آموزش تست نفوذ با کالی لینوکس
کالی لینوکس که در گذشته بهعنوان BackTrack Linux شناخته میشد، یک توزیع لینوکس بر پایه دبیان است که برای تست نفوذ و جرمیابی سیستمهای دیجیتال طراحی شده است. این توزیع بهصورت کاملا رایگان و منبع باز (Open Source) در اختیار عموم قرار دارد که توسط Offensive Security نگهداری و تامین مالی میشود. معمولا مربیان و آموزشگاههای معتبر در دوره آموزش لینوکس از این سیستمعامل برای تست امنیت شبکه، سیستمهای کامپیوتری یا وبسایت استفاده میکنند تا مطمئن شوند در برابر حملات هکرها ایمن هستند. تست نفوذ با کالی لینوکس یکی از مباحث مطرح در میان مهندسان شبکه و امنیت سیستمهای کامپیوتری است که در این مقاله از کوئرا بلاگ، بهطور کامل به بررسی آن خواهیم پرداخت.
فهرست مطالب
Toggleکاربرد کالی لینوکس چیست؟
کاربردهای کالی لینوکس طیف گستردهای را دربرمیگیرد که از جمله آنها میتوان به موارد زیر اشاره کرد:
- جرمیابی قانونی دیجیتال
- تست نفوذ
- ارزیابی امنیت شبکه
- آموزش امنیت
- تحقیق در زمینه امنیت
این سیستمعامل یک ابزار قدرتمند است که میتواند برای اهداف مثبت توسط متخصصان امنیت اطلاعات یا اهداف منفی توسط هکرها استفاده شود.
کالی لینوکس شامل حدود ۶۰۰ برنامه و ابزار تست نفوذ از پیش نصبشده است، از جمله:
- Armitage (یک ابزار مدیریت حمله سایبری به شکل گرافیکی)
- NMap (اسکنر پورت)
- Wireshark (یک تحلیلگر بسته)
- Metasploit (فریمورک تست نفوذ)
- John the Ripper (رمزشکن)
- SQL Map (تزریق خودکار SQL و ابزار تصرف پایگاه داده)
- Aircrack-ng (مجموعه نرمافزاری برای آزمایش نفوذ شبکههای بیسیم)
- مجموعه Burp و OWASP ZAP اسکنرهای امنیتی برنامههای وب
بیشتر بخوانید: یادگیری ماشین در امنیت سایبری
آموزش تست نفوذ با کالی لینوکس
تست نفوذ یک حمله سایبری شبیهسازیشده به سیستم یا شبکه کامپیوتری برای شناسایی آسیبپذیریهای امنیتی است. تست نفوذ با کالی لینوکس از ابزارها و تکنیکهای مشابهی با عوامل مخرب استفاده میکند تا به سیستمها و دادهها دسترسی پیدا کند. این تست روی پلتفرمهای مختلفی همچون موارد زیر انجام میشود:
- وبسایتها
- برنامههای کاربردی وب
- برنامههای موبایل
- شبکههای سروری
- پایگاههای داده
- زیرساختهای شبکه
در ادامه بهصورت مرحلهبهمرحله به آموزش تست نفوذ با کالی لینوکس خواهیم پرداخت. این تست توسط ابزارهای موجود در کالی انجام میشوند.
1.Amap
اسکنر Amap برای مشاهده لیستی از برنامههای کاربردی در حال اجرا روی یک پورت شبکه مورد استفاده قرار میگیرد.
Amap با پورتهای مشخصشده ارتباط برقرار و بستههای محرک (Trigger Packets) را برای آنها ارسال میکند. معمولا بستههای محرک حاوی پروتکل Handshake برنامه هستند. Amap بستههای محرک را به پورتها فرستاده و پاسخ بازگشتی را با پاسخهای موجود در پایگاه داده خود مقایسه میکند. اگر پاسخ با یک برنامه مطابقت داشته باشد، Amap برنامه را شناسایی میکند.
Amap چندین نوع پروتکل را پوشش میدهد: پروتکلهای TCP، UDP، Binary، Regular و پروتکلهای ASCII دارای SSL.
قابلیت Amap شامل دو ابزار است:
- amapcrap – ابزاری برای ارسال دادههای تصادفی به پورتهای بیصدا UDP، TCP و SSL بهمنظور ایجاد پاسخ غیرمنتظره
- amap – ابزاری برای شناسایی برنامههای در حال اجرا روی یک پورت خاص
Amap یک اسکنر خوب است و گزینههای زیادی دارد که میتوان از آنها در هنگام تست نفوذ استفاده کرد. بااینحال، ابزار دیگری به نام Nmap وجود دارد که برای اسکن پورتهای باز بهتر عمل میکند و استفاده از آن آسانتر است. Nmap را در ادامه توضیح خواهیم داد.
بیشتر بخوانید: آموزش کاربردی لینوکس (از 0 تا Z)
2.Nmap
Network Mapper (Nmap) یک ابزار منبع باز محبوب برای تست امنیت که نقطه شروع بسیار خوبی در تست نفوذ با کالی لینوکس است و مزایای همچون سرعت و کارایی بالا را ارائه میدهد. همچنین میتوان از آن برای فهرستبندی دادههای شبکه، نظارت بر زمانهای آپدیت هاست و سرویس و مدیریت برنامههای ارتقا سرویس استفاده کرد. Nmap از بستههای IP برای دریافت اطلاعات دقیق در مورد هاستهای موجود در شبکه استفاده میکند: خدماتی که ارائه میدهند، سیستمعاملهایی که اجرا میکنند، فیلترهای بستهها و فایروالهایی که ارائه میدهند و غیره. محیط Nmap یک محیط ساده Command-Line است؛ اما ابزارهای دیگری همچون Zenmap برای نمایش نتایج و Ndiff برای مقایسه نتایج اسکن وجود دارد. Nmap با تمام سیستمعاملهای محبوب سازگار و دارای بستههای باینری رسمی برای ویندوز، لینوکس و مک است.
3.theHarvester
اگر میخواهید ببینید هکر چه نوع اطلاعاتی را میتواند از شبکه و سیستمهای شما استخراج کند، از theHarvester استفاده کنید. با کمک این ابزار میتوانید دادههایی از جمله موارد زیر را جمعآوری کنید:
- پایگاه دادههای کامپیوتری SHODAN
- نام کارکنان
- آدرس ایمیل
- نام هاست
- زیردامنهها
- پورتهای باز
استفاده ازHarvester آسان است و در عین حال در مراحل اولیه تست نفوذ بسیار موثر عمل میکند. همچنین میتوان از آن برای بررسی اینکه چه نوع اطلاعاتی در مورد شرکتتان در اینترنت یافت میشود، استفاده کرد.
4.Load Balancing Detector (lbd)
برای اینکه ببینید آیا وبسایتتان مستعد حملات DDoS است یا خیر، از Load Balancing Detector (LBD) استفاده کنید. این امکان به توزیع ترافیکهای فشرده در چندین سرور اشاره دارد. با کمک LBD، میتوانید بررسی کنید که آیا دامنه تحت آزمایش از تعادل ترافیک در DNS و HTTP استفاده میکند یا خیر. این ابزار همچنین اطلاعات دقیقی در مورد سرورهای پیداشده در اختیارتان قرار میدهد.
بیشتر بخوانید: بهترین توزیع لینوکس کدام است؟
5.ARP Scan
برای اسکن ترافیک شبکه خود، میتوانید از ARP-Scan استفاده کنید، ابزاری که شبکهها را با لایه دو، MAC و بستههای ARP اترنت (Ethernet ARP Packages) اسکن میکند. با استفاده از ARP-Scan، میتوانید بستههای ARP را به هاستهای مشخصشده در شبکه داخلی خود ارسال و پاسخها را مشاهده کنید.
با کمک ARP-Scan میتوانید:
- بستههای ARP را با استفاده از نرخ بسته قابل تنظیم و پهنای باند خروجی به هر تعداد هاست ارسال کنید. این کار برای کشف مشکلات سیستم مفید است، بهخصوص زمانی که نیاز به اسکن فضای آدرس بزرگی دارید.
- بستههای ARP خروجی را به شیوهای انعطافپذیر بسازید. با استفاده از ARP-Scan، میتوانید تمام فیلدها را در بسته ARP و هدر فریم اترنت کنترل کنید.
- بستههای ARP دریافتی را رمزگشایی کرده و نمایش دهید.
6.SMBMap
SMBMap ابزاری برای جمعآوری اطلاعات درایوهای سامبا مشترک (Samba Drives) در یک دامنه است. این ابزار میتواند درایوهای مشترک را فهرست کند و محتوای آنها و مجوزهای درایو فعلی را نشان دهد. SMBMap همچنین دارای قابلیت آپلود و دانلود است و میتواند بهطور خودکار فایلهایی را که نامشان با فرمت مشخصشده مطابقت دارد، دانلود کند. همچنین این ابزار امکان اجرای دستورات از راه دور را فراهم میکند.
هدف اصلی SMBMap ساده کردن فرآیند کشف دادههای حساس و آسیبپذیر در شبکههای بزرگ است.
بیشتر بخوانید: ۱۰ دلیل برای استفاده از سرورهای لینوکس
7.SSLsplit
SSLsplit میتواند حملات مرد میانی (MITM) را علیه اتصالات شبکه رمزگذاریشده با SSL/TLS انجام دهد. پس از پایان دادن به اتصال اصلی SSL/TLS، SSLsplit یک اتصال جدید به آدرس مقصد اصلی آغاز و تمام دادههای ارسالشده را ثبت میکند.
SSLsplit پشتیبانی از اتصالات TCP و SSL ساده و همچنین اتصالات HTTP/HTTPS را از طریق IPv4 و IPv6 دربرمیگیرد. برای اتصالات SSL و HTTPS، میتواند گواهیهای جعلی X509v3 را در لحظه تولید و امضا کند.
SSLsplit بهطورکلی از مکانیسم STARTTLS پشتیبانی میکند؛ اما این ویژگی در مرحله آزمایش قرار دارد.
8.APT2
APT2 یک مجموعه ابزار محبوب برای تست نفوذ خودکار است که اسکن NMap را انجام میدهد و میتواند نتایج اسکن را از ابزارهای دیگر از جمله Nexpose، Nessus و NMap وارد (Import) سیستم کند. این مجموعه ابزار از نتایج پردازششده برای راهاندازی ماژولهای اکسپلویت، اطلاعات سرویسها و سطح ایمنی قابل تنظیم استفاده میکند.
APT2 تمام نتایج ماژول دریافتی را روی یک هاست محلی ذخیره کرده و آنها را به دیتابیس میافزاید. کاربران میتوانند از برنامه به پایگاه داده APT2 دسترسی داشته باشند و از آن برای مشاهده نتایج دریافتی از یک ماژول استفاده کنند.
یکی از مزیتهای اصلی APT2 انعطافپذیری بسیار زیاد آن است و به لطف پیکربندی Safe Level، کنترل بر رفتار هاست را امکانپذیر میکند. استفاده از این ابزار آسان است؛ زیرا مستندات (Documentation) بسیاری را در اختیار قرار میدهد؛ اما نقطه ضعف این مستندات، بهروزرسانیهای گاهبهگاه آن است. بهطورمثال آخرین بهروزرسانی در مارس 2018 منتشر شد.
9.BruteXSS
BruteXSS یک brute-forcer اسکریپتنویسی قدرتمند و سریع است و برای پارامترهای brute force استفاده میشود. مزیت اصلی BruteXSS دقت بالای آن است که میتواند ترافیکهای متعددی را از یک لیست کلمات مشخص به پارامترهای خاصی تزریق و اسکن کند تا ببیند هرکدام مستعد آسیبپذیری XSS هستند یا خیر.
ویژگیهای اصلی BruteXSS عبارتند از:
- اسکن XSS
- لیست کلمات سفارشی
- پشتیبانی از درخواستهای GET/POST
BruteXSS دارای یک رابط کاربرپسند است و از درخواستهای GET/POST پشتیبانی میکند. همین ویژگی سازگاری این ابزار را با اکثر برنامههای کاربردی وب بالا میبرد.
10.CrackMapExec
CrackMapExec یک ابزار همهکاره برای آزمایش محیطهای Windows/Active Directory است. این ابزار از چندین فناوری محبوب از جمله مخزن PowerSploit بهعنوان یکی از زیرمخزنهای خود استفاده میکند.
CrackMapExec میتواند دادههای واردشده کاربران را جمعآوری و پوشههای SMB مشترک را فهرستبندی کند، حملات psexec و تخلیه NTDS.dit را انجام دهد و Mimikatz/Shellcode/DLL را بهطور خودکار با استفاده از PowerShell به حافظه سیستم بفرستد.
CrackMapExec از اسکریپتهای ساده پایتون استفاده میکند؛ بنابراین میتوان انتظار عملکردی پایدار را از آن داشت؛ زیرا به هیچ کتابخانه و برنامه خارجی یا اضافی وابسته نیست.
جنبه منفی CrackMapExec پیچیدگی نسبی آن است و احتمالا نسبت به سایر برنامههایی که در این مقاله مورد بررسی قرار دادیم، به زمان بیشتری برای تسلط بر آن نیاز خواهید داشت.
11.jSQL Injection
برای جستوجوی اطلاعات موجود در پایگاههای داده سرورهای راه دور، میتوانید از jSQL Injection استفاده کنید. jSQL Injection یک ابزار جاوا و سبک وزن (حدود 2.5 مگابایت) است که میتواند بهطور خودکار اطلاعات را در پایگاه دادههای SQL وارد کند.
jSQL Injection ابزاری ساده با یک brute-forcer داخلی برای رمزگشایی رمزهای عبور و سایر دادههای رمزگذاری شده است. میتوانید از آن برای اسکن همزمان چندین وبسایت و کشف آسیبپذیریهای SQL آنها استفاده کنید.
jSQL Injection به شما اجازه نمیدهد که تغییری در پایگاه داده ایجاد کنید. همچنین قابلیتهای خودکارسازی محدودی دارد؛ زیرا نمیتوان از آن در اسکریپتها استفاده کرد.
12.Cisco Torch
Cisco Torch ابزاری مفید برای اسکن انبوه دادههاست که مزیت اصلی آن توانایی راهاندازی چندین فرآیند اسکن در پسزمینه، بدون به خطر انداختن عملکرد سیستم است.این ابزار بهطور گستردهای از Forking استفاده میکند و میتواند از چندین روش انگشتنگاری بهطور همزمان استفاده کند.
میتوان از این ابزار برای کشف هاستهای سیسکو از راه دور با سرویسهای Telnet، Web، NTP، SSH و SNMP و همچنین برای راهاندازی حملات دیکشنری علیه سرویسهای کشفشده استفاده کرد.
Cisco Torch یک ابزار Command-Line مفید است که حتی تسترهای باتجربه نمیتوانند بهطور موثر از آن استفاده کنند. بنابراین استفاده از آن را به تسترهای تازهکار پیشنهاد نمیکنیم. این ابزار با وجود پیچیدگی در عملکرد و یادگیری، بیشتر برای آزمایش محصولات سیسکو طراحی شده است.
13.سیستم ارزیابی آسیبپذیری باز (OpenVAS)
سیستم ارزیابی آسیبپذیری باز (OpenVAS)، که قبلا GNessUs نام داشت، فریمورکی متشکل از چندین سرویس و ابزار برای شناسایی و مدیریت آسیبپذیریهای شبکه است. این فریمورک میتواند برای نظارت فعال روی هاستهای شبکه بهمنظور یافتن مسائل امنیتی، تعیین شدت مسائل و کنترل نحوه برخورد با آنها استفاده شود. در اصل، OpenVAS ابزاری برای شناسایی هاستهایی است که بهدلیل استفاده از نرمافزار قدیمی یا پیکربندی نادرست آسیبپذیر هستند.
OpenVAS میتواند پورتهای باز یک هاست را اسکن کند، به ارسال بستههای تشکیلشده برای شبیهسازی یک حمله بپردازد، به پنل مدیریت دسترسی داشته باشد، دستورات خاصی را اجرا کند و غیره.
این فریمورک از مجموعهای از تستهای آسیبپذیری شبکه (NVT) استفاده میکند که شامل 50000 تست امنیتی برای تشخیص آسیبپذیری است. سپس شرح مشکلات شناختهشده با دو پایگاه داده مدیریت آسیبپذیری رایج بررسی میشود: CVE و OpenSCAP. OpenSCAP از چندین مشخصات از جمله OVAL، XCCDF، ARF، CVSS، CCE و CVE پشتیبانی میکند.
یکی از مزایای اصلی OpenVAS نسب به سایر اسکنرها، رایگان بودن آن است. این ابزار سازگاری بالایی با سیستمهای مجازیسازی از جمله VirtualBox، ESXi و Hyper-V دارد.
14. Burp Suite
Burp Suite یک پلتفرم یکپارچه برای اجرای تستهای امنیتی وباپلیکیشنها است. این پلتفرم مجموعهای از ابزارها را در اختیار قرار میدهد که میتوانند بهطور موثر در هر مرحله از فرآیند تست استفاده شوند؛ از ایجاد نقشه وبسایت گرفته تا تجزیهوتحلیل سطح حمله به وباپلیکیشنها و سواستفاده از آسیبپذیریهای امنیتی.
Burp Suite کنترل کاملی بر فرآیند تست را در اختیار شما قرار میدهد و امکان ترکیب تکنیکهای دستی پیشرفته را با اتوماسیون فرآیندها فراهم میآورد. این ترکیب نتیجهای سریعتر و موثرتر را فراهم میکند. Burp Suite میتواند اعمال شما را ذخیره کند و بعدا روند کار را از سر بگیرد. بهعلاوه این پلتفرم قابل توسعه است؛ بنابراین میتوانید بهراحتی از پلاگین و تنظیمات سفارشی روی آن استفاده کنید. اما مانند هر ابزار تست امنیتی دیگری، Burp Suite میتواند بهطور قابل توجهی به وباپلیکیشن آسیب برساند. پس مطمئن شوید که قبل از استفاده از این ابزار، نسخه پشتیبان برنامه تحت آزمایش را تهیه کردهاید.
15.FunkLoad
FunkLoad یک تستر وب محبوب برای آزمایش عملکردهای ترافیک وباپلیکیشنها است. این ابزار به زبان پایتون نوشته شده و به شما امکان میدهد وظایفی مانند تست وباپلیکیشن، عملکرد، ترافیک و میزان فشار روی برنامه را انجام دهید. میتوان از آن برای یافتن نقاط ضعف در یک وباپلیکیشن، شناسایی باگهایی که در طول آزمایش سطحی آشکار نشدهاند و بررسی قابلیت بازیابی برنامه استفاده کرد.
از FunkLoad میتوان برای نوشتن Web Agent با کمک اسکریپت استفاده کرد تا کارهای تکراری بهصورت خودکار انجام و در نهایت صرفهجویی در زمان تستکنندگان حاصل شود. همچنین میتوان از آن برای تست رگرسیون استفاده کرد. هنگامی که تمام تستها به پایان رسید، FunkLoad گزارش کاملی در مورد عملکرد برنامه آزمایششده ارائه میدهد.
ایراد FunkLoad این است که همیشه بهدرستی با کوکیها کار نمیکند و گاهی اوقات ممکن است آنها را نادیده بگیرد.
آنچه در آموزش تست نفوذ با کالی لینوکس خواندیم
هدف از تست نفوذ با کالی لینوکس شناسایی تمام راههایی است که مهاجم (هکر) میتواند به یک سیستم یا شبکه دسترسی پیدا و از این آسیبپذیریها برای سرقت دادهها، اختلال در عملیات یا ایجاد آسیب سواستفاده کند. تست نفوذ بخش مهمی از برنامه امنیتی هر سازمانی است که میتواند به شناسایی و رفع آسیبپذیریهای امنیتی قبل از سواستفاده توسط عوامل مخرب کمک کند. اگر نگران امنیت سیستمها یا شبکههای خود هستید، باید تست نفوذ را انجام دهید که بهترین ابزار آن کالی لینوکس است.
تلاش ما در این مقاله آگاهیرسانی و آموزش تست نفوذ با کالی لینوکس بود تا بتوانید مقدمات این کار را فراهم کرده و امنیت شبکه یا سیستمتان را بسنجید. حال مایلیم نظر و تجربه شما را از این کار بدانیم؛ آیا تابهحال تست نفوذ با کالی لینوکس را انجام دادهاید؟ نتیجه آن چه بود؟ خوشحال میشویم نظر خود را در کادر پایین بنویسید و آن را با ما به اشتراک بگذارید.
سوالات متداول
– همیشه قبل از انجام تست نفوذ، از صاحب سیستم اجازه بگیرید.
– یافتههای خود را بهموقع و در قالب گزارش حرفهای به صاحب سیستم ارائه دهید.
– فقط سیستمها و شبکههایی را آزمایش کنید که مجاز به آزمایش آنها هستید.
– سیستمعامل را بهطور منظم بهروز کنید تا احتمال وقوع خطر در آن به حداقل برسد.
– بهترین نسخه کالی برای استفاده، حالت مجازی است.
– از منابع معتبر ابزارها را دریافت و نصب کنید.
– قبل از شروع تست از سیستم نسخه پشتیبان تهیه کنید.
– از کالی توسط ماشین مجازی استفاده کنید تا عملکرد آن از کل سیستم تفکیک شود.
– از شبکه اختصاصی برای تست نفوذ استفاده کنید.
از اسفند 99 مشغول گشتوگذار در دنیای کلمات هستم؛ با این هدف که خوب بنویسم و این چشمانداز که کمکهای موثری کنم. بعداز گذشت سه سال و مطالعه زیاد در زمینههای گوناگون بازاریابی آنلاین ازجمله رفتارشناسی مخاطب آنلاین، حالا تلاش میکنم محتوایی بنویسم که شما بخونی، لُبکلام رو متوجه بشی، لذت ببری و با دست پر صفحه رو ترک کنی؛ شایدم بقیه نوشتههام رو بخونی :)