kazemfdisk
14-03-2006, 06:32
(۱) اطلاعات اساسی در مورد password چيست؟
اکثر accountها روی سيستمهای کامپيوتری معمولا متدهای خاصی از دسترسی محدود به آن account دارند. هر زمان که قصد دسترسی به يک سيستم داشته باشيد بايد يک ID صحيح را وارد کرده و با وارد کردن password وارد account خود شويد. اکثر سيستمها پسوردها را نشان نمیدهند و بجای کاراکترهای واقعی از ستاره يا نقطه استفاده میکنند.
روی اکثر سيستمها پسورد از ميان چندين الگوريتم عبور داده میشود تا بصورت hash (رمز شده) درآيد. hash معمولا بيشتر از کاراکترهائی است که بعنوان پسورد وارد شدهاند. معمولا hash بصورت one-way (غيرقابل برگشت) درست میشود يعنی با هيچ الگوريتمی نمیتوان hash را به متن اصلی تبديل کرد. اکثر سيستمها در هنگام authentication (تعيين هويت) پسوردهای ذخيره شده را آشکار نمیکنند و آنها از ابتدا متن وارد شده را hash کرده و با hashه ذخيره شده مقايسه میکنند.
در رمز نويسی بعضی از الگوريتمها بهتر از الگوريتمهای ديگر برای ساختن one-way hash هستند. در اين سری مقالات توجه ما روی سيستم عاملهای NT, Netware, Unix خواهد بود. که همگی از الگوريتم تقريبا يکسانی استفاده میکنند.
برای crack کردن يک پسورد لازم است شما يک کپی از hash که روی سرور ذخيره شده است بگيريد و بعد الگوريتم را بکار بگيريد تا hash شده متنهای شما را توليد کند تا زمانيکه hash شما با hashه سرور يکسان شود. در اين هنگام کلمهای که شما برای توليد hash بکار بردهايد همان پسورد سيستم مورد حمله شما میباشد. چون انجام اين کار بروش دستی زمان زيادی میبرد از اتوماسيون استفاده میشود. نرمافزارهای رايگان زيادی در اينترنت برای شکستن پسوردهای سيستم عاملهای مورد مطالعه ما وجود دارد.
۳ (۲) چرا از hashها محافظت میکنيم؟
اگر hashهای غير قابل برگشت نه خود پسوردها بلکه مشتق آنها هستند پس چرا از آنها محافظت میکنيم؟ چون الگوريتمی که آنها را توليد میکند شناخته شده است. يک هکر میتواند با برنامههای مخصوص اين کار بسادگی پسوردهای ممکن را رمز کرده و آنها را با پسوردهای داخل hash مقايسه کند تا زمانيکه پسورد را پيدا کند. دو روش برای شکستن پسورد بکار برده میشود: روش Dictionary و روش Brute Force. معمولا hashها در قسمتی از سيستم ذخيره میشوند که امينت ويژهای دارد تا دسترسی کراکرهای مستعد به آن محدود شود.
۳ (۳) منظور از شکستن پسورد بروش Dictionary چيست؟
يک برنامه شکننده پسورد بسادگی ليستی از لغات dictionary را میگيرد و هر لحظه يک لغت را رمز کرده و با hashه سيستم مقايسه میکند تا زمانيکه که هر دو hash برابر شوند و پسورد شکسته شود. در اين هنگام لغتی از dictionary که آزمايش شده است همان پسورد سيستم است.
بعضی از اين برنامهها میتوانند با بکارگيری فيلترهای مخصوص کلمات را دستکاری کنند. قواعد اين فيلترها به شما اجازه میدهد مثلا (rnazari) را به (RNazAr1) تغيير دهيد. استفاده از اين فيلترها باعث میشوند که شما بتوانيد از يک ليست کوچک ليستی بزرگ ساخته و آزمايش کنيد. بهترين نوع شناخته شده از اين فيلترهای خارقالعاده در برنامههای Crack که برای محيط Unix طراحی شدهاند موجود است. قواعد اين فيلترها کلا شناخته شده و بتازگی در برنامههايی که برای NT طراحی شده اند گنجانيده شده است.
اگر برنامه Crackerه شما چنين قابليتی ندارد شما میتوانيد با برنامه Therion's Password Utility که برای محيط DOS طراحی شده است میتواند با روشهای زيادی يک ليست کوچک از کلمات را از شما گرفته و به يک ليست خيلی بزرگ تبديل کند و سپس شما میتوانيد آنرا بکار بگيريد.
۳ (۴) منظور از شکستن پسورد بروش Brute Force چيست؟
يک برنامه Cracker بروش Brute Force بسادگی و با قواعدی خاص لغاتی را بصورت اتوماتيک ساخته و با hashه مقايسه میکند. فرق اين روش با روش قبلی در اين است که تمام لغات بصورت اتوماتيک ساخته میشوند. از ديدگاه يک هکر اين روش خيلی وقت گير بوده و قسمت زيادی از قدرت CPU را هدر میدهد.
خيلی از برنامههای اين حملات تنظيماتی را به شما میدهند تا با اين تنظيمات در زمان صرف شده و قدرت CPU صرفهجويی کنيد. مثلا میتوانيد طول پسورد ساخته شده يا کاراکترهايی که برای ساختن لغات بکار برده خواهند شد را معين کنيد.
۳ (۵) کدام روش برای Crack کردن بهترين است؟
جواب اين سوال مرتبط است با: هدف شما، برنامه Crackی که بکار میبريد، و سيستم عامل سرور هدف. چند فايل dictionary با طولهای متفاوت مثلا ۴، ۵، ۶، ۷، ۸، ... از اينترنت بگيريد بعد اين فايلها را گسترش داده و فيلترهايی روی آنها اعمال کنيد تا هرچه جامعتر شود. و در اکثر موارد انتخاب نخستتان روش dictionary باشد اگر با اين همه لغات بازهم نتوانستيد يک hash را بشکنيد. ديگر متاسفانه بايد از روش Brute Force استفاده کرده و سيستم خود را چند روزی مشغول اين کار کنيد.
۳ (۶) منظور از Salt (نمک) چيست؟
برای بالا بردن امنيت پسوردها بعضی از الگوريتمها از Salt استفاده میکنند اين عمل باعث میشود پيچيدگی پسورد زيادتر و شکستن آن سختتر شود. Saltها معمولا ۲ تا ۸ بايت درازا دارند و با الگوريتم خود باعث میشوند که ابهام one-way hash بيشتر شود. اکثر سيستم عاملها اين روش را پوشش میدهند بجز NT. اگر دو پسورد عين هم با اين الگوريتم hash شود hashها عين هم نخواهند بود و در اين روش ۴۰۹۶ نوع hash از يک پسورد میتوان ساخت و کار شکستن نيز به همان اندازه سختتر خواهد شد. با همه اين احوال Salt نيز امنيت صد در صد پسورد را گارانتی نمیکند.
۳ (۷) حمله برای شکستن پسورد چه خطراتی دارد؟
يکی از خطرات اين حمله محکوم بودن شما از نظر قوانين است البته فعلا در کشور ما چنين قانونی وجود ندارد و فقط در شرايطی شما را دستگير میکنند که شما به يکی از سرورهای دولتی، اداری يا بانکی حمله کرده باشيد. البته اگر نوع اشتراک شما کارتی نباشد و شماره تلفنتون را مخفی نکرده باشين در غير اينصورت فکر نکنم کسی بتواند شما را رديابی کند.
اگر شما نتوانيد فايل hash را کپی کنيد شايد دلتان بخواهد که بصورت remote اين حمله را پايهريزی کنيد که در اينصورت يک اشکالی پيش خواهد آمد. اکثر سرورها طوری تنظيم میشوند که اگر شما چندين بار پسورد را اشتباهی وارد کرديد دسترسی آن account را برای مدت زمانی که از پيش تعريف شده است قطع میکنند.
اما اين روش خود يک ايرادی دارد و آن اينکه سرور در اين حالت دچار حمله (DoS (Denial-of-Service میشود
موفق باشید
اکثر accountها روی سيستمهای کامپيوتری معمولا متدهای خاصی از دسترسی محدود به آن account دارند. هر زمان که قصد دسترسی به يک سيستم داشته باشيد بايد يک ID صحيح را وارد کرده و با وارد کردن password وارد account خود شويد. اکثر سيستمها پسوردها را نشان نمیدهند و بجای کاراکترهای واقعی از ستاره يا نقطه استفاده میکنند.
روی اکثر سيستمها پسورد از ميان چندين الگوريتم عبور داده میشود تا بصورت hash (رمز شده) درآيد. hash معمولا بيشتر از کاراکترهائی است که بعنوان پسورد وارد شدهاند. معمولا hash بصورت one-way (غيرقابل برگشت) درست میشود يعنی با هيچ الگوريتمی نمیتوان hash را به متن اصلی تبديل کرد. اکثر سيستمها در هنگام authentication (تعيين هويت) پسوردهای ذخيره شده را آشکار نمیکنند و آنها از ابتدا متن وارد شده را hash کرده و با hashه ذخيره شده مقايسه میکنند.
در رمز نويسی بعضی از الگوريتمها بهتر از الگوريتمهای ديگر برای ساختن one-way hash هستند. در اين سری مقالات توجه ما روی سيستم عاملهای NT, Netware, Unix خواهد بود. که همگی از الگوريتم تقريبا يکسانی استفاده میکنند.
برای crack کردن يک پسورد لازم است شما يک کپی از hash که روی سرور ذخيره شده است بگيريد و بعد الگوريتم را بکار بگيريد تا hash شده متنهای شما را توليد کند تا زمانيکه hash شما با hashه سرور يکسان شود. در اين هنگام کلمهای که شما برای توليد hash بکار بردهايد همان پسورد سيستم مورد حمله شما میباشد. چون انجام اين کار بروش دستی زمان زيادی میبرد از اتوماسيون استفاده میشود. نرمافزارهای رايگان زيادی در اينترنت برای شکستن پسوردهای سيستم عاملهای مورد مطالعه ما وجود دارد.
۳ (۲) چرا از hashها محافظت میکنيم؟
اگر hashهای غير قابل برگشت نه خود پسوردها بلکه مشتق آنها هستند پس چرا از آنها محافظت میکنيم؟ چون الگوريتمی که آنها را توليد میکند شناخته شده است. يک هکر میتواند با برنامههای مخصوص اين کار بسادگی پسوردهای ممکن را رمز کرده و آنها را با پسوردهای داخل hash مقايسه کند تا زمانيکه پسورد را پيدا کند. دو روش برای شکستن پسورد بکار برده میشود: روش Dictionary و روش Brute Force. معمولا hashها در قسمتی از سيستم ذخيره میشوند که امينت ويژهای دارد تا دسترسی کراکرهای مستعد به آن محدود شود.
۳ (۳) منظور از شکستن پسورد بروش Dictionary چيست؟
يک برنامه شکننده پسورد بسادگی ليستی از لغات dictionary را میگيرد و هر لحظه يک لغت را رمز کرده و با hashه سيستم مقايسه میکند تا زمانيکه که هر دو hash برابر شوند و پسورد شکسته شود. در اين هنگام لغتی از dictionary که آزمايش شده است همان پسورد سيستم است.
بعضی از اين برنامهها میتوانند با بکارگيری فيلترهای مخصوص کلمات را دستکاری کنند. قواعد اين فيلترها به شما اجازه میدهد مثلا (rnazari) را به (RNazAr1) تغيير دهيد. استفاده از اين فيلترها باعث میشوند که شما بتوانيد از يک ليست کوچک ليستی بزرگ ساخته و آزمايش کنيد. بهترين نوع شناخته شده از اين فيلترهای خارقالعاده در برنامههای Crack که برای محيط Unix طراحی شدهاند موجود است. قواعد اين فيلترها کلا شناخته شده و بتازگی در برنامههايی که برای NT طراحی شده اند گنجانيده شده است.
اگر برنامه Crackerه شما چنين قابليتی ندارد شما میتوانيد با برنامه Therion's Password Utility که برای محيط DOS طراحی شده است میتواند با روشهای زيادی يک ليست کوچک از کلمات را از شما گرفته و به يک ليست خيلی بزرگ تبديل کند و سپس شما میتوانيد آنرا بکار بگيريد.
۳ (۴) منظور از شکستن پسورد بروش Brute Force چيست؟
يک برنامه Cracker بروش Brute Force بسادگی و با قواعدی خاص لغاتی را بصورت اتوماتيک ساخته و با hashه مقايسه میکند. فرق اين روش با روش قبلی در اين است که تمام لغات بصورت اتوماتيک ساخته میشوند. از ديدگاه يک هکر اين روش خيلی وقت گير بوده و قسمت زيادی از قدرت CPU را هدر میدهد.
خيلی از برنامههای اين حملات تنظيماتی را به شما میدهند تا با اين تنظيمات در زمان صرف شده و قدرت CPU صرفهجويی کنيد. مثلا میتوانيد طول پسورد ساخته شده يا کاراکترهايی که برای ساختن لغات بکار برده خواهند شد را معين کنيد.
۳ (۵) کدام روش برای Crack کردن بهترين است؟
جواب اين سوال مرتبط است با: هدف شما، برنامه Crackی که بکار میبريد، و سيستم عامل سرور هدف. چند فايل dictionary با طولهای متفاوت مثلا ۴، ۵، ۶، ۷، ۸، ... از اينترنت بگيريد بعد اين فايلها را گسترش داده و فيلترهايی روی آنها اعمال کنيد تا هرچه جامعتر شود. و در اکثر موارد انتخاب نخستتان روش dictionary باشد اگر با اين همه لغات بازهم نتوانستيد يک hash را بشکنيد. ديگر متاسفانه بايد از روش Brute Force استفاده کرده و سيستم خود را چند روزی مشغول اين کار کنيد.
۳ (۶) منظور از Salt (نمک) چيست؟
برای بالا بردن امنيت پسوردها بعضی از الگوريتمها از Salt استفاده میکنند اين عمل باعث میشود پيچيدگی پسورد زيادتر و شکستن آن سختتر شود. Saltها معمولا ۲ تا ۸ بايت درازا دارند و با الگوريتم خود باعث میشوند که ابهام one-way hash بيشتر شود. اکثر سيستم عاملها اين روش را پوشش میدهند بجز NT. اگر دو پسورد عين هم با اين الگوريتم hash شود hashها عين هم نخواهند بود و در اين روش ۴۰۹۶ نوع hash از يک پسورد میتوان ساخت و کار شکستن نيز به همان اندازه سختتر خواهد شد. با همه اين احوال Salt نيز امنيت صد در صد پسورد را گارانتی نمیکند.
۳ (۷) حمله برای شکستن پسورد چه خطراتی دارد؟
يکی از خطرات اين حمله محکوم بودن شما از نظر قوانين است البته فعلا در کشور ما چنين قانونی وجود ندارد و فقط در شرايطی شما را دستگير میکنند که شما به يکی از سرورهای دولتی، اداری يا بانکی حمله کرده باشيد. البته اگر نوع اشتراک شما کارتی نباشد و شماره تلفنتون را مخفی نکرده باشين در غير اينصورت فکر نکنم کسی بتواند شما را رديابی کند.
اگر شما نتوانيد فايل hash را کپی کنيد شايد دلتان بخواهد که بصورت remote اين حمله را پايهريزی کنيد که در اينصورت يک اشکالی پيش خواهد آمد. اکثر سرورها طوری تنظيم میشوند که اگر شما چندين بار پسورد را اشتباهی وارد کرديد دسترسی آن account را برای مدت زمانی که از پيش تعريف شده است قطع میکنند.
اما اين روش خود يک ايرادی دارد و آن اينکه سرور در اين حالت دچار حمله (DoS (Denial-of-Service میشود
موفق باشید