جزيره فناوري اطلاعات جزيره فناوري اطلاعات .

جزيره فناوري اطلاعات

پورت اسكن (Port Scan) چيست؟ معرفي انواع اسكن پورت در هك و نفوذ

 

 

فرآيند اسكن پورت يا Port Scanning چيست و چند نوع اسكن پورت وجود دارد؟ اگر بخواهيم تعريفي از اسكن پورت يا پورت اسكن داشته باشيم ، بايد ابتدا درك عميقي از مفهوم پورت و ماهيت Port هاي كامپيوتر داشته باشيم. بديهي است كه افراديكه به دنبال مفهوم پورت اسكن مي گردند با ماهيت پورت هاي كامپيوتري و كاربردشان آشنايي دارند و صرفا مي خواهند براي مصارف امنيت شبكه و ارتباطات يا هك و نفوذ ، بيشتر در بحث Port Scanning كه يكي از محبوب ترين روشهاي كسب اطلاعات درباره هدف نفوذ است ، در اين خصوص اطلاعات به دست بياورند.

من محمد نصيري هستم ، هكر كلاه خاكستري و مشاور امنيت سايبري ، قبل از اينكه ادامه مقاله را بخوانيد و به زبان ساده مفهوم پورت اسكن و انواع آن را ياد بگيريد پيشنهاد مي كنم مقاله ديگري از بنده با عنوان پورت چيست را در همين لينك مشاهده كنيد. اگر علاقه مند به مباحث هك و نفوذ هستيد حتما بعد از خواندن اين مقاله به دوره آموزش سكيوريتي پلاس و البته دوره آموزش CEH براي يادگيري بهتر و عميقتر مفاهيم پورت اسكن در هك و نفوذ مراجعه كنيد.

اسكن پورت يا پورت اسكن چيست؟

ارتباطات در كامپيوترها به وسيله پروتكل ها انجام مي شوند و پروتكل ها براي اينكه بتوانند به درستي بين كامپيوترها ارتباط برقرار كنند از يك شماره پورت مشخص استفاده مي كنند تا همديگر را متوجه بشوند. اين شماره پورت ها براي سرويس هاي مشخصي رزرو شده است و شما با شناخت اين شماره پورت ها مي توانيد تشخيص بدهيد چه نوع سرويسي بر روي چه سيستم عاملي در حال اجرا است. براي مثال شماره پورت 53 براي سرويس DNS و شماره پورت 443 براي سرويس SSL است.

به زبان ساده تر ، وقتي صحبت از اسكن كردن پورت هاي باز مي شود ، ما مي خواهيم بدانيم كه چه سرويس هايي بر روي كامپيوتر مورد نظر ما فعال هستند . فهميدن اينكه چه سرويسي در پورت اسكن فعال است به شما در فرآيند هاي مختلفي كمك مي كند از تشخيص نوع سرويس براي هك و تست نفوذ گرفته تا رفع مشكلات ارتباطي شبكه ، بنابراين اگر بخواهيم در يك جمله تعريف پورت اسكن را داشته باشيم مي گوييم ::: Port Scanning فرآيندي است كه از طريق بررسي پورت هاي كامپيوتر ، به ما نشان مي دهد كه چه نوع سرويس هايي بر روي كامپيوتر ( مودم ، روتر و ... ) مورد نظر ما در شبكه قابل دسترس و فعال هستند.

معرفي انواع پورت اسكن ( Port Scan )

تكنيك هاي متعددي در اسكن پورت هاي شبكه وجود دارد كه معمولا اين روزها بصورت دستي انجام نمي شوند. يكي از نكاتي كه در انواع پورت اسكن هاي امروزي بسيار مهم است ، مخفي بودن و ناشناس بودن و ناشناس ماندن فردي است كه فرآيند پورت اسكن را انجام مي دهد. تكنيك هاي پورت اسكن دائما در حال به روز رساني هستند و به همين دليل انواع پورت اسكن يك چيز ثابت و دائمي نيست و دائما ممكن است در حال به روز رساني باشد. اما در ادامه ما بر اساس تعريف هايي كه در دوره آموزش CEH يا هك قانونمند بصورت استاندارد داريم ، انواع پورت اسكن را با هم بررسي مي كنيم.

انواع اسكن پورت قسمت 1 : پورت اسكن تهي يا Null Scan چيست؟

Null به معني تهي يا پوچ مي باشد و در فرآيند Port Scanning ما براي اينكه بدانيم يك پورت باز است يا بسته است يا وضعيت آن را شناسايي كنيم مي توانيم از اين تكنيك استفاده كنيم. دقت كنيد كه اين تكنيك Port Scanning بصورت ويژه براي سيستم عامل هاي خانواده Unix طراحي شده است و به هيچ عنوان بر روي سيستم عامل هاي ويندوزي پاسخ نخواهد داد.

زمانيكه صحبت از Null Scan مي شود در واقع يعني ما هيچ Flag اي بر روي Packet هاي Port Scan خودمان قرار نمي دهيم يا در اصطلاح فني تر در Null Scan كليه TCP Flag هاي ما در حالت Off قرار دارند. در چنين حالتي اگر سرور مورد نظر پورت Closed شده داشته باشد در پاسخ به Null Scan يك TCP RST ارسال مي كند و اگر پورت مورد نظر باز باشد Packet غير معتبر شناخته شده و اصطلاحا Discard مي شود.

در حالت Null Scan تمامي TCP Header ها مانند ACK ، FIN ، RST ، SYN ، URG و PSH به شكل NULL يا مقدار دهي نشده تغيير خواهند كرد. در سيستم عامل هاي خانواده BSD ( خانواده Unix ) هسته سيستم عامل در صورتيكه تشخيص دهد packet ورودي داراي اين خاصيت هاي Null است در صورت باز بودن پورت ، Packet را Drop مي كند و در صورت بسته بودن پورت يك RST Flag به سمت Scanner ارسال خواهد كرد به اين معنا كه پورت در حالت Closed قرار دارد.

در اين نوع اسكن flag ها برخلاف حالتي كه در Xmas Scan وجود دارند استفاده مي شوند اما نتيجه خروجي به شكل خروجي اسكن هاي FIN و Xmas خواهد بود. بسياري از سيستم عامل هاي تحت شبكه ، درنحوه برخورد با چنين بسته هايي رفتارهاي مشخصي انجام مي دهند ، در مقايسه سيستم عامل هاي خانواده يونيكس و ويندوز ، خانواده ويندوز به هيچ عنوان عكس العمل مشخصي در قبال اين نوع Scan ها نداشته و اين نوع اسكن نتيجه مناسبي براي اين خانواده بازگشت ندارد. اما از مهمترين مزاياي اين نوع اسكن مي توان به دور زدن سيستم هاي تشخيص نفوذ يا IDS ها و همچنين مكانيزم Three-way Handshake پروتكل TCP اشاره كرد.

انواع اسكن پورت قسمت 2 : پورت اسكن كامل يا Full TCP Scan چيست؟

يكي از معروف ترين تكنيك هايي كه براي Port Scanning مورد استفاده قرار مي گيرد و معمولا تازه كارها از آن استفاده مي كنند به نام TCP Full Scan است. در اين نوع Port Scanning نرم افزار Scanner شما به ترتيب از شماره 0 تا شماره 65535 شروع به برقراري يك ارتباط كاملا طبيعي و طبق روال پروتكل TCP مي كند.

همانطور كه مي دانيد در پروتكل TCP در هنگام برقراري يك ارتباط فرآيندي به نام Three-way Handshake يا دست دادن سه مرحله اي انجام مي شود كه در اين حالت ابتدا كامپيوتر درخواست دهنده يك Packet به نام TCP SYN براي سيستم هدف ارسال مي كند ، SYN مخفف Synchronization است و يعني كامپيوتر مي خواهيد يك درخواست براي ارتباط بگيرد.

در مرحله دوم كامپيوتر مقصد به محض دريافت Packet مورد نظر در صورت باز بودن پورت مورد نظر يك Packet به شكل SYN-ACK ارسال مي كند يعني اينكه با درخواست ارتباطي شما موافقت شده است و در اينجا سيستم درخواست دهنده بايد به اين درخواست پاسخ ACK براي تاييد برقراري ارتباط بدهد. با همين روش اگر فرآيند ها به صورت كامل انجام شوند مي توان پورت هاي باز را شناسايي كرد.

ساده ترين نوع پورت اسكن به نام Full TCP Scan يا همين موردي بود كه ما در اينجا معرفي كرديم ، اين نوع اسكن به اسكن وانيلي يا Vanilla Scan هم معروف است. همانطور كه ديديد در اين نوع Scan هيچ اتفاق غيرعادي نيوفتاد ، بزرگترين مزيت اين اسكن سادگي انجام و نتيجه آن است و بزرگترين مشكل آن شناسايي بسيار راحت آن توسط فايروال هاي بسيار ساده است و به همين دليل هم اين نوع اسكن را هكرهاي مبتدي به كار مي برند.

انواع اسكن پورت قسمت 3 : پورت اسكن مخفي يا Stealth Scan چيست؟

خوب از انواع Port Scanning هايي كه تا به حال معرفي كرديم اكثر آنها فقط و فقط براي سيستم عامل هاي خانواده لينوكس و يونيكس كاربردي بودند. امروز مي خواهيم به نوعي از پورت اسكن در توسينسو بپردازيم كه تقريبا بر روي تمامي سرورها و سيستم عامل ها قابل اجرا است.

در اين نوع اسكن كه به عنوان اسكن مخفي يا Stealth هم معروف است فقط و فقط يك Frame از نوع TCP بر روي يك پورت ارسال مي شود ، هيچ فرآيند TCP Handshaking اضافه يا اطلاعات انتقالي Packet اضافه اي در اين نوع اسكن ارسال نمي شود و فقط يك در اصطلاح Single Frame براي هدف ارسال مي شود تا پاسخي كه داده مي شود تجزيه و تحليل شود.

