امروزه برای ورود به هر برنامه یا وبسایتی که در آن یک حساب کاربری ایجاد کرده باشید، نیاز به یک نام کاربری و پسورد خواهید داشت. نام کاربری در واقع عبارتی است که با استفاده از آن شما در میان کاربران آن سامانه، شناخته خواهید شد. معمولا نام کاربری افراد در وب سایت ها یا برنامه های مختلف، ایمیل افراد می باشد که هم ساده بوده و هم یک عبارت یکتا می باشد. اما پسورد هر عبارتی می تواند باشد و مهم نیست که حتما یکتا بوده یا معنای خاصی داشته باشد. نام کاربری افراد معمولا در سرویس های مختلف، برای دیگران قابل نمایش بوده و دیگر کاربران آن سامانه، قادر به مشاهده آن می باشند، اما پسورد تنها در اختیار شما بوده و هیچکس غیر از شما و سرور، نباید به آن دسترسی داشته باشد. اگر فردی به پسورد شما در سیستم دسترسی پیدا کند، در واقع به هویت شما در آن سیستم دسترسی پیدا کرده و می تواند با استفاده از نام کاربری و پسورد شما، خود را به جای شما به سیستم معرفی نماید. اما بدست آوردن پسورد یا اصطلاحا هک پسورد ، چه روش هایی وجود دارد و چگونه می توان به پسوردهای دیگران دسترسی داشت؟
روش های هک پسورد
یک هکر برای اینکه بتواند پسورد شخص دیگری را در یک سامانه بدست آورد، راه ها و شیوه های زیادی را می تواند امتحان نماید. حدس زدن پسورد، گرفتن پسورد از خود شخص، استفاده از حملات مرسوم به سامانه، استفاده از نرم افزارهای شکننده پسورد و … از جمله مرسوم ترین روش ها برای هک پسورد می باشند. اما قبل از اینکه به بررسی روش های هک پسورد بپردازیم، نیاز است که یک سری پیشنیازها را بشناسیم تا بتوانیم با اطلاعات دقیق تری در این زمینه تحقیق نماییم.
چگونگی ذخیره پسورد
در حقیقت هیچ پسوردی به همان صورتی که تایپ می شود، ذخیره نمی گردد. اگر سیستمی، دقیقا همان پسوردی را که کاربر تایپ کرده است در خود ذخیره کند تا با استفاده از ان بتواند لاگین شدن کاربر را تایید کند، در حقیقت دارای یک ضعف امنیتی بسیار بزرگ می باشد. قانون ذخیره و نگهداری پسوردها چنین بیان می کند که تمامی پسوردهای ذخیره شده در حافظه سیستم باید به صورت هش شده باشند. هش کد ها در واقع نوعی رمزنگاری یک طرفه محسوب می شوند که برای هر ورودی، فقط و فقط یک خروجی خواهند داشت. در واقع اگر پروتکل هش، برای یک ورودی، چند خروجی بدهد یا برعکس، از اساس ایراد داشته و می تواند مورد حمله قرار بگیرد. معمولا معمول ترین روش های هش کردن پسوردها از پروتکل هایی مانند MD5 یا SHA استفاده می کنند.
در سیستم عامل ویندوز، پسوردهای ورود به سیستم در فایلی به نام SAM در پوشه ویندوز، به صورت هش شده نگهداری می شوند. در لینوکس این پسوردها در فایلی در مسیر etc/shadow ذخیره می گردند. تنها افرادی که دسترسی admin داشته باشند می توانند به این فایل ها دسترسی پیدا کرده و محتویات آن را بخوانند. با این حال هکر می تواند از طریق ایجاد یک فایل که به این سطح، دسترسی داشته باشد، فایل های مربوطه را باز کند و محتویات آن ها را بخواند که حمله DLL Injection با استفاده از samdump.dll نمونه ای بارز از این حمله محسوب می شود.
انواع حملات برای هک پسورد
به طور کلی چهار روش معمول برای حمله به یک سیستم، برای بدست آوردن پسورد وجود دارد که معروف ترین این حملات حمله بروت فورس (Brute Force) می باشد. این حملات مستقیما به فایل های ذخیره پسوردها حمله کرده و یا با استفاده از تست پسوردهای گوناگون، اقدام به حدس زدن پسوردها می نمایند.
حمله دیکشنری
حمله دیکشنری ساده ترین و سریعترین روش ممکن برای هک پسورد محسوب می شود. این حمله در واقع نوعی حمله حدس پسورد محسوب می شود. از این جهت به این حمله نام دیکشنری اطلاق شده است که این روش با استفاده از مجموعه ای از لغات و عباراتی که در خود دارد، حمله را آغاز می کند. همانطور که می دانید عبارت 123456 یکی از رایج ترین پسوردهای استفاده شده در سطح دنیا بوده و احتمال اینکه فردی از این پسورد برای یکی از حساب های خود استفاده کرده باشد، بسیار زیاد است. به همین منوال برخی از عبارات دیگر نیز وجود دارد که فراوانی زیادی را در بین پسوردهای انتخابی کاربران دارند. حتی اول نام کاربری به همراه اعداد و ارقام نیز جزو یکی از پسوردهای بسیار شایع می باشد. حمله دیکشنری دقیقا از همین نقص استفاده کرده و اقدام به تست کردن تعداد زیادی از این پسوردها می نماید.در واقع در این حمله به جای اینکه تمامی حالات ممکن را بسنجیم، ابتدا حالات محتمل تر ارزیابی می شوند و به همین جهت، سرعت بسیار بیشتری برای هک پسورد در اختیار هکر قرار می دهد.
برای جلوگیری از حمله دیکشنری، بسیاری از وب سایت ها، تنها اجازه انتخاب کردن پسورد مطمئن را به کاربران خود می دهند که ترکیبی نامنظم از اعداد، حروف بزرگ و کوچک و علائم و نشانه ها باشد. به این ترتیب، حمله دیکشنری چندان موفقیت آمیز نبوده و هکر نمی تواند با استفاده از آن اقدام به هک پسورد شما نماید. همچنین بسیاری از سیستم ها نیز تنها اجازه وارد کردن چند پسورد را برای یک آی پی مشخص می دهند و پس از آن در صورت موفقیت امیز نبودن ورود، آی پی هکر بلاک خواهد شد که این روش نیز می تواند روش مقابله با این نوع از حملات باشد.
جدول رنگین کمان
همانطور که اشاره شد، در اکثر سیستم های امروزی، مکانی برای ذخیره پسوردها به صورت هش شده، وجود دارد. این بدان معنی است که حتی اگر شما بتوانید به فایل ذخیره پسوردها دسترسی داشته باشید، تنها چیزی که بدست خواهید آورد تنها یک سری هش کد می باشد که کارایی چندانی نخواهد داشت. با این حال با استفاده از روش هایی می توان پسورد این هش کد ها را بدست آورد. ساده ترین راه این است که تمامی پسوردهای ممکن را هش کرده و با هش های موجود در فایل ذخیره پسوردها، مقایسه کنیم. اما این روش نیاز به زمان و منابع محاسباتی زیادی دارد. از طرفی روش سریعتر این است که یک دیکشنری از پسوردهای ممکن را ایجاد کرده و سپس تمام پسوردهای موجود در آن را هش نماییم. به این ترتیب خیلی سریعتر می توانیم هش کد ماشبه را بدست آورده و موفق به هک پسورد شویم.
شاید این سوال در ذهن خواننده ایجاد شود که تفاوت این روش با روش قبل در چیست؟ در پاسخ باید بگوییم که این روش از سرعت کمتری برخوردار است و روش اول شاید سریعتر به نظر برسد. اما در زمانی که سیستم به ما اجازه تست کردن پسوردهای متوالی و زیادی را ندهد، مجبور هستیم که به صورت محلی اقدام به حدس زدن پسورد نموده و پس از این که از صحت پسورد مربوطه مطمئن شدیم، با استفاده از آن، به سیستم وارد شویم.
حمله Brute Force
بروت فورس از جمله وقت گیر ترین حملات ممکن برای هک پسورد می باشد. در این حمله، هکر تمامی حالات ممکن را برای پسورد، امتحان می کند تا بلاخره به جواب برسد. به عنوان نمونه اگر پسورد احتمالی تنها یک عدد سه رقمی باشد، تعداد حالات ممکن با احتساب حالت 000 ، به هزار حالت خواهد رسید که در مقایسه با پسوردهای پیچیده امروزی این حالات به میلیاردها حالت خواهد رسید. حمله بروت فورس همیشه جزو آخرین روش های حمله به یک سیستم محسوب می شود و نیاز به زمان و منابع محاسباتی زیادی دارد. در این حمله هر چه سیستم شما از منابع محاسباتی قدرتمندتری استفاده کند، در نتیجه زمان بدست آوردن پسورد، کاهش خواهد یافت.
حمله هیبرید یا ترکیبی
این حمله تقریبا همانند حمله دیکشنری برای هک پسورد عمل می کند اما تفاوت های بارزی نیز با آن دارد. در این روش، هکر علاوه بر تست پسوردهای ممکن، از پسوردهای ترکیبی از نشانه ها نیز استفاده می کند. به عنوان مثال، اگر عبارت Password در حمله دیکشنری چک شود، در حمله هیبریدی عبارت P@$$w0rd123 نیز چک خواهد شد. این حمله خصوصا در حالاتی که سیستم از کاربران درخواست می کند که پسوردهایی را انتخاب کنند که شامل علائم و نشانه ها نیز باشد، کاربرد خواهد داشت.
در مطالب آینده سعی خواهیم نمود تا نرم افزارهای محبوب در زمینه هک پسورد را معرفی کرده و روش کار برخی از آن ها معرفی نماییم.