0

آموزش های تخصصی شبکه و امنیت و ضد امنیت

 
amindadaadad
amindadaadad
کاربر طلایی3
تاریخ عضویت : دی 1389 
تعداد پست ها : 3567
محل سکونت : سیستان و بلوچستان

پاسخ به:آموزش های تخصصی شبکه و امنیت و ضد امنیت
شنبه 28 مرداد 1391  2:33 AM

معمولاً در بعضي شرايط خاص ، يك مرحله به شناسايي هدف اضافه ميشه كه اصطلاحاً به اون Enumeration‌ ميگند ، كه من اسم پيشروي در جزييات رو روي اون گذاشتم . اگر هدف ما از سرويسهاي NetBios ، SNMP ، DNS‌ و SMB استفاده كنه ، شايد بشه اطلاعات بيشتري در مورد هدف بدست آورد . اين كه ميگم شايد به اين علت هست كه امروزه سيستم عامل و سرويسهاي اون ، اونقدر ايمن شدند كه ديگه نشه به اين راحتي اينجور تكنيكها رو روشون اجرا كرد . اما طبق اصول ، ما بايد با اين تكنيكها آشنا باشيم ، چون ممكنه جايي بدردمون بخوره . 

اولين سرويسي كه در اين مرحله مطرح ميشه ، NetBIOS هست . اگر اين سرويس در روي سيستم هدف در حال اجرا و براي ما به صورت راه دور قابل دسترس باشه ( يعني در نتايج پورت اسكن ، پورتهاي 139 و 445 tcp براي SMB و 137 و 138 udp باز باشه ) مي تونيم اطلاعاتي از قبيل نام كاربري افرادي كه روي سيستم هدف داراي حساب كاربري هستند، نام گروه هاي كاربري و منابعي كه share‌ شدند رو بدست بياريم . من دقيقاً يادم هست كه 5- 6 سال پيش ، با استفاده از همين مسئله ، اسامي و نام كاربري و پست سازماني و گروه هاي كاربري حدود 50 الي 60 نفر از كارمند هاي شركت ذوب آهن اصفهان رو بدست آورده بوديم كه از مدير عامل تا مسئول حراست اين شركت داخل اين ليست بود . اگرچه فكر نمي كنم ديگه همچين هدف هايي پيدا بشه . اطلاعاتي كه از اين طريق بدست مياد ، معمولاً به طور مستقيم ما رو به دسترسي نميرسونه ، بلكه يك جور ديد و شناخت ما رو از هدف كاملتر ميكنه و امكان استفاده از اطلاعات در حملات ديگه رو بوجود مياره . همونطور كه ميدونيد NetBIOS بر روي سيستم هاي ويندوز قابل استفاده هست .

SNMP يا Simple Network Management Protocol‌ هم همونطور كه از اسمش پيداست، يك پروتكل مديريتي ساده هست كه براي مديريت راه دور سيستم ها و ابزارهاي شبكه بوجود اومده . نكته اي كه در مورد اين پروتكل وجود داره ، استفاده از يك string‌ هست كه بين ابزارهايي كه قصد دارند با استفاده از اين پروتكل با هم تبادل اطلاعات كنند ، رد و بدل ميشه . اين string كه اصطلاحاً به اون SNMP Community String ميگند ، در حالت مونيتور و خوندن اطلاعات ، به صورت پيش فرض رشته ي " public " و براي حالت نوشتن رشته ي “ private “ هست . بنابرين با استفاده از اين نقيصه ، ميشه اطلاعات خيلي جزيي در مورد سيستم پيكربندي سيستم هدف بدست آورد و حتي پيكربندي رو تغيير داد . SNMP رو پورت 161 udp در حالت listen قرار ميگيره و بيشتر روي ابزارهاي شبكه مثل روترها استفاده ميشه . 

در مورد DNS Zone Transfer هم در مقالات قبل توضيح دادم . 

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

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