همانطور كه در اين نوع اسكن يك Frame ارسال مي شود انتظار دريافت فقط يك Frame از مقصد و نه بيشتر از آن مي رود. نام ديگر اين نوع اسكن Half-Open Scan يا اسكن نيمه باز است !! يعني اينكه فرآيند TCP Handshake در اين نوع اسكن كامل نمي شود به محض اينكه تشخيص داده شود كه وضعي يك پورت چگونه است به Session اي كه هنوز كامل نشده است خاتمه داده مي شود.

اين نوع تكنيك Port Scanning به عنوان SYN Scan يا TCP SYN Scan نيز شناخته مي شود زيرا فقط و فقط يك Packet از نوع SYN در فرآيند TCP Handshake ارسال مي كند و تمام !!! اين سرعت عمل و اينكه ارتباط اصلا برقرار نمي شود كه تحليلي بر روي ترافيك آن انجام شود براي اسكنر خوب است زيرا اصلا ارتباطي كامل نمي شود كه بخواهد كسي آن را تحليل كند. اين نوع اسكن كردن به همين دليل اسكن مخفي يا Stealth Scan هم گفته مي شود چون ارتباطي برقرار نمي شود كه ترافيك آن شناسايي شود ! يا شناسايي آن بسيار دشوار است.

البته فرآيند TCP Three-Way Handshake در Stealth Scan پياده سازي مي شود با اين تفاوت كه در آخرين مرحله از Handshake به جاي اينكه تاييده داده شود كه ارتباط برقرار شود ، اسكنر RST ارسال مي كند و ارتباط را Reset مي كند تا ادامه مراحل انجام نشود. فرآيند كلي اين نوع اسكن به اين شكل است كه ابتدا اسكنر يك بسته اطلاعاتي تكي بصورت SYN براي سرور ارسال مي كند كه بر روي پورت مورد نظري كه مي خواهيم اسكن كنيم ارسال مي شود.

سرور بعد از اينكه بسته SYN را دريافت كرد ، در صورتيكه سرويسي بر روي پورت مورد نظر ارائه كند براي اسكنر بسته SYN//ACK ارسال مي كند يعني آماده برقراري ارتباط است و اين يعني پورت مورد نظر باز يا Open است. در همين حين اسكنر به جاي اينكه براي سرور ACK ارسال كند برايش RST ارسال مي كند و همانجا Connection را مي بندد. اما اگر سرور در برگشت RST ارسال كند يعني پورت مورد نظر بر روي سرور Closed است. اين نوع اسكن تقريبا براي روي همه سيستم عامل ها قابل استفاده است.

انواع اسكن پورت قسمت 4 : پورت اسكن ليستي يا List Scan چيست؟

در يك List Scan فرآيند شناسايي سيستم هاي روشن و فعال در شبكه بصورت كاملا غير مستقيم انجام مي شود. در اين نوع اسكن شما مي توانيد ليستي از Host هاي موجود در شبكه را بدون اينكه حتي آنها را ping كنيد يا به آنها متصل شويد به دست بياوريد و ليستي از IP ها و يا Hostname هاي آنها را بدست بياوريد. اين نوع اسكن نيز طبيعتا در دسته بندي پورت اسكن قرار نمي گيرد و فقط براي شناسايي سيستم هاي روشن در شبكه به كار مي رود.

ليستي كه در ابتدا در اين نوع اسكن به دست مي آيد با توجه به اينكه هيچگونه ارتباط مستقيمي با سيستم هدف برقرار نكرده است در قالب Not Scanned يا اسكن نشده به نمايش گذاشته مي شود. بصورت پيشفرض با استفاده از مكانيزم Reverse DNS نرم افزاي مثل Nmap سعي مي كند كه اسم ها را به IP ها تبديل كند و برعكس ... در زير نمونه اي از خروجي يك List Scan را مشاهده مي كنيد :

پورت اسكن

دقت كنيد كه List Scan يك پيش زمينه براي انجام يك Active Scan است ، اگر شما آدرسي را اشتباه وارد كرده باشيد تشخيص مي دهد و به شما اعلام مي كند. اين نوع اسكن كارآمدي زيادي ندارد اما برخي اوقات براي انجام و تبديل اسم به IP و برعكس با استفاده از DNS مي تواند مفيد باشد.

انواع اسكن پورت قسمت 5 : پورت اسكن كريسمس يا Xmas Scan چيست؟

يكي از انواع تكنيك هاي Port Scanning معروف كه به صورت ويژه براي شناسايي پورت هاي باز در سيستم عامل هاي خانواده لينوكس كاربرد دارد Xmas Scan يا Christmas Scan است . دليل نامگذاري اين نوع پورت اسكن به نام كريسمس حالت خاص Flag گذاري بر روي آن است كه به شكل 00101001 ديده مي شود و اين بايت Flag شبيه ساختار درخت كريسمس تشبيه مي شود.

در اين نوع اسكن از Flag هاي URG,PUSH و FIN براي شناسايي پورت هاي سيستم هدف استفاده مي شود. اگر پورت بسته باشد سيستم هدف يك RST به سمت مبدا ارسال مي كند . يكي از مهمترين مواردي كه از اين نوع اسكن استفاده مي شود شبكه هايي با سيستم هاي زياد است كه مي خواهيم سيستم هاي روشن را به همراه سرويس هايي كه بر روي آنها وجود دارند به يكباره شناسايي كنيم.

در برخي اوقات در اين تكنيك همه TCP Flag ها قرار داده مي شوند و به همين دليل سيستم هدف به يك بار Hang مي كند !! سيستم هدف زمانيكه بصورت همزمان سه Flag بصورت URG-PSH-FIN دريافت كند گيج مي شود. البته دقت كنيد كه اين نوع اسكن صرفا بر روي سيستم هايي قابل استفاده است كه مكانيزم كاري آنها مبتني بر RFC 793 باشند.اين روش اسكن كردن همانطور كه عنوان كرديم بصورت ويژه براي خانواده يونيكس و به ويژه BSD ها طراحي شده است و بر روي خانواده Windows NT هيچ كاربردي ندارد.

اگر شما بصورت اشتباه اين نوع اسكن را بر روي خانواده ويندوز انجام بدهيد به شما همه پورت هاي مقصد را باز نشان مي دهد و به همين دليل ممكن است فرآيند تست نفوذ شما كاملا اشتباه انجام شود. بصورت خلاصه اگر شما Xmas Scan بر روي سيستم هدف انجام داديد و سيستم مقصد در پاسخ هيچ عكس العملي نشان نداد يعني پورت مورد نظر باز است و اگر RST ارسال كرد يعني پورت مورد نظر بسته است. از مزاياي اين روش دور زدن IDS ها و IPS ها است و در عين حال از معايت آن كار نكردن در محيط هاي ويندوزي است.

انواع اسكن پورت قسمت 6 : پورت اسكن FIN Scan چيست؟

همانطور كه مي دانيد در فرآيند Port Scanning فرآيند Three-way Handshake اي كه TCP انجام مي دهد بسيار كاربردي است. بنابراين زمانيكه صحبت از FIN Scan مي شود طبيعتا شما ناخودآگاه بايد به اين فكر بيوفتيد كه منظور Flag اي از TCP به شكل Finish است كه براي پايان دادن به يك TCP Session استفاده مي شود.

در اين نوع Port Scann كه از حماقت محض فايروال هاي قديمي و Stateless استفاده مي شود. در واقع زمانيكه صحبت از FIN Scan مي شود نرم افزار Port Scanner ما يك بسته اطلاعات با Flag اي به شكل FIN به معني پايان Session براي فايروال يا Host مقصد ارسال مي كند ، اگر هيچ پاسخي دريافت نشد به منزله Open بودن پورت است و اگر بازگشت بصورت RST//ACK بود يعني پورت سرور مورد نظر در حالت Closed قرار دارد.

هر چند اين روش از اسكن كردن در نسخه هاي امروزي سيستم عامل ويندوز ديگر جوابگو نيست اما همچنان براي اسكن كردن سرويس هايي كه پشت فايروال هاي درپيتي Stateless هستند پاسخگو است. وقتي فايروال هاي احمق FIN Flag را مي بينند با خودشان فكر مي كنند كه احتمالا يك Session اي از قبل وجود داشته است و الان مي خواهد پايان بپذيرد بنابراين اجازه عبور بسته اطلاعات را مي دهند !! امروزه اينگونه اسكن نيز زياد جوابگوي كار ما نيست و با انواع Port Scan هاي پيشرفته تر جايگزين شده است اما به هر حال براي حملات DOS نيز مي توان از اين نوع Scan استفاده كرد.

انواع اسكن پورت قسمت 7 : پورت اسكن TCP Idle Scan چيست؟

خوب تا اينجاي كار در توسينسو انواع مختلفي از تكنيك هاي پورت اسكن را به شما عزيزان معرفي كرديم اما در همه اين تكنيك ها يك چيز مشترك بود ، همه اسكن ها مستقيما توسط سيستم مهاجم انجام مي شد و درصد شناسايي مهاجم در اين نوع اسكن ها بسيار بالا مي رفت هر چند كه مخفي كاري نيز انجام شده باشد در هر حال امكان شناسايي وجود دارد.

امروز مي خواهيم در خصوص پيچيده ترين و در عين حال باحال ترين نوع پورت اسكن در دنيا صحبت كنيم و آن چيزي نيست به جز Idle Scan ... در اين نوع اسكن در ساده ترين تعريف ممكن ، شما به هيچ عنوان بصورت مستقيم به سرور مقصد متصل نمي شويد كه درصدي احتمال شناسايي وجود داشته باشد !! شما كارتان را از طريق يك سيستم واسط انجام مي دهيد كه در اصطلاح امنيت و هك به اين سيستم قرباني كه اسكن از طرف آن ثبت و ضبط مي شود Zombie گفته مي شود.

