
در این بخش از دوره آموزشی SEC504 به آشنایی با حملات پسورد یا Password Attacks می پردازیم و شما نکات لازم جهت تست نفوذ در این بخش را فرا خواهید گرفت.
Password Attacks
در اکثر سازمانها، کلمه عبور اولین و تنها خط دفاع برای حفاظت از اطلاعات و سرورها میباشد.
از آنجاییکه اکثر شناسههای کاربری شامل نام و نام خانوادگی یک کارمند یا ترکیبی از آنها است، شناسایی کاربران معتبر در یک شرکت بسیار آسان است.
بر این اساس، تنها بخش دیگری از اطلاعاتی که شما برای دسترسی به آن نیاز دارید رمز عبور کاربر است. بنابراین، باید از آنها بسیار محافظت شده و به صورت پیچیده انتخاب شوند.
شما باید از کلمات عبور در برابر دسترسی غیر مجاز، اصلاح غیر مجاز و حذف غیر مجاز محافظت نمایید.
اگر کاربر رمزهای عبور خود را در جایی یادداشت نماید یا آنها را با دیگران به اشتراک بگذارد، رمز عبور به خطر افتاده است و میتواند به عنوان یک نقطه ورود به سیستم از آن استفاده شود.
اصلاح یک رمز عبور به همان اندازه که دسترسی آن میتواند شما را دچار چالش نماید، خطرناک است. اگر یک مهاجم میتواند یک رمز عبور را تغییر دهد، میتواند از آن برای دسترسی استفاده کند و مهم نیست که آیا کاربر اصلی از موضوع اطلاع دارد یا ندارد.
برای محافظت از رمزهای عبور، سیستمعاملها از رمزنگاری استفاده میکنند تا از محتوای اصلی هنگام دسترسی نفوذگر به اطلاعات یا پایگاه داده، محافظت کنند. بنابراین، اگر کسی رمز عبور رمزنگاری شده را کشف کند، نمیتواند به رمز عبور اصلی پی ببرد و مهاجم تنها با رمز عبور رمز شده قادر به دسترسی نخواهد بود.
گرچه روشهایی هم برای این موضوع وجود دارد که در صورت عدم تنظیمات صحیح امنیتی، نفوذگر با استفاده هش مربوط به کلمه عبور هم میتواند به سیستم کاربر دسترسی داشته باشد که به این روش اصطلاحا Pass The Hash گفته میشود.
با این وجود، با تکنیکهای Crack Password، مهاجم میتواند به رمز عبوری که با استفاده از رمزگذاری از آن محافظت میشود دسترسی داشته باشد.
لازم به ذکر است در سیستمعامل ویندوز کلمات عبور به صورت لوکالی یا داخلی در پایگاه داده SAM ذخیره میگردد که این فایل در مسیر زیر قرار دارد.
C:\Windows\System32\config\SAM
البته اگر در ساختار ارتباطی، کاربران یک شبکه بر اساس اکتیو دایرکتوری ایجاد شده باشند، محل ذخیره سازی کلمات عبور در فایلی با نام NTDS.DIT قرار دارد که مسیر آن در هنگام نصب دامین کنترلر توسط مدیر شبکه مشخص میگردد.
در سیستمعامل لینوکس معمولا کلمات عبور در فایل /etc /shadow و نامهای کاربری در فایل /etc /passwd ذخیره میشوند.
حدس زدن رمز عبور یا Password Guessing یکی از روشهای Password Cracking بوده و اولین مرحلهای است که برای شکستن رمزهای عبور از آن استفاده میشود. به منظور انجام این تکنیک باید اقدامات زیر انجام شود:
• جستجو برای پیدا نمودن شناسههای کاربری معتبر
• ایجاد لیستی از کلمات عبور (کلمات عبوری که ممکن است مورد استفاده قرار گرفته باشند مانند همان نام کاربری، کلمات عبور ضعیف و کلمات عبوری که ترکیبی از مشخصات کاربر میباشند)
• سعی کنید تمامیکلمات عبور ایجاد شده را تست نمایید.
• اگر سیستم به شما اجازه ورود داد، شما موفق شده اید.
• اگر اجازه ورود به شما داده نشد، دوباره امتحان کنید.
در این حالت سرعت شما بسیار پایین بوده و زمان زیادی را از شما خواهد گرفت. به همین دلیل یک نفوذگر معمولا از یک اسکریپت برای این موضوع استفاده میکند. البته در این روش زمان حدس زدن رمز عبور بسیار آهسته انجام میشود و حدس هر رمز بین سه تا پنج ثانیه زمان خواهد برد.
توجه داشته باشید که اگر سیاست قفل شدن حساب کاربری یا Account Lockout در شبکه فعال شده باشد، پس از چند تلاش ناموفق برای ورود به سیستم، حساب کاربری غیر فعال شده و کاربر قانونی هم دیگر قادر به وارد شدن به سیستم نخواهد بود.
Password Spraying
برای جلوگیری از قفل شدن حساب در هنگام انجام حدس زدن رمز عبور، برخی از مهاجمان روش دیگری را برای تست گذرواژههای حدس زده خود استفاده میکنند که به آن Password Spraying میگویند. با استفاده از این تکنیک، به جای تلاش برای تست تعداد زیادی از کلمات عبور برای تعداد کمی از نامهای کاربری که یک روش سنتی برای حدس کلمات عبور میباشد، نفوذگران یک کلمه عبور که با تکنیکهای مختلف حدس زدهاند را بر روی تمام سیستمها تست مینمایند.

