 |
آرشيو مطالب |
|
|
 |
لينکستان |
|
| اگر مي خواهيد با وبسايت ما تبادل لينک کنيد لينک ما را با نام " هک کردن سایتها و سرورها " قرار دهيد و در بخش تماس با ما و يا نظرات لينک خود را قرار دهيد. |
|
|
|
 |
تبليغات |
|
|
|
 |
شروع هك (جلسه 2) |
|
بحث تا جايي ادامه پيدا كرد كه ما با استفاده از whois ، اطلاعاتي در مورد سايت بدست آورديم . در ايران ، چون صاحبين سايتها ، امكان ثبت مستقيم دامنه ي مورد نظر خودشون رو ندارند ، اين كار رو به عهده ي يك سري از شركتها ميسپرند ، و معمولاً اطلاعات داخل بانك اطلاعاتي دامنه ها ، اطلاعات شركت ثبت كننده هست ، نه اطلاعات صاحب سايت . ( بعضي از اين فيلدها قابل تغيير هستند ، اما خيلي ها اون رو تغيير نميدند ) . اما گفتيم كه در بين اطلاعاتي كه از whois بدست مياد ، آدرس DNS ها خيلي مهم هستند . بنابرين قبل از اينكه مراحل بعدي جمع آوري اطلاعات رو ادامه بديم ، در اين مقاله بر روي DNS ها مكث مي كنيم .
چرا DNS مهم هست ؟ DNS يكي از كامپونت هاي اصلي اينترنت هست . پس هر جا كه اينترنت هست ، DNS هم هست . مايكروسافت DNS رو يكي از كامپونت هاي اصلي AD قرار داده و اين نشون دهنده ي اهميت اين سرويس هست . از نظر ما ، اين سرويس به خاطر اين گستره ي كاربري ، ميتونه جالب باشه . اگر يه سازماني بخواد اجازه دسترسي به اينترنت رو بده ( كه همه اين كار رو ميكنند ) ،بايد اجازه خروج و ورود query هاي DNS رو به شبكه داخلي سازمان بده . و اين ميتونه خيلي معني داشته باشه . پس بهتره كمي DNS ها رو بهتر بشناسيم .
همونطور كه ميدونيد ، وظيفه ي اصلي DNS ها ، ترجمه ي آدرس دامنه ها به آدرس IP هست . سازمان جهاني IANA ( بخوونيد يانا ) ، روي اسمها و آدرسها نظارت داره و اونها رو مديريت ميكنه . DNS ها از يك ساختار سلسله مراتبي استفاده ميكنند . بنابرين بالاترين سطح DNS ها رو Root Level DNS ميگند . شبكه اينترنت وابسته به 13 سرور Root Level هست ، كه اسم ، آدرس و موقعيت اونها رو ميتونيد در آدرس http://www.root-servers.org ببينيد . اين 13 سرور ، به شدت محافظت ميشند . يعني از نظر فيزيكي ، در حد پايگاه هاي نظامي و از نظر امنيت خود سرورها ، در بالاترين حد قرار دارند . به طوري كه سيستم عامل مورد استفاده در اين سرور ها ، يك نوع خاص از يونيكس هست كه مشابه اون در جاي ديگه وجود نداره . اين مسئله نشون دهنده ي اهميت DNS ها هست . ولي با اين وجود ، و به همين دليل مهم بودن ، تكنيكهاي مختلفي براي سو استفاده از DNS ها وجود داره . قبل از اينكه اين تكنيكها رو شرح بدم ، بايد با روش كار DNS آشنا باشيد . بهترين راه فهميدن نحوه ي كار DNS اين هست كه با يك مثال واقعي اون رو بررسي كنيم . وقتي ما به اينترنت وصل ميشيم ، در حقيقت يك كامپيوتر از يك شبكه داخلي ميشيم كه ISP ارتباط ما رو مديريت ميكنه . در اين حالت ، ما از DNS داخلي ISP استفاده ميكنيم . DNS مثل يك دفترچه راهنماي تلفن ميمونه كه بايد بتونه شماره تلفن هر شخص رو بر اساس نام اون شخص پيدا كنه . واضح هست كه مدير يك ISP محلي در تهران ، نميتونه همه ي شماره تلفن ها يا آدرس IP ها رو براي همه ي نامهاي موجود در اينترنت ، براي DNS خودش تعريف كنه . بنابرين DNS يك ISP محلي ، چيزي نيست جز يك واسطه .اين DNS ها ، فقط تعداد كمي ركورد مربوط به ماشينهاي داخل شبكه خودشون و قابليت cache كردن ركوردها و بعضي اطلاعات رو براي بالا بردن سرعت دارند . اين نوع DNS ها رو Non- authoritative ميگند . وقتي ما در برازر خودمون يك آدرس رو تايپ ميكنيم ، مثل http://www.h4ckcity.com، برازر درخواست تبديل اين اسم رو به شماره IP ، ميفرسته براي DNS مربوط به ISP ما . حالا اگر قبلاً DNS ما ، چنين درخواستي رو داشته ، و اون رو cache كرده باشه ، شماره ip رو براي ما برميگردونه ، و در غير اين صورت ، درخواست رو براي DNS بالاتر از خودش ميفرسته . اين ارسال درخواست ها به صورت سلسله مراتبي ادامه پيدا ميكنه ، و اگر در هر مرحله درخواست نا موفق بود ، نهايتاً به DNS هاي سطح بالاتر ميرسه كه به اونها authoritative ميگند . اگر اين DNS ها هم نتونند ، ركوردي براي درخواست مورد نظر پيدا كنند ، اون رو براي root ها ميفرستند و اگر باز هم ركوردي پيدا نشد ، نتيجه ميگيريم كه دامنه ي مورد درخواست ما ثبت نشده و وجود نداره . اين يك شماي خيلي ساده شده از روش كار DNS ها بود.
اما مشكلات اين ساختار سلسله مراتبي چي هست ؟ واضح هست كه همه ي مشكلات در همين ارسال و دريافت اطلاعات بين DNS ها نهفته هست .
يكي از مشكلات قديمي كه فكر ميكنم در حال حاضر فقط بايد در حد اطلاعات عمومي باهاش آشنا باشيم ، Zone Transfer هست . داستان اين Zone Transfer هم اين هست كه همه جا ، به خاطر اهميت سرويس DNS ، از حداقل دو تا DNS استفاده ميشه كه اولي master يا primary هست و وظيفه ترجمه آدرس ها رو داره ، و دومي slave يا secondary هست و وظيفه كمكي رو داره . حالا طبق اصول مديريتي شبكه ، اطلاعاتي كه در DNS اولي هست ، بايد طبق يك برنامه زمان بندي شده ، يا درخواست مستقيم DNS دومي ، به DNS دوم هم منتقل بشه كه اين DNS هم اطلاعاتش به روز باشه . حالا اگر تنظيمات در سرور DNS اول طوري باشه ، كه اين اطلاعات درخواستي رو براي هر سيستمي كه درخواست كرد ، بفرسته ، مشكل Zone Transfer داره ، و اگر يك همچين سروري پيدا بشه ، هكر ميتونه تمام اطلاعات ركورد شده روي اون DNS رو كه شامل آدرس هاي خصوصي اون شبكه هم ميشه رو بدست بياره و به اين شكل اطلاعات كاملي از شبكه ي هدف به چنگ بياره . براي جلوگيري از اين حالت بايد سرور اصلي رو به گونه اي تنظيم كرد كه فقط اطلاعات رو براي آدرس سرور دوم بفرسته و به درخواست هاي ديگه پاسخ نده . جهت اطلاع هم بايد بگم كه دو نوع Zone Transfer داريم . يكي Full يا AXFR كه تمامي اطلاعات ارسال ميشه و ديگري هم Incremental يا IXFR كه آخرين تغييرات بعد از آخرين ارسال ، ارسال ميشه .
يكي ديگه از مشكلات ساختاري DNS ها ، كه نسبت به قبلي متداول تر هست ، DNS Spoofing هست . در اين حالت ، درخواست كننده به جاي اينكه به آدرس صحيح ارجاع داده بشه ، به يك آدرس غلط فرستاده ميشه . اين نوع حملات به چند روش قابل اجرا هست . همونطور كه در بالا اشاره كرديم ، در مسير سلسله مراتبي ، تعدادي DNS ممكنه وجود داشته باشه كه كارشون cache كردن هست . اگر يك هكر بتونه اطلاعات غلطي رو به جاي اطلاعات صحيح وارد cache اين سرورها بكنه ، ميتونه درخواستهاي بعدي براي يك سايت خاص رو كه از اون DNS ميگذرند رو به يك آدرس ديگه منحرف كنه . اين حملات به DNS Cache Poisoning معروف هستند. حالت ديگه ميتونه اين باشه كه هكر يك جايي بين درخواست كننده و سرور DNS قرار بگيره و به ترافيك گوش بده ، و هر وقت متوجه درخواستي شد ، قبل از اينكه DNS به اون درخواست جواب بده ، جواب غلط رو براي درخواست كننده بفرسته و اون رو به آدرس ديگه اي ارجاع بده . به اين حالت Spoofing DNS Response ميگند . حالت سوم ميتونه اين باشه كه هكر كنترل يك DNS رو در دست بگيره و ... . به اين حالت DNS Server Compromise ميگند .
خب ، به نظر ميرسه كه مباحث مربوط به DNS تموم شده باشه . اما اينطور نيست. جالب ترين بخش داستان DNS ها ، استفاده از اونها در حملات SQL Injection هست . حتماً مي پرسيد كه DNS چه ربطي به SQL Injection داره ؟ موضوع اينجاست كه MS SQL و Oracle يك سري توابع و پروسيجر دارند كه ميتونند مستقيم يا غير مستقيم با DNS ها كار كنند و اطلاعات بگيرند . بعضي از اين دستورات و توابع با كاربر public هم قابل اجرا هستند و به بعضي از اونها هيچ اشاره اي در راهنما هاي hardening در ايمن سازي بانكهاي اطلاعاتي نشده . چون اين روش خيلي پيچيدگي داره ، من اون رو در بخش " حملات تحت وب " و SQL Injection بررسي ميكنم ، اما علاقمندان ميتونند به ارائه ي آقاي "پاتريك كارل سن" در كنفرانس Defcon 15 ، تحت عنوان SQL Injection & OOB Channels مراجعه كنند .
در درس بعدی , مراحل بعدی جمع آوری اطلاعات رو ادامه میدیم . |
|
| MD5 |
یکشنبه هفتم بهمن 1386 |
 |