توسط شخصي به نام Antirez طراحي و معرفي شد ، محقق و پژوهشگر حوزه امنيتي كه ابزار hping2 را نيز به دنيا معرفي كرد. از اين نوع پورت اسكن به عنوان پورت اسكن كاملا مخفي يا completely blind port scan نام برده مي شود. مهاجم در اين نوع اسكن كردن حتي يك بسته اطلاعاتي نيز به سمت هدف ارسال نمي كند كه درصدي احتمال شناسايي مهاجم وجود داشته باشد. اين Zombie ها هستند كه فرآيند پورت اسكن را در اين حالت انجام مي دهند و در هر مكانيزم Log برداري فايروال يا سيستم تشخيص نفوذ ، آدرس Zombie ها ثبت و ضبط خواهد شد.

يكي از دلايل محبوبيت اين نوع پورت اسكن در ميان هكرهاي كلاه سياه اين است كه مي توانند اسكن ها را از كامپيوترهاي Zombie اي انجام بدهند كه در دايره اعتماد يا Trust سرور مقصد قرار دارند و بنابراين خيلي ساده تر مي توان عمليات شناسايي را انجام داد.

برخلاف تكنيك هاي پورت اسكني كه تاكنون در توسينسو معرفي شده است ، Idle Scan بسيار بسيار پيچيدگي بيشتري دارد اما قرار نيست شما زياد درگير اين پيچيدگي ها شويد و صرف اينكه متوجه باشيد مكانيزم كاري اين نوع اسكن به چه شكل است براي اين مقاله كفايت مي كند ، بصورت كلي فرآيند پورت اسكن توسط اين تكنيك به شكل زير مي باشد ، در ابتدا يك سري دانش اوليه براي ورود به اين نوع اسكن الزامي است :

  • يكي از روشهاي مرسومي كه باز بودن يك پورت TCP را تشخيص مي دهد ارسال يك بسته SYN براي برقراري ارتباط به پورت مورد نظر است. اگر سيستم هدف در پاسخ بسته SYN//ACK به منزله تاييد برقرار ارتباط را بازگشت داد يعني پورت مورد نظر باز است و اگر در پاسخ بسته RST براي ريست كردن ارتباط ارسال كرد پورت مورد نظر بسته است . اين مكانيزم در Idle Scan نيز وجود دارد و قبلا در توسينسو در قسمت SYN Scan كاملا تشريح شده است.

  • هر ماشيني كه بسته اطلاعاتي ناشناخته اي بصورت SYN//ACK دريافت كند با RST قطعا پاسخ خواهد داد. هرگونه RST بي مورد در فايروال ها ناديده گرفته مي شود .

  • هر بسته اطلاعاتي از نوع IP در اينترنت براي خودش داراي يك Fragment Identification Number يا IP ID مي باشد كه شناسه منحصر به فرد آن سيستم يا بسته اطلاعاتي نيز خواهد بود. با توجه به اينكه اكثر سيستم عامل هاي امروزي از مكانيزم افزايش مقدار IP ID در ارسال بسته هاي اطلاعاتي خودشان استفاده مي كنند ، با شنود كردن IPID هاي سيستم هاي قرباني مي توان تعداد بسته هاي اطلاعات و زمان و ساير اطلاعاتي از اين قبيل را بدست آورد و در Idle Scan ما از اين IPID براي اسكن كردن واسط استفاده مي كنيم.

  • خوب حالا با توجه به سه نكته گفته شده در بالا ، اين امكان وجود دارد كه يك مهاجم با استفاده از IPID يك سيستم واسط قرباني ، يك ماشين ديگر را هدف اسكن كردن قرار بدهد ، اما فرآيند فني Idle Scan نيز قابل تامل است ، بصورت كلي ، فرآيند Idle Scan يك فرآيند سه مرحله اي است كه شامل همه مراحل براي اسكن كردن هر پورت بصورت مجزا مي باشد ، يعني براي اسكن كردن ده عدد پورت ، ده بار بايد فرآيند زير انجام شود كه به شكل زير مي باشد :

  • بايد بر روي سيستم قرباني Zombie به دنبال IP ID گشت و آن را ثبت كرد.

  • از طرف سيستم Zombie به سمت سيستم قرباني بر روي پورت مورد نظر يك بسته SYN ارسال كرد. بر حسب وضعيت پورت مورد نظر كامپيوتر هدف ممكن است باعث شود كه IP ID بعدي اضافه شود يا نيازي به اضافه كردن آن نباشد و بدون تغيير بماند.

  • مجددا به دنبال IP ID جديد سيستم Zombie مي گرديم و آن را ثبت مي كنيم. براي بررسي كردن وضعيت پورت IP ID جديد را با IP ID قديمي مقايسه مي كنيم و متوجه مي شويم كه وضعيت پورت مورد نظر چگونه است زيرا سيستم قرباني درخواست را به سمت Zombie هدايت كرده است. اين فرآيند براي همه پورت هاي مورد نظر مجددا از مرحله اول انجام مي شود.

  • تا اينجاي كار هر نوع Port Scan و روشهاي مختلف اسكن كردن سيستم مقصدي كه بررسي كرديم مبتني بر پروتكل هاي TCP بود و فرآيند سه مرحله اي كه انجام مي شد. اما در UDP Scanning يا بهتر بگوييم UDP Raw ICMP Port Unreachable Scanning ما به جاي TCP از UDP براي اسكن كردن استفاده مي كنيم . يكي از مشكلات مهمي كه هر متخصص در اين خصوص بايد بداند اين است كه UDP يك پروتكل Connectionless است يعني زياد خودش را درگير گرفتن تاييده يا Acknowledge در سيستم مقصد نمي كند.

    به همين دليل ممكن است فرآيند پورت اسكن با استفاده از UDP چندان قابل اعتماد نباشد. روش اسكن كردن با UDP به نسبت اسكن هاي TCP دشوارتر است. شما يك Packet را به سمت مقصد ارسال مي كنيد اما نمي توانيد مطمئن شويد كه بسته مورد نظر شما به مقصد رسيده است يا خير ؟ يا اينكه سيستم مقصد روشن است يا خاموش است يا فيلتر شده است !!

    پس از اينكه اين فرآيند انجام شد ، IP ID مربوط به Zombie بايستي يك يا دو عدد زياد شده باشد. اضافه شدن يك عدد به اين معني است كه Zombie بسته اطلاعاتي خاصي ارسال نكرده است و از آن Packet اي در واقع خارج نشده است ، مگر پاسخ آن به كامپيوتر مهاجم كه ما هستيم ( اسكنر ) . اين كمبود بسته اطلاعاتي به منزله بسته بودن پورت مورد نظر است ، يعني كامپيوتر هدف كه اسكن شده است به سمت سيستم Zombie يك بسته ريست فقط ارسال كرده است كه از طرف Zombie هم Ignore شده است.

    اما اگر عدد IP ID دو عدد زياد شده باشد به منزله باز بودن پورت مورد نظر است زيرا سرور مقصد به سمت سيستم Zombie بسته اطلاعاتي بازگشتي داده است و درخواست برقراري ارتباط داده است. البته اين ساختار بسيار ساده تشريح شده است و در خصوص Idle Scan بحث هاي زيادي مي توان انجام داد. فقط به اين مسئله نيز دقت كنيد كه Zombie چيزي نيست كه هميشه در دسترس باشد و شما بايد يك سيستم Zombie براي اينكار از قبل آماده داشته باشيد يا با استفاده از اسكريپت هاي خاص اين قرباني هاي واسط را پيدا كنيد.

    انواع اسكن پورت قسمت 8 : پورت اسكن UDP Scan چيست؟

  • تا اينجاي كار هر نوع Port Scan و روشهاي مختلف اسكن كردن سيستم مقصدي كه بررسي كرديم مبتني بر پروتكل هاي TCP بود و فرآيند سه مرحله اي كه انجام مي شد. اما در UDP Scanning يا بهتر بگوييم UDP Raw ICMP Port Unreachable Scanning ما به جاي TCP از UDP براي اسكن كردن استفاده مي كنيم . يكي از مشكلات مهمي كه هر متخصص در اين خصوص بايد بداند اين است كه UDP يك پروتكل Connectionless است يعني زياد خودش را درگير گرفتن تاييده يا Acknowledge در سيستم مقصد نمي كند.

    به همين دليل ممكن است فرآيند پورت اسكن با استفاده از UDP چندان قابل اعتماد نباشد. روش اسكن كردن با UDP به نسبت اسكن هاي TCP دشوارتر است. شما يك Packet را به سمت مقصد ارسال مي كنيد اما نمي توانيد مطمئن شويد كه بسته مورد نظر شما به مقصد رسيده است يا خير ؟ يا اينكه سيستم مقصد روشن است يا خاموش است يا فيلتر شده است !!

    اما در بين همه پروتكل هايي كه بصورت UDP كار مي كنند ICMP اين امكان را به شما مي دهد كه باز يا بسته بودن پورت را تشخيص بدهيد. اگر شما يك بسته UDP از نوع ICMP بدون هيچگونه درخواست سرويس خاصي ( بدون درخواست Application خاصي ) به سمت سرور بر روي يك پورت خاص سرور مقصد ارسال كنيد ، IP Stack در پاسخ به شما پيام ICMP port unreachable packet را صادر خواهد كرد يعني پورت مورد نظر باز است.

    اگر در پاسخ به شما يك خطاي ICMP مشاهده شد ، پورت مورد نظر بسته است و اگر سرور مورد نظر هيچ اطلاعي در خصوص باز بودن يا بسته بودن پورت در اختيار شما قرار نداد در نتيجه پورت مورد نظر توسط فايروال فيلتر شده است. اين اتفاق براي اين رخ مي دهد كه پورت هاي باز مجبور نيستند در پاسخ به يك درخواست تاييده بدهند و پاسخ برگردانند و همچنين پورت هاي بسته نيز مجبور نيستند كه پيام خطا ارسال كنند .

    زمانيكه شما يك بسته اطلاعاتي را به سمت يك پورت UDP ارسال مي كنيد بيشتر سيستم ها در پاسخ خطاي ICMP Port Unreachable را پاسخ مي دهند. بنابراين شما مي توانيد متوجه شويد كه پورت مورد نظر باز نيست. با توجه به اينكه بسته هاي UDP اهميتي به خطاها نمي دهند ، اسكنرهاي UDP مجددا بسته اطلاعاتي مورد نظر را مرتب ارسال مي كنند تا مطمئن شوند كه بسته به مقصد رسيده است .

    اسكنرهاي UDP بسته هايي كه از بين رفته اند در حين انتقال را نيز به عنوان پورت هاي باز تشخيص مي دهند كه يكي از نقاط ضعف مهم اين نوع اسكن مي باشد. علاوه بر اين اين تكنيك اسكن كردن بسيار كند است و اين محدوديت زمان نيز به دليل محدوديت هاي خطاهاي ICMP اي است كه در اين پروتكل وجود دارد. سيستم مقصد براي تشخيص پورت هاي بسته يا unreachable بايستي به سوكت ICMP خام دسترسي داشته باشد. بسياري از تروجان ها و كدهاي مخرب از پورت هاي UDP براي انتقال داده هاي خودشان استفاده مي كنند.

    انواع اسكن پورت قسمت 9 : پورت اسكن ICMP Echo Scan چيست؟

    اين نوع از اسكن كردن در دسته بندي پورت اسكن ها در نرم افزارهاي مختلف قرار نمي گيرد و شما به عنوان يك متخصص امنيت شبكه بايد بدانيد كه ICMP Echo Scanning براي شناسايي سيستم هاي روشن در شبكه استفاده مي شود ، اينكار توسط Ping كردن تمامي ماشين هايي كه در محدوده آدرس تعريف شده وجود دارند انجام مي شود. در اين نوع حمله از روش جالبي استفاده مي شود ، مهاجم در بسته هاي ICMP را به سمت آدرس شبكه يا Broadcast Address شبكه مورد نظر ارسال مي كند و از اين طريق تنها يك درخواست به اين آدرس باعث مي شود كه درخواست Echo Request به همه سيستم هاي موجود در آن Subnet ارسال شود.

  • سيستم هايي كه در شبكه روشن باشند با استفاده از Echo Reply به درخواست مهاجم پاسخ مي دهند و اعلام موجوديت مي كنند.مكانيزم اسكن ICMP Echo فقط در سيستم عامل هاي خانواده لينوكس و يونيكس و البته خانواده BSD قابل استفاده است.

    در اين خانواده از سيستم عامل ها پشته پروتكل TCP/IP به گونه اي طراحي شده است كه به Echo Request هايي كه از سمت آدرس Broadcast در شبكه دريافت مي شود سيستم عامل پاسخ مي دهد. در سيستم عامل هاي خانواده ويندوز پشته پروتكل TCP/IP به گونه اي طراحي شده است كه به اين درخواست ها از آدرس Broadcast شبكه بصورت پيشفرض پاسخ نمي دهد به همين دليل Echo Scan در خانواده ويندوز چندان كاربردي ندارد.

  • همانطور كه قبلا هم اشاره كرديم ، ICMP Echo Scan به عنوان يك تكنيك Port Scanning بكار نمي رود چون هيچگونه پارامتري و اثري از پورت در نحوه شناسايي سيستم عامل هاي شبكه وجود ندارد. تنها كاربرد آن شناسايي سيستم عامل هاي فعال در شبكه است. شما براحتي مي توانيد با ابزاري مثل Zenmap اين نوع اسكن را انجام بدهيد.

    پارامتر Latency يا تاخير در خروجي Zenmap به معني مدت زماني است كه بسته توسط سيستم عامل دريافت شد و پاسخ داده شد است.Echo Scan اگر طبيعتا شما پروتكل ICMP را بر روي سيستم ها بسته باشيد امكان شناسايي چيز خاصي را ندارد ، با توجه به اينكه اكثر سيستم هاي موجود در شبكه اين پروتكل را باز مي گذارند بعضا مي تواند به شناسايي سيستم هاي لينوكسي روشن در شبكه كمك كند ، اين نوع اسكن هر چند زياد كاربردي ندارد اما بعضا در مواردي كه نياز است كه سريعتر سيستم ها شناسايي شوند مي تواند مفيد باشد.

    انواع پورت اسكن قسمت 10 : Decoy Scan چيست؟

    همانطور كه قبلا در توسينسو بحث كرديم Port Scan كردن پشت فايروال ها و IDS ها به مراتب سخت تر از روشهاي ديگر پورت اسكن است . قبلا در خصوص تكنيك Packet Fragmentation مطلبي را منتشر كرده ايم اما امروز در خصوص روش ديگري به نام Decoy Scan صحبت خواهيم كرد.

    اين روش پورت اسكن چندان جذاب و جالب به نظر نمي رسد ، تمامي Packet ها به ظاهر از سمت ماشين اسكنر ارسال مي شوند اما آدرس هاي Source كه در بسته هاي اطلاعاتي ارسال مي شوند بصورت Spoof يا جعل شده ارسال مي شوند ، به زبان ساده تر پاسخ به بسته هاي اطلاعاتي ارسال شده به سمت كامپيوتر اسكنر برگشت داده نمي شود !!

  • اين يكي از دلايلي است كه اين روش را چندان جذاب نمي كند براي اينكه وضعيت پورت ها به سختي شناسايي مي شوند. در واقع اين تكنيك بيشتر از اينكه نقش پورت اسكنر را داشته باشد براي جلوگيري از كردن از شناسايي آدرس IP مهاجم يا اسكنر استفاده مي شود تا در لاگ هاي فايروال به اشتباه آدرسهاي متفاوت ثبت شوند.

    آدرسهاي IP كه در اين نوع پورت اسكن ( بهتر هست كه ديگه اسم پورت اسكن روي اين روش گذاشته نشه ) به عنوان Host قرار داده مي شود بصورت تصادفي از Subnet اي كه سرور هدف قرار دارد يا Subnet اي كه ماشين مهاجم در آن قرار دارد بر روي Source قرار مي گيرند. اين نوع پورت اسكن در واقع روشي براي گمراه كردن فايروال ها براي لاگ برداري از Session ها است. در زير نمونه از اين نوع اسكن را در نرم افزار nmap مشاهده مي كنيد :

  •  

     

    nmap -D  

    همانطور كه در دستور بالا مشاهده مي كنيد بعد از پارامتر D كه نماد Decoy است آدرس هاي IP بصورت تصادفي قرار مي گيرند.

    انواع پورت اسكن قسمت 11 : TCP Connect Scan چيست؟

    اسكن وانيلي چيست؟ Full Open Scan چيست؟ TCP Connect Scan چيست؟ به عنوان يك متخصص در حوزه امنيت اطلاعات شما بايد بعد از اين بدانيد كه قابل اعتمادترين نوع پورت اسكن از نوع TCP ، TCP Connect Scan يا Full Open Scan است كه بعضا ما آن را به عنوان Vanilla Scan هم مي شناسيم. در اين نوع تكنيك پورت اسكن ، اسكنر يك درخواست برقراري ارتباط با سرور مقصد بر روي پورت مورد نظرش ارسال مي كند ، اين درخواست توسط سيستم TCP Connect اسكنر ارسال مي شود .

    در طرف مقابل اگر سرور هدف بر روي پورت درخواستي در حالت Listening باشد فرمان TCP Connect موفقيت آميز خواهد بود ، به اين معني كه پورت مورد نظر باز است ، در غير اينصورت پورت در دسترس نيست و سرويسي بر روي آن ارائه نمي شود.

  • در فرآيند TCP Three-way Handshake كلاينت به سمت سرور يك SYN Flag ارسال مي كند كه توسط سرور دريافت و توسط يك SYN+ACK Flag پاسخ داده مي شود ، در بازگشت كلاينت توسط يك ACK Flag به منزله كامل شدن Connection است. در واقع در يك Connection كامل ارتباطي TCP هر دو طرف ارتباط را برقرار مي كنند و در حالت استاندارد هر دو طرف هم ارتباط را پايان مي دهند.

  • در اسكن وانيلي يا Vanilla Scan زمانيكه فرآيند TCP Handshake كامل شد ، كلاينت بصورت يكطرفه به ارتباط پايان مي دهد و اگر ارتباط برقرار نشده باشد ماشيني كه مورد اسكن قرار گرفته است بصورت ناخواسته دچار يك حمله DOS ساده مي شود كه اينكار باعث مي شود شما بتوانيد به عنوان اسكنر يك Socket جديد را ايجاد يا فراخواني كنيد.

    به همين دليل امكان اسكن كردن پورت هاي جديد براي سرويس هاي جديد وجود خواهد داشت. اين فرآيند تا زمانيكه حداكثر پورت هاي موجود بر روي سيستم هدف اسكن شوند قابل ادامه است. اگر پورت مورد نظر بر روي سرور بسته باشد ، سرور با ارسال يك RST+ACK Flag كه براي Reset كردن Connection است پاسخ مي دهد و كلاينت نيز در همين هنگام يك RST Flag ديگر براي اتمام ارتباط ارسال خواهد كرد. اينكار نيز توسط همان TCP Connect اي كه فراخواني شده است انجام مي شود.

    ايجاد كردن Connect هاي مجزا ( فراخواني تابع Connect ) براي هر پورت موجود باعث مي شود كه ناخودآگاه فرآيندپورت اسكن شما كند شده و مدت زمان زيادي را از شما بگيرد ، به ويژه اينكه لينك اينترنت شما هم ضعيف باشد. مهاجم در چنين مواقعي مي تواند سرعت اسكن كردن خودش را با استفاده از موازي كاري سوكت ها زياد كند يعني بصورت همزمان بر روي چندين سوكت درخواست ارسال كند. اگر سرور مقصد مكانيزم بلاك كردن يا مسدود كردن I/O هاي زياد را پياده سازي نكرده باشد ، مهاجم مي تواند بصورت همزمان همه سوكت هاي خودش را تجزيه و تحليل و نتيجه را مشاهده كند.

    از معايب اين نوع اسكن كردن مي توان به سهولت شناسايي و فيلتر كردن آن اشاره كرد. با توجه به اينكه در اين نوع از پورت اسكن رسما فرآيند TCP Handshake كامل مي شود و Session ارتباطي برقرار و سپس قطع مي شود ، كليه Session ها در فايروال لاگ برداري و قابل رديابي مي شوند و همين امر مي تواند باعث شناسايي و پيگرد مهاجم شود. اما از طرفي با توجه به اينكه دقت اين نوع اسكن بسيار بالا است مي توان براي فرآيند هاي اسكن كردن قانوني روي آن حساب ويژه اي باز كرد.لازم به ذكر است كه اين نوع اسكن بر روي هرگونه سيستم عاملي قابل استفاده است.

    انواع اسكن پورت قسمت 12 : تكنيك Packet Fragmentation چيست؟

    Packet Fragmentation چيست؟ خوب تا اينجاي كار در توسينسو انواع و اقسام روش هاي مختلف Port Scanning را با هم ياد گرفته ايم و مفاهيم هر كدام را متوجه شده ايم . اما هميشه هم روشهاي گفته شده كارايي لازم را ندارند به ويژه زمانيكه شما در پشت يك فايروال قرار داشته باشيد فرآيند Port Scan بسيار دشوارتر خواهد بود. از اين جهت روش هاي متنوع تري براي پورت اسكن پشت فايروال ها و سيستم هاي تشخيص نفوذ وجود دارد كه يكي از جالبترين و جذاب ترين آنها روشي به نام Fragmentation Scanning يا Packet Fragmentation است.

  • همانطور كه مي دانيد زمانيكه شما مي خواهيد يك Port Scan انجام بدهيد يك بسته اطلاعاتي يا Packet بصورت كامل به سيستم مقصد ارسال مي شود تا بررسي هاي لازم بر روي پورت ها را انجام بدهد. اما فايروال ها و سيستم هاي تشخيص نفوذ براحتي اين نوع بسته هايي كه براي اسكن كردن يا مصارف ديگر هستند را شناسايي مي كنند و بعضا ممكن است عمليات اسكن شما ناموفق باشد.

    تكنيك Packet Fragmentation همانطور كه از نامش هم پيداست يعني يك بسته اطلاعاتي به جاي اينكه بصورت كامل براي هدف حمله ارسال شود كه ممكن است پشت يك IDS يا فايروال باشد ، بصورت تكه تكه شده براي هدف ارسال شده و بعد سرهم بندي مي شود و نتيجه اعلام مي شود.

    در واقع اين تكنيك از پورت اسكن روش چندان جديدي نيست و با دستكاري كردن روش هاي قبلي پورت اسكن به نتيجه رسيده است. شما در اين روش TCP Header يك بسته اطلاعاتي IP را به قطعات كوچكتر تقسيم بندي مي كنيد به طوريكه فايروال هاي Packet Filtering توانايي تشخيص يك Packet كامل را نداشته باشند و به همين دليل امكان شناسايي اين مورد بسيار سخت مي شود.

    اما در خصوص استفاده كردن از اين نوع پورت اسكن دقت كنيد ، برخي از نرم افزارها در نحوه برخورد با اينگونه بسته هاي اطلاعاتي ريز و تكه تكه شده مشكل دارند و نمي توانند اين نوع ترافيك را تجزيه و تحليل كنند. براي مثال برخي از نرم افزارهاي Sniffer ممكن است به محض دريافت كردن چنين بسته هاي اطلاعاتي هنگ كنند و دچار اختلال شوند.

    اما خوب سيستم عامل ها و فايروال هاي تحت لينوكس معمولا مشكل خاصي با اين نوع Fragment Packet ها ندارند و حتي در سيستم عامل هاي خانواده لينوكس Option اي به شكل CONFIG_IP_ALWAYS_DEFRAG به همين منظور وجود دارد.

    اما بسياري از زيرساختارهاي شبكه نيز با دريافت چنين بسته هايي كارايي خود را از دست مي دهند يا كمي در كارايي شبكه آنها اختلال ايجاد مي شود. اين تكنيك بصورت ويژه و اختصاصي براي پورت اسكنرها طراحي شده است شما مي توانيد در پورت اسكنري مثل nmap با استفاده از سويچ f مشابه مثال پايين استفاده كنيد :

    nmap –f 192.168.1.5 < Other Options >
    

    در مثال بالا ما به nmap مي گوييم كه با استفاده از packet هاي fragment شده بسيار كوچك اسكني از نوع FIN و SYN را بر روي هدف انجام بدهد. به اين نكته توجه كنيد كه روش فوق مي تواند بسيار كاربردي باشد با توجه به اينكه بسياري از مديرهاي شبكه بر روي فايروال هاي خودشان براي بالا بردن كارايي سيستم قابليت packet reassembly را غيرفعال مي كنند چون پردازش CPU فايروال را بالا مي برد و به همين دليل باعث مي شود كه بتوانيم پشت فايروال را اسكن كنيم .

    در سيستم هاي تشخيص نفوذي مثل snort هم پيشفرض قابليت fragmentation reassembly غيرفعال شده است. البته طبيعتا در ادامه دستور مورد نظر Option هاي مختلفي كه مي توانيم براي اين دستور استفاده كنيم را اضافه خواهيم كرد اما پارامتر f در اينجا به معني fragment كردن اسكن است.