به عنوان مثال، مهاجم ممکن است با یک لیست از چهار کلمه عبور حمله خود را آغاز نموده و هر یک از این کلمات عبور را برای یک هزار یا تعداد بیشتری حساب کاربری امتحان نماید. پس از آنکه کنترل کننده زمان برای کلمه عبور اشتباه، به پایان میرسد(Account lockout duration)، مهاجم چهار کلمه عبور دیگر را امتحان میکند. (در این مورد بستگی دارد که گزینه مربوط به Account lockout threshold در چه تعداد ورود اشتباه حساب کاربری را قفل مینماید.)
لازم به ذکر است، نامهای شهر که سازمان در آن قرار دارد، نام شرکت، نام محصولات، تیمهای ورزشی محلی و نامهای کاربری گزینههای مناسب و بالقوه ای را برای اسپری کلمه عبور ایجاد میکنند. همچنین، اگر سیاست رمز عبور نیاز به تغییر به صورت سه ماهه داشته باشد، رمزعبور میتواند شامل فصل (بهار، تابستان، زمستان، پاییز) و یا سال باشد.
تغییر رمز عبور به صورت ماهانه هم میتواند موجب شود تا کاربران در کلمه عبور خود از عباراتی مشابه نام ماه مورد نظر یا ترکیب آن با سال، استفاده نمایند. به عنوان مثال یک کلمه عبور میتواند September2017 باشد.
روش Password Spraying به صورت قابل ملاحظه ای استفاده شده و میتواند برای رسیدن به کلمه عبور به شما کمک نماید. یکی از ابزارهایی که در این مرحله مفید میباشد ابزار Hydra است، این ابزار در لینوکس اجرا شده و هم دارای محیط دستوری یا CLI و هم دارای محیط گرافیکی یا GUI میباشد.
شما میتوانید با استفاده از این ابزار کلمات حدس زده خود را داخل یک فایل متنی قرار دهید که در این حالت شما یک دیکشنری از کلمات عبور را در اختیار خواهید داشت. سپس با معرفی این دیکشنری به Hydra اقدام به آزمایش کلمات عبور نمایید.
ابزار Hydra از پروتکلهای مختلفی از جمله FTP، SSH، RDP، SMB و پروتکلهای دیگر پشتیبانی مینماید.
Password Cracking
Password Cracking فرآیندی است که در آن تلاش میشود تا کلمه عبور به دست آید. در این حالت ما تنها به کلمه عبور رمز شده دسترسی داریم. برای انجام این تکنیک ابتدا باید شناسه کاربران معتبر را شناسایی نموده و سپس الگوریتمی که برای رمزنگاری کلمات عبور استفاده میشود را شناسایی نمایید.
سپس یک لیست از مواردی که احتمال دارد به عنوان کلمه عبور استفاده شود را تهیه نمایید و با استفاده از الگورتیمیکه در مرحله پیشین استخراج نمودید، کلیه کلمات عبور را رمز کنید. در این مرحله اگر شما کلمه عبور رمز شده را به هر طریقی استخراج نمودید با لیست ایجاد شده مقایسه مینمایید تا متن اصلی کلمه عبور استخراج شود.
برای بهبود سرعت در این تکنیک، شما میتوانید یک دیکشنری آماده نمایید که از لغات، اسامی و کلمات عبور احتمالی تشکیل شده است و برای این موضوع میتوانید از فرهنگ لغات مختلف متناسب با زبان هدف خود استفاده نمایید.
سریع ترین روش برای password cracking حمله دیکشنری میباشد. این کار با تست تمام کلمات موجود در دیکشنری صورت میپذیرد. برخی از وب سایتها این دیکشنریها را ایجاد نمودهاند و آنها را در اختیار کاربران قرار میدهند.
البته شما خودتان هم میتوانید با ابزارهایی نظیر Crunch که در محیط سیستمعامل کالی لینوکس موجود میباشد هم اقدام به ایجاد اصطلاحا یک Password List یا دیکشنری نمایید.
از آنجایی که اکثر افراد از کلمات کلیدی موجود در فرهنگ لغت به عنوان کلمه عبور استفاده میکنند، با جمع آوری یک فرهنگ لغت از کلمات، شما به راحتی میتوانید کلمات عبور را استخراج نمایید. در برخی موارد با استفاده از یک فرهنگ لغت متشکل از 10،000 کلمه، شما قادر خواهید بود 70٪ کلمات عبور را در سیستم حدس بزنید.
آشنایی با Sniffing و ابزارهای آن
یکی از مزایای حملات دیکشنری سرعت بالای این نوع حمله نسبت به حملات Brute Force است.
حمله Brute Force یکی دیگر از انواع حملات کلمات عبور میباشد که همواره موفقیت آمیز عمل میکند. اما مسئله مهم در این نوع حمله زمان است. اگر در کلمات عبور از کاراکترهای خاص استفاده شود و دارای پیچیدگی باشند، ممکن است زمان زیادی صرف شود تا به کلمه عبور اصلی برسید.
کلمات عبور پیچیده میتواند در عرض چند روز Crack شود. این عملیات معمولا خیلی کوتاه تر از زمانی است که اغلب مدیران شبکه برای سیاست انقضای کلمه عبور خود تنظیم میکنند. البته مقدار زمان لازم برای حمله Brute Force به شدت وابسته به نوع رمزنگاری و الگوریتم هش آن کلمه عبور است.
در برخی موارد، الگورتیم بسیار قوی بوده ولی در برخی موارد مانند الگورتیمیکه در مایکروسافت استفاده میشود ضعیف میباشد که در ادامه به آن خواهیم پرداخت.
روش دیگر برای رمزگشایی کلمات عبور یک حمله ترکیبی یا hybrid attack است. در این روش به دیکشنری کلمات عبور، کاراکترهای عددی و علامات نیز اضافه میگردد. در واقع این روش همان حمله دیکشنری است ولی داخل دیکشنری علامات و کاراکترهای خاص نیز قرار میگیرد (مانند Hello!@)
اکثر کاربران در انتهای کلمات عبور خود از اعداد و یا کاراکترهای خاص استفاده میکنند که روش ترکیبی میتواند به راحتی این کلمات عبور را شناسایی نماید.
oclHashcat-plus یک ابزار شکستن پسورد یا Password Crack سریع است که از درایورهای ویدئویی CUDA استفاده میکند تا سرعت بسیار زیادی را برای شکستن کلمات عبور ایجاد کند.
یکی دیگر از ابزارهایی که در این زمینه استفاده میشود، ابزار John the Ripper میباشد که قابلیت ترکیب عبارات با یک دیکشنری را دارد که تحت عنوان Word Mangling شناخته میشود.
چطور میتوان از شکستن کلمات عبور برای اهداف خوب استفاده نمود؟
اغلب افراد از تکنیکهای شکستن پسورد برای مقاصد مخرب استفاده میکنند ولی همه آنها بد نیستند. یک مدیر سیستم با استفاده از تکنیکهای شکستن رمز عبور میتواند قدرت رمزهای عبور را در حوزه اداری خود بررسی نماید. بدون تست گذرواژههای تولید شده توسط کاربران در برابر رمزگشایی کلمات عبور، ممکن است یک مهاجم خارجی یا یک کارمند داخلی مخرب این کار را انجام داده و اقدام به شکستن کلمات عبور نماید. به همین منظور پیش از وقوع حادثه باید وارد عمل شد.
اگر شما قصد شناسایی قدرت کلمات عبور را با استفاده از یک ابزار Password Cracking دارید، باید از برخی فرآیندها و استانداردها پیروی نمایید.
ابتدا باید درنظر داشته باشید که کدام سیاست برای شکستن کلمه عبور قابل قبول یا غیر قابل قبول است. به عنوان مثال زمانی که برای شکستن یک کلمه عبور نیاز است، اگر کمتر از یک ساعت بود آیا این بد است یا خیر؟ یا اینکه اگر برای شکستن یک کلمه عبور بیش از 20 ساعت زمان نیاز بود آیا این خوب است یا خیر؟
پیش از شروع عملیات شکستن کلمات عبور باید سیاست مناسب بودن کلمه عبور را برای خود مشخص نمایید. سپس، مطمئن شوید که کلمه عبور به صورت مشخص (به صورت Clear Text) پس از انجام فرآیند Crack بر روی سیستم ذخیره نگردد. زیرا نفوذگران به دنبال چنین فایلهایی در سیستمهای مختلف هستند.
به هیچ عنوان وجود مشکل در ساختار کلمات عبور مانند کلمات عبور ضعیف را از طریق ایمیل یا تلفن به اطلاع کاربران نرسانید. این روش موجب میشود تا خودتان با دستان خودتان راههای مهندسی اجتماعی را فراهم نمایید.
بدین صورت که اگر یک نفوذگر هم با همین روش اقدام به تماس یا ارسال ایمیل برای کاربران نماید، این امر از نظر کاربران بدیهی به نظر خواهد رسید و این موضوع از لحظ امنیتی خوشایند نخواهد بود. بهترین حالت این است که شما کاربر را مجبور نمایید تا کلمه عبور خود را در ورود بعدی تغییر دهد.