معرفي انواع 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 هم گفته مي شود براي مثال :
-
كد 00 مربوط به نام كامپيوتر يا Hostname مقصد است
-
كد 01 مربوط به نام دومين يا Domain Name مقصد است
-
كد 03 مشخص كنند اين است كه سرويس Messenger در سيستم مقصد فعال است
-
كد 20 به معني فعال بودن سرويس Server در مقصد است
-
كد 1D به معني Browser Name كامپيوتر مقصد است
-
كد 1B به معني تايم سرور يا PDC سرور كامپيوتر مقصد است
-
...
به اين نكته توجه كنيد كه در IPv6 ديگر چيزي به نام NetBIOS وجود ندارد و اين سرويس به كلي فعال نيست.
نوع 2 : LDAP Enumeration چيست؟
يكي از پركاربردترين پروتكل هاي مورد استفاده در شبكه كه امكان Enumeration را به ما مي دهد LDAP است. LDAP مخفف كلمه هاي Lightweight Directory Access Protocol مي باشد و اين پروتكل در بزرگترين پايگاه داده هاي نگهداري و مجتمع سازي Object هاي شبكه مثل اكتيودايركتوري مورد استفاده قرار مي گيرد. LDAP يك پايگاه داده است و اين پايگاه داده قابليت پرسش و پاسخ يا Query گرفتن دارد.
مي توان با استفاده از اين روش دسترسي به داده هاي موجود در پايگاه داده دست پيدا كرد. ساختار دايركتوري سرويس ها در دنيا يك ساختار استاندارد و سلسله مراتبي است و مثل ساختارهاي سازماني است كه در اكثر شركت ها و سازمان ها مشاهه مي كنيد. LDAP يكي از سرويس هايي است كه قابليت يكپارچه شدن با سرويس DNS و انجام Query هاي اسم خيلي سريع را دارد. LDAP بصورت معمول بر روي پورت 389 كار مي كند و امكان Query گرفتن از خودش را بصورت پيشفرض ارائه مي دهد .
برخي اوقات اين امكان وجود دارد كه با وجود پيكربندي هاي نادرست اين سرويس امكان Query گرفتن از اطلاعات توسط افراد ناشناس فراهم مي شود و مهاجم مي تواند با استفاده از Query اطلاعات بسيار خوبي از جمله Username ها ، آدرس ها ، اطلاعات سازماني و ... را از طريق اطلاعات موجود در اين دايركتوري سرويس كه معمولا اكتيودايركتوري است بدست بياورد. اين اطلاعات مي تواند بعدا براي مصارف مهندسي اجتماعي و ... مورد استفاده قرار بگيرد.
LDAP Enumeration در واقع به فرآيندي گفته مي شود كه شما به عنوان يك مهاجم مي توانيد اطلاعات مربوط به username ها و ... را راه دور دريافت كنيد . شما مي توانيد در شبكه هاي مبتني بر اكتيودايركتوري قابليت Enumeration را غيرفعال كنيد ، اين قابليت به مهاجم امكان Cache كردن اطلاعات بسياري را بر روي سيستم خودش مي دهد. اطلاعات مربوط به كاربران ، گروه ها ، share هاي شبكه ، ايميل ها ، آدرس ها ، شماره تلفن ها و ... از اين طريق قابل دسترس هستند.
نوع 3 : Email Enumeration چيست؟
بصورت معمول هر آدرس ايميل از دو قسمت تشكيل شده است ، قسمت اول كه نام كاربري يا Username است و قسمت دوم كه نام دومين يا Domain Name است. در واقع همانطور كه مي دانيد ساختار يك آدرس ايميل بصورت username@domainname.com است .
تصور كنيد كه يك آدرس ايميل به شكل m.nasiri@tosinso.com داريم در اين ساختار مشخص است كه m.nasiri يك نام كاربري و domainname.com آدرس دومين مورد استفاده است كه با علامت @ از هم جدا شده اند. بعضا با استفاده از اين ساختار مي توان به نام كاربري هاي داخلي شبكه نيز پي برد و ساختار نامگذاري username ها را حدس زد. شما با استفاده از گرفتن اطلاعات كاربران مي توانيد ساختار ايميل هاي هر كاربر در سازمان را تشخيص بدهيد.
نوع 4 : Default Password Enumeration چيست؟
تجهيزاتي مثل سويچ و روتر و Access Point ها و حتي برخي نرم افزارها بصورت پيشفرض داراي پسورد هستند كه اين پسورد معمولا در هر نوع محصول تقريبا مشابه است. حتي بعضا برخي نرم افزارهاي آنلاين نيز براي ايجاد دسترسي هاي پيشفرض از يك سري Username و Password پيشفرض استفاده مي كنند. در بسياري اوقات پيش مي آيد كه كاربران بدون توجه به اينكه بايستي اين رمزعبورها تغيير كند از همان رمز عبور پيشفرض نرم افزار بصورت هميشگي استفاده كرده و آنها را تغيير نمي دهند.
خوب اين طبيعي است كه وقتي شما پسورد پيشفرض يك دستگاه يا نرم افزار را تغيير نمي دهيد بايد انتظار داشته باشيد كه يك هكر نيز بتواند از آن براي حمله كردن به شما استفاده كند يا ريسك اين را بايد بپذيريد كه هر كسي بتواند با اين نام كاربري و رمز پيشفرض از سيستم شما سوء استفاده كند. وب سايت هاي زيادي هستند كه ليستي از پسوردهاي پيشفرض دستگاه هاي مختلف با مدل هاي مختلف را بصورت آنلاين در اختيار همه قرار مي دهند.
فراموش نكنيد كه حتما براي نرم افزارها و سخت افزارهاي خود بلافاصله بعد از پيكربندي اوليه پسورد و نام كاربري متفاوتي از آنچه پيشفرض استفاده مي شده است استفاده كنيد. براي مثال چند نفر از شما پسورد و نام كاربري روتر خانگي خودش را 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 قرار گرفته اند امكانپذير است. اين سه دستور به شرح زير هستند :
- دستور VRFY : اين دستور براي بررسي اعتبار كاربران يا در اصطلاح بررسي Validity كاربران استفاده مي شود
- دستور EXPN : اين دستور براي بررسي آدرس هاي Delivery و همچنين ليست ايميل ها استفاده مي شود
- دستور 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-UserVRFY Hossein 550 Hossein… User unknown
حالا همان حالت را با دستور 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-UserEXPN 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 بدست آوردن اطلاعات حسابهاي كاربري و تجهيزات و و حتي 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 مي باشد و سرويسي است كه مسئوليت اعلام زمان دقيق براي سيستم ها را بر عهده دارد ، برخي از سرويس هاي شبكه براي احراز هويت و بسياري از مسائل ديگر نياز به اين سرويس دارند.
در شبكه هاي مبتني بر سيستم عامل ويندوز سرور معمولا سرور 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،آموزش امنيت شبكه،