برچسب: , آموزش هك ،آموزش هك قانونمند،آموزش CEH ،آموزش سكيوريتي پلاس،آموزش Security،آموزش امنيت شبكه،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۶ فروردين ۱۴۰۲ساعت: ۱۰:۲۲:۳۸ توسط:محمد نصيري موضوع:

معرفي انواع Enumeration در حملات سايبري + آموزش و تكنيك ها

 

 

امروز با معرفي تكنيك هاي بدست آوردن اطلاعات از هدف هك و نفوذ يا انواع Enumeration در خدمت شما عزيزان هستيم. در مقاله قبلي در وب سايت توسينسو با مفهوم Enumeration چيست و درك چگونگي دريافت اطلاعات و اهميت بدست آوردن اطلاعات دقيق از هدف هك و نفوذ صحبت كرديم. امروز مي خواهيم در خصوص انواع Enumeration يا انواع تكنيك هاي كسب اطلاعات از هدف حمله هكري صحبت كنيم ، پس تا انتها با ما باشيد.

نوع 1 : NetBIOS Enumeration چيست؟

اولين نوع از انواع Enumeration از طريق سرويس NetBIOS انجام مي شود. اولين گامي كه يك مهاجم براي Enumeration از يك سيستم ويندوزي برمي دارد سوء استفاده كردن از NetBIOS API است. همانطور كه به عنوان يك متخصص امنيت مي دانيد NetBIOS مخفف كلمه هاي Network Basic Input Output System است و توسط شركت IBM با همكاري شركت هاي Sytek طراحي و توليد شده است.

  • بيشتر بخوانيد : آموزش Enumeration و تكنيك هاي دريافت اطلاعات از هدف نفوذ

