No Up

هک
I. مقدمه
یکی از مسائلی که در امنیت یک سیستم نقش مهمی ایفا میکند نحوه ی کنترل سرویسهاست ؛ شاید برایتان این سؤال پیش آید که سرویسها با امنیت چه رابطهای دارند؟ از شما سوالی میپرسم :"در یک شبکه یک مهاجم چگونه به سیستم شما آسیب می رساند؟" اگر پاسخ را نمیدانید باید بگویم از اصلیترین روشها ورود از طریق پورتهای باز سیستم و یا استفاده از مشکلات امنیتی برنامههای شبکه مانند سرویس دهندههاست. بنابراین بسیارحیاتی است که شما مدیریت کاملی برروی تمام سرویسهایی که در حال استفاده از آنها میباشید داشته باشید. درواقع یک سرویس که به آن نیازی نیست اما درحال اجرا شدن است میتواند احتمال خطر را بیشتر کند. برای نمونه اگر شما نیازی به سرویس پستالکترونیک در شبکه ی خود ندارید وجود یک سرور پست الکترونیک میتواند شانس مهاجم را برای خرابکاری بیشتر کند. علاوه براین هنگامی که یک سرویس در حال اجراست درواقع مقداری از حافظه و پردازنده ی شما را استفاده میکند و اگر شما سرویسهایی را که نیاز ندارید بیهوده اجرا کنید مسلما این امر باعث کندتر شدن سیستم شما خواهد شد. با توجه به مسائل مطرح شده در بالا شما به عنوان یک مدیر سیستم حتی به عنوان یک کاربر کنجکاو لینوکس احتیاج دارید تا با کنترل سرویسها در لینوکس آشنا شوید. در این مقاله این موضوع را بررسی میکنیم. قبل از این که به بحث مدیریت سرویسها وارد شویم شما باید با مفهوم سطوح اجرایی آشنا باشید. زمانی که کامپیوتر شما بوت شد لینوکستان باید در یکی از سطوح اجرایی یا RunLevel ها کار کند. درواقع در لینوکس نحوه ی اجرای سرویسهای سیستم شما دقیقا به RunLevel ای که شما در آن هستید وابسته است. ایده ی ایجاد RunLevel ها باعث شده تا شما بدون دغدغه ی خاطر سرویسها را در سطوح مختلفی تقسیم کنید و هنگامی که لینوکستان وارد یکی از این سطوح شد فقط سرویسهایی را اجرا خواهد کرد که در آن سطح قرار دارد . برای روشن تر شدن این موضوع بهتر است ابتدا تمام سطوح اجرایی لینوکس را برایتان بگویم ؛ سطوح اجرایی در لینوکس شامل ۱۲ سطح میشود که در عمل ما فقط با چند سطح خواص کارمی کنیم. به جودل زیر توجه کنید: مودهای رزور شده از سوی سیستم رزرو شدهاند و قابل تغییر نیستند یعنی همواره سطح 0 برای خاموشکردن سیستم و سطح 6 برای Reboot کردن سیستم استفاده میشود.از آنجایی که سطوح 1و2 و 3 و 5 قابل تغییر هستند توزیع کنندههای مختلف لینوکس این سطوح را کمی تغییر میدهند برای نمونه در سیستمهای Debian سطوح اجرایی به صورت زیر تعریف شدهاند : بنابراین برای این که بدانید توزیع شما از چه شمارهای برای نام گذاری سطوح استفاده میکند حتما به راهنمای سیستمتان مراجعه کنید. حال این پرسش پیش میاید که لینوکس شما پس از بوت وارد کدام سطح اجرای میگردد؟ برای این که سطح اجرایی پیش فرض را انتخاب کنید در فایل etc/inittab/ خط id:5:initdefault: را جستجو کنید. در این نمونه سیستم پس از بالا آمدن وارد سطح اجرایی ۵ میشود ، در صورتی که نیاز به تغییر این سطح دارید میتوانید این فایل را ویرایش و مقدار عدد نوشته شده را به سطح اجرایی که شما میخواهید پیش فرض سیستمتان باشد تغییر دهید. نکته ! اگر به محتویات این فایل توجه کنید در قسمت ابتدایی آن میتوانید خطوطی را بیابید که با علامت پوند یا # شروع شدهاند و درباره ی سطوح اجرایی سیستمتان به شما کمک میکنند ، درواقع شمارهی سطوح اجرایی سیستمتان را برایتان تشریح میکنند ، برای نمونه در سیستم دبیان نوشته شده : در نهایت دو نکته در این قسمت لازم به ذکر هستند ، یکی نحوه ی اطلاع از سطح اجرایی که در حال حاضر در آن هستید و دیگری رفتن از یک سطح اجرایی به سطح اجرایی دیگر در زمانی که سیستم شما به طور کامل بوت شده و وارد یک سطح شده است. برای این دو منظور از دستورات زیر استفاده میکنیم: # runlevel دستور نخست شما را از سطح اجرایی که در آن هستید مطلع میکند و دستور دوم شما را به سطح اجرایی که میخواهید منتقل میکند. تا اینجا با مفهوم سطوح اجرایی آشنا شدیم . هر سرویسی که شما در کامپیوتر خود دارید در واقع یک برنامه است که یا به صورت دستی آن را اجرا میکنید یا زمان بوت سیستم به صورت خودکار اجرا میشود. در لینوکسها تمام سرویسهای که در زمان بوت شدن سیستم اجرا میشوند یک تکه برنامه دارند که در مسیر خواصی ذخیره میشود.(عجله نکنید مسیر را تا چند خط دیگر میگویم ;) ) در لینوکس ها برای هر سطح اجرایی یک دایرکتوری وجود دارد که در مسیر etc/rc#.d/ قرار دارند. توجه داشته باشید امکان دارد این مسیر در سیستم شما متفاوت باشد برای نمونه در توزیع ردهت این مسیر etc/rc.d/rc#.d/ میباشد . در اینجا علامت پوند یا # شمارهی سطح اجرایی است و هر تکه برنامهای که در داخل این دایرکتوری ها باشد در زمان بوت سیستم ارا خواهند شدبرای نمونه اگر تکه برنامهای در etc/rc3.d/ باشد زمانی که سیستم شما وارد سطح اجرایی ۳ میشود اجرا میشود ویا در توزیع ردهت اگر کدی در etc/rc.d/rc3.d/ قرار داشته باشد زمانی که سیستم ورد سطح اجرایی ۳ میشود اجرا خواهد شد. برای نمونه به این نمونه از سیستم من نگاهی بیاندازید : [root@GNUIran:~]#ls -C /etc/rc2.d آنچه مشاهده میکنید سرویسهایی است که در زمان بوت در سطح اجرایی ۲ اجرا میشوند (یا از کار میافتند!). با کمی دقت در نامگذاری این فایل ها متوجه میشویم که همهی آنها یا با K شروع شدهاند یا با S در واقع K ابتدای Kill و S ابتدای Start هستند. سرویسهایی که با K شروع شدهاند زمان بوت سیستم از کار میافتند و سرویس هایی که با S شروع شدهاند زمان بوت سیستم شروع به کار میکنند. پس از S و K شما دو رقم مشاهده میکنید که پس آز این دورقم نام سرویس آمده است. این دورقم حق تقدم سرویسها را مشخص میکند ؛ به نمونهی بالا توجه کنید ، در این نمونه ابتدا سرویس ppp که حق تقدمش ۱۴ است اجرا میشود وسپس سرویس DNS masq که حق تقدم آن ۱۶ است سپس portmap و پس از آن nessusd که حق تقدم ۱۸ دارد. در واقع این فایلها یک Symbolic Link هستند به اسکریپتهایی در دایرکتوریهای دیگر از جمله etc/init.d/ . هر آنچه لازم است بدانید میدانید ! هم اکنون میتوانید یک سرویس را فعال یا غیر فعال کنید ، برای نمونه برای غیر فعال کردن سرویس nessusd شما می توانید به راحتی با یکتغییر نام از S به K این کار را انجامدهید تا بار بعد که سیستم شما بوت میشود دیگر این سرویس اجرا نگردد. به دستورات زیر توجه فرماییید : [root@GNUIran:~]#mv /etc/rc2.d/S18nessusd K18nessusd S18nessusd همان طور که شماهده فرمودید از این پس nessusd زمانی که سیستم وارد سطح اجرایی ۲ شود از کار خواهد افتاد ، اگر مایلید که با هر بار اجرای لینوکستان سرویس دهنده ی وب آپاچی نیز اجرا شود میتوانید K20apache را به S20Apache تغییر نام دهید تا با هر بار اجرای سیستم به این سرویس دهنده نیز اجرا شود. البته اگر شما در شبکه نیستید و به عنوان یک برنامهنویس وب در حال استفاده از آپاچی هستید توصیه میکنیم که بعد از راهاندازی سیستم در زمانی که نیاز به این سرویس دهنده دارید آن را اجرا کنید تا از مصرف بیهودهی حافظه و پردازنده جلوگیری شود ! و اگر سیستم شما یکی از کامپیوترهای شبکه است احتمال بروز خطر نیز کاهش یابد. IV.برنامههای واسط برای کنترل اغلب توزیعهای لینوکس برای مدیریت سرویسها برنامههای گوناگونی دارند ، شما با توجه به نیازتان میتوانید از این برنامهها نیز برای کنترل سرویسها استفاده کنید. مسلما ما در اینجا نمیتوانیم نام تمام این برنامهرا بگوییم یا راهنمای کامل آنها را برایتان بنویسیم. بنابراین تنها به برنامههای مشهور اشارهای خواهیم کرد. ۱. ردهت ردهت برنامهای به نام chvonfig دارد که به شما در مدیریت rc#.d ها کمک میکند. البته این برنامه در اصل مطعلق به IRIX بوده که برای ردهت بازنویسی و بهینه سازی شده و امکانات دیگری به آن افزروده شده. این برنامه به شما اجازهمیدهد تا تمام سرویسهایی را که در etc/init.d/ قرار دارند را مدیریت کنید. برای دیدن لیستی از سرویسها در سطوح اجرایی مختلف از گزینه ی --list استفاده کنید ؛ chkconfig --list در نمونه ی بالا سرویس آپاچی در سطوح ۲ و ۴و ۵ خاموش شده است. برای روشن کردن یک سرویس مانند نمونهی زیر اقدام کنید: در نمونه ی بالا سرویس nessusd در سطوح ۱ و ۲ و ۴ فعال شده است. ۲.دبیان در دبیان ابزاری به نام rcconf وجود دارد که به راحتی میتوانید از طریق این ابزار که برپایهی منو میباشد سرویسهای خود را مدیریت کنید ، کافیست در خط فرمان دستور rcconf را اجرا کنید تا پنجرهی این برنامه مانند شکل - ۱ باز شود ، در این پنجره کافیست سرویسهایی را که میخواهید فعال باشند با علامت استریسک یا * [۱] مشخص کنید و هر سرویسی را که میخواهید با برداشتن علامت آن ، غیر فعالش کنید. شکل شمارهی ۱ ۳. زوزه در زوزه شما باید از ابزار کنترل سیستم قدرتمند YaST استفاده کنید ، در این ابزار به بخش مدیریت سرویسها بروید ، کافیست چند کلیک بکنید تا سرویسهای مورد نیازتان را انتخاب کنید . از این پس بعد از هر بار خاموش و روشن کردن سیستم ، سطوح اجرایی مطابق تنظیمات شما سرویسها را اجرا خواهند کرد . شکل شمارهی ۲ ۴. سایر برنامهها همان طور که گفته شد با توجه به توزیعی که با آن کار می کنید برنامههای مدیریتی متفاوت خواهند بود برای نمونه در سیستم ردهت برنامهی گرافیکی servie Configuratio استفاده کنید که از منوی System settings >Server settings قابل دسترسی است. شکل شمارهی ۳ در پایان امیدوارم این مقاله توانسته باشد به شما در کنترل سرویسها کمک کرده باشد..
II. سطوح اجرایی
0
برای خاموش کردن سیستم استفاده میشود . (رزرو شده)
1
مود تک کاربره.
2
مود چند کاربره بدون پشتیبانی NFS و سایر امکانات شبکه ی راه دور.
3
مود چند کاربرهی کامل. (سطح ۲ همراه پشتیبانی از NFS)
4
این سطح استفاده نمیشود.
5
مود چند کاربرهی کامل همراه با X11 . (سطح ۳ همراه با گرافیک X11)
6
ریست کردن سیستم .(رزرو شده)
S,s
اسکریپتهایی که برای ورود به سطح ۱ استفاده میشوند ؛ مستقیما استفاده نمیشوند.
7-9
برای این سطوح سطوح تعریفی اراسه نشده.
0
خاموش کردن سیستم (رزرو شده)
1
مد تک کاربره
2-5
مد چند کاربره با شبکه
6
ریبوت کردن سیستم (رزرو شده)
# Runlevel 1 is single-user.
![]()
#telinit 1
III.نحوهی کنترل سرویسها
![]()
K20apache K20ssh S16portmap S20dhcp S99gdm
K20apache2 S10sysklogd S18nessusd S20xprint
K20qmail S11klogd S20inetd S21nfs-common
K20lpd S14ppp S20makedev S89atd
K20mysql S15dnsmasq S20pppstatus S89cron
[root@GNUIran:~]#
![]()
[root@GNUIran:~]#ls -C /etc/rc2.d
K20apache K20ssh S16portmap S20dhcp
K20apache2 S10sysklogd S20xprint S21nfs-common
K20qmail S11klogd S20inetd S89atd
K20lpd S14ppp S20makedev S89cron
K20mysql S15dnsmasq S20pppstatus S99gdm
[root@GNUIran:~]#
برای چک کردن یک سرویس از --list و نام آن سرویس استفاده کنید : chkconfig --list nessusd
برای از کار انداختن یک سرویس در سطوح اجرایی مختلف مانند نمونهی زیر اقدام کنید:
![]()
[root@GNUIran]#chkconfig --lvel1 245 apache off
![]()
[root@GNUIran]chkconfig --level1 124 nessusd on


