آموزش Password Spraying

6 502

با سلام و احترام خدمت همه ی دوستان عزیز امروز می خوایم به یکی از راحت ترین و مفید ترین راهکار های حملات مربوط به پسورد ها که تکنیک password spraying هست یک نگاهی بندازیم .

Password Spraying

مطلبی قدیمی ولی مهم و ضروری خیلی اوقات که قرار به تست نفوذ شبکه هست (می تونم اطمینان بدم توی سرتاسر دنیا نه فقط ایران) ما الکی میریم دنبال روش های سخت می گردیم و خودمون رو اذیت می کنیم در صورتی که اگه ساده به قضیه نگاه کنیم می بینیم که چه قدر می تونستیم راه های ساده تری رو بریم.مثال یک کسی میاد و می گه آره من شبکه رو اسکن کردم و فهمیدم دارن از یک thirdparty استفاده می کنن که آسیب پذیری buffer over flow داره و فازینگ انجام دادم و تونستم یک exploit بنویسم و DEP و ASLR رو bypass کنم و بتونم اختیار یک سیستم رو توی دستم بگیرم و‌ pivoting انجام بدم و به بقیه سیستم ها و سرور ها دسترسی داشته باشم ولی خب فراموش می کنه که password فایروال اون مجموعه به طور default admin admin بوده و اصلا احتیاج به این کار ها نبوده 😁😁توی این مطلب هم من می خوام یک نکته ای بگم که ۶۵٪‌ اطمینان می دم که به راحتی شما در عرض چند دقیقه یا نهایت ۱ ساعت می تونید اختیار خیلی از سیستم هارو یا حتی اکانت domain admin رو داشته باشید و هر چی سازمان بزرگتر و مهم تر این تکنیک بیشتر نتیجه میده.
خب اولین کار باید LDAP enumeration انجام بدید یعنی لیست یوزر ها و سرویس اکانت ها رو در بیارید .
در سیستم ویندوز:
برای اینکار دستور زیر رو می تونید در CMD وارد کنید :

net user /domain > users.txt

نکته : برای اجرا کردن دستور بالا اصلا احتیاجی به دسترسی خاصی نیست .

در سیستم لینوکس :

rpcclient -U #username #Server_IP
rpcclient -U ali 192.168.0.80
rpclient $>enumdomusers

 

 

خب لیست یوزر ها در اومد کاری که می تونیم انجام بدیم این هستش که در گام بعدی از تکنیک password spraying استفاده کنیم . تکنیک password spraying یک روش اتک زدن به پسورد هاست با این تفاوت که بر خلاف bruteforce و dictionary اتک ما با هر یوزر یک بار تلاش برای لاگین می کنیم .همون طور که می دونید مایکروسافت یک feature امنیتی داره به نام account lock out policy یعنی هر یوزر که بیشتر از یک عددی که خودمون توی group policy تعریف میکنیم (مثلا ۵ تا ) پسورد اشتباه بزنه تا یک مدتی(account lockout duration) به عنوان مثال ۳۰ دقیقه نمی تونه از پشت اون سیستم با اون یوزر لاگین کنه و نکته ی مهم تر ما توی password spraying یک password ثابت داریم و یوزر ها متغیر هستند .توی dictionary یا brute force اتک این قضیه بر عکسه یعنی چی یعنی ما یک لیستی از پسورد ها رو برای یک یوزر امتحان می کنیم ولی توی password spraying ما یک پسورد رو برای چندین یوزر استفاده می کنیم به همین خاطر یک جورایی account lockout policy رو هم دور می زنیم خود به خود.(در لینوکس هم ما fail2ban رو داریم که مشابه همون account lock out policy هستش )

تصویر مربوط به account lock out policy :

 

نرم افزار مربوط برای تکنیک password spraying در ویندوز رو می تونید از اینجا دانلود بفرمایید.

نرم افزار مربوط برای تکنیک password spraying در لینوکس رو می تونید از اینجا دانلود بفرمایید.

