مبحث یکم : مقدمه و تاریخچه
مبحث دوم: مراحل نفوذ کردن / جلوگیری از نفوذ
مبحث سوم: حملات شبکه ای
مبحث چهارم - کار عملی
مبحث پنجم - DHCP
مبحث ششم - وب و حملات مطرح در آن
مبحث هفتم - حملات DoS
مبحث هشتم - سیستم عامل
مبحث نهم - مهندسی اجتماعی
مبحث دهم - Vulnerability (آسیب پذیری)

سوال : اینکه کرنل لینوکس یکپارچه (monolithic) است یعنی چه ؟

می گویند بعضی از کرنل ها  hybrid است ، بعضی میکروکرنل هستند. این یعنی کرنلی که نوشته شده است ( هسته اصلی سیستم ) چه قابلیت های را همراه خود دارد . یک سیستم می گوید قابلیت هایی که همراه کرنل در اختیار می گذارم ، خیلی زیاد است ( مثلا file systemها را می شناسد ، process ها را می تواند مدیریت کند ، بین پروسس ها پیغام می تواند بفرستد ، network را می توان handle کند . ).  به این کرنل یکپارچه می گویند . اما یکی دیگر کرنل خود را خیلی basic ارائه داده است به طوری که خیلی سریع بالا بیاید و البته قابلیت های ابتدایی را هم دار باشد . به این کرنل میکروکرنل می گویند . قابلیت های دیگر را با ماژول ها اضافه می کنند .

  • بعد از آن که با telnet و یا ssh به یک سرور وصل شدیم صفحه ی شکل (4) نمایش داده شد . اول از همه موقع welcome یک پیغام نمایش می دهد که در آن مشخصاتی از سرور را ارائه می دهد

شکل 4

اگر این مشخصات واقعی باشند این کار خوبی نیست. چون نفوذگر با داشتن این اطلاعات به دنبال آسیب پذیری های خاص این ورژن می گردد . اما admin می تواند طوری Config را انجام دهد که یا اطلاعات نمایش داده نشود و یا به صورت نادرست و غیر واقعی نمایش داده شوند .

در این شکل نیز می بینید که یک پیغام داده شده است که ” Login بعد از 60 ثانیه time out می شود .” این برای این است که نفوذگر تعداد زیادی session را  با telnet ایجاد کند به طوری که سیستم را مورد حمله DoS قرار دارد ( مانند حمله http slow post در وب ). بازکردن تعداد زیادی session ، موجب مصرف منابع سیستم می گردد . این کار موجب می شود تا کمی سیستم در مقابله با حمله Dos امن گردد.

به شکل 5 نگاه کنید .

شکل 5