در واقع NetBIOS به عنوان يك API يا Application Programming Interface براي فراهم كردن دسترسي ساده تر به منابع شبكه مورد استفاده قرار مي گرفت و بر همين مبنا براي استفاده در شبكه هاي داخلي LAN ساخته شد. ساختار نامگذاري NetBIOS با استفاده از يك رشته كاراكتر ASCII انجام مي شود كه هر دستگاه در شبكه بعد از گرفتن آدرس IP از آن استفاده مي كند ، 15 كاراكتر ابتداي آن براي نامگذاري دستگاه و شانزدهيم كاراكتر به عنوان ركورد نام يا سرويس استفاده مي شود. مهاجمين از NetBIOS براي Enumerate كردن موارد زير استفاده مي كنند :

  • بدست آوردن ليست كامپيوترهاي شبكه كه داراي منابع به اشتراك گذاري شده هستند
  • بدست آوردن Policy هاي اعمال شده در شبكه به همراه برخي پسوردها

اگر مهاجم سيستم عامل ويندوزي را پيدا كند كه شماره پورت 139 آن باز باشد ، مي تواند بررسي كند كه آيا منابعي بر روي آن سيستم وجود دارند كه بتوانيم آن را مشاهده و يا بعضا به آنها دسترسي داشته باشيم يا خير ، البته به اين موضوع توجه كنيد كه براي اينكه Enumerate شدن از طريق NetBIOS به درستي انجام شود مهم است كه سرويس file and printer sharing فعال شده باشد.

با استفاده از تكنيك هاي زير مهاجم مي تواند به منابعي كه بر روي سرور هدف وجود دارد دسترسي پيدا كند ، دو حمله كلي در اين نوع Enumeration وجود دارد ، يا مهاجم دسترسي Read و Write بدست مي آورد يا اينكه مي تواند حمله Denial Of Service يا تكذيب سرويس بر روي سيستم هدف انجام دهد . در Enumerate كردن سرويس NetBIOS شما Code هاي مختلفي را بايد بدانيد ، با بازگشت داده شدن هر يك از اين كدها شما مي توانيد متوجه شويد كه چه سرويسي بر روي سرور هدف وجود دارند ، به اين كدها در اصطلاح Suffix هم گفته مي شود براي مثال :

  1. كد 00 مربوط به نام كامپيوتر يا Hostname مقصد است

  2. كد 01 مربوط به نام دومين يا Domain Name مقصد است

  3. كد 03 مشخص كنند اين است كه سرويس Messenger در سيستم مقصد فعال است

  4. كد 20 به معني فعال بودن سرويس Server در مقصد است

  5. كد 1D به معني Browser Name كامپيوتر مقصد است

  6. كد 1B به معني تايم سرور يا PDC سرور كامپيوتر مقصد است

  7. ...

به اين نكته توجه كنيد كه در IPv6 ديگر چيزي به نام NetBIOS وجود ندارد و اين سرويس به كلي فعال نيست.