ابزار دیگر برنامهی Sysv init Editor در محیط KDE است که در صورتی که محیط KDE را نصب کرده باشید میتوانید از این ابزار استفاده کنید ، برای کار با این ابزار کافیست از لیست سمت چپ سرویسی را که میخواهید بگیرید و به سطح اجرایی مورد نظر خود بیاندازید (Drag and Drop) و اگر میخواهید سرویسی در سطحی اجرا نشود به راحتی روی آن کلیک راست کرده و Delete را انتخاب کنید. میتوانید شمایی از این برنامه را در شکل ۳ ببینید.

موفق و پیروز باشید.
متن زير يك تست سريع و آموزنده مي باشد كه به برخي از سوالات شما در زمينه امنيت اطلاعات پاسخ مي دهد. همانطور كه خواهيد ديد به صورت پرسش و پاسخ بيان شده است.
باب امنيت اطلاعات اغلب پيچيده مي باشد. بر همين اساس اين مبحث به برخي از سوالاتي كه ممكن است براي شما ايجاد شود ، پاسخ داده است و پيشنهاداتي را براي آن ارائه داده است تا به سادگي قبول كنيد كه سيستم هاي شما نيز ممكن است در معرض خطر قرار گيرد.
1-اگر امنيت اطلاعات را افزايش دهيم ، كارايي كاهش پيدا مي كند. درست يا غلط ؟
درست – امنيت اطلاعات هزينه مربوط به خودش را دارد. افزايش امنيت اطلاعات ممكن است به روالهاي موثر اضافي از جمله «تكنولوژي» و «سرمايه گذاري » نياز داشته باشد.
افزايش امنيت اطلاعات ممكن است پيشرفت جريان كار را با كندي مواجهه كند و اين امر ممكن است در كارايي افراد و شبكه شما نمود پيدا كند. امنيت اطلاعات ممكن است به معني قفل كردن ايستگاههي كاري و محدود كردن دسترسي به اتاقهاي كامپيوتر و سرور شما باشد. هر سازماني بايد هنگامي كه به مقوله امنيت اطلاعات مي پردازد به صورت انديشمندانه اي بين خطرات ( Risks ) و كارآيي توازن برقرار كند.
2-حملاتي كه توسط نفوذگران خارجي انجام مي گيرد نسبت به حملات كارمندان داخلي هزينه بر تر و خسارت بار تر مي باشد. درست يا غلط ؟
غلط- حملات كارمندان داخلي نوعا بسيار خسارت بار تر از حملات خارجي گزارش شده است. بر طبق آمارهاي انستيتو امنيت كامپيوتر (Compuetr Security Inistitu ) ميانگين حملات خارجي 57000 دلار و ميانگين هزينه حملات داخلي 2700000 دلار برآورد شده است.
كارمندان داخلي اطلاعات محرمانه بيشتري درباره سيستم هاي هدف در دسترس دارند از آن جمله مي توان اطلاعاتي درباره فعاليت هاي ديده باني (Monitoring ) را نام برد (به خصوص نقاط ضعف اين فعاليتها )
3-پيكربندي يك ديواره آتش (Firewall ) به صورت كامل ما ر در مقابل حملات خارجي ايمن مي كند. درست يا غلط ؟
غلط – آمارهاي انستيو امنيت كامپيوتر نشان مي دهد كه 3/1 شركتهايي كه از ديواره آتش استفاده كرده اند هنوز از دست نفوذگران بد انديش در امان نمانده اند. اولين كاركرد ديواره آتش بستن پورتهاي مشخص مي باشد به همين دليل در بعضي از مشاغل نياز است كه بعضي از پورتها باز باشد. هر پورت باز مي تواند يك خطري را براي سازمان ايجاد كند و يك معبر براي شبكه شما باشد.
ترافيكي كه از ميان يك پورت مي گذرد را بايد هميشه به صورت سختگيرانه اي ديده باني (Monitor ) كرد تا تمامي تلاشهايي كه منجر به نفوذ در شبكه مي شود شناسايي و گزارش شود.
يك ديواره آتش به تنهايي نمي تواند يك راه حل جامع باشد و بايد از آن به همراه تكنولوژي هاي IDS (Intrusion Detection System ) و روشهاي تركيبي استفاده كرد.
4-اگر ديواره آتش من به صورت مناسبي پيكر بندي شود ديگر نيازي به ديده باني بيشتر ترافيك شبكه نمي باشد. درست يا غلط ؟
غلط – هميشه نفوذگران خبره مي توانند يك ديواره آتش را در هم شكنند و به آن نفوذ كنند. به همين دليل ديده باني كليدي براي هر برنامه امنيت اطلاعات مي باشد. فراموش نكنيد كه ديواره آتش نيز ممكن است هك شود و IDS ها راهي مي باشند براي اينكه بدانيد چه سيستم هايي در شرف هك شدن مي باشند.
5-ديواره هاي آتش بايد به گونه اي پيكربندي شوند كه علاوه بر ترافيك ورودي به شبكه ، ترافيك هاي خروجي را نيز كنترل كنند . درست يا غلط ؟
درست - بسياري از سازمانها توجه زيادي به محدود كردن ترافيك ورودي خود دارند ، اما در مقايسه توجه كمتري در مسدود كردن ترافيك خروجي از شبكه را دارند. خطرات زيادي ممكن است در درون سازمان وجود داشته باشد. يك كارمند ناراضي يا يك نفوذگر كه شبكه شما را در دست گرفته است ، ممكن است كه بخواهد اطلات حساس و محرمانه شما را براي شركت رقيب بفرستد.
6-امنيت اطلاعات به عنوان يك مبحث تكنولوژيكي مطرح است درست يا غلط ؟
غلط – امنيت اطلاعات يك پي آمد تجاري - فرهنگي مي باشد. يك استراتژي جامع امنيت طلاعات بايد شامل سه عنصر باشد: روالها و سياستهاي اداري ، كنترل دسترسي هاي فيزيكي ، كنترل دسترسي هاي تكنيكي . اين عناصر – اگر به صورت مناسبي اجرا شود – مجموعا يك فرهنگ امنيتي ايجاد مي كند. بيشتر متخصصين امنيتي معتقدند كه تكنولوژيهاي امنيتي فقط كمتر از 25 درصد مجموعه امنيت را شامل مي شوند. حال آنكه در ميان درصد باقيمانده آنچه كه بيشتر از همه نمود دارد ،« افراد » مي باشند. (كاربر انتهايي) افراد يكي از ضعيف ترين حلقه ها ، در هر برنامه امنيت اطلاعات مي باشند.
7-هرگاه كه كارمندان داخلي ناراضي از اداره اخراج شوند ، خطرات امنيتي از بين مي روند. درست يا غلط ؟
غلط – به طور واضح غلط است. براي شهادت غلط بودن اين موضوع مي توان به شركت Meltdown اشاره كرد كه لشكري از كارمندان ناراضي اما آشنا به سرقتهاي كامپيوتري براي خود ايجاد كرده بود. بر طبق گفته هاي FBI حجم فعاليتهاي خرابكارانه از كارمندان داخلي افزايش يافته است. همين امر سازمانها را با خطرات جدي در آينده مواجهه خواهد كرد.
8-نرم افزارهاي بدون كسب مجوز (Unauthorized Software ) يكي از عمومي ترين رخنه هاي امنيتي كاربران داخلي مي باشد. درست يا غلط ؟
درست – رخنه ها (Breaches ) مي تواند بدون ضرر به نظر بيايد ، مانند Screen Saver هاي دريافت شده از اينترنت يا بازي ها و ...
نتيجه اين برنامه ها ، انتقال ويروس ها ، تروجانها و ... مي باشد. اگر چه رخنه ها مي تواند خطرناكتر از اين باشد. ايجاد يا نصب يك برنامه كنترل از راه دور كه مي تواند يك در پشتي (Backdoor ) قابل سوءاستفاده اي را در شبكه ايجاد كند كه به وسيله ديواره آتش نيز محافظت نمي شود.
بر طبق تحقيقاتي كه توسط ICSA.net و Global Integrity انجام شده است بيش از 78 درصد گزارش ها مربوط به ايجاد يك رخنه در نرم افزار دريافتي از افراد يا سايتهاي ناشناخته است.
9-خسارتهاي ناشي از سايتهاي فقط اطلاعاتي كمتر از سايتهاي تجاري مي باشد. درست يا غلط ؟
درست – درست است كه خطرهاي مالي در سايتهاي فقط اطلاعاتي كمتر از سايتهاي تجاري مي باشد ولي خطر مربوط به شهرت و اعتبار، آنها را بيشتر تهديد مي كند. سازمانها نيازمند اين مي باشند كه مداوم سايت هاي اطلاع رساني را بازبيني كنند تا به تهديد هاي احتمالي شبكه هاي خود خيلي سريع پي ببرند و در مقابل آنها واكنش نشان دهند تا از خسارتهايي كه ممكن است شهرت آنها را بر باد دهد جلوگيري كنند.
10-رمزهاي عبور مي تواند جلو كساني كه دسترسي فيزيكي به شبكه را دارند ، بگيرد. درست يا غلط ؟
غلط – كلمات رمز نوعا خيلي كم مي توانند جلو كارمندان داخلي و خبره را بگيرند. بسياري از سازمانها تمامي تلاش خود را روي امور تكنيكي امنيت اطلاعات صرف مي كنند و در برخورد با مسائل اداري و كنترل دسترسي فيزيكي لازم براي ايجاد يك محافظت مناسب ، با شكست مواجه مي شوند.
11-يك نام كاربري و يك رمز عبور مي تواند شبكه ما را از ارتباط با يك شبكه غيردوستانه (Unfriendly ) محافظت كند. درست يا غلط ؟
غلط – يك ارتباط فيزيكي و يك آدرس شبكه همه آنچيزي مي باشد كه يك نفوذگر براي نفوذ در شبكه نياز دارد.با يك ارتباط مي توان تمامي ترافيك شبكه را جذب كرد (به اين كار Sniffing مي گويند ) . مهاجم قادر است با استفاده از تكنيكهاي Sniffing كل ترافيك حساس شبكه ، شامل تركيباتي از نام كاربري/رمز عبور را جذب كند و در حملات بعدي از آنها استفاده كند.
12-هيچكسي در سازمان نبايد به رمزهاي عبور دسترسي داشته باشد به جز مدير امنيت شبكه . درست يا غلط ؟
غلط – هيچ كس در سازمان نبايد به كلمات رمز كاربران دسترسي داشته باشد ، حتي مدير امنيتي شبكه! رمزهاي عبور بايد به صورت رمز شده (Encrypted ) ذخيره شوند. براي كاربران جديد ابتدا با يك رمز عبور ساخته شده اجازه ورود به شبكه داده مي شود و پس از آن بايد روالي قرار داد تا كاربران بتوانند در هر زماني كلمات رمز خود را تغيير دهند. همچنين بايد سياستهايي را براي مواردي كه كاربران رمزهاي عبور خود را فراموش كرده اند در نظر گرفت.
13- رمزگذاري بايد براي ترافيك هاي داخلي شبكه به خوبي ترافيك خروجي شبكه انجام گيرد. درست يا غلط ؟
درست – به عنوان يك نكته بايد گفت كه فرآيند Sniffing (جذب داده هايي كه روي شبكه رد و بدل مي شود) به عنوان يك خطر امنيتي داخلي و خارجي مطرح مي شود.
14-امنيت داده ها در طول انتقال آنها هدف رمزگذاري است . درست يا غلط ؟
غلط – رمزگذاري همچنين مي تواند جامعيت (Integrity ) ، تصديق (Authentication ) و عدم انكار (nonrepudiation ) داده ها را نيز پشتيباني كند.
whois برام بدست آوردن اطلاعات خیلی مهمی از سایت هستش مثل domain name یا hosting name و ip سایت و خیلی چیزهای دیگه برای whois گرفتن راهای زیادی وجود داره که یکیش از راه dos هستش که ولی بهترین راه استفاده از سایتهای هستن که می شه توسط اونها whois گرفت حالاه من یه نمونه می گم مثل http://www.samspade.org/t/ipwhois?a=www.site name.com در این آدرس شما بجای site name باید نام سایتی که می خواین هکش کنین رو بنویسین برای مثال من می خوام سایت www.rashthellboys.com رو هک کنم اولین کاری که می کنم اینه که ازش whois بگیرم خوب مینویسم .
http://www.samspade.org/t/ipwhois?a=www.rashthellboys.com
می بینین که چه اطلاعاتی بهمون داد .
[www.rashthellboys.com] = [ 66.197.250.5
Registrant:
Pasargad Hosting ltd domain@pasargadhost.com
98.09123149307
Pasargad Hosting ltd
n/a
Tehran Tehran IR 57447
Domain Name: rashthellboys.com
Record last updated at 2005-09-06 11: 59: 46
Record created on 2005/9/6
Record expired on 2006/9/6
Domain servers in listed order:
ns1.pasargadhost.com ns2.pasargadhost.com
Administrator:
Pasargadhost Domain Administrator admin@pasargadhost.com
98.09123149307
Pasargad Hosting ltd
n/a
Tehran Tehran IR 57447
Technical Contactor:
Pasargadhost Technical Department support@pasargadhost.com
98.09123149307
Pasargad Hosting ltd
n/a
Tehran Tehran IR 57447
Billing Contactor:
Pasargadhost Billing Department billing@pasargadhost.com
98.09123149307
Pasargad Hosting ltd
n/a
Tehran Tehran IR 57447
Registration Service Provider:
name: Turbonic
tel: 46.736327765
fax: 46.736327765
web:http://
خوب حالاه مهمترین این اطلاعات host name و domein name بود که اینجا hasting linux بود و domeinکه پاسارگاد بود که این domein سرعتش بالای اما خیلی امنیتش پاینه یعنی راحت هک می شه .
2.telnet چیست ؟
این آموزشو باید خیلی وقط پیش می دادم اما یادم رفت خوب حالا می گم ولی خیلی کوتاه و مختصر توضیح می دم تلنت برا اینه که شما ببینین آیا یه پرت بر روی یه سرور بازه یا نه برای این کار باید بنویسین telnet://www.sitename.com portبجای sitename که باید سایت مورد نظر رو بنویسین و بجای port پرت مورد نظری که می خواین ببینین بازه یا نه . البتهtelnet برای گوش کردن به یه پرت هم هتش و اگه نظرات زیاد باشه مفصل راجبه telnet بهتون می گم.
3.کدگزاری بر روی پسورد ؟
این کار خیلی آسونه این کار برای فایل های ناشناس تروجانی که شما میخواین به یکی بفرستین و برای اینکه طرف مشکوک نشه هم خیلی بدرد می خوره مثلا :
alt+3459=â
alt+2567=•
alt+4286=╛
و خیلی چیز های دیگه که می تونین شما خدتون امتحان کنین این روش برای راحت شدن از دست تروجانها یا پسورد سندر ها واقعا موثر هستش چون این روش در هر جا یه شکلی میده مثلا در این بلگفا که من مینویسم .alt+3459 این شکل رو میده âاما بر فرض مثال اگه طرف همین alt رو بگیره و 3459 رو تو یاهو بنویسه این شکل رو میده ¥ خوب معلومه که طرف خیلی باید وقط صرف کنه تا پیدا کنه پسورد شما رو یا از بر نامه ای استفاده کنه که فکنم این کارو بخاطر یک پسورد نکه .شما هم تو پسورد گزاشتن به شکل توجه نکنین alt رو نگه دارین و فقط به عددی که مینویسین توجه کنینو و اون عددو به خاطر داشته باشین
دقت کنيد که سيستمعاملي که من shell رو در اون آوردم، ويندوز ۲۰۰۰ است و درايو پيشفرض من که معمولا همان درايوي است که ويندوز در اون نصب شده، درايو I است. شما مسلما چيز متفاوتي خواهيد ديد. مينويسم:Microsoft Windows 2000 [Version 5.00.2195] (C) Copyright 1985-1999 Microsoft Corp. I:\>
تا به درايو C وارد بشم. حالا prompt تغيير ميکنه و نشون ميده که الان در درايو C هستم:I:\> C:
مينويسم:C:\>
و ليست زير ظاهر ميشه:C:\> dir
اينها در واقع ليست فايلها و دايرکتوريهاي موجود در درايو C کامپيوتر من است. مثلا اينجا GAMES يک فولدر ( دايرکتوري) است چون در در اون سطر کلمهVolume in drive C is FREE-START Volume Serial Number is 3623-07E6 Directory of C:\ 09/06/2003 06:29aGAMES 08/15/2003 06:20p 1,806,727 phpMyAdmin-2.5.3-rc1-php.zip 06/17/2002 07:06p upload 06/19/2002 07:02p mailserver 09/13/2002 03:59a 8,053 port-tcp-c.c 02/27/2003 10:28p mp3 04/18/2003 07:38a 1,152 araz.pl 3 File(s) 1,815,932 bytes 4 Dir(s) 95,502,336 bytes free
و جواب ميشنوم:C:\> cd games
يعني وارد فولدري بع اسم games شدهام. بازم دستور dir رو مينويسم که ببينم در اين فولدر چه فايل يا فولدرهايي هست و جواب ميشنوم:C:\GAMES>
که ميگه ۶ دايرکتوري وجود داره. دوتاي اولي دايرکتوريهاي واقعي نيستند، چون اگه بنويسم:Volume in drive C is FREE-START Volume Serial Number is 3623-07E6 Directory of C:\GAMES 09/06/2003 06:29a. 09/06/2003 06:29a .. 09/06/2003 06:29a FORMULA1 09/06/2003 06:35a SP 09/06/2003 06:36a SUPER 09/06/2003 06:39a UF 0 File(s) 0 bytes 6 Dir(s) 95,502,336 bytes free
جواب ميگيرم:C:\GAMES> cd .
يعني هيچ اتفاقي نيفتاد. و اگه بنويسم:C:\GAMES>
جواب ميشنوم:C:\GAMES> cd ..
يعني يه فولدر به عقب برگشتم و اومدم به همون ريشه درايو C که قبلا بودم. پس الان در درايو C هستم و چون قبلا ديدهام که فايلي به اسم araz.pl در اون هست ميخوام محتويات اين فايل متني رو ببينم. مينويسم:C:\>
و جواب ميشنوم:C:\> type araz.pl
اين محتويات فايل araz.pl است. ميخوام يک متني فايل جديد بسازم، که محتوياتش فقط يک سطر باشه مثلا salam bar to و نامش هم باشه ali1000.txt براي اينکار چند راه وجود داره که دو تاشو ميگم:#!/usr/bin/perl print "Content-type: text/html\n\n"; use Socket; my ($remote, $port, @thataddr, $that, $them, $proto, $getpage ); $remote = shift || 'www.securitytracker.com'; $port = 80; @thataddr=gethostbyname($remote) or die "Not Connected"; $that=pack('Sna4x8',AF_INET, $port, $thataddr[4]); $proto=getprotobyname('tcp'); socket(SOCK, PF_INET, SOCK_STREAM, $proto) or die $!; connect(SOCK, $that) or die $!; ........
۲- و ميتونيد بنويسيد:C:\> echo salam bar to > ali1000.txt
و enter زده و جمله!! salam bar to را اونجا تايپ کنيد و وقتي تمام شد، ترکيب: CTRL + Z رو فشار بديد که فايل تموم بشه.C:\> copy con ali1000.txt
محتويات فايل رو ببينيد، اگرچه الانشهم ميدونيد چي هست! ميخواهيم يک فولدر جديد به اسم tur2 بسازيم. مينويسيم:C:\> type ali1000.txt
حالا اگر dir رو بنويسم، ميبينم که فولدر جديد ايجاد شده. حالا ميخوام برم تو فولدري که ساختم. مينويسم:C:\> md tur2
و بعد dir ميگيرم. ميبينم فعلا فقط همان دو فولدر . و .. در اينجا وجود داره که قبلا گفتم چي هستند. اگه بخوام يه فولدر جديد در داخل اين فولدر tur2 به اسم far30 بسازم، مينويسم:C:\> cd tur2
و اگر dir بگيرم، ميبينم اينها وجود دارند:C:\tur2> md far30
يعني فولدر far30 هم اضافه شده. ميخوام فايل ali1000.txt رو از ريشه به فولدر far30 که خودش در فولدر tur2 است، کپي کنم. مينويسم:Volume in drive C is FREE-START Volume Serial Number is 3623-07E6 Directory of C:\tur2 10/04/2003 07:17p. 10/04/2003 07:17p .. 10/04/2003 07:18p far30 0 File(s) 0 bytes 3 Dir(s) 95,477,760 bytes free
ساختارش خيلي ساده است، حتما فهميدين که اول دستور copy رو مينويسم. بعد با يک فاصله، مسير و نام فايلي که ميخوام کپي کنم رو مينويسم و در آخر با يک فاصله، مسيري که ميخوام فايل کپي بشه رو مينويسم. دقت کنيد که فايل اصلي دست نخورده باقي ميمونه و يک کپي جديد در مسير جديد ايجاد ميشه. ميتونستم همين فايل رو به درايو D کپي کنيم که در اين حالت بايد بنويسم:C:\tur2> copy c:\ali1000.txt c:\tur2\far30
که فايل به درايو D کپي بشه. حالا يه دستور جديد، ميخوام فايل ali1000.txt رو از درايو C پاک کنم، مينويسم:C:\tur2> copy c:\ali1000.txt d:
دقت کنيد که چون من الان در فولدر tur2 هستم ولي فايلي که قراره پاک کنم در ريشه است، مسير رو بايد بنويسم، ولي اگر فايل همونجايي که من الان هستم بود، مينوشتم:C:\tur2> del c:\ali1000.txt
نکته مهم اينه که وقتي روي کامپيوتر خودم shell رو باز کردم، ميتونم ببينم که کجا قرار دارم ( با نگاه به پرامت که مثلا اينجاC:\> del ali1000.txt
cd
چون قبلا فايل ali1000.txt رو به فولدر far30 موجود در فولدر tur2 موجود در درايو C کپي کردم، ميرم همونجا مينويسم:c:\tur2
اگه dir بگيرم، اينو ميبينم:C:\> cd c:\tur2\far30
اگه بخوام اين فايل رو منتقل کنم به فولدر tur2 از درايو C (يعني به يه فولدر پايين تر) از دستور زير استفاده ميکنم:Volume in drive C is FREE-START Volume Serial Number is 3623-07E6 Directory of C:\tur2\far30 10/04/2003 07:18p. 10/04/2003 07:18p .. 10/04/2003 07:08p 15 ali1000.txt 1 File(s) 15 bytes 2 Dir(s) 95,477,760 bytes free
فرق دستور move با copy اينه که فايل اصلي منتقل ميشه نه کپي! يعني از محل قبلي پاک ميشه و به محل جديد مياد!! حالا که فولدر far30 حالي شده (يعني هيچ فايل يا فولدري در اون نيست) ميتونم پاکش کنم. اول ميام يه فولدر پايينتر، با دستور:C:\tur2\far30> move ali1000.txt c:\tur2
و با دستور جديد زير که مخصوص پاک کردن فولدر ( نه فايل ) است، فولدر far30 رو پاک ميکنم:C:\tur2\far30> cd ..
و فولدر پاک ميشه. حالا ميخوام اسم فايل ali1000.txt رو به araz.inc تغيير بدم، مينويسم:C:\tur2> rd far30
يه dir بيريد که مطمئن بشين!! حالا ميخوام يه کپي از اين فايل که اسمش هست araz.inc بگيرم ولي با اسم ali1000.inc و در همين فولدر. پس مينويسم:C:\tur2> ren ali1000.txt araz.inc
حالا اگه dir بگيريد، ۲ تا فايل ميبينيد. حالا ميخوام هر دو تا فايل رو منتقل کنم به درايو C ولي به ريشه، ميبينم که هر دو فايل حرف اولشون a است و پسوندشون inc ميتونم به دو شکل بنويسم:C:\tur2> copy araz.inc ali1000.inc
ولي چون فقط همين دوتا فايل در اين فولدر بود، ميتونستم بنويسم:C:\tur2> move a*.inc c:\
گرفتين چي شد؟ حالا يه جديد ميخوام برم به فولدر و درايوي که فولدر ويندوز باشه. ميتونم يکي يکي درايو ها رو برم و از همه dir بگيرم تا برسم به اوني که درايو winnt داره، ولي چون اين کامپيوتر خودمه و ميدونم که فولدر ويندوز من کجاست!! مينويسم:C:\tur2> move *.* c:\
و بعدC:\tur2> I:
و يک dir ميگيرم. ميبينم که لسيتي از فايلها و فولدرهاي زيادي از جلو چشم رد ميشه ولي نميتونم همه رو ببينم. اگه بخوام صفحه به صفحه ببينم، مينويسم:I:\> cd winnt
که اين سويچ p مخفف page است. اگه بخواين ليست همه سويچها رو ببينيد، ميتونيد بنويسيد:I:\winnt> dir /p
حالا يه چيز جالب! با دستورات زير اول برگرديم به ريشه درايو I و بعد برگرديم درايو C :I:\winnt> dir /?
حالا ميخوام مستقيما از درايو C محتويات فولدر winnt از درايو I رو اونهم به صورت صفحه به صفحه بخونم:I:\winnt> cd .. I:\> C:
حالا يه چيز بسيار مهم، ميخوام بدون دادن مسير! ليست فايلها رو در فولدر مربوط به ويندوز ببينم:C:\> dir i:\winnt /p
اينه... !!! پس در Shell کلمه %SystemRoot% يعني فولدر ويندوز. يه سويچ جديد براي دستور dir رو ميخوام بگم. فرض کنيد که من يادم رفته فايل اجرايي cmd.exe در کدام فولدر از درايو I ( که در کامپيوتر من فولدر مربوط به ويندوز هست ) قرار داره. چون نميتونم برم تک تک فولدرها رو ببينم، بايد از سويچي استفاده کنم که وقتي يه مسير بهش ميدم، بره و تمام سوراخ سنبههاي اون فولدر ( يعني همام فولدرهاي داخليتر ) رو هم ببينيه. از سويچ s استفاده ميکنم و مينويسم:C:\> dir %SystemRoot%
و جواب ميشنوم:C:\> dir i:\cmd.exe /s
پس اين دستور توانست فايل مربوطه رو در دو تا فولدر پيدا کنه، يعني اينا:Volume in drive I has no label. Volume Serial Number is DC24-A09D Directory of i:\WINNT\system32 12/07/1999 04:00a 236,304 cmd.exe 1 File(s) 236,304 bytes Directory of i:\WINNT\system32\dllcache 12/07/1999 04:00a 236,304 cmd.exe 1 File(s) 236,304 bytes Total Files Listed: 2 File(s) 472,608 bytes 0 Dir(s) 1,255,153,664 bytes free
اين cmd.exe همونه که ما در run نوشتيم که shell ويندوز اومد. حالا برميگردم به درايو C ( دستورش که يادتون هست! ) و dir ميگيرم و ميبينم که فايل ali1000.inc هنوز هم اونجا هست. ميخوام يه دستور جديد رو بگم. ببينيد گاهي پيش مياد که ما فايلي رو به يک سرور ميفرستيم ولي ميخوايم به صورت مخفي يا hidden باشه. دستوري که فايل ali1000.inc رو مخفي ميکنه، اينه:i:\WINNT\system32 i:\WINNT\system32\dllcache
حالا اگه dir بگيرم، ديگه فايل ali1000.inc رو نميبينم. البته هنوز هم هست!! اگه بخوام به کمک دستور dir فايلهاي مخفي رو ( از جمله ali1000.inc ) ببينم، از سويچ a استفاده ميکنيم:C:\> attrib +h ali1000.inc
حالا ميخوام فايل رو از حالت مخفي در بيارم، مينويسم:C:\> dir ali1000.inc /a
به همين راحتي!C:\> attrib -h ali1000.inc
يا اينکه مستقيما از هرجايي که باشم، بنويسم:I:\WINNT\system32> tftp.exe
و جواب بشنوم:C:\> i:\winnt\system32\tftp.exe
پس چون پسوند فايل من exe بود فهميدم که با نوشتن اسم اون ميتونم اجراش کنم. اگه يادتون باشه واسه ابزارهاي خطفرماني مثل nc هم، همين کارو ميکرديم.Transfers files to and from a remote computer running the TFTP service. TFTP [-i] host [GET | PUT] source [destination] -i Specifies binary image transfer mode (also called octet). In binary image mode the file is moved literally, byte by byte. Use this mode when transferring binary files. host Specifies the local or remote host. GET Transfers the file destination on the remote host to the file source on the local host. PUT Transfers the file source on the local host to the file destination on the remote host. source Specifies the file to transfer. destination Specifies where to transfer the file.
می خوام براتون یه اموزشی بدم که شما بدون کارت اینترنت با دوست خودتون چت کنید.البته این روش یه جوری که باید هر دو طرف برای این کار آماده باشند ضمنا با این سیستم میتونید فایل های خودتونوهرچیزی که باشه بفرستید.
اولین قدم=>به این آدرس تو کامپیوترتون برید:Start=>AllPrograms=>Accessories=>Communications=>HyperTerminalبرید یه نرم افزار درجلوی شما باز می شود که مخصوص این کار است به اسمHyperTerminal .
دومین قدم=>در این هنگام به صفحه براتون باز میشه که به شکل زیره:

»در قسمت name اول برای خودتون یه اسم انتخاب کنید(همون تور که با فلش نشون داده شده)
» در قسمتiconشکلی که با فلش نشون داده شده رو انتخاب کنید(شکل تلفن و نامه) و بعدokرو بزنید
سومین قدم=> حالا با توجه به عکس زیر باید کارهای زیرو انجام بدید

»در قسمتCountry/region:اسم کشور کسی که می خواید با هاش ارتباط بر قرار کنید رو انتخاب کنید ،درقسمتArea coad:کد شهر شخصی که می خواهید با هاش ارتباط برقرار کنید مثلا تهران که021و در قسمتPhone number :شماره کسی که می خواید با هاش ارتباط بر قرار کنید و در قسمت Connect usingنوع ارتباط رو بنویسید که شما اونو روی مودموتون قرار بدید به طوری که در شکل می بینید من روی مودمم قرار دادم
چهارمین قدم=>بعد از اینکه کارهای قدم سوم و رو انجام دادید رویokکلیک کنید و بعد صفحه ای مثل صفحه ی زیر ظاهر می شود که فقط روی Dial کلیک کنید کافی است وبعد کامپیوتر شما به اون کامپیوتر با اون شماره تلفن وصل می شه

پنجمین قدم=>حالا کارهایی که با ید دوست شما برای ارتباط برقرار کردن با شما انجام دهد:
»تا قدم دومو انجام میده ولی در قدم سوم به جای پر کردن اون لیست cancelرو میزنه و منتظره زنگ شما می مونه و هر وقت که شما زنگ زدید به منوی callمیرو و رویwait for a callکلیک می کنه مثل شکل زیرو بعد از یه ذره صبر صدای مودم می یاد(نترسید تو اینترنت نمیرید!) و حالا می تونید اولین پیام ها رو برای هم بفرستید!

در پایین این صفحه موقع ارتباط یه همچین نوشته ای می یاد:

یه قدم فراتر=>حال چطوری می شه با این کار نرم افزار عکس فیلم و.... هزار جور چیز دیگه فرستاد
»اول روی گزینه send بالای صفحه کلیک می کنید(همون شکلی که تو عکس نشون داده شده )

»بعد یه صفحه ای مثل شکل زیر باز میشه و با کلیک بر رویBrowes…فایل مورد نظرتونو انتخاب و روی send کلیک کید تا فایل مورد نظر فرستاده بشه.ضمنا سرعت فرستادن فایلها از این طریق خیلی خیلی بیشتر از طریق اینترنت و ضمنا کارت اینترنتتونم مصرف نمیشه!

»برای گرفتن فایل طرف مقابل باید روی گزینهReceive که توی عکس پایین نشون داده شده کلیک کنه.(قبل از اینکه شما فایلو بفرستید)و لی اگه شما این کاره نکنید فایل در C:\Documents and Settings\your user name(منظور از your user nameنام کاربری شما تو کامپیوتر است مثلاAmir) ذخیره میشه . به همین راحتی!