بعد از دانلود powershell رو باز می کنیم :
powershell -exec bypass
Import_Module .\DomainPasswordSpray.ps1

خب حالا قبل این کار به جای دستوری که بالاتر توی cmd برای ldap enumeration نوشته بودم توی ویندوز می تونید از خوده این پروژه ی github استفاده کنید یعنی داخل powershell بزنید :

Get-DomainUserList > users.txt

این بهتر هم هستش چون account lockout policy رو هم نشون می ده که خب حالا لیست یوزر هامون در اومد نوبته اجرای دستور نهاییه :

Invoke-DomainPasswordspray -UserList users.txt -Password P@ssw0rd -OutFile sprayed.txt

اما سخن پایانی :
شما به جای اون P@ssw0rd میتونید هر عبارتی رو که بخواید قرار بدید خب چیزی که مشخصه و همه ی ما می دونیم خیلیا اسم سازمان رو پسوردشون میزارن یا شما اکثر admin ها یا helpdesk ها رو که ببینید پسوردشون P@ssw0rd یا Password123! هستش چرا چون توی کلاس های مایکروسافت یاد گرفتن .خوبیه این روش اینه توسط idps ها هم قابل شناسایی نیست و سرعت شما رو به شدت بالا می بره و اینکه فقط مخصوص LDAP یا مایکروسافت نیست شما هر جایی می تونید استفاده کنید میشه این تکنیک رو توی ssh لینوکس استفاده کرده یا exchange مایکروسافت یا هر پلتفرمی که یک سرویسی داره که authentication داره .

من هم به نوبه ی خودم تشکر می کنم که بدون ذکر کردن نام نویسنده و منبع مطلبی رو انتشار نمی دید.

 

 

6 نظرات
  1. علیرضا بابایی می گوید

    بسیار عالی 👌👌👏👏

    1. سالار بختیاری می گوید

      سپاس

  2. فرهاد خانلری می گوید

    به به استاد بختیاری عزیز
    کیف میکنم مطالب ناب و دست اول ازت میخونم و به دنیای امنیت دید تازه ای برای ما باز میکنی.
    تشکر از شما

    1. سالار بختیاری می گوید

      سلام استاد بزرگوار
      باعث افتخاره که شما دنبال می کنید ممنونم از شما

  3. میلاد اسحاقی می گوید

    به به از این بهتر نمیشه . مثل دنده معکوسی که تا cut off ادامه بدی شارژ شدم :)))))
    عالی بود مهندس بختیاری عزیز ، این مطالب واقعا به قول مهندس خانلری دست اول و ناب هستن و تشکر از وقتی که میازی
    یعنی دیگه در کلاس های مایکروسافت از P@ssw0rd استفاده نکنیم ؟؟ بعد اینکه ۶۵ درصد چطوری محاسبه کردی ؟ مایکروسافت ۹۹ درصد امن هست مشکل همون یک درصد هست که انشالله حلش میکنیم :))))
    عالی بود و بازم تشکر

    1. سالار بختیاری می گوید

      به به استاد عزیز خیلی خوشحالم که نظر شما رو جلب کرده
      توی امن بودنشم که اصلا شکی نیست مخصوصا من یکی که به شخص عاشق امنیت kerberos شدم به تنهایی :))
      این آسیب پذیری هاشم زیاد مهم نیستن فوقش یک دسترسیه domain admin میدن دیگه این حرفا رو ما با kerberos نداریم :)))
      اما جدای از بحث شوخی واقعا این روزا داریم به سمتی نزدیک میشیم که باید یک تجدید نظر توی مباحث امنیتی داشته باشیم دنیا داره به سمتی می ره که متوجه بشیم امنیت اجباریه نه اختیاری خیلی خوبه که سیاست های دقیق تری و به کار ببریم تا توی واقعیت هم به همون ۱٪‌برسیم

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.