|
 |
شروع هک (جلسه 1) |
|
قبل از شروع هر حمله ي هدفمند ، لازم هست كه يك سري اطلاعات پايه نسبت به هدف بدست بياريم . معمولاً سازمانها ، يا به طور كل اهداف موجود در اينترنت يا شبكه هاي محلي ، بر اساس سطح مهارت و توانايي هاشون ، يك سري پروسه ها انجام ميدن تا خودشون رو ايمن كنند ،اما معمولاً فراموش ميكنند كه با همه ي كارهايي كه انجام دادند ، باز هم اطلاعات خيلي مهمي وجود داره كه مورد علاقه ي هكرها هست و به راحتي در دسترس هست . در ميون هكرهاي حرفه اي اين جمله معروف هست كه :
" اگر يك مهاجم مراحل شناسايي و بدست آوردن اطلاعات در مورد هدف رو به درستي انجام بده ، و به اندازه ي كافي در جزييات اطلاعات بدست اومده ، تمركز و دقت كنه ، نفوذ و گرفتن دسترسي روي هدف ، تضمين شده هست . "
از ديد امنيتي ، اين بخش خيلي مهم ميتونه باشه ، چون اگر ما بدونيم كه معمولاً چه نوع اطلاعاتي براي هكرها جالب توجه هست ، ميتونيم تا اونجا كه ممكن هست از انتشار اين اطلاعات جلوگيري كنيم .
مراحل جمع آوري اطلاعات
به طور كلي ، جمع آوري اطلاعات در 7 مرحله قابل اجرا هست . اين كه ميگيم 7 مرحله ، به اين معني نيست كه بايد از مرحله يك شروع بشه و هفت مرحله به ترتيب اجرا بشه . اين جور طبقه بندي ها ، در علم هك ، معمولاً جهت نظم دادن و ايجاد يك روال منطقي در آموزش و يادگيري به وجود اومده ، وگرنه در عمل ممكنه همه ي اين مراحل در يك حركت انجام بشه . چون هدف اين سايت ارائه مطالب هم به صورت علمي و هم كاربردي هست ، اينجور طبقه بندي ها مورد بحث قرار ميگيره .
در تست هاي امنيتي يا pen test ها ، يك حالت وجود داره كه به اون Black Box ميگن . در اين حالت ، شخصي كه تست رو انجام ميده ، هيچ اطلاعاتي در مورد هدف نداره ، جزء يك اسم . در اين حالت كه سخت ترين حالت تست هست ، مرحله ي جمع آوري اطلاعات خيلي مهم و مرحله به مرحله انجام ميشه .
مرحله ي اول : Initial Information يا اطلاعات اوليه
حداقل اطلاعاتي كه براي شروع يك حمله احتياج هست رو Initial Information ميگند . اين اطلاعات حداقل ، شامل يك آدرس IP يا يك اسم دامنه هست .
يك نكته كه براي خيلي از افرادي كه وارد يادگيري دوره هاي هك ميشن ايجاد مشكل ميكنه اينه كه ، اين مراحل هك كه در مقالات ، كتابها و سايتها مطرح ميشه ، اصولاً براي هك كردن شبكه ها يا سازمانهايي هست كه داراي Server يا سايت هستند . اين روشها ، در بعضي مراحل ، براي هك كردن كاربران خانگي يا سيستم هايي كه سرويس دهنده نيستند ، مصداق پيدا نمي كنه . اگر چه من فكر ميكنم كه بحث هك Server يا Client يك بحث مطرح شده توسط ايراني ها هست ، اما به نظر من به جاي خودش بحث مهمي هست ، و فكر ميكنم كه اصولاً كسي كه هك رو به صورت درست و اصولي ياد بگيره ، به راحتي ميتونه روي هر دو مبحث كار كنه . بنابرين در حال حاضر بحث ما روي client ها نيست .
وقتي فقط يك اسم داريم ، شروع كار براي بدست آوردن اطلاعات اوليه ، جستجو در اينترنت هست . با جستجو در اينترنت و استفاده از توانايي هاي دكتر گوگل ، و البته به خرج دادن كمي ابتكار در نحوه ي جستجو ، آدرس سايت شركت مورد نظر بدست مياد . نكته اي كه اينجا مطرح هست ، هدف ما از هك كردن هست . اگر هدف تنها تغيير چهره ي سايت (Deface) يا نفوذ از طريق Web Application ها باشه ، بدست آوردن آدرس سايت ، پايان اين مرحله خواهد بود . نكته اي كه اين جا وجود داره اينه كه خيلي از سازمانها و شركتها ، براي ارائه سرويسهاي تحت وب خودشون ، سرور اختصاصي ندارند و از امكانات ميزباني استفاده ميكنند . بنابرين در اين موارد و در حالتي كه هدف ما نفوذ به شبكه داخلي ، يا سرورهاي داخلي يك سازمان هست ، آدرس وب سايت و آدرس IP متعلق به وب سرور ، به معني بدست آوردن اطلاعات اوليه لازم براي اون هدف خاص نيست . در اينجور موارد ، مطالعه دقيق محتواي سايت خيلي راه گشا خواهد بود . فقط مهم اين هست كه شخصي كه محتواي سايت رو مطالعه ميكنه ، روي تكنيكهاي متنوع هك تسلط كافي و همچنين قدرت ابداع تاكتيك ( تركيب تكنيكها ) رو داشته باشه . يعني بدونه كه دنبال چي ميگرده و چه اطلاعاتي ميتونه بدرد بخور باشه . قطعاً شخصي كه در هك مبتدي هست و تكنيكها رو به خوبي نشناخته ، نمي تونه نكته ي جالب توجهي از محتواي يك سايت بدست بياره .
بنابرين بر اساس هدف از هك كردن ، 2 تا مسير در بدست آوردن Initial Information ايجاد ميشه :
1 – مسير اول : هدف : Deface يا نفوذ از طريق Web Application مراحل : پيدا كردن آدرس وب سايت هدف ، پيدا كردن آدرس IP سرور ميزبان سايت مورد نظر با استفاده از دستور ping ( با توجه به توانايي هاي ابزارهاي scan موجود ، احتياجي به ping نيست و آدرس وب سايت كافي هست ) . رفتن به مرحله Scan يا پويش براي بدست آوردن باگهاي امنيتي
شكست : در صورت عدم موفقيت در رسيدن به هدف ، برگشت به مرحله جمع آوري اطلاعات و ادامه ساير مراحل جمع آوری اطلاعات
2 – مسير دوم : هدف : نفوذ به شبكه ي داخلي يك سازمان مراحل : پيدا كردن آدرس وب سايت هدف ، بررسي محتواي وب سايت جهت جمع آوري مفيد اين مرحله ، برخلاف بي توجهي ، بسيار مهم و كارآمد ميتونه باشه . بنابرين شرح بيشتري روي مراحل اين مسير ميدم . يك سري اطلاعات در يك سايت يا در كل محتواي اينترنت موجود هست كه اصطلاحاً به اونها Open Source Information ميگن. اين نوع اطلاعات ، اطلاعاتي هستند كه هر شخصي ميتونه به اونها دسترسي داشته باشه و بدست آوردن و آناليز اونها ، منع قانوني نداره . به همين علت ، صاحبين اين اطلاعات ، بدون واهمه و اهميت دادن ، اين اطلاعات رو در اختيار عموم ميزارن . البته در بعضي موارد ، چاره اي جزء اين نيست . در زير بعضي از اينگونه اطلاعات و كاربردهاي اونها رو شرح ميدم . دقت كنيد كه ما هنوز در مرحله Initial Information هستيم و فقط يك آدرس وب سايت داريم . يكي از اطلاعات مهم ، شماره تلفن ، يا تلفن هاي اون سازمان هست . مورد استفاده ي اون هم در مهندسي اجتماعي و يا war dialing هست . ( جزييات استفاده از هر تكنيك رو در مراحل مربوط به اون تكنيك توضيح خواهم داد ) مورد بعد ، محل فيزيكي يا location هدف هست . اين مورد هم در مهندسي اجتماعي مورد كاربرد داره . بعضي از سايتها ، اطلاعاتي در مورد بعضي از پرسنل در اختيار ميذارن . اين اطلاعات شامل اسم ، عنوان شغلي ، ميزان تحصيلات و به احتمال زياد ، آدرس ايميل اون شخص هست . همه ي اين اطلاعات ميتونند در تكنيكهاي تركيبي كه معمولاً با مهندسي اجتماعي شروع ميشن ، مورد استفاده قرار بگيره .
بعضي وقتها ، البته به ندرت ، ديده شده كه بعضي از سازمانها ، از داخل وب سايتشون يك لينك به يكي از سرورهاي داخليشون ، كه معمولاً Interanet Web Server هست ، قرار ميدن ، كه خيلي از كارها رو براي يك هكر راحت ميكنه . معمولاً اينجور لينكها شامل يك IP Address هست كه دقيقاً همون چيزي هست كه دنبالش بوديم .
يكي ديگه از مواردي كه بايد مورد بررسي قرار بگيره ، شركتها و سازمانهايي هست كه با سازمان هدف داراي ارتباط تجاري يا خدماتي هستند . ممكنه اسامي و لينك اين سايتها در وب سايت هدف موجود باشه و اگر موجود نباشه ، با يك جستجو در گوگل به شكل :link و به دنبالش آدرس سايت هدف ، آدرس تمام سايتهايي كه به سايت هدف لينك دارند ، قابل شناسايي هست . به دست آوردن اطلاعات مربوط به اين شركتهاي مرتبط به هدف ، در اجراي تكنيكهاي مهندسي اجتماعي ، خيلي ميتونه مفيد باشه . كافيه كه شما يك CD آلوده به يك تروجان يا هر Spyware كه قابليت نصب اتوماتيك رو داشته باشه ، از آدرس شركت A كه با شركت B كه هدف شما هست ، ارتباط كاري داره ، ارسال كنيد و اميدوار باشيد كه يك نفر در شركت B ، اين CD آلوده رو استفاده كنه . به هر صورت تكنيك هايي كه همراه با مهندسي اجتماعي هست ، هميشه با ريسك عدم موفقيت همراه هست .
يكي ديگه از نكاتي كه بايد در اين مرحله مورد توجه قرار بگيره ، اينه كه در يك وب سايت ، ما به صفحاتي كه داراي لينك در اون سايت هستند ، دسترسي داريم ، اما ممكن هست صفحات يا فايل هاي ديگه اي روي فضاي مربوط به اون سايت موجود باشه كه لينكي نداشته باشه . اين صفحات يا فايلها معمولاً داراي اطلاعات با ارزشي هستند . گاهي اوقات با حدس زدن نام اين صفحات و فايلها ميشه به محتواي اونها دسترسي پيدا كرد .
قدم بعدي در اين مرحله ، استفاده از whois براي بدست آوردن اطلاعاتي در رابطه با سايت هست . اين اطلاعات در بعضي از موارد شايد راه گشا باشه . بنابرين بدست آوردن اين اطلاعات ، ضرري نداره . معمولاً براي whois گرفتن از دامنه هاي com و net علاوه بر نرم افزار SamSpade ، از سايتهاي whois هم ميشه استفاده كرد . براي دامنه هاي ir هم از سايت whois.nic.ir ميشه استفاده كرد . در صفحه اطلاعات مربوط به whois ، آدرس DNS ها خيلي مهم هست . معمولاً آدرس Name Server ها ، در انتهاي صفحات whois نمايش داده ميشه. |
|
| MD5 |
پنجشنبه چهارم بهمن 1386 |
 |
|
 |
حملات کسب آگاهی یا Disclosure |
|
Disclosure چیست؟
این لغت رو اصطلاحاً آگاهی معنی میکنند. این نام به دسته حملاتی گفته میشود که منجر به بدست آوردن اطلاعات فنی از یک سرویس آسیب پذیر میشوند. نام معادل آن را در فارسی حملات کسب آگاهی در نظر گرفتیم. اطلاعاتی که توسط این روشها بدست می آیند یکسان نمیباشند.بسته به سرویس آسیب پذیر و موقعیت حفره متغیر میباشند. تو این مقاله هم درباره اینا بحث شده که پیشنهاد میکنم حتما بخونین .
لینک دانلود |
|
| MD5 |
چهارشنبه سوم بهمن 1386 |
 |
|
 |
آخرين مطالب ارسالي |
|
|
|
 |
درباره وب |
|
|
سلام دوستان برای قرار دادن تبلیغات میتونین با ایمیل زیر در تماس باشین shabestan227@gmail.com |
|
 |
عضويت در خبرنامه |
|
|
 |
ساعت |
|
|
 |
لينک دوستان |
|
|
|