خب ، با اين توضيح ما داريم از يك بحث ساده وارد دنياي هك ميشيم . يك سيستم رو اسكن كرديم و اسكنر ما ، مثلاً Nessus ، يك سري report به ما داده . حالا بايد چي كار كنيم ؟‌

گزارشي كه يك اسكنر به ما ميده ، معمولاً شامل سه نوع تقسيم بندي هست . اين سه دسته شامل 
Security Hole , Security Warning و Security Note هستند . چيزي كه در مرحله ي اول براي ما مهم هست ، Security Hole ها هستند . اين حفره هاي امنيتي ، امكان نفوذ به سيستم رو براي ما فراهم مي كنند . هر باگي كه كشف و گزارش ميشه ، بعد از بررسي و تاييد ، دسته بندي ميشه و يك شماره منحصر به فرد ميگيره كه به اون BugtraqID يا BugID ميگند . كمترين چيزي كه يك اسكنر بايد گزارش بده ، BugID پبدا شده روي سيستم هدف هست . با استفاده از اين BugID ، ما ميتونيم اطلاعات دقيقتري نسبت به اون حفره امنيتي و راه هاي اكسپلويت كردن اون به دست بياريم . يكي از سايتهاي مرجع در اين زمينه ، سايت SecurityFocus.com هست . 
ناگفته نمونه كه سایت bugtraq.ir هم یك مرجع خوب برای فارسی زبانها هست كه جای تقدیر و خسته نباشید برای گرداننده های اون رو داره و كمبود اون همیشه احساس میشد .
حالا علاوه بر BugID ، يك ديكشنري از آسيب پذيري هاي شناخته شده ي عمومي وجود داره كه به اون Common Vulnerability and Exposures يا CVE‌ مي گند . هر آسيب پذيري بر اساس سال كشف و گزارش داده شدن و چندمين آسيب پذيري در اون سال بودن ، يك شماره شناسايي منحصر به فرد ميگيره كه به شكل مثلاً CVE-2007-6303 نشون داده ميشه . اسكنري مثل Nessus‌ اين شماره رو هم در اختيار ميذاره كه با استفاده از اون هم ميشه به همون اطلاعات بالا دسترسي پيدا كرد . در سايت SecurityFocus با رفتن به لينك http://www.securityfocus.com/vulnerabilities امكان جستجو بر اساس CVE ميسر هست . همينطور با قرار دادن شماره BugID در انتهاي اين لينكhttp://www.securityfocus.com/bid/ به اطلاعات مورد نظر رسيد . مثلاً براي پيدا كردن اطلاعات باگ شماره 26832 ، از لينك زير استفاده ميكنيم :
http://www.securityfocus.com/bid/26832 

اما بعد از رفتن به صفحه ي مربوط به باگ مورد نظر در اين سايت ، لينك exploit بسيار مورد استفاده قرار ميگيره . http://www.securityfocus.com/bid/26832/exploit .

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

1)گروهي از اين اكسپلويت ها احتياج به كد خاصي ندارند و از طريق URL يا دستورالعملهاي خاصي قابل اجرا هستند . معمولاً روش استفاده از اونها در خود صفحه ي مورد نظر توضيح داده شده .

