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

تمرین: manual دستور lsof را بخوانید. چه کاری انجام می‌دهد؟

تمرین: manual دستور lsof را بخوانید. چه کاری انجام می‌دهد؟ فایل ‌های باز را نشان می‌دهد. با استفاده از دستور lsof و option ‌های مختلف آن می‌توان فهمید هر پروسسی روی سیستم با چه فایل ‌هایی در حال کار کردن است. حال اگر دیدیم که برای یک user‌پروسس bash‌او یا پروسه vi (edit فایل است) در حال کار کردن با فایل /etc/shadow است این یک مسئله نگران کننده است. چون یک user نباید بتواند با فایل /etc/shadow کار کند. lsof می‌تواند پورت ‌های باز را هم نشان دهد (اینکه کدام پروسس در حال کار با چه پورتی است).

مانتیتورینگ پورت ‌ها هم کمک می‌کند که به مورد حمله قرار گرفتن سیستم خود پی ببریم (وجود پورت ‌های باز ناخواسته). دستوری که در ویندوز پورت ‌های باز را نشان می دهد netstat است.

در لینوکس هم با دستور netstat می‌توان وضعیت پورت ‌ها را بررسی کرد. یکی از بحث ‌های نفوذ information gathering است. قبلا برای بدست آوردن IP فرد مورد هدف با وی chat می‌کردند. Yahoo Messenger‌زمانی که بین دو نفر یک ارتباط برقرار می‌کند (در ورژن ‌های قدیمی) یک پورت روی سیستم نفوذگر listen می‌شود و طرف دیگر chat به آن وصل می‌شود و داده ارسال می‌کند. حال کافی بود با استفاده از دستور netstst بررسی کرد که آن پورت با شماره خاص از چه IP‌ بوده است.

سوکت (socket) وسیله ‌ای است که با استفاده از آن ارتباط شبکه ‌ای را می‌توان فراهم کرد. در لینوکس انواع سوکت ‌ها را داریم مثل TCP socket (network socket)، local socket ( که برای ارتباط بین پروسس ‌ها با یکدیگر استفاده می‌شود).

پس با بررسی خروجی دستور netstat بررسی می‌کنیم که چه پورت ‌هایی روی سیستم ‌ها باز شده است، مثلاً اگر روی سیستم پورت 4444 باز شده است باید نگران شد. برای مثال پورت 4444 پورتی است که خیلی از برنامه ‌های hacking و exploiting از این پورت برای ارسال اطلاعات استفاده می‌کنند.

اگر سیستم شما با سیستم چت (internet relay chat) IRC کار نمی‌کند،‌اما پورت IRC روی سیستم شما باز است نگران کننده است (مثلا فرض کنید یک هفته پیش به IRC وصل شده اید اما آلان آن پورت باز است). خیلی از زامبی ‌ها (Zombie) با استفاده از کانال ‌های چت IRC به استخدام مرکز کنترل آن بد افزار در آمده ‌اند. این زامبی ‌ها روی همان پورت IRC،listen  می‌کنند تا در صورتی که دستوری از مرکز کنترلشان آمد اجرا کنند.

یکی از مشکلاتی که در یک سیستم می‌تواند پیش بیاید این است که هارد آن پر شود. در آن صورت سیستم از کار می‌افتد و به گونه ‌ای دسترس پذیری مختلف می‌شود.

دستور df را (در لینوکس) وارد کنید . خروجی آن را مشاهده کنید.

یادآوری: با دستور type می‌توان مکان یک دستور را پیدا کرد (مثال : دستور type df)

پارامتر h- در df خروجی را به صورت خوانا برای انسان (human readable)‌ نشان می‌دهد. دستور (disk format) df وضعیت دیسک ‌ها و پارتیشن ‌ها را نشان می‌دهد.

توجه: ابزارهای مختلفی (گرافیکی و…) وجود دارند که می‌توان با آن ‌ها مانتیورینگ را انجام داد.

به شکل 1 که خروجی دستور df -h روی یک سیستم هست نگاه کنید به سطر آخر این خروجی دقت کنید . چرا جمع used و avail ‌برابر با size نیست؟

شکل 1

پاسخ : فضایی را برای نگهداری یک سری از اطلاعات سیستمی رزرو کرده است که آن فضا را در محاسبه نیاورده و به شما نشان نداده است. البته به شما اجازه استفاده از آن فضا هم داده نمی‌شود اما فضا وجود دارد.

روت کیت (rootkit) یک نوع بدافزار است. روت کیت سطح Application رفتار یک سری از application ‌هایی که پر استفاده هستند را عوض می‌کند که admin را گمراه کند. مثلا هر وقت admin دستور ps را می زند، پروسسی به نام x را هیچ وقت نشان نمی‌دهد و یا هر وقت netstat می زند پورت 3434 نمایش داده نمیشود در صورتی که این پورت باز است. در حالی که اگر یک ابزار دیگر مثل nmap استفاده کنیم آن پورت را باز (open)‌ نشان می‌دهد.

روت کیت سطح کرنل، رفتار خود کرنل (هسته سیستم) را عوض می‌کند (یادآوری: سطح بندی سیستم: از پایین ترین : سخت‌افزار، کرنل، sell، applicationها) . تمام برنامه ‌ها مثل ps، netstat و… هم از کرنل برای انجام کارهای خود استفاده می‌کنند (مثلا از کرنل می پرسند که پورت ‌های باز چیست. خروجی را در قالب مورد نظر آماده کرده و به کاربر نمایش می‌دهند). روت­کیت سطح کرنل از آن جایی که رفتار کرنل را عوض می‌کند، پس شما هر application را که نصب کنید باز هم اطلاعات اشتباه به شما نشان می‌دهد. راه حل: می‌توان از بیرون سیستم را مانیتورینگ کرد. مثلا آیا از بیرون با ‌ncat می‌توان به پورت x‌ وصل شد یا نه؟ چون مثلا در سیستم نشان داده شده که این پورت بسته است. این گونه می‌توان سیستم را مانیتور کرد.

Memory Management Unit ) MMU): واحد مدیریت حافظه  نام دارد.

Entry point:‌آدرس نقطه شروع برنامه است (بطور خیلی کلی: مثلا در زبان برنامه نویسی C، تابع main‌نقطه شروع برنامه است.)

اطلاعات خوبی در زیر شاخه /proc قرار دارد. در سیستم ‌های لینوکسی /proc یک شبه فایل سیستم است که اطلاعات اجزای مختلفی مثل interrupt ‌ها، memory، virtual memory، CPU و … وجود دارد. کافی است تا این فایل ‌ها را cat کنیم. مثال:

cat /proc/cpuinfo

یادآوری: برنامه ‌ای که می خواهد اجرا شود،‌ابتدا باید از هارد وارد حافظه (RAM) می‌شد. رجیستر (Instruction Pointer)IP نیز در هر لحظه به دستوری اشاره می‌کند که باید اجرا شود.

اسکرول به بالا