پس از 4 بار login اشتباه ، دیگر دسترسی را قطع کرده است . این ویژگی امنیتی برای جلوگیری از brute force (حمله با تمام قوا) و یا برای حمله dictionary که منجر به حدس کلمه عبور می باشد است ( یعین جلوگیری از اینکه نفوذگر بیاید و تمام یا بخشی از فضای حالت را چک کند تا کلمه عبور را پیدا کند ). میتوان پس از قطع ارتباط دراین حالت ، اطلاعات فردی را که 4 بار login اشتباه انجام داده را به admin فرستاد و یا ثبت کرد. IP نفوذگر را ثبت کرد به گونه ای که دیگر از آن IP ، ارتباط نگیرد .

  • کاری که در شکل 5 انجام شده است این است که یک ارتباطی که به پوت 23 سرور برقرار شده است به علت login های اشتباه terminate می شود .
  • با استفاده از سرویس (Pluggable Authentication Module) PAM مسائل و محدودیت های مربوط احراز هویت و کنترل دسترسی انجام می شود .
  • اگر به شکل 5 دقت کنید کلمه عبور هایی که وارد شده نمایش داده نشده است . یعنی حتی به صورت ستاره هم نشان داده نشده است . مزیت این روش این است که از حمله shoulder surfing جلوگیری می شود. مثالی از این حمله این گونه است: فرض کنید شما در حال وارد کردن کلمه عبور هستید، همکار یا فرد دیگری از کنار شما رد می شود اگر پسورد به صورت ستاره نمایش داده شد می توانند بفهمند که چندکاراکتر بوده است .
  • پسورد ها (مثل پسوردهای بالا) در ویندوز در مسیر C:\windows\System32\Config هستند . فایل SAM کلمات عبور را نگهداری می کند. اگر بخواهیم این فایل را از این مسیر در مسیر دیگر Copy کنیم ، اجازه این کار داده نمی شود ( اگر admin هم باشیم باز هم اجازه نمی دهد !) . ابزارهایی وجود دارند مثل SAM dump که از طریق روش هایی ، این فایل را در اختیار کسی که test را انجام می دهد قرار می دهند . البته خود ویندوز هم قبلا در مسیری یک کپی از این فایل را ذخیره می کرد که درزمان خرابی فایل اصلی ، از آن به عنوان recovery فایل خراب شده استفاده کند ، که از آن فایل backup( که کپی فایل SAM دریک مسیر دیگر بود ) می شد dump هایی تهیه کرد.
  • در لینوکس فایلی در زیرشاخه /etc/passwd وجود دارد. آن را cat کنید . یادآری : cat دستوری است ( مخفف Concatenate) که برای مشاهده محتویات فایل استفاده می شود . در این فایل چه اطلاعاتی وجود دارد ؟ مثلا در این فایل ، پسوردها نگه داری می شود . این فایل به login ربط دارد و می گوید چه کاربری (user)  پسوردش چه user id و group id اش چه چیز است و سایر اطلاعات ( مثل شماره تلفن کاربر ) واینکه آدرس home کاربر کجاست. و در نهایت اینکه shell پیش­فرضش چه چیزی است  ( یعنی وقتی login می کند کدام shell بیاید و با او صحبت کند مثلا shell  می تواند bash باشد). البته ممکن است no login باشد یعنی این کاربر نمی تواند login کند .
  • در لینوکس درباره ی دستورات ، فایل ها ، توابع و امکاناتی که سیستم در اختیار قرار می دهد manual داریم . دستور man passwd ، توضیحاتی را درباره passwd ارائه می دهد . این دستور را اجرا کنید . می بینید که بالای صفحه نوشته شده است . PASSWD(1) . این عدد چیست ؟ مکن در سیستم عامل لینوکس خود ، هم یک دستور passwd داشته باشیم ، هم یک فایل با این نام داشته باشیم و یا تابعی با این نام داشته باشیم. از کجا باید بین manual های آن ها تمایز قائل شد . با استفاده از این شماره ها هر شماره به یک category (دسته) اختصاص دارد مثلا command ها (user utilities) را در دسته 1 قرار داده است . مثلا admin commandها را در دسته 8 قرار داده است .برای اطلاع از این دسته ها باید manual دستور man را بخوانید ( یعنی دستور man man را بزنید و در آن عبارت number  ( جستجو کنید و …) با دستور q می توان از manual خارج شد . برای آن که فایل passwd را توضیح دهد باید دستور زیر را وارد کنید .

man 5 passwd

توضیحاتی درباره ی آن فایل داده شده است ( 5 عددی است که برای فایل ها و configfileها است ) .

  • فایل passwd موقع login مورد استفاده قرار می گیرد . یعنی زمانی که login می کنیم و login درست انجام می شود ، سیستم از این فایل ، اطلاعاتی که در بالا به آن ها اشاره شد را برای ما فراهم می کند.
  • پسوردها در فایل /etc/shadow قرار دارند . که البته برای Cat کردن آن نیاز به کاربر root دارد . manual فایل shadow را بخوانید (man 5 shadow) . این فایل حاوی پسوردها به صورت encrypt شده است پسوردها در قسمت دوم قرار دارند . همانطور که می بینید ابتدای کلمه عبور علامت $ و یک عدد به دنبال آن آمده است . در manual گفته شده است که مثلا اگر $2 باشد یعنی از DES استفاده شود و …
اسکرول به بالا