NetBIOS Enumeration چيست

نوع 2 : LDAP Enumeration چيست؟

يكي از پركاربردترين پروتكل هاي مورد استفاده در شبكه كه امكان Enumeration را به ما مي دهد LDAP است. LDAP مخفف كلمه هاي Lightweight Directory Access Protocol مي باشد و اين پروتكل در بزرگترين پايگاه داده هاي نگهداري و مجتمع سازي Object هاي شبكه مثل اكتيودايركتوري مورد استفاده قرار مي گيرد. LDAP يك پايگاه داده است و اين پايگاه داده قابليت پرسش و پاسخ يا Query گرفتن دارد.

مي توان با استفاده از اين روش دسترسي به داده هاي موجود در پايگاه داده دست پيدا كرد. ساختار دايركتوري سرويس ها در دنيا يك ساختار استاندارد و سلسله مراتبي است و مثل ساختارهاي سازماني است كه در اكثر شركت ها و سازمان ها مشاهه مي كنيد. LDAP يكي از سرويس هايي است كه قابليت يكپارچه شدن با سرويس DNS و انجام Query هاي اسم خيلي سريع را دارد. LDAP بصورت معمول بر روي پورت 389 كار مي كند و امكان Query گرفتن از خودش را بصورت پيشفرض ارائه مي دهد .

LDAP Enumeration چيست

برخي اوقات اين امكان وجود دارد كه با وجود پيكربندي هاي نادرست اين سرويس امكان Query گرفتن از اطلاعات توسط افراد ناشناس فراهم مي شود و مهاجم مي تواند با استفاده از Query اطلاعات بسيار خوبي از جمله Username ها ، آدرس ها ، اطلاعات سازماني و ... را از طريق اطلاعات موجود در اين دايركتوري سرويس كه معمولا اكتيودايركتوري است بدست بياورد. اين اطلاعات مي تواند بعدا براي مصارف مهندسي اجتماعي و ... مورد استفاده قرار بگيرد.

LDAP Enumeration در واقع به فرآيندي گفته مي شود كه شما به عنوان يك مهاجم مي توانيد اطلاعات مربوط به username ها و ... را راه دور دريافت كنيد . شما مي توانيد در شبكه هاي مبتني بر اكتيودايركتوري قابليت Enumeration را غيرفعال كنيد ، اين قابليت به مهاجم امكان Cache كردن اطلاعات بسياري را بر روي سيستم خودش مي دهد. اطلاعات مربوط به كاربران ، گروه ها ، share هاي شبكه ، ايميل ها ، آدرس ها ، شماره تلفن ها و ... از اين طريق قابل دسترس هستند.

نوع 3 : Email Enumeration چيست؟

بصورت معمول هر آدرس ايميل از دو قسمت تشكيل شده است ، قسمت اول كه نام كاربري يا Username است و قسمت دوم كه نام دومين يا Domain Name است. در واقع همانطور كه مي دانيد ساختار يك آدرس ايميل بصورت username@domainname.com است .

Email Enumeration چيست

تصور كنيد كه يك آدرس ايميل به شكل m.nasiri@tosinso.com داريم در اين ساختار مشخص است كه m.nasiri يك نام كاربري و domainname.com آدرس دومين مورد استفاده است كه با علامت @ از هم جدا شده اند. بعضا با استفاده از اين ساختار مي توان به نام كاربري هاي داخلي شبكه نيز پي برد و ساختار نامگذاري username ها را حدس زد. شما با استفاده از گرفتن اطلاعات كاربران مي توانيد ساختار ايميل هاي هر كاربر در سازمان را تشخيص بدهيد.

نوع 4 : Default Password Enumeration چيست؟

تجهيزاتي مثل سويچ و روتر و Access Point ها و حتي برخي نرم افزارها بصورت پيشفرض داراي پسورد هستند كه اين پسورد معمولا در هر نوع محصول تقريبا مشابه است. حتي بعضا برخي نرم افزارهاي آنلاين نيز براي ايجاد دسترسي هاي پيشفرض از يك سري Username و Password پيشفرض استفاده مي كنند. در بسياري اوقات پيش مي آيد كه كاربران بدون توجه به اينكه بايستي اين رمزعبورها تغيير كند از همان رمز عبور پيشفرض نرم افزار بصورت هميشگي استفاده كرده و آنها را تغيير نمي دهند.

انواع Enumeration و پسوردهاي پيشفرض

خوب اين طبيعي است كه وقتي شما پسورد پيشفرض يك دستگاه يا نرم افزار را تغيير نمي دهيد بايد انتظار داشته باشيد كه يك هكر نيز بتواند از آن براي حمله كردن به شما استفاده كند يا ريسك اين را بايد بپذيريد كه هر كسي بتواند با اين نام كاربري و رمز پيشفرض از سيستم شما سوء استفاده كند. وب سايت هاي زيادي هستند كه ليستي از پسوردهاي پيشفرض دستگاه هاي مختلف با مدل هاي مختلف را بصورت آنلاين در اختيار همه قرار مي دهند.

فراموش نكنيد كه حتما براي نرم افزارها و سخت افزارهاي خود بلافاصله بعد از پيكربندي اوليه پسورد و نام كاربري متفاوتي از آنچه پيشفرض استفاده مي شده است استفاده كنيد. براي مثال چند نفر از شما پسورد و نام كاربري روتر خانگي خودش را Admin و Admin همچنان نگه داشته است و توجهي به تغيير دادن آن نكرده است ؟

با دسترسي پيدا كردن يك مهاجم مي توان از اين حفره ها و آسيب پذيري هاي امنيتي در وهله اول براي Enumeration و در وهله دوم براي پيدا كردن دسترسي هاي بيشتر استفاده كرد. در زير ليستي از وب سايت هايي كه پسورد هاي پيشفرض را به شما معرفي مي كنند را مشاهده مي كنيد :

http://www.defaultpassword.com/
https://cirt.net/passwords
http://www.routerpasswords.com/

نوع 5 : SMTP Enumeration چيست؟

قطعا مي دانيد كه سرويس SMTP كاربرد ارسال ايميل را بر عهده دارد و اگر اين سرويس به درستي پيكربندي نشده باشد به دستوراتي كه از طريق خط فرمان يا نرم افزارهاي مربوطه ارسال مي شوند پاسخ هايي مي دهد كه مي تواند در فرآيند Enumeration مورد استفاده قرار بگيرند. EMTP Enumeration به شما اجازه مي دهد كه كاربران معتبر بر روي SMTP سرور را شناسايي كنيد. اينكار با استفاده از دستورات Built-In اي كه درون سرويس SMTP قرار گرفته اند امكانپذير است. اين سه دستور به شرح زير هستند :

  1. دستور VRFY : اين دستور براي بررسي اعتبار كاربران يا در اصطلاح بررسي Validity كاربران استفاده مي شود
  2. دستور EXPN : اين دستور براي بررسي آدرس هاي Delivery و همچنين ليست ايميل ها استفاده مي شود
  3. دستور RCPT TO : اين دستور دريافت كنندگان يك پيام را تعريف مي كند

STMP سرورهاي مختلف بصورت متفاوتي اعتبار يا عدم اعتبار هر كدام از اين دستورات پاسخ مي دهند بنابراين با تجزيه و تحليل كردن خروجي اين دستورات مي توان براحتي كاربران معتبر بر روي آن SMPT سرور را شناسايي كرد. همچنين مهاجم مي تواند بصورت مستقيم با خود SMTP سرور نيز ارتباط بگيرد و دستورات را با استفاده از Telnet بر روي سرور مورد نظر ارسال كند كه معمولا به شكل زير انجام مي شود ، براي مثال دستور زير استفاده از SMTP VRFY با استفاده از Telnet بر روي يك SMTP سرور را نشان مي دهد :

 

$ telnet 10.1.1.1
Trying 10.1.1.1
Connected to 10.1.1.1
Escape character ‘^]’.
220 NYmailserver ESMTP Sendmail 8.9.3
HEO
501 HELO requires domain address
HELO x
250 NYmailserver Hello [10.0.0.86] , please to meet you
VRFY Mohammad
250
Super-User 
VRFY Hossein
550 Hossein… User unknown

انواع Enumeration و SMTP Enumeration چيست

حالا همان حالت را با دستور SMTP EPN تست مي كنيم :

 

$ telnet 10.1.1.1
Trying 10.1.1.1…
Connected to 10.1.1.1.
Escape character is ‘^]’.
220 NYmailserver ESMTP Sendmail 8.9.3
HELO
501 HELO requires domain address
HELO x
250 NYmailserver Hello [10.0.0.86] , please to meet you
EXPN Mohammad
550 Super-User 
EXPN Hossein
550 Hossein… User unknown

و در نهايت مثالي از خروجي دستور SMTP RCPT TO با استفاده از Telnet :

$ telnet 10.1.1.1
Trying 10.1.1.1 …
Connected to 1.1.1.1.
Escape character is ’^]’.
220 NYmailserver ESMTP Sendmail 8.9.3
HELO
501 HELO requires domain address
HELO x
250 NYmailserver Hello [10.0.0.86], pleased to meet you
MAIL FROM:Mohammad
250 Mohammad… Sender ok
RCPT TO:Ali
250 Ali…Recipient ok
RCPT TO:Hossein
550 Hossein… User unknown

نوع 6 : SNMP Enumeration چيست؟

قطعا اگر اين مطلب را در مورد هك و امنيت مطالعه مي كنيد با كاربرد پروتكل SNMP آشنايي داريد اما بصورت خلاصه SNMP يك پروتكل لايه Application است كه بصورت UDP كار كرده و براي مديريت و نگهداري تجهيزاتي مثل روتر ، سويچ ، فايروال ، UPS و تجهيزاتي از اين قبيل مورد استفاده قرار مي گيرد.

