سوال درباره کرک هش sha256 در صورت دانستن شکل پسورد
با سلام و عرض خسته نباشید. من تازه با itpro آشنا شدم. دقیق نمیدونم سوالی که مطرح میکنم در این سایت مناسب هست یا نه و بخاطر همین اگه با گذاشتن این سوال قانونی از قوانین سایت رو نقض میکنم همین الان عذرخواهی میکنم. (اگر سوال رو در جای نامناسبی می پرسم بی زحمت کمکم کنید که سوالم رو از کجا بپرسم چون خیلی بهش نیاز دارم) یک مشکلی برام پیش اومده ممنون میشم کمکم کنید. من چون اطلاعات برنامه نویسیم زیاد نیست، لطف میکنید اگه با جزییات توضیح بدید.
می خواستم بپرسم که آیا این امکان دارد که یک کدی (حالا با هر زبان برنامه نویسی) نوشت که با فرض دانستن شکل پسورد، بتواند هش sha256 را کرک کند؟
مثلا ما یک هش sh256 داریم و شکل پسورد ما به صورت ##########-# میباشد بدین صورت که کاراکتر اول عدد 1 تا 25، کاراکتر دوم خط فاصله و هر کدام از کاراکترهای بعدی یعنی از سوم تا دهم میتواند شامل حروف A تا Z (حروف بزرگ) و a تا z (حروف کوچک) و اعداد 0 تا 9 باشند (در مجموع 12 یا 13 کاراکتر). بعد کد بیاد تمام حالت های این عبارت را بررسی کند و هر حالت را تبدیل به هش sha256 کند (فکر کنم یک کد کوتاه دارد) و چک کند که آیا هش بدست آمده با هش مورد نظر ما یکی می باشد یا نه و در صورت برابر بودن، آن پسورد را چاپ کند.
1- آیا اصلا نوشتن این کد امکان پذیر هست یا نه؟ و با چه زبانی بهتر است؟
2- اگر امکان پذیر است، آیا این کد می تواند کل پروسه انجام کد (بررسی تمام حالات) را در یک روز یا دو روز و یا در حد چند روز انجام دهد؟ و چگونه؟ (چون تعداد کل حالت ها بسیار زیاد است)
3- می دونم که در اینجا نمیتونم درخواست نوشتن کد کنم ولی میخواستم بدونم از کدام سایت، نرم افزار یا ... درخواست همچین کدی کنم؟
و اگر روشی غیر از نوشتن کد وجود دارد، یعنی روشی که با دانستن شکل پسورد بتوان هش را کرک کرد، لطف کنید هم معرفی کنید هم طرز استفاده اش رو.
بازم ممنون میشم اگه کامل توضیح بدید. با سپاس.
1 پاسخ
حامد عزیز به وب سایت خودت خوش اومدی ، ITPRO جای همچین سئوالاتی هست و اول از هر چیزی بعد از خوندن سئوالت و نحوه پرسیدن سئوال واقعا لذت بردم و ممنونم ازت که قوانین ما رو رعایت کردی اما برای پاسخ به سئوالت باید بگم راهکاری که شما باید دنبالش باشی در واقع پیدا کردن Source Code یک نرم افزار Brute Force هست ، یعنی همین موردی که میگید Hash رو بهش بدیم و حالات مختلف رو براش تعریف کنیم و بگیم کرک کنه این دقیقا نحوه کار یک سیستم Brute Forcing هست که دونه دونه موارد رو مقایسه می کند و اگر نتیجه ای مساوی بود بهتون خروجی میده ، نرم افزارهای زیادی هستند که اینکار رو انجام میدن اما طبیعتا شما با توجه به گفته هایی که تو سئوال عنوان کردید سورس کد این نرم افزار رو میخاین بنابراین باید به دنبال یک نرم افزار Open Source هم بگردید ، اکثر نرم افزارهایی که برای کرک کردن پسورد و هش استفاده میشه ازشون به زبان های سطح پایینی مثل C و ++C نوشته میشن ، من یه نمونه Open Source پیدا کردم که اسمش هست Password Cracker و چون تحت لیسانس GPL هست می تونید از سورسش ایده برداری کنید و سورس خودتون رو بنویسید به لینک زیر برای دانلود مراجعه کنید :
http://sourceforge.net/projects/crackerpassword/ http://crackerpassword.sourceforge.net/Download.html
از طرفی دوست من قبل از اینکه شما بخاین یک Cracker بنویسید باید خود با ساختار رمزنگاری و روش نگهداری پسوردها و ... آشنایی پیدا کنید ، طبیعتا یک برنامه نویس اول باید خوب بدونه میخاد چیکار کنه بعد کد بنویسه ، مدت زمان کرک شدن یک Hash رو به هیچ عنوان نمیشه دقیق گفت چون ماهیت Hash اینه که تا آخرین لحظه نمیتونید بگید چی هست داخلش بنابراین حدود زمانی دادن یه خورده سخت و چه بسا در حال حاضر غیر ممکن هست ، من یه فایل PDF پیدا کردم که داخلش داره روش نوشتن یک Password Cracker برای خودمون رو تشریح می کنه که تقریبا آناتومی نگهداری پسوردها و هش ها همش داخلش هست ، پیشنهاد می کنم قبل از هر کاری به این فایل PDF که لینکش رو قرار دادم نگاه کنی :
http://marcellmajor.com/Hacktivity2010_WritingOwnPasswordCracker.pdf
ITPRO باشید