2)گروهي ديگه فايل هايي هستند كه پسوند c يا cpp دارند . اين اكسپلويت ها كد هايي هستند كه به زبان C يا C پلاس پلاس نوشته شدند و بايد قبل از اجرا ، بر اساس سيستم عاملي كه در براي اون نوشته شدند ، كامپايل بشن . اين نوع اكسپلويت ها سه دسته هستند . يك دسته اونهايي كه براي اجرا بر روي ويندوز نوشته شدند . اين گروه از هدرهاي مخصوص ويندوز مثل windows.h يا winsock.h يا winsock2.h استفاده ميكنند . گروه دوم كدهايي هستند كه براي استفاده در لينوكس نوشته شدند . اين كدها علاوه بر اينكه هدرهاي ويندوز رو ندارند ، از هدرهايي مثلsys/socket.h یا sys/types.h استفاده مي كنند . گروه سوم هم اكسپلويت هايي هستند كه براي هر دو محيط ويندوز و لينوكس نوشته شدند و هر دو سري از هدر ها رودارند و فرق نميكنه كه در ويندوز كامپايل بشن يا در لينوكس . اكسپلويت هاي ويندوزي رو با VC++6 و لينوكسي رو با gcc ميشه كامپايل كرد . نكته اي كه اينجا وجود داره اين هست كه معمولاً اين كدها در هنگام كامپايل يك سري خطا ميدن كه بايد اين خطاها رو رفع كنيد . عمده ترين خطاها مربوط به پيدا نكردن يك هدر خاص ، يا جا افتادن يك سمي كالن ، و يا تغيير علامت كوتيشن در انتهاي رشته ها بر اثر استفاده از يونيكدهاي مختلف در سيستم هاي مختلف هست .


3)گروه ديگه اكسپلويت هاي هستند كه پسوند pm دارند . اين اكسپلويتها ماژولهاي پرل هستند كه در MetaSploit قابل استفاده هستند . كافيه كه اونها رو به فولدر مربوط به اكسپلويت ها در MetaSploit كپي كنيد و در شرايطي كه هنگام load شدن با خطا مواجه شديد ؛ با توجه به پيغام خطا ، كافيه كه يك يا دو خط در سورس اكسپلويت تغيير ايجاد كنيد تا مشكل حل بشه .

4) گروه ديگه از اكسپلويت ها پسوند pl دارند . اينها اسكريپت هاي perl هستند . براي اجراي اونها در ويندوز از نرم افزار ActivePerl استفاده ميشه و لينوكس هم كامپايلر اون رو داره . خطاهاي اين اسكريپت ها هم بايد با توجه به پيغام خطا مرتفع بشه .


5)دسته ي ديگه از اكسپلويت ها ، پسوند py دارند كه اسكريپت هاي پيتون هستند كه مفسر اونها براي ويندوز و لينوكس موجود و قابل نصب هست .

6) گروه دیگه به صورت كدهای html هستند كه باید طبق دستور نویسنده از اونها استفاده كرد .

7)گروه آخر هم فايلهاي باينري هستند كه به طور مستقيم از ويندوز قابل اجرا هستند .

معمولاً همه ی این اكسپلویتها حاوی توضیحات برای نحوه ی صحیح استفاده و آسیب پذیری كه برای اون ها چك شده هستند , می باشند .


اگر دقت كرده باشيد ، متوجه ميشيد كه سايت SecurityFocus ، يك سايت امنيتي هست و به صورت خاص روي اكسپلويت ها فعاليت نمي كنه . سايت PacketStormSecurity.nl هم همينطور هست .اما سايت milw0rm.com به صورت تخصصي روي هك و اكسپلويت ها كار ميكنه .

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

البته شما نباید اكسپلویت های مخصوص web application رو با این نوع اكسپلویت هایی كه در بالا در موردشون صحبت شد , یكی بدونید .برنامه های كاربردی تحت web داستانش متفاوت از سیستم عامل و سرویسهای اون هست . اگر چه خود web server به عنوان سرویس سیستم عامل مطرح میشه . بنابرین در مورد حملات تحت وب , در انجمن مربوط به خودش صحبت می كنیم . 

یكی دیگه از مسائلی كه قبل از نفوذ مهم هست , آماده داشتن ابزارهایی هست كه مورد نیاز هست . این به معنی این هست كه قبل از شروع به نفوذ , باید بدونیم كه چه جوری میخوایم دسترسی بگیریم و بعد از دسترسی قصد داریم چه كار كنیم . بر همین اساس تمام ابزارهای مورد نیازمون باید دم دست باشن , تا كار سریع و درست انجام بشه. این كار احتیاج به تمرین و تجربه داره كه كم كم به دست میاد .

** دارالولایه **

درباره امضاء

تشکرات از این پست
دسترسی سریع به انجمن ها