SNMP داراي يك سري Agent مي باشد كه بر روي سخت افزارهايي كه در شبكه مبتني بر پروتكل IP فعاليت مي كنند فعال شده و اجرا مي شود ، طبيعتا چنين Agent هايي براي سيستم عامل هاي ويندوز و خانواده لينوكس نيز طراحي و وجود دارند و اين پروتكل منحصر به استفاده در تجهيزات نمي باشد.

انواع Enumeration و SNMP Enumeration چيست

بر اساس تعاريفي كه تا كنون از فرآيند Enumeration در هك قانونمند داشته ايم تعريف واژه SNMP Enumeration بدست آوردن اطلاعات حسابهاي كاربري و تجهيزات و و حتي Process هايي است كه بر روي كامپيوتر هدف وجود دارند ، مي باشد. دو نوع جزء نرم افزاري در زمانيكه شما با استفاده از پروتكل SNMP ارتباط برقرار مي كنيد بكار گرفته مي شوند كه اولين جزء SNMP Agent و دومين آن SNMP Management Station مي باشد.

  • بيشتر بخوانيد : شناخت 4 روش مقابله با حمله Enumeration در هك و نفوذ

SNMP Agent در واقع قسمتي از اين پروتكل است كه بر روي سخت افزارها و سيستم عامل ها فعاليت مي كند و گزارش ها را دريافت و ارسال مي كند و SNMP Management Station جزئي است كه اطلاعات را از Agent دريافت و به كاربر نمايش مي دهد ، به زبان ساده Station همان نرم افزار مانيتورينگي است كه شما در شبكه معمولا استفاده مي كنيد.

تقريبا همه دستگاه ها و تجهيزاتي كه در شبكه هاي امروزي مورد استفاده قرار مي گيرند از SNMP پشتيباني مي كنند و داراي SNMP Agent مي باشند و به همين طريق قابل مديريت و نظارت توسط SNMP Management Station مي باشند. مكانيزم كاري بسيار ساده است ، SNMP Management Station درخواست خودش را به سمت دستگاهي كه SNMP Agent دارد ارسال مي كند و دستگاه بعد از پردازش درخواست توسط SNMP Agent پاسخ مناسب را به سمت Management Station ارسال مي كند. هم درخواست ها و هم پاسخ ها در واقع تنظيماتي هستند كه بر روي نرم افزار Agent انجام مي دهيم.

البته در نظر داشته باشيد كه برخي متغيرها توسط SNMP Management station قابل تغيير هستند و پيكربندي مي شوند. تقريبا هر اتفاق يا رويدادي كه بر روي SNMP Agent رخ بدهد براي Management Station ارسال مي شود از كوچكترين خطاهاي سيستمي گرفته تا Reboot شدن سيستم يا هر اتفاق ديگر به اطلاع سيستم مديريتي و نظارتي SNMP مي رسد. SNMP داراي دو پسورد است كه ما آنها را به نام Community String مي شناسيم و هر دوي آنها مي توانند هم براي دسترسي و هم براي انجام تغييرات بر روي SNMP Agent مورد استفاده قرار بگيرند ، اين پسوردها به عنوان Read Community و Read//Write Community شناسايي مي شوند.

Read Community String همانطور كه از نامش پيداست فقط براي ارسال درخواست از طريق سيستم مديريتي و دريافت پاسخ از Agent مورد استفاده قرار مي گيرد و هيچ كاربردي در خصوص انجام تغييرات بر روي دستگاه ندارد ، در واقع اين نوع پسورد بيشترين استفاده را در SNMP دارد و صرفا جنبه اطلاع رساني و مديريتي و نظارتي دارد ، تمامي تنظيمات سيستم Agent با اين روش و با اين پسورد قابل مشاهده و نظارت است.

اما Read//Write Community String همانطور كه مجددا از نامش پيداست هم قابليت هاي Read Community String را دارد و هم اين امكان را دارد كه تغييراتي را بر روي سيستم Agent اعمال كند . معمولا از Read Community به عنوان رشته عمومي يا Public و از Read//Write Community به عنوان رشته خصوصي يا Private نام برده مي شود.

در بيشتر موارد به دليل سهل انگاري مديرهاي شبكه Community String ها بعد از فعال سازي اين سرويس تغيير نمي كنند و بصورت پيشفرض وجود دارند و در اصطلاح فني Default Password هستند. در اينجاست كه مهاجمين مي توانند با استفاده از اين آسيب پذيري و اتصال به سيستم ها اطلاعات بسيار مفيد و كاربردي از سيستم هدف به دست بياورند كه در فرآيند Enumeration مي تواند بسيار موثر باشد.

اگر سهل انگاري مدير تا حدي باشد كه پسورد Read//Write Community را نيز بصورت پيشفرض فعال كرده باشد اين احتمال براي مهاجم وجود دارد كه حتي بتواند پيكربندي سيستم مورد نظر را نيز تغيير بدهد . اطلاعاتي از قبيل تنظيمات و پيكربندي دستگاه ، Share هاي شبكه ، مسيرياب ها ، منابع شبكه و ... حتي ARP Table و Routing Table و ... در سوء استفاده كردن از اين سرويس قابل دستيابي براي مهاجمين مي باشد. دسترسي به اطلاعات مربوط به SNMP با استفاده از ابزارهاي بسيار زيادي ممكن است كه يكي از انها كه براي SNMP Enumeration بصورت ويژه مورد استفاده قرار مي گيرد SNMPUtil مي باشد .

نوع 7 : NTP Enumeration چيست؟

قبل از اينكه در خصوص Enumeration از اين سرويس بپردازيم بايستي دقيقا متوجه باشيم كه اين سرويس چيست و چه كاري انجام مي دهد. NTP مخفف كلمه هاي Network Time Protocol مي باشد و سرويسي است كه مسئوليت اعلام زمان دقيق براي سيستم ها را بر عهده دارد ، برخي از سرويس هاي شبكه براي احراز هويت و بسياري از مسائل ديگر نياز به اين سرويس دارند.

انواع Enumeration و NTP Enumeration چيست

در شبكه هاي مبتني بر سيستم عامل ويندوز سرور معمولا سرور Domain Controller اصلي به عنوان NTP شناخته مي شود. همانند سرويس SMTP سرويس NTP نيز از آن دسته از سرويس هايي است كه بيشتر از 20 سال عمر دارد. در حال حاضر سرورهاي بسياري در دنيا وجود دارند كه مسئوليت Time Server در دنيا را بر عهده دارند.

مكانيزم كاري اين سرويس بصورت Server و Client است و طبيعي است كه سرور مي تواند اطلاعاتي از كلاينت هايي كه به آن متصل مي شوند را در اختيار داشته باشد كه در اينجاست كه امكان انجام فرآيند NTP Enumeration براي بدست آوردن اطلاعات ممكن است. سرويس NTP بصورت كلي براي برقراري ارتباط از پورت 123 بصورت UDP استفاده مي كند.

سرورهاي NTP كه در اينترنت استفاده مي شوند تا 10 ميلي ثانيه زمان را مي توانند نگهداري كنند اما همين زمان در شبكه هاي داخلي با توجه به نياز به دقت بيشتر به 200 ميكروثانيه مي رسد و دقت به شدت افزايش پيدا مي كند. در فرآيند NTP Enumeration شما مي توانند ليستي از Host هايي كه به NTP متصل شده اند را پيدا كنيد و همچنين آدرس هاي IP ، اسامي سيستم ها ، نوع سيستم عامل هاي مورد استفاده بر روي سيستم هاي كلاينت و ... را پيدا كنيد. تمامي اين اطلاعات با Query گرفتن از NTP ممكن است ، اگر NTP سرور شما در قسمت DMZ شبكه باشد حتي احتمال افشاء شدن آدرس هاي IP داخلي شما را نيز دارد.

نوع 8 : DNS Enumeration چيست؟

فرآيند DNS Zone Transfer اي كه در DNS انجام مي شود مي تواند بسيار اطلاعات مفيدي در خصوص هدف در اختيار ما قرار بدهد. زمانيكه درخواست Zone Transfer به يك DNS سرور ارسال مي شود سرور اگر به درستي پيكربندي نشده باشد اطلاعات كامل ركوردهاي DNS خودش را به سمت درخواست كننده ارسال مي كند كه شامل اطلاعات بسيار خوبي در خصوص سرويس ها و سرورهاي موجود در مقصد است. شما مي توانيد با استفاده از اطلاعاتي كه از طريق Zone Transfer بدست مي آوريد توپولوژي شبكه داخلي و ساختار اصلي شبكه هدف را شناسايي كنيد. اميدوارم مورد توجه شما قرار گرفته باشد.

توجه كنيد كه اين ارتباط صرفا بين DNS سرورها انجام مي شود. DNS سرورها هميشه براي Zone Transfer از پورت TCP استفاده مي كنند. براي اينكه فرآيند DNZ Zone Transfer بين دو يا چند DNS سرور به درستي انجام شود ارتباط بين ZNA سرورها چه مبدا و چه مقصد بايستي با انجام تاييده هاي TCP يا همان TCP ACK انجام شوند. اگر مهاجمي بتواند يك DNS سرور جعلي راه اندازي كند و درخواست Zone Transfer به DNS سرور واقعي بدهد مي تواند اطلاعات بسيار زيادي در خصوص كليه ركوردهاي موجود در DNS سرور در فرآيند Enumeration بدست بياورد.

پيش زمينه هاي ورود به دنياي هك و امنيت قطعا دوره هاي آموزش شبكه هاي كامپيوتري و به صورت ويژه دوره آموزش نتورك پلاس است. در دوره آموزش هك قانونمند و يا دوره CEH شما به خوبي با نحوه پياده سازي چنين حملاتي آشنا مي شويد و صد البته مفاهيم مربوط به ماهيت و مفاهيم امنيت شبكه و هك و نفوذ را نيز در دوره آموزش سكيوريتي پلاس آموزش خواهيد ديد. پيشنهاد مي كنم اگر هنوز در خصوص دنياي هك و نفوذ داراي ابهام هستيد حتما مقاله چگونه هكر شويم در اين لينك را مطالعه كنيد. اميدوارم مورد توجه شما عزيزان قرار گرفته باشد. با تشكر محمد نصيري


