لینوکس ۳۰۳؛ شب ۳۹: تست نفوذ؛ پایان کار یک گزارش قابل اصلاح است
فهرست نوشته
اسکن آسیبپذیری تمام شده، اما مدیر هنوز نمیداند چه چیزی را باید عوض کند. امشب روش تست نفوذ، اجزای Metasploit و گزارش قابل اقدام را میشناسیم؛ ابزار را در خدمت یک سؤال محدود میگذاریم.
این جلسه بخشی از دورهٔ لینوکس ۳۰۳ در ۴۰ شب است.
محیط تمرین: آزمایشگاه ایزوله؛ Metasploit Framework آماده در VM تست جدا، مثلاً Kali؛ فقط srv با scope مشخص.
جایگاه در دوره: هدفهای 335.2 آزمون 303-300.
ارزیابی و اثبات دو سطح متفاوتاند#
اسکن، نشانهها و ضعفهای احتمالی را فهرست میکند. تست نفوذ با scope و قواعد تعامل مشخص، اثر مسیرهای منتخب را بررسی میکند. مجوز باید هدفها، زمان، روشهای مجاز، دادهٔ حساس و نقطهٔ توقف را روشن کند. داشتن مجوز برای یک VM، مجوز اسکن تمام شبکهٔ محل کار نیست.
گردش رایج از گردآوری اطلاعات و enumeration تا بررسی دسترسی، احتمال افزایش اختیار و تحلیل اثر ادامه دارد. persistence و پوشاندن ردپا در مدل رفتار مهاجم وجود دارند؛ در ارزیابی دفاعی، جمعآوری شواهد و پاککردن تغییرهای مجاز خودمان مهم است، نه حذف log برای مخفیکردن کار. یک روش میتواند در scope ممنوع باشد، حتی اگر ابزار آن را دارد.
نقشهٔ Metasploit#
Exploit module مسیر یک ضعف را هدف میگیرد؛ payload رفتار پس از دسترسی را تعیین میکند؛ auxiliary برای کارهایی مانند اسکن و بررسی مستقل است؛ post module به فعالیت پس از دسترسی مربوط است. encoder با exploit یکسان نیست و تضمین دور زدن دفاع نیست. datastore گزینههای module را نگه میدارد؛ session هم یک وضعیت زندهٔ دسترسی است، نه صرفاً نتیجهٔ scan.
در این تمرین فقط یک auxiliary تشخیص نسخهٔ SSH را استفاده میکنیم. در VM تست:
msfconsole -q
search type:auxiliary name:ssh_version
use auxiliary/scanner/ssh/ssh_version
info
show options
set RHOSTS 192.168.56.10
set THREADS 1
run
exit
اینها فرمانهای کنسول Metasploit هستند، نه همه فرمان shell. مسیر module را با نتیجهٔ search نسخهٔ نصبشده تأیید کن؛ scope فقط یک host است. انتظار داریم در صورت دسترسی TCP/22، banner سرویس دیده شود. همین مشاهده، اثبات آسیبپذیری نسخه یا دسترسی غیرمجاز نیست.
ابزارهای همراه چه نقشی دارند؟#
Kali یک توزیع شامل ابزارهای آزمون است؛ استفاده از آن مهارت تحلیل نمیسازد. Armitage یک رابط برای برخی گردشهای Metasploit است؛ پشتیبانی و سازگاری نسخه باید جدا بررسی شود. Social Engineer Toolkit یا SET برای سناریوهای مهندسی اجتماعی مطرح است؛ شناخت نام ابزار به معنی مجوز ارسال پیام به اشخاص واقعی نیست. این دوره تمرین انسانی واقعی خارج از scope ندارد.
گزارش کوتاه اما قابل اقدام#
برای یک finding، پیششرط، دارایی، شاهد، پیامد، اصلاح و آزمون دوباره را بنویس. مثال: «TCP/22 از VM مهمان به srv باز است؛ policy میگوید فقط client مدیریت باید برسد؛ counter rule عمومی افزایش یافته؛ آن rule باید محدود و آزمون از هر دو مبدأ تکرار شود». این گزارش از «امنیت ضعیف است» مفیدتر است.
شدت را با فرضهای روشن بیان کن؛ یک ضعف بدون دسترسی موردنیاز اثر متفاوتی دارد. رازها، کلیدها و محتوای خصوصی را در proof عمومی نگذار. نبود finding در scope کوچک هم به معنی نبودن همهٔ ضعفها نیست.
مأموریت امشب#
گزارش درس سیوهشتم را به یک finding یکصفحهای تبدیل کن. اگر نسخهٔ اسکنر تغییر کرده، آن را ثبت کن. پاسخ راهنما: نتیجه باید برای کسی که تمرین را ندیده قابل بازتولید باشد، با کمترین دادهٔ لازم و مسیر اصلاح مشخص.
منابع: Metasploit Framework و راهنمای تست امنیت OWASP .