برچسب: , آموزش هك ،آموزش هك قانونمند،آموزش CEH ،آموزش سكيوريتي پلاس،آموزش Security،آموزش امنيت شبكه،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۶ فروردين ۱۴۰۲ساعت: ۱۰:۲۱:۰۸ توسط:محمد نصيري موضوع:

7 سوال متداول در شروع برنامه نويسي كه بايد از خودتان بپرسيد

 

يكي از تخصص هايي كه اين روزها نياز اوليه متخصصين حوزه فناوري اطلاعات به حساب مي آيد ، يادگيري برنامه نويسي است. آموزش برنامه نويسي و شروع يادگيري زبان هاي برنامه نويسي از جمله دغدغه هاي اصلي تازه واردهاي حوزه تخصصي فناوري اطلاعات است. هميشه سوالاتي مثل اينكه با چه زباني برنامه نويسي را شروع كنيم يا بهترين زبان براي شروع برنامه نويسي چيست يا اينكه ترتيب يادگيري دوره هاي برنامه نويسي براي ورود به بازار كار كدام است ، از جمله مهمترين سوالات چالشي براي شروع آموزش برنامه نويسي است.

امروز و در اين مقاله ما مي خواهيم به شما پاسخ سوالات متداولي كه براي شروع يك حوزه تخصصي از برنامه نويسي ، نياز داريد كه بدانيد را با هم مرور مي كنيم . دقت كنيد كه قبل از شروع اين مقاله حتما به اين موضوع توجه كنيد كه ما برنامه نويسي را به به حوزه هاي مختلفي تقسيم بندي مي كنيم كه به ترتيب : برنامه نويسي دسكتاپ ، برنامه نويسي وب و برنامه نويسي موبايل از مهمترين گرايش هاي تخصصي برنامه نويسي هستند كه به شدت مورد نياز بازار كار هستند. پس تا انتهاي مقاله با ما باشيد.

سوال اول : چگونه كدنويسي را شروع كنيم؟

براي شروع برنامه نويسي ابتدا بايد بدانيد براي چه چيزي مي خواهيد برنامه نويس شويد و هدفتان چيست؟ سپس يك زبان برنامه نويسي براي شروع يادگيري را انتخاب مي كنيد. در دوره هاي آموزش برنامه نويسي آنلاين شركت مي كنيد. آموزشهاي ويديويي متنوع را ياد مي گيريد ، كتاب مي خواهيد و از ابزارهاي كدنويسي سريع براي افزايش خلاقيت و سرعت كدنويسي استفاده مي كنيد و در نهايت با نگاه كردن به نمونه كدهاي برنامه نويسي ساير برنامه نويس ها شروع يا انجام پروژه هاي برنامه نويسي مي كنيد.

سوال دوم : برنامه نويسي دسكتاپ را از كجا شروع كنيم؟

برنامه نويسي دسكتاپ به معني برنامه نويسي براي سيستم عامل هايي است كه بصورت روميزي استفاده مي شوند. براي مثال نوشتن برنامه اي كه روي كامپيوتر شخصي شما ( PC ) يا لپتاپ با هر نوع سيستم عاملي اعم از ويندوز يا لينوكس يا مكينتاش اجرا مي شود ، يك برنامه دسكتاپي به حساب مي آيند كه بازار كار بسيار خوبي دارد.

از مهمترين زبان هاي برنامه نويسي كه بصورت تخصصي و به بهترين شكل به شما كمك مي كنند مي توانيم به زبان برنامه نويسي جاوا و زبان برنامه نويسي سي شارپ اشاره كنيم. براي شروع يادگيري آموزش جاوا مي توانيد به اين لينك مراجعه كنيد.

 

سوال سوم : برنامه نويسي وب را از كجا شروع كنيم؟

هر وب سايت كه به آن مراجعه مي كنيد با يك زبان برنامه نويسي نوشته شده است. اين زبان برنامه نويسي انواع و اقسام مختلفي دارد كه مهمترين زبان هاي برنامه نويسي وب به ترتيب زبان PHP و زبان ASP.NET هستند. ساير زبان هاي برنامه نويسي وب به محبوبيت زبانهاي برنامه نويسي پي اچ پي و اي اس پي دات نت نيستند.

يكي از مزاياي برنامه نويسي وب ، امكان كار كردن بصورت فريلنسري و دوركاري است كه به همين دليل يكي از محبوب ترين زبان هاي برنامه نويسي وب به حساب مي آيند. براي شروع يادگيري و آموزش PHP ( پي اچ پي ) مي توانيد به اين لينك مراجعه كنيد.

 

سوال چهارم : برنامه نويسي موبايل را از كجا شروع كنيم؟

هر برنامه اي كه در گوشي هاي شما نصب شده باشند ، چه گوشي شما از سيستم عامل اندرويد استفاده كرده باشد و چه از سيستم عامل اپل ، در نهايت با يك زبان برنامه نويسي نوشته شده است. بسته به تعداد استفاده از يك سيستم عامل گوشي ، محبوبيت برنامه نويسي به زبان برنامه نويسي سيستم عامل مربوطه هم بيشتر خواهد بود.

براي مثال امروزه با رشد روز افزون استفاده از گوشي هاي اندرويدي ، بازار برنامه نويسي اندرويد بسيار داغ است. شما مي توانيد با زبان هاي برنامه نويسي متنوعي اقدام به نوشتن برنامه هاي اندرويدي كنيد. زبان هاي برنامه نويسي سي شارپ ، جاوا و ... همگي امكان نوشته شدن برنامه براي سيستم عامل هاي اندرويدي را به شما مي دهند.

سوال پنجم : جايگاه زبان پايتون در برنامه نويسي چيست؟

اين روزها برنامه نويسي به زبان پايتون از محبوبيت بسيار بالايي برخوردار است. از زبان پايتون مي توان در نوشتن برنامه هاي ساده و اسكريپت نويسي و حتي هك و نفوذ تا نوشتن برنامه هاي موبايل و حتي طراحي وب سايت هم استفاده كرد. يادگيري زبان پايتون به عنوان يكي از ساده ترين زبان هاي برنامه نويسي در دنيا ، اين روزها داراي محبوبيت بسيار بالايي است.

حتي افراديكه در حوزه هاي تخصصي غير از برنامه نويسي مثل شبكه و امنيت هم فعاليت مي كنند مي توانند براي نوشتن اسكريپت هاي كاربردي از پايتون استفاده كنند. پايتون براي نوشتن برنامه هاي مختلف براي پلتفرم هاي مختلف از به اصطلاح ماژول هاي مختلفي استفاده مي كند . براي مثال براي نوشتن برنامه هاي تحت وب يا وب سايت به زبان پايتون از پلتفرمي به نام جنگو استفاده مي شود. شما مي توانيد براي دسترسي به دوره آموزش جنگو Django به اين لينك مراجعه كنيد.

 

سوال ششم : دوره هاي آموزش برنامه نويسي را از كجا شروع كنيم؟

به شخصه اعتقاد دارم كه برنامه نويسي يك هنر است . يك برنامه نويس با درك كردن ماهيت و مفهوم و استدلال برنامه نويسي مي تواند به هر زباني برنامه بنويسد. زبان برنامه نويسي صرفا يك ابزار است و اين شما هستيد كه تعيين مي كنيد بهترين زبان چيست و چه چيزي بايد به چه شكل نوشته شود.

اما براي افراد تازه كار پيشنهادات مختلفي وجود دارد. معمولا براي شروع برنامه نويسي شما با يك دوره پايتون يا دوره اي كه مفاهيم اوليه برنامه نويسي را به شما آموزش بدهد شروع مي كنيد و در ادامه به زبان هاي قوي تري مثل سي شارپ يا جاوا مي رسيد.

هر چند ما در اين مقاله بحثي در خصوص زبان هاي سطح پايين برنامه نويسي نكرديم كه بحث كاملا متفاوتي است و در اين مقاله نمي گنجد. فراموش نكنيد ، پايتون ، سي شارپ ، جاوا قطعا يكي از گزينه هاي موفقيت شما خواهند بود اما قطعيت انتخاب مسير راه يادگيري برنامه نويسي بر اساس نياز شما خواهد بود.

سوال هفتم : آيا نياز به يادگيري زبان برنامه نويسي C يا C++ وجود دارد؟

زبانهاي برنامه نويسي مثل C و C++ و حتي اسمبلي به نسبت براي شروع يادگيري برنامه نويسي بسيار سخت و دشوار هستند و معمولا براي افراديكه مي خواهند به تازگي برنامه نويسي را شروع كنند توصيه نمي شوند. معمولا كاربرد اين نوع زبان هاي برنامه نويسي ، نوشتن برنامه هايي براي هسته سيستم عامل ها ، برنامه هاي صنعتي و برنامه هاي خاص منظوره است و به نسبت بازار كار كمتر اما تخصصي تري دارند. اين كاملا درست است كه كسيكه با اين زبانها برنامه نويسي كرده باشد ، زبانهاي سطح بالا را براحتي مي تواند ياد بگيرد و هيچ مشكلي با آنها ندارد اما هر كه طاووس خواهد جور هندوستان كشد.

در انتها فراموش نكنيد كه براي اينكه خيالتان راحت شود ، به خوبي تحقيق كنيد. به عنوان كلام آخر به شما مي گويم كه چيزي به نام بهترين زبان برنامه نويسي وجود ندارد و فقط برنامه نويس خوب و بد وجود دارد.


برچسب: آموزش سي شارپ، آموزش C# ،دوره سي شارپ، دوره آموزشي سي شارپ آمو،زش جاوا، آموزش Java، آموزش زبان برنامه نويسي جاوا، آموزش زبان برنامه نويسي سي شارپ، آموزش جنگو ،دوره آموزشي جنگو،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۶ فروردين ۱۴۰۲ساعت: ۱۰:۱۷:۵۵ توسط:محمد نصيري موضوع: